From 4f8155e612d3adb19955a27d130274ff8bb4b1a8 Mon Sep 17 00:00:00 2001 From: "Artem S. Tashkinov" Date: Tue, 3 Mar 2015 00:22:45 +0500 Subject: [PATCH 001/238] Let's check if the torrent file can actually be opened before passing it to libtorrent If we don't have enough permissions, libtorrent will spew a pretty useless, irrelevant and almost wrong message: "Failed to load the torrent: torrent file is not a dictionary" --- src/gui/addnewtorrentdialog.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index e480ae38b..afb780b0d 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -190,6 +190,12 @@ bool AddNewTorrentDialog::loadTorrent(const QString& torrent_path, const QString return false; } + QFileInfo fileinfo(m_filePath); + if (!fileinfo.isReadable()) { + MessageBoxRaised::critical(0, tr("I/O Error"), tr("The torrent file cannot be read from the disk. Probably you don't have enough permissions.")); + return false; + } + m_hasMetadata = true; try { From 98531870515d5b88ef25a8ffe7320de3993ed683 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Mon, 30 Nov 2015 19:53:19 +0300 Subject: [PATCH 002/238] Fix wrong encoding for listen failed error message. --- src/core/bittorrent/session.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/bittorrent/session.cpp b/src/core/bittorrent/session.cpp index b9171ca6e..0b7962170 100644 --- a/src/core/bittorrent/session.cpp +++ b/src/core/bittorrent/session.cpp @@ -1511,7 +1511,7 @@ void Session::setListeningPort() m_nativeSession->listen_on(ports, ec, 0, libt::session::listen_no_system_port); if (ec) - logger->addMessage(tr("qBittorrent failed to listen on any interface port: %1. Reason: %2", "e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface" ).arg(QString::number(port)).arg(Utils::String::fromStdString(ec.message())), Log::CRITICAL); + logger->addMessage(tr("qBittorrent failed to listen on any interface port: %1. Reason: %2.", "e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface" ).arg(QString::number(port)).arg(QString::fromLocal8Bit(ec.message().c_str())), Log::CRITICAL); return; } @@ -2304,10 +2304,10 @@ void Session::handleListenFailedAlert(libt::listen_failed_alert *p) proto = "SOCKS5"; qDebug() << "Failed listening on " << proto << p->endpoint.address().to_string(ec).c_str() << "/" << p->endpoint.port(); Logger::instance()->addMessage( - tr("qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4", + tr("qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4.", "e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use") .arg(p->endpoint.address().to_string(ec).c_str()).arg(proto).arg(QString::number(p->endpoint.port())) - .arg(Utils::String::fromStdString(p->error.message())), Log::CRITICAL); + .arg(QString::fromLocal8Bit(p->error.message().c_str())), Log::CRITICAL); } void Session::handleExternalIPAlert(libt::external_ip_alert *p) From 6bf2c5a946a87045fd53734ea0bfc622f1738da1 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Mon, 30 Nov 2015 19:58:19 +0300 Subject: [PATCH 003/238] Remove unused LineEdit slot. Fix compiler warning. --- src/gui/lineedit/src/lineedit.cpp | 4 ++-- src/gui/lineedit/src/lineedit.h | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/lineedit/src/lineedit.cpp b/src/gui/lineedit/src/lineedit.cpp index 8de914ab0..78dc6870c 100644 --- a/src/gui/lineedit/src/lineedit.cpp +++ b/src/gui/lineedit/src/lineedit.cpp @@ -64,9 +64,9 @@ void LineEdit::resizeEvent(QResizeEvent *e) #endif } +#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) void LineEdit::updateCloseButton(const QString &text) { -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) clearButton->setVisible(!text.isEmpty()); -#endif } +#endif diff --git a/src/gui/lineedit/src/lineedit.h b/src/gui/lineedit/src/lineedit.h index 74ee9b423..84e0d5cf4 100644 --- a/src/gui/lineedit/src/lineedit.h +++ b/src/gui/lineedit/src/lineedit.h @@ -24,8 +24,10 @@ public: protected: void resizeEvent(QResizeEvent *e); +#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) private slots: void updateCloseButton(const QString &text); +#endif private: QToolButton *searchButton; From 7cc5a3e0508cec82f5ff9746cb7be5f9dcd57629 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Tue, 1 Dec 2015 17:41:56 +0300 Subject: [PATCH 004/238] Improve torrent export feature. Closes #4205. --- src/core/bittorrent/session.cpp | 58 +++++++-------------------------- src/core/bittorrent/session.h | 1 - src/core/utils/fs.cpp | 14 ++++---- src/core/utils/fs.h | 2 +- 4 files changed, 21 insertions(+), 54 deletions(-) diff --git a/src/core/bittorrent/session.cpp b/src/core/bittorrent/session.cpp index b9171ca6e..df45acd0c 100644 --- a/src/core/bittorrent/session.cpp +++ b/src/core/bittorrent/session.cpp @@ -466,7 +466,8 @@ void Session::configure() m_torrentExportEnabled = torrentExportEnabled; if (m_torrentExportEnabled) { qDebug("Torrent export is enabled, exporting the current torrents"); - exportTorrentFiles(pref->getTorrentExportDir()); + for (auto torrent: m_torrents) + exportTorrentFile(torrent); } } @@ -1151,57 +1152,22 @@ void Session::exportTorrentFile(TorrentHandle *const torrent, TorrentExportFolde Q_ASSERT(((folder == TorrentExportFolder::Regular) && m_torrentExportEnabled) || ((folder == TorrentExportFolder::Finished) && m_finishedTorrentExportEnabled)); + QString validName = Utils::Fs::toValidFileSystemName(torrent->name()); QString torrentFilename = QString("%1.torrent").arg(torrent->hash()); + QString torrentExportFilename = QString("%1.torrent").arg(validName); QString torrentPath = QDir(m_resumeFolderPath).absoluteFilePath(torrentFilename); QDir exportPath(folder == TorrentExportFolder::Regular ? Preferences::instance()->getTorrentExportDir() : Preferences::instance()->getFinishedTorrentExportDir()); if (exportPath.exists() || exportPath.mkpath(exportPath.absolutePath())) { - QString newTorrentPath = exportPath.absoluteFilePath(torrentFilename); - if (QFile::exists(newTorrentPath) && Utils::Fs::sameFiles(torrentPath, newTorrentPath)) { - // Append hash to torrent name to make it unique - newTorrentPath = exportPath.absoluteFilePath(torrent->name() + "-" + torrentFilename); - } - QFile::copy(torrentPath, newTorrentPath); - } -} - -void Session::exportTorrentFiles(QString path) -{ - // NOTE: Maybe create files from current metadata here? - Q_ASSERT(m_torrentExportEnabled); - - QDir exportDir(path); - if (!exportDir.exists()) { - if (!exportDir.mkpath(exportDir.absolutePath())) { - Logger::instance()->addMessage(tr("Error: Could not create torrent export directory: '%1'").arg(exportDir.absolutePath()), Log::CRITICAL); - return; - } - } - - QDir resumeDataDir(m_resumeFolderPath); - foreach (TorrentHandle *const torrent, m_torrents) { - if (!torrent->isValid()) { - Logger::instance()->addMessage(tr("Torrent Export: torrent is invalid, skipping..."), Log::CRITICAL); - continue; + QString newTorrentPath = exportPath.absoluteFilePath(torrentExportFilename); + int counter = 0; + while (QFile::exists(newTorrentPath) && !Utils::Fs::sameFiles(torrentPath, newTorrentPath)) { + // Append number to torrent name to make it unique + torrentExportFilename = QString("%1 %2.torrent").arg(validName).arg(++counter); + newTorrentPath = exportPath.absoluteFilePath(torrentExportFilename); } - const QString srcPath(resumeDataDir.absoluteFilePath(QString("%1.torrent").arg(torrent->hash()))); - if (QFile::exists(srcPath)) { - QString dstPath = exportDir.absoluteFilePath(QString("%1.torrent").arg(torrent->name())); - if (QFile::exists(dstPath)) { - if (!Utils::Fs::sameFiles(srcPath, dstPath)) { - dstPath = exportDir.absoluteFilePath(QString("%1-%2.torrent").arg(torrent->name()).arg(torrent->hash())); - } - else { - qDebug("Torrent Export: Destination file exists, skipping..."); - continue; - } - } - qDebug("Export Torrent: %s -> %s", qPrintable(srcPath), qPrintable(dstPath)); - QFile::copy(srcPath, dstPath); - } - else { - Logger::instance()->addMessage(tr("Error: could not export torrent '%1', maybe it has not metadata yet.").arg(torrent->hash()), Log::CRITICAL); - } + if (!QFile::exists(newTorrentPath)) + QFile::copy(torrentPath, newTorrentPath); } } diff --git a/src/core/bittorrent/session.h b/src/core/bittorrent/session.h index 1fe5bd981..156f3a0e9 100644 --- a/src/core/bittorrent/session.h +++ b/src/core/bittorrent/session.h @@ -293,7 +293,6 @@ namespace BitTorrent void updateRatioTimer(); void exportTorrentFile(TorrentHandle *const torrent, TorrentExportFolder folder = TorrentExportFolder::Regular); - void exportTorrentFiles(QString path); void saveTorrentResumeData(TorrentHandle *const torrent); void handleAlert(libtorrent::alert *a); diff --git a/src/core/utils/fs.cpp b/src/core/utils/fs.cpp index 053c614be..30728d501 100644 --- a/src/core/utils/fs.cpp +++ b/src/core/utils/fs.cpp @@ -250,13 +250,15 @@ bool Utils::Fs::sameFiles(const QString& path1, const QString& path2) return same; } -QString Utils::Fs::toValidFileSystemName(QString filename) +QString Utils::Fs::toValidFileSystemName(const QString &filename) { - qDebug("toValidFSName: %s", qPrintable(filename)); - const QRegExp regex("[\\\\/:?\"*<>|]"); - filename.replace(regex, " "); - qDebug("toValidFSName, result: %s", qPrintable(filename)); - return filename.trimmed(); + static const QRegExp regex("[\\\\/:?\"*<>|]"); + + QString validName = filename.trimmed(); + validName.replace(regex, " "); + qDebug() << "toValidFileSystemName:" << filename << "=>" << validName; + + return validName; } bool Utils::Fs::isValidFileSystemName(const QString& filename) diff --git a/src/core/utils/fs.h b/src/core/utils/fs.h index cb7db0228..9f04a2726 100644 --- a/src/core/utils/fs.h +++ b/src/core/utils/fs.h @@ -48,7 +48,7 @@ namespace Utils QString folderName(const QString& file_path); qint64 computePathSize(const QString& path); bool sameFiles(const QString& path1, const QString& path2); - QString toValidFileSystemName(QString filename); + QString toValidFileSystemName(const QString &filename); bool isValidFileSystemName(const QString& filename); qlonglong freeDiskSpaceOnPath(QString path); QString branchPath(const QString& file_path, QString* removed = 0); From 71bdd353d320bc401537f364bb02d1b4cf7ec9b2 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 4 Dec 2015 13:35:41 +0800 Subject: [PATCH 005/238] Add CONTRIBUTING.md --- CONTRIBUTING.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..1fa9319e6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,36 @@ +# Filing an issue + +### Must read +* If you aren't sure, you can ask on the [**forum**](http://forum.qbittorrent.org) or read our [**wiki**](http://wiki.qbittorrent.org) first. +* Do a quick **search**. Others might already reported the issue. +* Write in **English**! +* Provide **version** information: (You can find version numbers at menu `Help -> About -> Libraries`) + ``` +qBittorrent: +Qt: +libtorrent: +boost: +OS version: + + ``` +* Provide **steps** to reproduce the problem, it will be easier to pinpoint the fault. +* **Screenshots**! A screenshot is worth a thousand words. just upload it. [(How?)](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests) + +### Good to know +* **Patience**. The dev team is small and resource limited. Devs finding their free time, analyzing the problem and fixing the issue, it all takes time. :clock3: +* If you can code, why not become a **contributor** by fixing the issue and open a pull request? :wink: +* Harsh words or threats won't help your situation. What's worse, your complain will (very likely) to be **ignored**. :fearful: + + +# Opening a pull request + +### Must read +* Read our [**coding guidelines**](https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md). There are some scripts to help you: [uncrustify script](https://gist.github.com/sledgehammer999/1cb1d9224d7fec8fa632), [astyle script](https://gist.github.com/Chocobo1/539cee860d1eef0acfa6), [(related thread)](https://github.com/qbittorrent/qBittorrent/issues/2192). +* Keep the title **short** and provide a **clear** description about what your pull request does. +* Provide **screenshots** for UI related changes. +* Keep your git commit history **clean** and **precise**. Commits like `xxx fixup` should not appear. +* If your commit fix a reported issue (for example #4134), add the following message to the commit `Closes #4134.`. Example [here](https://github.com/qbittorrent/qBittorrent/commit/a74bac20c4e8de9776bf9bb77fdc7526135d1988). + +### Good to know +* **Search** pull request history! Others might already implemented your idea and is waiting to be merged (or got rejected already). Save your precious time by doing a search first. +* When resolving merge conflicts, do `git rebase `, don't do `git pull`. Then you can start fixing the conflicts. Here is a good explanation: [link](https://www.atlassian.com/git/tutorials/merging-vs-rebasing). From 8014d74210fe5d545f6897498f7c4afc4118f353 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sat, 5 Dec 2015 17:48:57 +0300 Subject: [PATCH 006/238] Fix scan dirs settings saving. Closes #4254, #4239, #4187. --- src/core/preferences.cpp | 4 ++-- src/core/utils/misc.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/preferences.cpp b/src/core/preferences.cpp index 65ed85e7c..91cb2daf7 100644 --- a/src/core/preferences.cpp +++ b/src/core/preferences.cpp @@ -504,7 +504,7 @@ QList Preferences::getDownloadInScanDirs() const void Preferences::setDownloadInScanDirs(const QList &list) { - setValue("Preferences/Downloads/ScanDirsDownloadPaths", Utils::Misc::toStringList(list)); + setValue("Preferences/Downloads/DownloadInScanDirs", Utils::Misc::toStringList(list)); } void Preferences::setScanDirsDownloadPaths(const QStringList &downloadpaths) @@ -514,7 +514,7 @@ void Preferences::setScanDirsDownloadPaths(const QStringList &downloadpaths) QStringList Preferences::getScanDirsDownloadPaths() const { - return value("Preferences/Downloads/DownloadPaths").toStringList(); + return value("Preferences/Downloads/ScanDirsDownloadPaths").toStringList(); } QString Preferences::getScanDirsLastPath() const diff --git a/src/core/utils/misc.cpp b/src/core/utils/misc.cpp index ceef86d1b..24efe5281 100644 --- a/src/core/utils/misc.cpp +++ b/src/core/utils/misc.cpp @@ -465,7 +465,7 @@ QList Utils::Misc::boolListfromStringList(const QStringList &l) { QList ret; foreach (const QString &s, l) - ret << (s=="1"); + ret << (s == "1"); return ret; } From bdac97147f0709d23875fdec6b20c1b143e39019 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Mon, 30 Nov 2015 20:33:45 +0300 Subject: [PATCH 007/238] Improve upgrade to v3.3. Fixes #4195. --- src/app/upgrade.h | 73 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 59 insertions(+), 14 deletions(-) diff --git a/src/app/upgrade.h b/src/app/upgrade.h index 28ce24e8a..b361ca711 100644 --- a/src/app/upgrade.h +++ b/src/app/upgrade.h @@ -43,6 +43,8 @@ #include "core/logger.h" #include "core/utils/fs.h" #include "core/utils/misc.h" +#include "core/utils/string.h" +#include "core/qinisettings.h" bool userAcceptsUpgrade() { @@ -73,7 +75,7 @@ bool userAcceptsUpgrade() return false; } -bool upgradeResumeFile(const QString &filepath) +bool upgradeResumeFile(const QString &filepath, const QVariantHash &oldTorrent, int &maxPrio) { QFile file1(filepath); if (!file1.open(QIODevice::ReadOnly)) @@ -91,6 +93,12 @@ bool upgradeResumeFile(const QString &filepath) fastNew = fastOld; int priority = fastOld.dict_find_int_value("qBt-queuePosition"); + if (priority > maxPrio) + maxPrio = priority; + + fastNew["qBt-name"] = Utils::String::toStdString(oldTorrent.value("name").toString()); + fastNew["qBt-tempPathDisabled"] = false; + QFile file2(QString("%1.%2").arg(filepath).arg(priority > 0 ? priority : 0)); QVector out; libtorrent::bencode(std::back_inserter(out), fastNew); @@ -106,26 +114,63 @@ bool upgradeResumeFile(const QString &filepath) bool upgrade(bool ask = true) { + QIniSettings *oldResumeSettings = new QIniSettings("qBittorrent", "qBittorrent-resume"); + QString oldResumeFilename = oldResumeSettings->fileName(); + QVariantHash oldResumeData = oldResumeSettings->value("torrents").toHash(); + delete oldResumeSettings; + if (oldResumeData.isEmpty()) + Utils::Fs::forceRemove(oldResumeFilename); + + QString backupFolderPath = Utils::Fs::expandPathAbs(Utils::Fs::QDesktopServicesDataLocation() + "BT_backup"); QDir backupFolderDir(backupFolderPath); - if (!backupFolderDir.exists()) return true; - QStringList backupFiles = backupFolderDir.entryList(QStringList() << QLatin1String("*.fastresume"), QDir::Files, QDir::Unsorted); - if (!backupFiles.isEmpty()) { - if (ask && !userAcceptsUpgrade()) return false; + if (backupFiles.isEmpty() && oldResumeData.isEmpty()) return true; + if (ask && !userAcceptsUpgrade()) return false; - QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$")); - foreach (QString backupFile, backupFiles) { - if (rx.indexIn(backupFile) != -1) { - if (!upgradeResumeFile(backupFolderDir.absoluteFilePath(backupFile))) - Logger::instance()->addMessage(QObject::tr("Couldn't migrate torrent with hash: %1").arg(rx.cap(1)), Log::WARNING); - } - else { - Logger::instance()->addMessage(QObject::tr("Couldn't migrate torrent. Invalid fastresume file name: %1").arg(backupFile), Log::WARNING); - } + int maxPrio = 0; + QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$")); + foreach (QString backupFile, backupFiles) { + if (rx.indexIn(backupFile) != -1) { + if (upgradeResumeFile(backupFolderDir.absoluteFilePath(backupFile), oldResumeData[rx.cap(1)].toHash(), maxPrio)) + oldResumeData.remove(rx.cap(1)); + else + Logger::instance()->addMessage(QObject::tr("Couldn't migrate torrent with hash: %1").arg(rx.cap(1)), Log::WARNING); + } + else { + Logger::instance()->addMessage(QObject::tr("Couldn't migrate torrent. Invalid fastresume file name: %1").arg(backupFile), Log::WARNING); } } + foreach (const QString &hash, oldResumeData.keys()) { + QVariantHash oldTorrent = oldResumeData[hash].toHash(); + if (oldTorrent.value("is_magnet", false).toBool()) { + libtorrent::entry resumeData; + resumeData["qBt-magnetUri"] = Utils::String::toStdString(oldTorrent.value("magnet_uri").toString()); + resumeData["qBt-paused"] = false; + resumeData["qBt-forced"] = false; + + resumeData["qBt-savePath"] = Utils::String::toStdString(oldTorrent.value("save_path").toString()); + resumeData["qBt-ratioLimit"] = Utils::String::toStdString(QString::number(oldTorrent.value("max_ratio", -2).toReal())); + resumeData["qBt-label"] = Utils::String::toStdString(oldTorrent.value("label").toString()); + resumeData["qBt-name"] = Utils::String::toStdString(oldTorrent.value("name").toString()); + resumeData["qBt-seedStatus"] = oldTorrent.value("seed").toBool(); + resumeData["qBt-tempPathDisabled"] = false; + + QString filename = QString("%1.fastresume.%2").arg(hash).arg(++maxPrio); + QString filepath = backupFolderDir.absoluteFilePath(filename); + + QFile resumeFile(filepath); + QVector out; + libtorrent::bencode(std::back_inserter(out), resumeData); + if (resumeFile.open(QIODevice::WriteOnly)) + resumeFile.write(&out[0], out.size()); + } + } + + if (!oldResumeData.isEmpty()) + QFile(oldResumeFilename).rename(oldResumeFilename + ".bak"); + return true; } From bae5c6a1db06742c9bac7b827853f056c1a5717d Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 5 Dec 2015 21:17:31 +0200 Subject: [PATCH 008/238] Partially revert b4c9c7cde. --- dist/qt-translations/qt_ar.qm | Bin 0 -> 33910 bytes dist/qt-translations/qt_bg.qm | Bin 0 -> 89612 bytes dist/qt-translations/qt_ca.qm | Bin 0 -> 143531 bytes dist/qt-translations/qt_cs.qm | Bin 0 -> 319892 bytes dist/qt-translations/qt_da.qm | Bin 0 -> 119822 bytes dist/qt-translations/qt_de.qm | Bin 0 -> 325046 bytes dist/qt-translations/qt_es.qm | Bin 0 -> 82411 bytes dist/qt-translations/qt_eu.qm | Bin 0 -> 96890 bytes dist/qt-translations/qt_fi.qm | Bin 0 -> 46871 bytes dist/qt-translations/qt_fr.qm | Bin 0 -> 255103 bytes dist/qt-translations/qt_gl.qm | Bin 0 -> 323547 bytes dist/qt-translations/qt_he.qm | Bin 0 -> 25666 bytes dist/qt-translations/qt_hu.qm | Bin 0 -> 272162 bytes dist/qt-translations/qt_it.qm | Bin 0 -> 134801 bytes dist/qt-translations/qt_ja.qm | Bin 0 -> 247853 bytes dist/qt-translations/qt_ko.qm | Bin 0 -> 241938 bytes dist/qt-translations/qt_lt.qm | Bin 0 -> 165343 bytes dist/qt-translations/qt_nl.qm | Bin 0 -> 144243 bytes dist/qt-translations/qt_pl.qm | Bin 0 -> 316133 bytes dist/qt-translations/qt_pt.qm | Bin 0 -> 119229 bytes dist/qt-translations/qt_pt_BR.qm | Bin 0 -> 143803 bytes dist/qt-translations/qt_ru.qm | Bin 0 -> 288364 bytes dist/qt-translations/qt_sk.qm | Bin 0 -> 238734 bytes dist/qt-translations/qt_sv.qm | Bin 0 -> 65848 bytes dist/qt-translations/qt_tr.qm | Bin 0 -> 70920 bytes dist/qt-translations/qt_uk.qm | Bin 0 -> 215985 bytes dist/qt-translations/qt_zh_CN.qm | Bin 0 -> 117337 bytes dist/qt-translations/qt_zh_TW.qm | Bin 0 -> 117253 bytes dist/windows/README.txt | 2 +- 29 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 dist/qt-translations/qt_ar.qm create mode 100644 dist/qt-translations/qt_bg.qm create mode 100644 dist/qt-translations/qt_ca.qm create mode 100644 dist/qt-translations/qt_cs.qm create mode 100644 dist/qt-translations/qt_da.qm create mode 100644 dist/qt-translations/qt_de.qm create mode 100644 dist/qt-translations/qt_es.qm create mode 100644 dist/qt-translations/qt_eu.qm create mode 100644 dist/qt-translations/qt_fi.qm create mode 100644 dist/qt-translations/qt_fr.qm create mode 100644 dist/qt-translations/qt_gl.qm create mode 100644 dist/qt-translations/qt_he.qm create mode 100644 dist/qt-translations/qt_hu.qm create mode 100644 dist/qt-translations/qt_it.qm create mode 100644 dist/qt-translations/qt_ja.qm create mode 100644 dist/qt-translations/qt_ko.qm create mode 100644 dist/qt-translations/qt_lt.qm create mode 100644 dist/qt-translations/qt_nl.qm create mode 100644 dist/qt-translations/qt_pl.qm create mode 100644 dist/qt-translations/qt_pt.qm create mode 100644 dist/qt-translations/qt_pt_BR.qm create mode 100644 dist/qt-translations/qt_ru.qm create mode 100644 dist/qt-translations/qt_sk.qm create mode 100644 dist/qt-translations/qt_sv.qm create mode 100644 dist/qt-translations/qt_tr.qm create mode 100644 dist/qt-translations/qt_uk.qm create mode 100644 dist/qt-translations/qt_zh_CN.qm create mode 100644 dist/qt-translations/qt_zh_TW.qm diff --git a/dist/qt-translations/qt_ar.qm b/dist/qt-translations/qt_ar.qm new file mode 100644 index 0000000000000000000000000000000000000000..e524d5b774759b0626016efa721d291d348d9174 GIT binary patch literal 33910 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_ca.qm b/dist/qt-translations/qt_ca.qm new file mode 100644 index 0000000000000000000000000000000000000000..0973603100dad6ebab10ab0b699d75e16c061ad2 GIT binary patch literal 143531 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 z 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 K$Nt~+f&ULkR?tiU literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_cs.qm b/dist/qt-translations/qt_cs.qm new file mode 100644 index 0000000000000000000000000000000000000000..51ac5694fe07768ebbd961fa012135ec13682043 GIT binary patch literal 319892 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

T=7aYW9wOxXLZ8X>13@3)xi9pYOb60u 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 RDH_V-dHx;0dGA-h`hSRE$Y1~f literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_de.qm b/dist/qt-translations/qt_de.qm new file mode 100644 index 0000000000000000000000000000000000000000..113bbcc3989b697d4811c0fdb671db9175e244d7 GIT binary patch literal 325046 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�)JFj2Yuj5OR> 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

NG;WcZ)Tnq0Rl0q5 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_es.qm b/dist/qt-translations/qt_es.qm new file mode 100644 index 0000000000000000000000000000000000000000..519116090e53a139e055f3cbd56dcf8cdde31b51 GIT binary patch literal 82411 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_eu.qm b/dist/qt-translations/qt_eu.qm new file mode 100644 index 0000000000000000000000000000000000000000..44beb43380a9c0fad2acac358456ed166be17005 GIT binary patch literal 96890 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 B-WmV^ literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_fi.qm b/dist/qt-translations/qt_fi.qm new file mode 100644 index 0000000000000000000000000000000000000000..dc70e8a07eedad6f8ba29134bba53d6eeafcdb11 GIT binary patch literal 46871 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

^^l+UaV&`?{{nnqCDz6Cmb;m3wAUFmi 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_gl.qm b/dist/qt-translations/qt_gl.qm new file mode 100644 index 0000000000000000000000000000000000000000..36d81a093bce6486be0738ba95971a7af1f32ec7 GIT binary patch literal 323547 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�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

XR-IjrdL-PFx7+&sL^cewGE>S@^g@aI3Wny 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⋙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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_hu.qm b/dist/qt-translations/qt_hu.qm new file mode 100644 index 0000000000000000000000000000000000000000..fe78c348d0b91c5c610d4fdbd5f2113ed6e221f2 GIT binary patch literal 272162 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 I%4+%l1A5tkp8x;= literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_it.qm b/dist/qt-translations/qt_it.qm new file mode 100644 index 0000000000000000000000000000000000000000..1e69f88fdd717c0124179cfd4581714efe1d709f GIT binary patch literal 134801 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 H^{f96);pdH literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_ja.qm b/dist/qt-translations/qt_ja.qm new file mode 100644 index 0000000000000000000000000000000000000000..c37cb08b24d1d22f07142cf141225146e1ac23f0 GIT binary patch literal 247853 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%0A-F#816IC^I!w-|<<`c(ferdw{Fm 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_nl.qm b/dist/qt-translations/qt_nl.qm new file mode 100644 index 0000000000000000000000000000000000000000..ce9f56f47ceb665095cfcf2df671c317cd81068a GIT binary patch literal 144243 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�~7U*8|=89n}e;CZH}Xcor* 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_pt_BR.qm b/dist/qt-translations/qt_pt_BR.qm new file mode 100644 index 0000000000000000000000000000000000000000..4bafaad2e0264b6ce5c6c65641d8d31323de1322 GIT binary patch literal 143803 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 literal 0 HcmV?d00001 diff --git a/dist/qt-translations/qt_ru.qm b/dist/qt-translations/qt_ru.qm new file mode 100644 index 0000000000000000000000000000000000000000..1df39b1b743f57085dbda31fd31b9815325c3970 GIT binary patch literal 288364 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
akRJErB;Fi|6%cO2B1|9K2vq899)8 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
nw?{r{AV2XrJRh*{tEOZVVe)I5%3+b
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≪PJ2XdE$Su
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�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

literal 0
HcmV?d00001

diff --git a/dist/qt-translations/qt_tr.qm b/dist/qt-translations/qt_tr.qm
new file mode 100644
index 0000000000000000000000000000000000000000..b0d14e9ff669541cc420372e28ef04b78d2b795e
GIT binary patch
literal 70920
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

literal 0
HcmV?d00001

diff --git a/dist/qt-translations/qt_zh_CN.qm b/dist/qt-translations/qt_zh_CN.qm
new file mode 100644
index 0000000000000000000000000000000000000000..623b8e33ad5feb174c79fe3f5f1e2bdfd6c003ff
GIT binary patch
literal 117337
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
PN32rcQGnZCIPU)d`|s4O

literal 0
HcmV?d00001

diff --git a/dist/qt-translations/qt_zh_TW.qm b/dist/qt-translations/qt_zh_TW.qm
new file mode 100644
index 0000000000000000000000000000000000000000..a9a25b2048a132c19fba9b5a275db64c18dca756
GIT binary patch
literal 117253
zcmcG%2Yi&p^FO}N^_~DBbT~>v4*>*~9ui7`Tsol!F3BZ1lH7&MT|#Kmr1vf&*hNKb
z*bu>j9|ROd!GekfP;8)pps4VF@9y1m&$WPlfBz3JKSRRK?Ck99?Ck99JpEoSYJB*@
z)(!8qZoYr=1FwBKn2^rT5JEZ;q2X@8&V+ojg%HIcLLT`AFo}>y%K*{t(eD7033<#4
zm;(3(;1EJ~ECU=$$m1%&VSsZ1hXeizm`cbK4!{gTo@@e`2}tQ@5wdd~U^XF7nE-PD
zmjLDxvP%It8t{3*JVKsM02~AODBxH^o@oX+k&xS#5~A!&NK3S(u&bQII}13RyO_fl
zL0_4M_Rj&P6Y^~f4li^Ae4UW*&4j3C;onaZqOKsMmkjV}Lf(3xkPf{F*#rJNgT84d
zhrQq8u-|$>&@)*$?7fDN?&#}4cS43hemffzGIRs@T}{aF+aT9h0m1*sazM!FbI2`K
zNyxMP2pO@Lkdu(}hyz5B^*|f&P=6#Lqaf##Ujsr`pMypQV=a_{oHPIEg_a<^UlRz9gjlM?xln_wSE!c;Rs(bl*cr|8yeT
zkKael;qdmZM6u{zLZZLpFu4PVpL|Oc8{2`GbOr^|ohUYUA>=a?Q9N2p1mPK?c
z|3Mt&aGk@HHAI1-lh3~)ijP+ivi&X&_b=k`joUdqFrFxWPJ~`0aCpbt9L_G{aBf=;
zzZk=y&}c4ET){kVsmI|Lvx(9Sx%chD;fOgz*%{;d`YEF9@(>~Y25|VxH$>SF`a1h6
zhu^#h_y8f_Tq4S$ccY!1!}BVl91i+1H5~TM;&8-S4!3?xl%p~JH;xl!@jgNt-pyg+
zUJmbE!Qs$M4(Ghj;XA1u{-Gqwk`sjN-$Rt;uM=|mIig$!{rzJXhkte=%FS;R(kGWF
zA5ap~=p=`Ir*Sy4K2bipo{+|JqI?p1bM_|&g$Cn^a#t;M><*%QnFw7R$y)
zNRx9M_T9$e$bm$8fcATW!#^{L_DSGB-jzhp#@hJxH&QR3!j+`{nu~;ZRHWgyOd{O5
zfi&uQo(LNUkmmOsB;>Udqyt^6!#)E*4e0bB=sl2t{x8G
znMy`$uakytYgF@qzWJF;BA+NV4BQqPK
zze!}|YRD(0l#CkpCf2K(jG7PnMlVd_i5nu
z>O^u+VL!+iOGbBxU4HQa4&Qu{jE3nZ4R?{z3(?;LP08q`kHGGJN=7fo_)h1N(W`$0
z-U66o*oi;7lDyS9!0*N3YY%gH`U^6q-fSW)xtEMN1lxS)9tH*D-DJ#>d$3O1lQER<
zGwaFN1K>B~1v2*gM+mv=7c%z3ajegBGWH7glwkwOxDxbx_8u~>4En67Amir$jlJO^
zGQKayQ?!^&P(f~QFC-Ht-bTnmBZoiLBNOJoK*)V^GU3{O$m1Jgb+;r!+(uGT2>pHa
zNm4%S6(VdsMrJA?w~tSTK+*s9pv6{K}xvu$J8Y1LmpS!(>@;JwnFV$;#VC
z5%TbHva;7M_zy8;<>>^h?=xg|?_}s-E!mu!1bKf;9vS~U#(j=F_R}&V)VoS{Yz2PP
zLFAd#-LRi!WDm6)yH1irFF3HLe$Aon6%Oq#4ySG9aLpMG*L&fS3jXtZE^?$9
z;|Fr_sFjd|uaT=q{={C|MUYPgeEK~>{|4s2{{2GKg9C_=-&1HX{4gP1-WFQ)J41xl
zQ9{c~w0puVwEUzO`t2;V&HMrWz+fRRH;0f#GlULruY^7OR_JsF^Rsb~(6!J_$fX-X
zkJr)ei48)p>L%c)fzYoTCS7!dinc=J)GF7}Zg*W(_1H=>x%bWg8*;
zeh`W?zJY#63FV6x5%PY0!I=fvxvSuO(?x`+u0rJ_79tFqDb&0Oy_ma8nDz?#KdKRC
z&cJ-_cutu6W+5RTH52Y0_8ZpYy~2i{F^-p;3lF>xKklz`VMmW>LgqAPP-t>Pc>Jyy
zLarYXo}JO22;_?J!tMmvgSUkjv!HKrKL{@+*$KJvqVUpZ8baPVCG5{=NrZy#!dr$S
zBD9DX4n(8hor8sg?h`~PnJ@hOX$%pjtQ5{ahjmqWMz~PhmIxC*6fW+8ohjcYT=KXG
znKDeKefbO_YrmIivDXXL*JS#!peH*l(_i_Pkkt>!+LZ6Y{CzI#*t{iN<2PhoUw;_-
z{fn$ye+&Gp9kTA9wj*T030be`*@TRalJzqmAf%$9Y~ZFIgsgmAHtY<-)3
zL}>S?Y?A`}OarUzp1BmZ=P>0J*+Z(9MCd$F_V8V3S9MtS$Zgw*F#H$UBhPgtq->(>
z3A!)z9>?LVUJMG2zLM?Eho3WMw`})(*q68dmc0l&NLudX&~=)_E1P65WkIhV{73c@
zwS$l3$oBMa0loQ2w&yB-|JG#L-r3OW_}Q|3^L7*R`(v_wTmQm3d{wr;)jmRw6*DN9
z2FUggIg6h+GborGve#+*V}}_OOxt7!W?&ut@weD@y?5pvR(_@Qe-;M(Q`h3}$hXq0|9F+Y$&q2sbYT3m<))2wDTXtz4=DTNi
z4yV7z;rhlLZtl4GG|0ho#r&>vb^nFurG9zkNdqC@*FLnP#A-L
zC(9>)4L@Y2M_#biM1-Ng$_qb+J^7}Wy!bTED;@UBOX6?CSxPORqJfyk8LVlSnpZnVH*zdlU
zFaBCi$o(nu6(7xp{?3rEejfd1JS$(fUQ5UZn|#wB$FS}ml|NJqJ<$%5KeQ2Y8TO9+
z@vlB4#N9{!^dYRz!!`zmR&(Xg%)@$VzD~aT>oeGgK9aw#0R8_>mA}y${>JUSd>M9PRkZx5DW3?fewH5_3BC;V7!j*GJ5m1A3HUV+{V4yfFXa8`TKS*p+la7yuKZfp^F+uV
zt{{IVK|W6@)Z4J%9N4XBuoiL~S*D1&9sQQ=RkY~ek_dD16!F6`Z^auG37VBeXmeiC
z?U4icIZZLJ{wX5#e^HS-EgOE_Z;CW>od_|l6j^5nU|oNw7@G#Y$<5$!{Cq|J8~ccm
zb*G|qZayJx?@-t;d_+imrJ|~;kdS$E6jcxGB0|?U6*bCJu>Thnb6$mzzK#Y2-dDo`
zf%nyPK;V6~6A*Y`odQJruVNJscv4{Z6ddLcQaqZXz&YZa;!)>Y@PAh-c6NCLdh#WQ
zRogi{xt7E8PjYzmF~!a&A(vQcp_%{KVa;}!4rYDY-yIK{EzESx9r=Wu8%#ff2<@1>tBK0SwdS$4bPo5onjMYk!w
znS`HbCo9fbUdMV%RQ#}^31Skpik~*)oMmaC_OVO{
zhbnitucDRFtsvLuYn2VwZX?3_smj~R*rb`JQ0$*C`Zzm&F^Mq+Ia;bpSqP<`!7QO
zwo4kMoF8Ifwc`
z&lW3}_k#W#$0?W7^XAa+l*{*Gd}oT3tNP4Eyr#Z#%~9|>`hDd(4dywclXCO0IGh)+
zDK~F*z`u)C-t#H!;@Zy2EeGLOHaV)ickyQU_sx}CJ3kDVqI{_L0r;VJDj$8;jq~Sl
zdgx<=Im(@VK|k{Y<*sS4FIfuZ(=NzyS7+rjcTT|XQ@g2s_?T%`OFiqLC#UiXWz&8Hjh-ka0+~N-Ku3XTIoWqBPs=gh0W#(H
z#Ty7&TBSTUHGv4LPAV@|n20dzsPgYK=wETC@_K9VbN^E+!y){>%|=!9wRVKeIHPJX
zy8yAcpE(@yl&X;v_O9VcRm-&c@S|3$TK|OePpL}P@fiBc`a;$DV-Ni6E2_>HdJ^((
zx~j_^M~SfMaaFg=cjFxQ5r=R7s_H)Xcbp%)t8QyPn~*gzs^0JGG0#7%1{!-1p2qE1OIoWkjy;BT)dN`?ZCcaQ{}vX@zlnua%Gp{k3GuaqCTqJQ#n{C^Ht-Hz&?Mr2Jl0`*8nlT
z&wc>JIy%`Va124P0@p~{s*Y;`Q;SmIYxDFHP-Qg%c^_lyKydik;B(|sqTL=0e+x?!*h?R
z9@vF>8?ajSNX9vw7w%O(YKNR(Ijnlxnu7S=U#b^U7NFl0)eB>HBmR`Cdg)8h>oADJ
z@qci*AYJwHGvK2~v}(`ytKokfRK3;}@>hO
zb^YnVL@;kqUH_&O{Vq@oHM?L>O4W*uSl^W~YGaSL>ZZlwDJ=dD@l<^yrQTxd|6
z@5cO>yrynH+C+qz)#}bqJd7CeXX-A?Q(!k=R(HE`o(Q+Sq3-c>Q|wa>)wlJ)ycD)k
z_g)MA8{0&E`%7rIrlq=1<0Uvp6sZUHJq7*kp-#@72s06{PHFKe_$pSXer+K_-&yJr
ziCC`>9#W5Nb^`m^>*|qDW8B71)wwg9L4R*kkG>uB(>JLn?2IO4?;C2X>us#Z4Qh9b
zC1}4^UGsTMoL@gu&+L#-1e01lb1u$Vx=ZSrto>i=SvBKe557^)+R_es`4oreEDQ>U
zS?cBQZ-QLAs8^3$3phr-bu{>z^u2n!YCZh6*VNmeO(DdZufBiO0LW{f`hnQ`*uU)R
z$4;Z&g0Iw1d@&XFe2RMa$bN`pv{t`R+!^Obh5F5x=0lI~=J3*9^;@rP!+!OT`fXVZ
zA%`l||NG>5tee}_NB`2oAB<6-=!V}<9IpO)JI2$kiTdYrX6
zg8gB?`oi#)L@51I{X6wfr!7+AIJKv
z_)4R-%_c%-iYCeqI~Db`ra=?z1H0v#M%Q466>3ehJL3?4DbqANb_VciP4gQy(2KV;
zEebH+Zhvdq-t`>fNv1WsS{j2{X&4xnQo5^i7Puz#~*nJ&`
z9~(6vAA^9O4F{uA@o
zU^|CHI%)n%s>1!yOIpPl@Z0m6Ryhmup4mgInQFrw)OxM<;qROSFxmFpn$uYMUn&;$C6{hr_05o1eUlb7GdZ=N9m{^i6HQk=G%I
zx3vBH48c9qAZ_wv&*EIH){blqKVtCv+U&Qk;~cj{n^S^$OZ-$jS_i&8=d}fd%4M^*
zU^VvLKc{I6_D#n6?8cyAx}hz}y+}y)IIaB*_Kmpn+Hx!Uo%5Tvy!bclKTfUZo1>s(
z*G`+-68k_)?M&xBBII1r&YKCki>GLpzBB^+(gN*r_ebEr9f!lBwJWvYBmTH{&;d9n&DL&z1a@+uUi;wl2e1##=5WCp?V}48KwdH0
z$LRXI`vdKc!RUA6=i0|VT!Q#OlJ=XtjI4vA`}9?V%%YL4K9m!(%%m9+;>7VkGt#bDZ`|0zJC6UHi*&%-foL
z?fLTAL>O34`&(Rl$nA6O6$ADW;|}fBSD}Yr57z$G?L6#SH=WRbCH$MUI>ouE@FSb+
zRDYx0ebqYktlhBhaXPINaKH$ic_-T4nXBvg0_^^alXRWBoy9uS=n@8?znV$9USERV
zh$t1IjP{`UW(D|~4P{Ff?S(FgCrUtOfLZH506qvvqQGM#P549IbZ
zu6Sj4#3RP(ivNb6_4*sSl3uykw=#7l=fQ8QPP($~T@aW3S?5Xt-z~c8-2HNJH`{nWXw@^}0!hnJV=Y9?FYhkv7+w&eig_7CZ5dqGYweW#m!X+8Yat-8B^fWF1e(=9rB
zC*p?nbZgt8eg96n&8b^)?=_0UF6%k$-A1?NP+zqBM7MQk4E&XC9KN5a+g=R)8MI!v
zV+8c(?3=nL?rI0SrsD9U@w%OHm56^X(CzGUH}1)rayaOqZr7HTM7VdX?&z5tlfpJF*^f&(7C_fxL>N`Fh#3ZBw>FTYtt(?L0%6m&}%oNzdQ2v+N=0^
z=0Ux_c|+LANA!jY%u|yG^liJkaqqE3pSaM1an05DYH<|j)gSdq_x_3d%P#ulOPJrR
zclAS#1HVy@KJ_c?mzs(CQEMK-`Z}Q>b)_Z7calLNHea7sI05$iC4JV3^YAm~>a#zH
z!aSzyM}LBT%bM!*)}2M%>2LkSZz2C4JM_g(J7Szw91dQtFYb@rhdm$Y?M}#}wM$>|
z7wlM@Q~H{NurIN{>8E{zeXaZL`q~Fvh~ur%&%caz*$?X%%!@(X{#pI9?@UB+d-ThP
zqd(Ir4wFjtE53j~+bKoA+UUT#BKkG$t`m}+pb2#`gPaWVxPKQzsX=nd|$4A
z@RMesH(CD>#cQ>m!>WTEUj0zN^Y1vEgJ07>{Tb|H{f9VAxkJCZ=}N@&2kG~_F;5#m
z)4y4E9Os{p^>2N&2y}kYzmtaf*q@<)=U@ZGk!AYBmI2u3cj({U13Q~97I(^37oT*x#3
z2mOyfVEwBa>wi7c5BuKV`b*nSW8FQ#;pM^l-xH6(zaOZ-vi<=4$r%ROV?Q8Xf6Abo
z4*yQS(xBEYKs@;a4)gT}&GJUAh5_%R-PoNR
zj%(+IpK)mI%3*m^4qbCNT$aY+L(dupx@RIT{H!5mP7dNxnTFJ#Fs`l#3>kyapH5}S
z8od(thr1XQ8rBEg1^pUq$WGV}J7+Ou4}+esOfh7?j`j6sjbZFr_~(ruGK~HHckGX&
z4dXZ5i~F2U426^T;oc?APzt+C(ozglZg;|-bT(8z@D|21!%#iN+aCk{>RpD%
zm#D$F*08fL^ksTI!%oUik4YRB%Q&np;c)FX4mYmi@V&i;r=oFg5H1^@S$G`r>ehxA
zjWYN1!V4X-{6eXqRFu+Nr&c+p_Pp;D?BjSNTYqu+6(4Ij=s
z5C5RI;p?W*Z^iS5@8U4;T8-h{FCN&DmkdAcgkH~i!tmQur=TZC43}nJhMpE0F0aMU
z6_X6t{=~X(zTEK77&j5_T4cEKw*&XdF-Ec<_UOiZqpY4A_VX8`TxLbQWs*_e!i0M}
znNiuN0Oz_pjLKY`UuvE=D!-nC`@l-0Iz0jL+=q<1!`MH%wl}ua;a(~KS!3IF;B&*9
z#$
z>xesDFcuB|7U!M`#^Q4}#F5`%P*8qvEP1L4&Pf)deP}Y`qR$!apB_MbV={+dsEt!T
zftXzU7Ki8f&w?S{ICK0i#Lp)f=j_7#Ys
z{~gR*?&lnif6KV=5!i|APUFfEkHb$_7&pC@kNdEZ#s`rrLZ;3%K5;pVkiRb*pWT*$
z{W8n=qVhS&=^5j`X%^gbJY+ohVJ`fXmBvHQKprn&Fur$TDB>eyji3Jsxp#cs_{A8U
zmm3Z@o}u=#tI_yl$|~#+&5b|pg`N$4+W7Mc_E201XtEtsV{M`FpQ>R5w
z!v8ffD8#NYbvrl&KVRc;;RI9vA7L*Xn@p+iPJ;d}HI01fcbt!lP3h_Dv924N#$)=T=OtjD+-WMI_gX*vV{+6EBSM#A
zQ}v;{;UDcV)oR+|ytmCXXZ9=bUrw6ln;?hb1*Vm!jzT}inbtjV8}5ZXrbpvlY~Pkw~oU%$y;9b)fF06;DtEMkEUMJ+a6{d^yzVfMFrmLs&i7;cg
z>6#1rDtjVI{|oe`-b@aY?}@56Y#;1vhp3qH6wHG>sul2s_HRVBX{*6Gp-)u1lhB(c
z)~L8W;Iq%49F9;%b*+XSzcw@~(cTgFdCI87wXXx-7uEf~LinB6qI%Tiz~BEUs-Fpd
zdG3a&ejOl(Nll|t9)x{wyCrJ)wLd|(dDMua7|5$EYUBeKac-F$HS%m*+{5>Z8r3cV
z=gu#p@~(ov!q1}$dtsc%Zf8(1J{eWgvmyNCrBQZzzLg)1swmxt_+Ls?<#o*0wwY12
z^Rd3$b&i@b8+PpLny9;aw?jU}(@}Sg?L~+_J!)<|`djfOhg;`HEt`S)C>tELVe${i
zJKGVpb-x4l#2WR$cdiK@3H}##;EPd2C{BqwuO%VV
zayVSGjl&~tIef2U)b;g6IEOTfx{(Y0_~%DE5w`V}gMo6=kCYNOsleX`Y`SC{Ui6f0
zz~V3Oau75ArGN||amdo_N4l}UnXYIl^F-A=Q+)MmDNitJ8v
zWx2Jsz*<;lF0xhI3vK3p1q0%`_v=;$`Y6?
zhFZ(ZsrZ<*AVVst9#m3wjyHPrsY#D#C3<?
zEh%|YQbxw8)a0a`)O5?Fv>}#UhN{{4?A`ANAgYJki)^=smsxH3SmaU9@Y11huBy8G
z)MccPowc;<_$_TNh}fnKQLCyF5)y7gU{*%Sq@eMtGd=d34_8rQ%%V9MEP9g08tzYqgCT!vZT7(y(l|%LZw|n3a1-{0
zE6OYx|H_S~FlULPZca`zyKGZEc9*TlT<9#a6`Ji;<_bI3pra&#X^O*!e}am5Re)(p
zv9r9~SwlAghSQ;{BW*#qQ2a9p6gnMlo5S759Ea>@ghs;5dz!7tZcQ(kVk_kP;k>D>
z%TH`rHueZ*mCc@R>5(Z9mYkiuqj~{b6u~-Rrh~j;u*6T>Gk(kD9p2@mgFe{dH-zd;
zsIC-XfmLCFnW>N@OQj~+>Y#fbbRMeg^9&NqI$d(94VzT0)8jIWI_#4SvqH=psIZpV
zuo7H0+S06J6I^aD5S2w#6t>#@YwK2JRiDa=PWZUBTaKqMbgY)}-ZI(gDKBD+8?%WS
zHCIqco2$SxT#|p)#rQ4hX?1r|?u7CEk6pCkGoCw%nlA3S(f^-#F|Pyl_AFf`qw3=y
zm9r97h5KyWQ%EpVN5<4iYFkVHqm=?3A>R*m{!?N5-VMg3MsQdpWQj0N1Q+}d)
z0iChDW!90B@x`P%s;%YrBJVVr-L;js&iP;}uCgM>v8)rLOVbxF-EVVmy0qr~L|F-$
z_}%KI=rHXrN97(YqC^sR!%#x9FVWw!-%v+8PQplDF6=*B!&P7hI{?q#%BgbGb-7v17`RQ
zlwW3R2|^t>Ic$j$KUQy1-q0sr3vCce}7Eq6UGQmG%;y^A@nhj&F3+Z}u_QfKz0
z&PF-wzp=$wY?`)*85$}P^Ms})ofhW0RU(zfNfib55|7hEN5g29V$<{PYXP(rS)Dc(
ziFm3MTe;0`qr=x{_Dr$5t?*LIZLC*W#xSv+5?*yx_-2a24>N6ILshDy3f^*ff;Fwg
zc8VOACj!0V%eH64cBhHQ`VObr*@fJ7irN6?bDeV__5qO4sCuL4wO^jfDM?ug9>lSTsBGUJO!K5hON3b#GHHd
zMk{voWNpRC>)vmwdq9$RFBCV$8hceKwJk+#dC)c0Cay=Df&IFnarnVTQ!ke)A^Plq
zhrfRHFj7a9DpHlXL#K}6v15X;69OniNhu^mqM?{jKDoU(E?tt_?Xnkm+>yklSap2#
zDY3bNI=bO`Q)GW!u~=-Vg7X2p6uzlxiF)xr1+le%Wu2g+5Rn=rJ1c9=PM0~&2}j<_
zq!FHiA^+O+BerLjAGF;wc7TXqFBy9#Hgb!t#yr$n4#OWFTVXp}BC#>BXAx9W=hqRj
z6D?oGnC$SxHA|~zB~E#8$wm=FpJH<(%wisGx7CElQBA9%
z&_^1hCacln(ttVFju(?OOa!o?hiXDERbJ>
zk%X)d-OUz;$%g{#giTXa1fw4@qTU-MxPDB71T(^dF-)3c(OJlZqJYVYPItf^_9}R-
z*;5&QkP5o7iF_&|?`JBu1DeIAO4`&Mo~U7S^pe-8^3kKFh|v(yt7lOo8?wDid8X+;MuBtsvd4fV6J!xp-+C){ND)~8`S8t$C3o(XTbM0oYH
zX+ST&)LvACsV}BmZFsH~W7|)N5;<06+owlZVhZZGNE*Uh2~V+p`h9fI5&aygUuevx
zp{9abbA05D2>5i_i}+G6(T^Y5766})NyL}>W`6w01J$@{%a+b~eVgACP-j=#3gPmG
zA8&M4BAvhL1vBCoPFme|R)#2~nC#jL1m0PU{3de=B6JakArd7a5_#u|$x8IG9fn4I
z35`0(qM%!l$iE^7TTb{vWBEy!QyyJOb*w+#_@6RuLCZ*caIkSxI-a#&_s@P+;C_!
zdyYa3rhI4>J3pCxF_j=f_56fr{3JXwHEW|OW)cleDCejY5mjoVlZl^A;2c3a%5~KPQ#ASUy
z5oXxKk5f1I$E7mFqVY%65<@bs37r)%ecqcIY#?b?yCV-il(U9S6RclWBN0J83PB0~
zJ{{CHnnri#C?{UDbS*0=dM|x~h}Qxev5Q9?(P3pJ;-dlU%NWNHq(^@xj{Zf=X$fgR>GACC
ztiALIuf!2Pe0zmMDTyyBlgn*ZHrF9^v!+<|j4u3tQ7npNPdwXcgPUvU4IcF%#HKp0
z=YX?uIKe3B{gT)ieBcV!*Us)Pw+*(sn69(y+9eyOZxY+qV{NOLrs5I-iy|CeY_>9|
z^OCt#K(VSuE*+#kT0JhnFFT+vO||X2>oI
zUMipZ6V#Lq+kmm{vl25)J!P8;#BQ6X;U+;UD08s~v5qQi20Z#iXHiN_RYJzL&yE!d
zXwt0H?9>#6lQ0@jhze+IcSLNgD_Ba|to>`lGLd>K8f^$*kKU>K1Y;G~la#~Q32M$G
zAN1%`+1mqr#`p}68!>!LBxk(HJBMO=fWzsk;LcO<;2CK;q6nm0`AB<*33KU9IfzVC
zlT**4pIk8MadFUwEE}vX;#tsJ76A-qgQDmHP;frrDEurIjG&nL*Q}``eN}cXEK5bW
z3DXr{9@{i%w^65o7w<-ctu4ptEEiYa4NXa>nzJ{wB5iF4kE6^1zFCyanAtPeRn9jN
zCts}b**S=gdP939o#<6^V8p2)HsExTnuA4F>D^n*laaFF&lvGt1sB4y(yKyj@YwC?
z-`D{{y5W1nFku*K9?B38U)0)6kByKc2KHz#mM!g>Fl1
zZq_RsGo92hgACJGR-?>o0YmJ43w@O%azaP=pGHT0pnp9&WHa4#bmmY=QqPd~6{Jmr
zZeffr+rL+$cA*^joX7vn1@?e{smk?3xeym-o6wQt-i+Nr^Mnc>$`7ME2I_OMZC>in
zsN?-nWKCwzJo|L3i|1Gv#xF03X6=Vc+yZqxB76wRQw0rbPrWbJUK$Wk#{1l`z}C?g
zJ&i!H_B3eOQXHW=-U7GE%!2!YIHnuTX{4Ot43_fL&m8Xyng?QNa4tT%_{o9~Me6X@
z9S(#!=q)5NrQrXvKu=U=QUNkFtcC7uC(=x~N5`;N4=5fiV#i3Z-F95=nz4^jQG~_!
z-iKNGPVtA&OvC9#sCexa5!XPEFw~)+_1p@7c2@(hlWz7nV5AC5=?!5-63vkv1?6?TX*fqj&8q5>CbH{!zdk%QYq
zMPG-+V*|-ih6Ci^)JqUYQ}21^=Ccs(^H-VPNTV|P_&~=s+OGtacE@1nH0G8@=k6-A
z(VaR3UlX70wpDu1V|62QMVE%8bPPA%=Np7aSL9C0Iw6WvlLWo37H?AM@yeT7=4BL(
zY3^6`0!v@&*@%d3eTduz!!}&vvR1T5{tmoQiR){~45ryT@9N@Fi1T?jdYUnWzh_c?
zq9^GahV-G?KNif+N|gMzr{toy%aCcdLXVrJztTKSUk*`~ITJ~SJ-YDAU-m;!?@ezo
z3ypbqng2|R%74;gto~#CE7c1E?oe8!I^fyk=GacNY(aRGy})I4)tV)DE5TG%WE9CE
zS)zy(h0rL$)z2
zxQ?R-9b*tRMb`Dz(?mQayO-z9*k66?LP2w>#b&A;XGsY+M%v7Pb{e|x1dvqcItpoe
zR2ZVMwr9p{%SxodlFjM!TufR?5>wwWKBGEMQ`&g()q%(|a3KP=$lNgY3o9>~1cPQeTtW+@pC!U2*?
zJQfg$fDyg=i1zt
z^*Jg4KPoA{yt344#=ZnYABmFT?)Mljf*2BhRfEgpJ-&O!V8NK?xt8u{NVuqxASs7?
z;v?Z`=$fFjFRG})y8;+>zP5uqiWI7VN;@kGoIceLpN|vND8jW_P%BxuOq`%LF*MYR
zD0VRxw-ejBd2DxEo;a+ixbA(-#co_^7UKq-Z?4hc*JTT~dC{ECI!{Kw;%?KYS1%B0
zL{l1NHl)H;nQax7Jfk{15uQQSl)5LLHl9|Lm`Em;lJPj0wPzs~WH*8;m34Sx%*!eK
z!1AzVnIxUOd9Fx;Mr@Fd4$sU{1?SA0y{*ek8Qdeq1v}=A98qpow=H}`P0)OjD;w6tI73q99~RX_RSW
zCcRF~!9hTb0xL*{v|UEzc1YRx)3dTLPFQ-C(sq@R+UejWrC{r~l5&x%GL!Cxlu`aS
zrXh{tV$;OuBKBTjI1n88dpYqZ4jOpA<#3j^7=%q7^h#jbfa8QuLr)fXcOZ7D$2A|q
z*J;RPWU*#R#|nC$6dNj1oDOz$Q8OmJS$(?IO^Ul&Uf;I&hCg@6kXLGT!&l8gzW6}O
zP5{Quy|HL-2mGCn&x9LjP?~Ki(yd(;FGi=sqt%r{7#^eUG{OitH%agdk5y-~UU(D*
zy($vtM2V+P{B}J;>j>975n4yOY&B#Sw~ElBXkq~S}H>0N&k5KOHq|t
zf{1e+wCmHu?dVf8a=fXn(vyYG5|4L_PT%vY2>pdSUPNdbJ`X5D<2CO|o@*(wx!9PU
z58qlx-~7>=K8Z6C?Tdv=@BG4}E7rWXv{;--bmn$>oeq8+2weJ#fGJe?vS!1RX184d
z2pXPU!|%GnBZ;%(O`nyXVD!kIrLz+6y)6q*0UiL7ucaxJM!MA?YqJQ?$+(lJg<*5y
z7v9u##q@;D`JxaMBjGAgRSs?yKD8~lRlrS)n4J^cDty*PaH|LlTc4SNU{jvG2!U_5
zGbtvHlBBO=gWxB`&~}>-RQO*4Du*Iji>X#+v~GiL%w$1_H1vgMUu;~lnJe-irI(0hMN4&)oov&QhM^kAv!p5ZmI4nC
zDW2I{g2)WzAPha-#v+72KuK~EGNsrGJSAptx9kiT4s-PGHSf{Ti3HOy6i*Gxd8i~3
zo{B%W6Xm1vJ$;M7VJvlr>Fo=5+=$t7cGVr3*F^kg-e*(ZR2AfO7vs(cCL6Z|l%z6q
zC{8k5c$5^+E2O6vFDbu;Z0se4h@b-wAR}aV+$tSEOR-Wq5xFr`pP$lX%KC{H$B)VL
zCpt7r!L6O$!4oW4ii&L-E?AhdNrqyg7bn?+#*8Q)9B_b(9g1@seFFxoz%oe81$ZsR
zq9YRQE^PSTkTSjS@jtPkKhb4f+$|@*tZ>>MN&Iaj5?Wv-SPFBkKkS^K%Rn{&9`N7<
zWiRHbAaJ2+JMm5k&FSrR4c=##;H2eX;W<5<8A*_(gOn|LN8)FTCMAbqDJjg`kI39G
zao!3e&AEE;sUf<_JC@AN{@8MQ{CxV_K-9dhP!Zp=FFr{L*u&ZDyBezl2Tdm;l(@gg
zyMDWyd7B|4Hn3nDO)8dpj<`oDb$SyULQ!t|SS19dJ`IHN+l7K??aFc
zY{5_#rT&2bDM|>!t-VAELA%*Qln?~|PRNWGm{_itW?gz*0FABKdGXe=G7&o&0=XKVWY#sBujtCHT)
zQDKB1ScDfOAq=pCJyk|-K*VJsN!s)F<+~ZK4ZrOF&Et>|E^hvOBLqbeaK#<`DkG%%
zO&(>0v{y`fW7>968cG&gq8m|Y!+?u#@kvHVyIXyc5rU|r9Zq_j+!v@pl(ag)>=}rCvjt^&K
z5YEV3z)1_jNxKD{oFJT>I&kQVVmPPiX_?8hQbZAGFrtE5@4LV7gUZK4NYpW+UM{`u
zr*0g?LZ3=@CvC7h`f3~XL)dM=(j&A@X7%{_JQs0%US_gw+Jt%*vhCCjLqRNJXNXYX
z@ne&1r)Yw?#1V9&_zq1SVXjo0xbAJtg;oc12n$#ia1mxLgVlU
z^azbDf2HS&LXsyrSO~?KITXpNh&@+-ReExhSDEDDeL}%Lt=aNV4I@^H4o@Ch3P=C?bw#%Vq@iC*jaXV
z3fFYzCP`DpV7y2
zp&p4#Z)=e?LUYBIPfPtOtsGg3qDhgOZu&^VhiW8ZQ4!aQV*L3$y~u-nl$E_42q%bw
zLl!}7s2qi=zNJE6NJ<{f$)?F`qlk_*5DD0;XD>UQlkI$_rbBX|5>C@H7_rP^OoZMr2us
zLo`+#sU=nkg3DeTajL7opX^@=$}C!VEW!viGh1&tZs}@UBvP)QZLdID7me|nlTmyy
zvH~jBbzaz2#8YS69i}D{GY*e-}Ssf(?1Fdo49BBxuyyBTv
zt^p!#We)OPBat>B=gNl5Mp}oQ*8Gtvr8bk2*A8`OWN^9c9fXg8t`!qSbkUkS*?wP-T0}Y5$
zynvK$yvSpNmZWsEYk(p+t+c?LH{Cl>5|W|#0&xLE@u1d+=*trqhr}P$`q>IYD^aCQx$8`uVMvtBG77<
zf`>x1WCB%P7O>};XrWqbqN&1EV}o?h$g<)w6jlo=aHgVpRjDvo^?XGb}2(fE23
zbzH|V!gLbrdqxvsh|OuOky~4t(bY3DZDE&3^e87*cSJF(g0kmn?NFco2CoDZ_TfR?
z2>iBSL8Mz_n9-tP#|X3fublW7i@|JY!
z*80_E(y6EQK$!Ww#ito25i6+#K|F?vT3U3R>1la`0*=>6ZDa8+RKY89;To3(YpE)S
zBXVm@hr`s+9Q>s#mZgeH-6+X}IE};YeGA}Av1hhZnK|73A9f50+JD+IB>1;(=OswD
z{BB2r!>lm1;Wsn|?C;bDOP(~gme@`2%O7(G#IHn)+>uU}l;Hot5KGAD=%zLCVv(`z
zb#cl}G@ydD?Q(f4z3*Wp7>%i$G5VDC5U+w=Jh*x$5^bebqxf|_yA`8r9O_o-M72M<
zr||NYK|`rehQo`_L2jaX$=ve5>*of;b8<46(%=@`Yn+166GilFVy0UXuO$m3o{c}F
zh?%}9vc#8knssiOb9E2N>AVjmp6#<@e22!V4DVL)rk18?Wsedo0aGiE+}KJ)ySwD-|ig})SGS|lC}oAIfbmt=4`X^7R|*=<$zThG`i-#NF`({P8H1+u=JIj
z#hdsdmu$)kOYugR%F$WGLUj^`!jc<(YRSSWO*Z?_jLieciAq$8vK_wcP0@NZrDdmS
zhVzoSQ~|OQbAHUwr}rr_jxH6ox|s!KolyxKA!3^A3}r0jP89wcG~W7_({2?<50P67
zRF;@l8ziqtR_zuD-P#Oj=)wp{hm6WXy<@s2tTZi>@4ylnNBflDao_5u0SO&3RI6##
z&#F>d-`Ag(FTsxCgP+=ZbM&%e>I74%ijs_@1=VS!ojJiiG1BGZLBceu0)ZV~T0=te
z*7g($LUf^e{1(eXzMs)Ir(*w2eS4YsV!Mi#BJyRPNobg;U8-I{t9Wgw$$wO&5R>O}
z!ZJYtXnkih0_`Pk_Gnas`|q~0dTcA>4*-YIV-k->w=3y1X`5f03LmlcW_DX#Mbwar
zY;{OM>0D}Pkm_PXR*Ttd{Ji$F*yXICuhgfp1r?#k_<3sSD)sk0$2q$!jInOZGQy~7
z^VOh-U}%mi@BC)nb;ufBvRXRCjOWuARxh9~09DyA9d_d#BB`C<;{+HUzooyGu{QOO
zjvqxVMjDh0IJLFq>(#r~{bx7&fr|=Ox}2+O1aV4MFzq7X6xKL|wB*h1&FK|vVH+lvKdMt~Dp;wRwJWexITa!oIypG=!p(#s-iLINU^Fl0EyN
zHPHhevPiNzc!BbuXEcV)RJ?<;NgmSFr-?(*tx=cB}7LUO6Wg6
z?1@0=zdX^2Kxz#tTn9V^kyPxqqETFMQll+^SQ~#W
zs3IGRuOONTPX-ALfsacS;qU7=E340odL=1$#h>rc$2Z7x
z<26J=nerZzHWo@sP$5d>s~V3A*+pin%f-vLgrYMs(NY+c097iHk;Z-^NdDzC%rsmh
zQKn#dQ$i(Ymlgz6dki9k?Hae&cCqLqQ}1wusFVW;NhD1<5`|m`F*aqP?~43G3;V7p
zR80S;wJRAMrvpzSK!qf4rI<6}A6j@>b4C2uFY-c%C047$UO5{_(3sVyh+5tyfpAXCSy6okvU;hXw|zgBa%=-
zT&>7_6Dst87lw-DbsSH4j7-Kvzkp!TO}sd@_4Mf**7*fPeQOlW@wQ)U2PfLl=d&8Hb7w_TAT|-s%c6$4LPyPg&^i{&Djk?YK#|aR=kln
zLmP3DrElb^2`~4TSZJ7LEi|WRo5y&~c7+X3iM&Yysnn1sQ-^jMj|9b%JlqS?=W|X{
zgYSa`6N}-6{OCt<=oU~XEfttamAo93k4g1D9SrH##G8h67Y&qK=?aDU>8LaMNmBDn
zLoh5Cs%hcl65=y#*0bb-i9PzIHFJ3_1_%&QYFq+HODZFU9Zh@6es9TXMhahK$SmPiL?xtqiki{ROWI|ta+bq&N3l#?Vxk;8l9>=z
zjq8C)b3KA01Jw(#Yy`()XjD1tSS$#V2Cf3eQ!VX##I}Ntmf5K*s}hs+*={%k$vwye^{c@;dO*;?+b~eBj6XX{c#?mad@N
zvBfweK1Udm2;e>`79{dwY388%r^-=TnM|0wQbwPYR^0~gDp}L7WXmO+`
z`~TZ+XcOrx_+E+rcR~FrC%iW{I$9HxE?F9iLY9QLq=;9Q6U-grdL+d4Oo+R!qj`K>
zuZf}j<=i@diLx7bQ%JuqMW6J{Q?EIadCi4lyqx=rt9czPWCe2MB~i@0f61*^u`BG;
zuo2KFLI_LX2*_W5@Ij%pSptiF2CkbC|7IMUqf1)lU$Y-sPZt9#43j-$(k5>J)xU((
z{~h;3yrB++3hnq*5iL+aKmO3gTmoHb6W6m%sPw(3sw|b|NiIcEzgyG35s{%Eu<{uu
z`nW|rUxm@NTiay<<#w~Wp<0+ghyTI&P0NM`x4%i%(BS4bDHE=ff8vCZp?4azt`wrZ
zPII}{RT3~Yelp$)BEE<>ogz^xtPqJWEbYt9jmXLB$;;sM`1k7M5m64YQUKns9N$)iJw8c9$P?tPWteiG(!u
zlIVxr>SDMhS1h=$k~(p`N?bsVxQ>)AGoNg*)HC<89j;JZDED5)@vjAOzUxuS0jof|
zoc*HxKd&Y~sR-w7|1q$@MsMjuVr6M#vol9YVrBpNq#R6$eGVlcOc}mu|bLzJ8H1AotLBF
zU4)AVj=ZizE>bp7{=CTRd#4rI@%YoqLo?Jc!(r%(|Hk9*J;+3Hachw#)fH!t
z9_;L4%miMxr+|kV81hX^+l0fR9|~hxjcJmsMrAy$+f4->4u#h2U?|e^^%|6~XCjV-
zb(193a2<(a=q?e1iprpSBpF01SsW^&o*o8KRadd~
zFzpqqr{(SvCtQ(cb9j@ZL*^PR(K_agCFv7!ZJIsaU!pxs7hoxJN%t`A6?C>mmeh4m
zavinMX{ulZ)ljT<+}&U7LYZBPG=vCEqdjBuI&79rzrY4A{cM3D+igYY&|!|xak8&J
zgc%E~NEy%>-YVi`7_qxZ+N8{+Q^OXWg6=gU^J-r9l(8>uL}SomBk@aGk`}%%&?9Uj
zw)1|0KGU1^?XB_QD`XWxef40Cl@jr_Gtna!xkY8
zX=S3%O~ZA;o}J#L3mq-15EPBodK0;MD71cN8qB^uBpw<)w&|MpI3_JgDoIFb$ql%1Qa6uXvcF@Mw9SET{KSj1*5!4mK0Rkv
zj)DF=&HK*#T2!jrk`VWxuRE)_OAklhR~Lg8hv#>^SVok`DtcU|A8V(pu|cK+-{&M6{Qb{3$gh@d9{(JTuss9tzPDlL7da!gaesgPcGkN1CK
zOw2^{st>=OuEggq>Ye~v%{<`9iq9Uh&kp&IsS$ZIP~?!~bTc0T|DjaO=&X|$<|$H*
zyrl~35xHtS!MG_uSXz`zQK1{9i^pZ?ufyr+%7s=ZcN%)Q54cl{PRAV*YCyo#WCwd@
z8X~fFt9Nn{37BX?7)@~IANLSP(+tTe>;q9OznMi(z2EQPmwXWk@Mj6;314GnExlN)se@!7-YbN^`X=3j^W{akLjCXVD;8DShbU%`a+
zvH7Qqo(fz5;#|b}4@~%Kgd1|1nXa{CCK
z;Xvi9JS^#qt~XXsizY4I!op)}O0x)Qg*9;?l7px(a}Zx1;vQC=>@#xI$On*@fW_pc(68m^?GQNm`uZiLN9S;5p6Q(hBC6-0+Se=u$W)cqG0X;hWHI
zJZT#w&!j_>Q0OiiM7d=aO+Ddv2{a3ZYCOwmr32#k?>FhADa|OQW7w2m(j_l(`UU^J
zuBdZyzO-moCC{4;NLLw6o-5~fx_o+W(phtF77QDbKaDkLP%ZN4H$J_iqDoFj1&8R?
z$3!iae_n1h4Kw{MgQq`q<{Jmiyt`65@y+QIIp6d|97{_+^);nX8}?N&-vcNAU~bk8
z-b~%Jo95DPJmM>=TkWJNeZc1Hgg;~p$mFMyPe;np
zthVC=CZSoejaW*OoqtP&Z;|3dzW@Iy2k9_<4^ND!djDOE86@#Nr?U
z*1NvnRV}nS3Xvwja-Zr2aFJS3$-fTD_O{ThWB;BM_9jJ_nVy{bf4@fwCZqE^B%(kh
zF>${~K+SkCGTT|H+KZ@?oweLq;$$(aU@Y#@{-@6egb_hVX0jxZ&N7n&Q#Tni2*df3
zk{i?UQzy1ek)CEbn=!7SwybqPP^!ITVrc4ap|jjmfebtNl?5!l$9owf3P?ho4fWRV
zV}hAuA$7_OWh&sdKoU~--NkTb#L#*~b|}37S`sJCN2^XM?8v<05)RDlTV&$gOOiQ}
zXyU|o0Da#mz_bMm`$o=O9AHvvT
zB*vwqu+v}^kcToC_#;ZBc`B%b!9CPvT!2i4ZbuUD4}SQB;z>
zfnBwR9RM>f6z!J3p%T(FvznAd37NFK?$4-{<1}428`Q?#%7<7&xDW@Dl@>rja)#v>
z&bT$MwmUs6E)_zBEuDXDD?`XA?%B9m5GO)0+{vr=sWbTp)R==*-xtH2^<3T{=6(6|
zi=uqFMY&n2@Ugm6nFS!@kj!31O264yAD$-*lhA}DUJN?~udyW8R%bDW3GGNe!cJ2T
z{ikFE1;a4XhQ{CcA&-dw@t8`oepxWHfy)cfer&U!73{h(;{*DBibE
zV%ibsK6n%S4@Q%YL_$W9S)Qd51rVJ~YlYx3iVgK!I}}#1^b_b4K0A?Zb9*YKU*uR^
zD$PR}ic2>ts_>0fTRzQyRPv-mJ={hs2eNNUgvU_K`z^;`yikv?c$OmbzJr~AbUXsi
zl(HOu?!I;uePv&0tzEYIF7wvSHx|B8DT;5v^h
zJrE*6ya8m+TCsXVqOF0Ce0o=K*XIFp){%VlSyl;t=sI|}lB
zryqa+|NZ*{l#<#~nI?h1yHB4!efqo)%YGVcO%%me_KzIUR(DR10nzZ4D&;YGv8pTg
z4eTLjcMw;_qY%bj40jx8pWd!1XcMjN9oxgIiprfZr+k((jPlx
zs;7CImR=}TORmJ4ZWSug!5^tk
zjLY*eBn*^L~Ov(!jGj3>W4(j*sZV4_1EiL;G1e${vqJ^u6dcuk}Q4I<|
z+se;m^*vZ^H~z-e4J6UE*SEC<^?MHN#@d9S=+a>>;)=G`#?l0!=+a?&){3@W{-t-x(yiF_KE1R7Bfj*mpuY9MJ}gZDiY~p|Iqu!b
zOSfa!L~}j%++ufaz~Isi`0ai~wY4(bNN_@8Xd;*tFdSmo-nJW{wGb-=aAKk%*x%H;
z7yoQ&Y1+q}KL{Z5uoWIW=_7n_SG4U(2A7AlN5E|X*!wj=2J|?l_5}4UyY~|u096!I
zVI%JqZF~Jo69e^vCjy}^h5{qL^j<98yoXx{07aMH=N!_$a;I*WH43iQ{^##H+y#D+r>iu4~(mo7jp~v2@Wz4>+4W
z;9r!CrXES9<|?S=UZ%TU}f*3RXy7g7tSQ=ko&A|8y`bqmKkHANTSAemshrX
zcx4?7jEYzCH27ag6r|7i>D=26ZrRe@%p20OyQL_u+8uybw0qd)HUOa5rQok{jM5f8&-781bdStat6%
zMIr?NMVEG%b-RaIZv}*gS#v>!Z39MpX)@zIBsBt1bZLk2wtEyK+jM|PI?%L#_fqdfdx^uW+r7*hpUEM$
zfKEbYtw4`sip;uIm^FYZiYbR#w|kj&yWGTj?48V$)M0>#E?mM-keFSBkJsgOdGd70Gm@kPO`aqlk%SlPR1
z8JsM8N{-q$V&&mIN0T3kZR$&X!h0>rwPNcDQYz-b5$`35wYCyZvGtn#IXRdGua1!3hKj$	<^ilqiYg}HZ74Yk+RCEd${ciu
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 Date: Sat, 5 Dec 2015 21:22:01 +0200 Subject: [PATCH 009/238] Add clarifying comment. --- src/core/bittorrent/session.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/bittorrent/session.cpp b/src/core/bittorrent/session.cpp index df45acd0c..a4a6b13ef 100644 --- a/src/core/bittorrent/session.cpp +++ b/src/core/bittorrent/session.cpp @@ -1399,6 +1399,8 @@ void Session::networkOnlineStateChanged(const bool online) void Session::networkConfigurationChange(const QNetworkConfiguration& cfg) { const QString configuredInterfaceName = Preferences::instance()->getNetworkInterface(); + // Empty means "Any Interface". In this case libtorrent has binded to 0.0.0.0 so any change to any interface will + // be automatically picked up. Otherwise we would rebinding here to 0.0.0.0 again. if (configuredInterfaceName.isEmpty()) return; const QString changedInterface = cfg.name(); From 17ac4b90be4f188efd4b26e749d1be47c6c3af94 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 5 Dec 2015 21:49:46 +0200 Subject: [PATCH 010/238] Use simpler DEFINE for detecting Qt5 so moc will work too. --- src/app/application.cpp | 2 +- src/app/main.cpp | 2 +- src/core/http/requestparser.cpp | 6 ++--- src/core/http/server.cpp | 2 +- src/core/http/server.h | 2 +- src/core/net/dnsupdater.cpp | 4 +-- src/core/net/private/geoipdatabase.cpp | 6 ++--- src/core/preferences.cpp | 36 ++++++++++++------------- src/core/utils/fs.cpp | 6 ++--- src/gui/ico.cpp | 4 +-- src/gui/lineedit/src/lineedit.cpp | 6 ++--- src/gui/lineedit/src/lineedit.h | 4 +-- src/gui/options_imp.cpp | 2 +- src/gui/previewlistdelegate.h | 4 +-- src/gui/previewselect.cpp | 4 +-- src/gui/properties/peersadditiondlg.cpp | 2 +- src/gui/properties/propertieswidget.cpp | 2 +- src/gui/properties/proplistdelegate.cpp | 4 +-- src/gui/properties/trackerlist.cpp | 4 +-- src/gui/torrentcontenttreeview.cpp | 4 +-- src/gui/transferlistdelegate.cpp | 4 +-- src/gui/transferlistwidget.cpp | 4 +-- src/searchengine/engineselectdlg.cpp | 4 +-- src/searchengine/searchtab.cpp | 4 +-- src/src.pro | 1 + src/webui/abstractwebapplication.cpp | 2 +- src/webui/btjson.cpp | 10 +++---- src/webui/jsonutils.h | 6 ++--- 28 files changed, 71 insertions(+), 70 deletions(-) diff --git a/src/app/application.cpp b/src/app/application.cpp index 127aaab28..c87a430e2 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -357,7 +357,7 @@ void Application::initializeTranslation() } if (m_qtTranslator.load( -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 QString::fromUtf8("qtbase_") + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)) || m_qtTranslator.load( #endif diff --git a/src/app/main.cpp b/src/app/main.cpp index e14bff9cb..9bfe0d6ee 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -42,7 +42,7 @@ #include #ifdef QBT_STATIC_QT #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 Q_IMPORT_PLUGIN(QICOPlugin) #else Q_IMPORT_PLUGIN(qico) diff --git a/src/core/http/requestparser.cpp b/src/core/http/requestparser.cpp index ba083d2bf..eb26dbc5c 100644 --- a/src/core/http/requestparser.cpp +++ b/src/core/http/requestparser.cpp @@ -31,7 +31,7 @@ #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #endif #include @@ -117,7 +117,7 @@ bool RequestParser::parseStartingLine(const QString &line) m_request.path = url.path(); // Path // Parse GET parameters -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QListIterator > i(url.queryItems()); #else QListIterator > i(QUrlQuery(url).queryItems()); @@ -216,7 +216,7 @@ bool RequestParser::parseContent(const QByteArray& data) // Parse url-encoded POST data if (m_request.headers["content-type"].startsWith("application/x-www-form-urlencoded")) { QUrl url; -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 url.setEncodedQuery(data); QListIterator > i(url.queryItems()); #else diff --git a/src/core/http/server.cpp b/src/core/http/server.cpp index f9f58e10c..0895b5f57 100644 --- a/src/core/http/server.cpp +++ b/src/core/http/server.cpp @@ -67,7 +67,7 @@ void Server::disableHttps() } #endif -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 void Server::incomingConnection(qintptr socketDescriptor) #else void Server::incomingConnection(int socketDescriptor) diff --git a/src/core/http/server.h b/src/core/http/server.h index 87d62fe92..64920e2e8 100644 --- a/src/core/http/server.h +++ b/src/core/http/server.h @@ -59,7 +59,7 @@ namespace Http #endif private: - #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) + #ifdef QBT_USES_QT5 void incomingConnection(qintptr socketDescriptor); #else void incomingConnection(int socketDescriptor); diff --git a/src/core/net/dnsupdater.cpp b/src/core/net/dnsupdater.cpp index 0a410e66e..97dde9f30 100644 --- a/src/core/net/dnsupdater.cpp +++ b/src/core/net/dnsupdater.cpp @@ -32,7 +32,7 @@ #include #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #endif @@ -160,7 +160,7 @@ QUrl DNSUpdater::getUpdateUrl() const } url.setPath("/nic/update"); -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 url.addQueryItem("hostname", m_domain); url.addQueryItem("myip", m_lastIP.toString()); #else diff --git a/src/core/net/private/geoipdatabase.cpp b/src/core/net/private/geoipdatabase.cpp index 3c8ed6cce..6eaa5728e 100644 --- a/src/core/net/private/geoipdatabase.cpp +++ b/src/core/net/private/geoipdatabase.cpp @@ -66,7 +66,7 @@ namespace Float = 15 }; -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 Q_IPV6ADDR createMappedAddress(quint32 ip4); #endif } @@ -166,7 +166,7 @@ QDateTime GeoIPDatabase::buildEpoch() const QString GeoIPDatabase::lookup(const QHostAddress &hostAddr) const { -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 Q_IPV6ADDR addr = hostAddr.protocol() == QAbstractSocket::IPv4Protocol ? createMappedAddress(hostAddr.toIPv4Address()) : hostAddr.toIPv6Address(); @@ -499,7 +499,7 @@ QVariant GeoIPDatabase::readArrayValue(quint32 &offset, quint32 count) const namespace { -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 Q_IPV6ADDR createMappedAddress(quint32 ip4) { Q_IPV6ADDR ip6; diff --git a/src/core/preferences.cpp b/src/core/preferences.cpp index 91cb2daf7..08c6e5c36 100644 --- a/src/core/preferences.cpp +++ b/src/core/preferences.cpp @@ -1976,7 +1976,7 @@ void Preferences::setTrayIconStyle(TrayIcon::Style style) // in the same file. QByteArray Preferences::getAddNewTorrentDialogState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("AddNewTorrentDialog/qt5/treeHeaderState").toByteArray(); #else return value("AddNewTorrentDialog/treeHeaderState").toByteArray(); @@ -1985,7 +1985,7 @@ QByteArray Preferences::getAddNewTorrentDialogState() const void Preferences::setAddNewTorrentDialogState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("AddNewTorrentDialog/qt5/treeHeaderState", state); #else setValue("AddNewTorrentDialog/treeHeaderState", state); @@ -2074,7 +2074,7 @@ void Preferences::setMainGeometry(const QByteArray &geometry) QByteArray Preferences::getMainVSplitterState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("MainWindow/qt5/vsplitterState").toByteArray(); #else return value("MainWindow/vsplitterState").toByteArray(); @@ -2083,7 +2083,7 @@ QByteArray Preferences::getMainVSplitterState() const void Preferences::setMainVSplitterState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("MainWindow/qt5/vsplitterState", state); #else setValue("MainWindow/vsplitterState", state); @@ -2134,7 +2134,7 @@ void Preferences::setPrefHSplitterSizes(const QStringList &sizes) QByteArray Preferences::getPeerListState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("TorrentProperties/Peers/qt5/PeerListState").toByteArray(); #else return value("TorrentProperties/Peers/PeerListState").toByteArray(); @@ -2143,7 +2143,7 @@ QByteArray Preferences::getPeerListState() const void Preferences::setPeerListState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("TorrentProperties/Peers/qt5/PeerListState", state); #else setValue("TorrentProperties/Peers/PeerListState", state); @@ -2162,7 +2162,7 @@ void Preferences::setPropSplitterSizes(const QString &sizes) QByteArray Preferences::getPropFileListState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("TorrentProperties/qt5/FilesListState").toByteArray(); #else return value("TorrentProperties/FilesListState").toByteArray(); @@ -2171,7 +2171,7 @@ QByteArray Preferences::getPropFileListState() const void Preferences::setPropFileListState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("TorrentProperties/qt5/FilesListState", state); #else setValue("TorrentProperties/FilesListState", state); @@ -2200,7 +2200,7 @@ void Preferences::setPropVisible(const bool visible) QByteArray Preferences::getPropTrackerListState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("TorrentProperties/Trackers/qt5/TrackerListState").toByteArray(); #else return value("TorrentProperties/Trackers/TrackerListState").toByteArray(); @@ -2209,7 +2209,7 @@ QByteArray Preferences::getPropTrackerListState() const void Preferences::setPropTrackerListState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("TorrentProperties/Trackers/qt5/TrackerListState", state); #else setValue("TorrentProperties/Trackers/TrackerListState", state); @@ -2228,7 +2228,7 @@ void Preferences::setRssGeometry(const QByteArray &geometry) QByteArray Preferences::getRssHSplitterSizes() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("RssFeedDownloader/qt5/hsplitterSizes").toByteArray(); #else return value("RssFeedDownloader/hsplitterSizes").toByteArray(); @@ -2237,7 +2237,7 @@ QByteArray Preferences::getRssHSplitterSizes() const void Preferences::setRssHSplitterSizes(const QByteArray &sizes) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("RssFeedDownloader/qt5/hsplitterSizes", sizes); #else setValue("RssFeedDownloader/hsplitterSizes", sizes); @@ -2256,7 +2256,7 @@ void Preferences::setRssOpenFolders(const QStringList &folders) QByteArray Preferences::getRssHSplitterState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("Rss/qt5/splitter_h").toByteArray(); #else return value("Rss/splitter_h").toByteArray(); @@ -2265,7 +2265,7 @@ QByteArray Preferences::getRssHSplitterState() const void Preferences::setRssHSplitterState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("Rss/qt5/splitter_h", state); #else setValue("Rss/splitter_h", state); @@ -2274,7 +2274,7 @@ void Preferences::setRssHSplitterState(const QByteArray &state) QByteArray Preferences::getRssVSplitterState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("Rss/qt5/splitter_v").toByteArray(); #else return value("Rss/splitter_v").toByteArray(); @@ -2283,7 +2283,7 @@ QByteArray Preferences::getRssVSplitterState() const void Preferences::setRssVSplitterState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("Rss/qt5/splitter_v", state); #else setValue("Rss/splitter_v", state); @@ -2422,7 +2422,7 @@ void Preferences::setTransSelFilter(const int &index) QByteArray Preferences::getTransHeaderState() const { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 return value("TransferList/qt5/HeaderState").toByteArray(); #else return value("TransferList/HeaderState").toByteArray(); @@ -2431,7 +2431,7 @@ QByteArray Preferences::getTransHeaderState() const void Preferences::setTransHeaderState(const QByteArray &state) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 setValue("TransferList/qt5/HeaderState", state); #else setValue("TransferList/HeaderState", state); diff --git a/src/core/utils/fs.cpp b/src/core/utils/fs.cpp index 30728d501..da5349511 100644 --- a/src/core/utils/fs.cpp +++ b/src/core/utils/fs.cpp @@ -55,7 +55,7 @@ #include #endif -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 #ifndef DISABLE_GUI #include @@ -182,7 +182,7 @@ bool Utils::Fs::forceRemove(const QString& file_path) */ void Utils::Fs::removeDirRecursive(const QString& dirName) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 QDir(dirName).removeRecursively(); #else QDir dir(dirName); @@ -439,7 +439,7 @@ QString Utils::Fs::QDesktopServicesCacheLocation() QString Utils::Fs::QDesktopServicesDownloadLocation() { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #if defined(Q_OS_WIN) if (QSysInfo::windowsVersion() <= QSysInfo::WV_XP) // Windows XP return QDir(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)).absoluteFilePath( diff --git a/src/gui/ico.cpp b/src/gui/ico.cpp index a2184e626..1d4c43b33 100644 --- a/src/gui/ico.cpp +++ b/src/gui/ico.cpp @@ -424,7 +424,7 @@ bool ICOHandler::canRead(QIODevice *device) class ICOPlugin : public QImageIOPlugin { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 Q_PLUGIN_METADATA(IID "org.qbittorrent.ICOPlugin") #endif public: @@ -461,7 +461,7 @@ QImageIOHandler *ICOPlugin::create(QIODevice *device, const QByteArray &format) return handler; } -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 Q_EXPORT_STATIC_PLUGIN(ICOPlugin) Q_EXPORT_PLUGIN2(ico, ICOPlugin) #endif diff --git a/src/gui/lineedit/src/lineedit.cpp b/src/gui/lineedit/src/lineedit.cpp index 78dc6870c..0335944bf 100644 --- a/src/gui/lineedit/src/lineedit.cpp +++ b/src/gui/lineedit/src/lineedit.cpp @@ -27,7 +27,7 @@ LineEdit::LineEdit(QWidget *parent) int clearButtonSizeHintWidth = 0; int clearButtonSizeHintHeight = 0; -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QPixmap pixmap2(":/lineeditimages/clear_left.png"); clearButton = new QToolButton(this); clearButton->setIcon(QIcon(pixmap2)); @@ -58,13 +58,13 @@ void LineEdit::resizeEvent(QResizeEvent *e) QSize sz = searchButton->sizeHint(); searchButton->move(frameWidth, (e->size().height() - sz.height()) / 2); -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QSize cz = clearButton->sizeHint(); clearButton->move((e->size().width() - frameWidth - cz.width()), (e->size().height() - sz.height()) / 2); #endif } -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 void LineEdit::updateCloseButton(const QString &text) { clearButton->setVisible(!text.isEmpty()); diff --git a/src/gui/lineedit/src/lineedit.h b/src/gui/lineedit/src/lineedit.h index 84e0d5cf4..6b39d9088 100644 --- a/src/gui/lineedit/src/lineedit.h +++ b/src/gui/lineedit/src/lineedit.h @@ -24,14 +24,14 @@ public: protected: void resizeEvent(QResizeEvent *e); -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 private slots: void updateCloseButton(const QString &text); #endif private: QToolButton *searchButton; -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QToolButton *clearButton; #endif }; diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index a3d2dc705..c1b6b1e03 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -90,7 +90,7 @@ options_imp::options_imp(QWidget *parent) } } -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 scanFoldersView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); #else scanFoldersView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); diff --git a/src/gui/previewlistdelegate.h b/src/gui/previewlistdelegate.h index 10849be2d..0330c045a 100644 --- a/src/gui/previewlistdelegate.h +++ b/src/gui/previewlistdelegate.h @@ -42,7 +42,7 @@ #include "previewselect.h" #ifdef Q_OS_WIN -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 #include #else #include @@ -80,7 +80,7 @@ class PreviewListDelegate: public QItemDelegate { QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt, painter); #else // XXX: To avoid having the progress text on the right of the bar -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QPlastiqueStyle st; #else QProxyStyle st("fusion"); diff --git a/src/gui/previewselect.cpp b/src/gui/previewselect.cpp index 11f937ab4..f37fe3654 100644 --- a/src/gui/previewselect.cpp +++ b/src/gui/previewselect.cpp @@ -32,7 +32,7 @@ #include #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #endif @@ -54,7 +54,7 @@ PreviewSelect::PreviewSelect(QWidget* parent, BitTorrent::TorrentHandle *const t previewListModel->setHeaderData(NAME, Qt::Horizontal, tr("Name")); previewListModel->setHeaderData(SIZE, Qt::Horizontal, tr("Size")); previewListModel->setHeaderData(PROGRESS, Qt::Horizontal, tr("Progress")); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; diff --git a/src/gui/properties/peersadditiondlg.cpp b/src/gui/properties/peersadditiondlg.cpp index 172c8d671..77444935a 100644 --- a/src/gui/properties/peersadditiondlg.cpp +++ b/src/gui/properties/peersadditiondlg.cpp @@ -39,7 +39,7 @@ PeersAdditionDlg::PeersAdditionDlg(QWidget *parent) setupUi(this); connect(buttonBox, SIGNAL(accepted()), this, SLOT(validateInput())); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 label_format->hide(); peers_txt->setPlaceholderText("Format: IPv4:port / [IPv6]:port"); #endif diff --git a/src/gui/properties/propertieswidget.cpp b/src/gui/properties/propertieswidget.cpp index e03c1cc79..b3f2cefb5 100644 --- a/src/gui/properties/propertieswidget.cpp +++ b/src/gui/properties/propertieswidget.cpp @@ -100,7 +100,7 @@ PropertiesWidget::PropertiesWidget(QWidget *parent, MainWindow* main_window, Tra connect(filesList->header(), SIGNAL(sectionResized(int, int, int)), this, SLOT(saveSettings())); connect(filesList->header(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)), this, SLOT(saveSettings())); -#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +#ifdef QBT_USES_QT5 // set bar height relative to screen dpi int barHeight = devicePixelRatio() * 18; #else diff --git a/src/gui/properties/proplistdelegate.cpp b/src/gui/properties/proplistdelegate.cpp index dbd18ecda..5afd028a7 100644 --- a/src/gui/properties/proplistdelegate.cpp +++ b/src/gui/properties/proplistdelegate.cpp @@ -38,7 +38,7 @@ #include #ifdef Q_OS_WIN -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 #include #else #include @@ -82,7 +82,7 @@ void PropListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt, painter); #else // XXX: To avoid having the progress text on the right of the bar -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QPlastiqueStyle st; #else QProxyStyle st("fusion"); diff --git a/src/gui/properties/trackerlist.cpp b/src/gui/properties/trackerlist.cpp index 2c0548637..fb9bf8d91 100644 --- a/src/gui/properties/trackerlist.cpp +++ b/src/gui/properties/trackerlist.cpp @@ -37,7 +37,7 @@ #include #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #include #endif @@ -85,7 +85,7 @@ TrackerList::TrackerList(PropertiesWidget *properties): QTreeWidget(), propertie deleteHotkey = new QShortcut(QKeySequence(QKeySequence::Delete), this, SLOT(deleteSelectedTrackers()), 0, Qt::WidgetShortcut); copyHotkey = new QShortcut(QKeySequence(Qt::ControlModifier + Qt::Key_C), this, SLOT(copyTrackerUrl()), 0, Qt::WidgetShortcut); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; diff --git a/src/gui/torrentcontenttreeview.cpp b/src/gui/torrentcontenttreeview.cpp index 1427866f2..9c0ce06a8 100644 --- a/src/gui/torrentcontenttreeview.cpp +++ b/src/gui/torrentcontenttreeview.cpp @@ -32,7 +32,7 @@ #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #include #endif @@ -42,7 +42,7 @@ TorrentContentTreeView::TorrentContentTreeView(QWidget* parent) : QTreeView(parent) { -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; diff --git a/src/gui/transferlistdelegate.cpp b/src/gui/transferlistdelegate.cpp index 06ec193f2..099cc3170 100644 --- a/src/gui/transferlistdelegate.cpp +++ b/src/gui/transferlistdelegate.cpp @@ -42,7 +42,7 @@ #include "core/unicodestrings.h" #ifdef Q_OS_WIN -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 #include #else #include @@ -214,7 +214,7 @@ void TransferListDelegate::paint(QPainter * painter, const QStyleOptionViewItem QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt, painter); #else // XXX: To avoid having the progress text on the right of the bar -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 QPlastiqueStyle st; #else QProxyStyle st("fusion"); diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index 909ba7cd8..1a6524467 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -40,7 +40,7 @@ #include #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #endif @@ -156,7 +156,7 @@ TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *main_window) editHotkey = new QShortcut(QKeySequence("F2"), this, SLOT(renameSelectedTorrent()), 0, Qt::WidgetShortcut); deleteHotkey = new QShortcut(QKeySequence::Delete, this, SLOT(deleteSelectedTorrents()), 0, Qt::WidgetShortcut); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; diff --git a/src/searchengine/engineselectdlg.cpp b/src/searchengine/engineselectdlg.cpp index 1afbadf6e..4e16e81e8 100644 --- a/src/searchengine/engineselectdlg.cpp +++ b/src/searchengine/engineselectdlg.cpp @@ -47,7 +47,7 @@ #include #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #endif @@ -60,7 +60,7 @@ engineSelectDlg::engineSelectDlg(QWidget *parent, SupportedEngines *supported_en { setupUi(this); setAttribute(Qt::WA_DeleteOnClose); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; diff --git a/src/searchengine/searchtab.cpp b/src/searchengine/searchtab.cpp index 8eeea89da..3d1ce051c 100644 --- a/src/searchengine/searchtab.cpp +++ b/src/searchengine/searchtab.cpp @@ -33,7 +33,7 @@ #include #include #include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 #include #endif @@ -48,7 +48,7 @@ SearchTab::SearchTab(SearchEngine *parent) : QWidget(), parent(parent) box = new QVBoxLayout(); results_lbl = new QLabel(); resultsBrowser = new QTreeView(); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)) +#ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; diff --git a/src/src.pro b/src/src.pro index 059dce5df..95d19914c 100644 --- a/src/src.pro +++ b/src/src.pro @@ -5,6 +5,7 @@ CONFIG += qt thread silent # C++11 support CONFIG += c++11 DEFINES += BOOST_NO_CXX11_RVALUE_REFERENCES +greaterThan(QT_MAJOR_VERSION, 4): DEFINES += QBT_USES_QT5 # Windows specific configuration win32: include(../winconf.pri) diff --git a/src/webui/abstractwebapplication.cpp b/src/webui/abstractwebapplication.cpp index 34323573a..2824780a5 100644 --- a/src/webui/abstractwebapplication.cpp +++ b/src/webui/abstractwebapplication.cpp @@ -260,7 +260,7 @@ void AbstractWebApplication::translateDocument(QString& data) if (isTranslationNeeded) { size_t context_index = 0; while ((context_index < context_count) && (translation == word)) { -#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) +#ifndef QBT_USES_QT5 translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1); #else translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, 1); diff --git a/src/webui/btjson.cpp b/src/webui/btjson.cpp index cf20fb223..342683709 100644 --- a/src/webui/btjson.cpp +++ b/src/webui/btjson.cpp @@ -41,7 +41,7 @@ #include #include -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) +#ifndef QBT_USES_QT5 #include #endif #if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0) @@ -188,7 +188,7 @@ public: QTorrentCompare(QString key, bool greaterThan = false) : key_(key) , greaterThan_(greaterThan) -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) +#ifndef QBT_USES_QT5 , type_(QVariant::Invalid) #endif { @@ -196,7 +196,7 @@ public: bool operator()(QVariant torrent1, QVariant torrent2) { -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) +#ifndef QBT_USES_QT5 if (type_ == QVariant::Invalid) type_ = torrent1.toMap().value(key_).type(); @@ -229,7 +229,7 @@ public: private: QString key_; bool greaterThan_; -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) +#ifndef QBT_USES_QT5 QVariant::Type type_; #endif }; @@ -793,7 +793,7 @@ QVariantMap generateSyncData(int acceptedResponseId, QVariantMap data, QVariantM lastAcceptedData.clear(); syncData = data; -#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) && QT_VERSION < QT_VERSION_CHECK(5, 5, 0)) +#if (QBT_USES_QT5 && QT_VERSION < QT_VERSION_CHECK(5, 5, 0)) // QJsonDocument::fromVariant() supports QVariantHash only // since Qt5.5, so manually convert data["torrents"] QVariantMap torrentsMap; diff --git a/src/webui/jsonutils.h b/src/webui/jsonutils.h index 55288278e..a8375c3b7 100644 --- a/src/webui/jsonutils.h +++ b/src/webui/jsonutils.h @@ -30,7 +30,7 @@ #define JSONUTILS_H #include -#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +#ifdef QBT_USES_QT5 #include #include #include @@ -49,7 +49,7 @@ namespace json { inline QByteArray toJson(const QVariant& var) { -#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +#ifdef QBT_USES_QT5 return QJsonDocument::fromVariant(var).toJson(QJsonDocument::Compact); #else QJson::Serializer serializer; @@ -60,7 +60,7 @@ namespace json { inline QVariant fromJson(const QString& json) { -#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +#ifdef QBT_USES_QT5 return QJsonDocument::fromJson(json.toUtf8()).toVariant(); #else return QJson::Parser().parse(json.toUtf8()); From 696ce427a8be0f64f69a3b8c2575c47c560529c1 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sun, 6 Dec 2015 12:55:53 +0300 Subject: [PATCH 011/238] Fix RSS isn't automarking articles as read Closes: #4260, #4233, #4221, #4133 --- src/gui/rss/rssfeed.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/rss/rssfeed.cpp b/src/gui/rss/rssfeed.cpp index 9a81223ce..865606960 100644 --- a/src/gui/rss/rssfeed.cpp +++ b/src/gui/rss/rssfeed.cpp @@ -32,6 +32,7 @@ #include "rssfeed.h" #include "rssmanager.h" #include "core/bittorrent/session.h" +#include "core/bittorrent/magneturi.h" #include "rssfolder.h" #include "core/preferences.h" #include "core/qinisettings.h" @@ -371,8 +372,11 @@ void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList* rules, const } Logger::instance()->addMessage(tr("Automatically downloading '%1' torrent from '%2' RSS feed...").arg(article->title()).arg(displayName())); - connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection); connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection); + if (BitTorrent::MagnetUri(torrent_url).isValid()) + article->markAsRead(); + else + connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection); BitTorrent::AddTorrentParams params; params.savePath = matching_rule->savePath(); From 9db93e5d8f17d378728f7d1f0d9081b4571e4032 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 25 Sep 2015 11:10:05 +0300 Subject: [PATCH 012/238] Rename Core to Base (Closes #3733). --- src/app/application.cpp | 22 ++++++++--------- src/app/application.h | 2 +- src/app/main.cpp | 4 ++-- src/app/upgrade.h | 10 ++++---- src/{core/core.pri => base/base.pri} | 0 src/{core => base}/bittorrent/cachestatus.cpp | 0 src/{core => base}/bittorrent/cachestatus.h | 0 src/{core => base}/bittorrent/infohash.cpp | 0 src/{core => base}/bittorrent/infohash.h | 0 src/{core => base}/bittorrent/magneturi.cpp | 2 +- src/{core => base}/bittorrent/magneturi.h | 0 src/{core => base}/bittorrent/peerinfo.cpp | 6 ++--- src/{core => base}/bittorrent/peerinfo.h | 0 .../bittorrent/private/bandwidthscheduler.cpp | 2 +- .../bittorrent/private/bandwidthscheduler.h | 0 .../bittorrent/private/filterparserthread.cpp | 2 +- .../bittorrent/private/filterparserthread.h | 0 .../bittorrent/private/speedmonitor.cpp | 0 .../bittorrent/private/speedmonitor.h | 0 .../bittorrent/private/statistics.cpp | 10 ++++---- .../bittorrent/private/statistics.h | 0 src/{core => base}/bittorrent/session.cpp | 24 +++++++++---------- src/{core => base}/bittorrent/session.h | 4 ++-- .../bittorrent/sessionstatus.cpp | 0 src/{core => base}/bittorrent/sessionstatus.h | 0 .../bittorrent/torrentcreatorthread.cpp | 6 ++--- .../bittorrent/torrentcreatorthread.h | 0 .../bittorrent/torrenthandle.cpp | 10 ++++---- src/{core => base}/bittorrent/torrenthandle.h | 2 +- src/{core => base}/bittorrent/torrentinfo.cpp | 6 ++--- src/{core => base}/bittorrent/torrentinfo.h | 0 src/{core => base}/bittorrent/tracker.cpp | 6 ++--- src/{core => base}/bittorrent/tracker.h | 6 ++--- .../bittorrent/trackerentry.cpp | 4 ++-- src/{core => base}/bittorrent/trackerentry.h | 0 src/{core => base}/filesystemwatcher.cpp | 6 ++--- src/{core => base}/filesystemwatcher.h | 0 src/{core => base}/http/connection.cpp | 0 src/{core => base}/http/connection.h | 0 src/{core => base}/http/irequesthandler.h | 0 src/{core => base}/http/requestparser.cpp | 0 src/{core => base}/http/requestparser.h | 0 src/{core => base}/http/responsebuilder.cpp | 0 src/{core => base}/http/responsebuilder.h | 0 src/{core => base}/http/responsegenerator.cpp | 2 +- src/{core => base}/http/responsegenerator.h | 0 src/{core => base}/http/server.cpp | 0 src/{core => base}/http/server.h | 0 src/{core => base}/http/types.h | 0 src/{core => base}/iconprovider.cpp | 0 src/{core => base}/iconprovider.h | 0 src/{core => base}/logger.cpp | 0 src/{core => base}/logger.h | 0 src/{core => base}/net/dnsupdater.cpp | 2 +- src/{core => base}/net/dnsupdater.h | 2 +- src/{core => base}/net/downloadhandler.cpp | 6 ++--- src/{core => base}/net/downloadhandler.h | 0 src/{core => base}/net/downloadmanager.cpp | 2 +- src/{core => base}/net/downloadmanager.h | 0 src/{core => base}/net/geoipmanager.cpp | 8 +++---- src/{core => base}/net/geoipmanager.h | 0 src/{core => base}/net/portforwarder.cpp | 4 ++-- src/{core => base}/net/portforwarder.h | 0 .../net/private/geoipdatabase.cpp | 2 +- .../net/private/geoipdatabase.h | 0 src/{core => base}/net/reverseresolution.cpp | 0 src/{core => base}/net/reverseresolution.h | 0 src/{core => base}/net/smtp.cpp | 4 ++-- src/{core => base}/net/smtp.h | 0 src/{core => base}/preferences.cpp | 4 ++-- src/{core => base}/preferences.h | 2 +- src/{core => base}/qinisettings.h | 0 src/{core => base}/scanfoldersmodel.cpp | 0 src/{core => base}/scanfoldersmodel.h | 0 src/{core => base}/torrentfilter.cpp | 0 src/{core => base}/torrentfilter.h | 0 src/{core => base}/tristatebool.cpp | 0 src/{core => base}/tristatebool.h | 0 src/{core => base}/types.h | 0 src/{core => base}/unicodestrings.h | 0 src/{core => base}/utils/fs.cpp | 0 src/{core => base}/utils/fs.h | 0 src/{core => base}/utils/gzip.cpp | 0 src/{core => base}/utils/gzip.h | 0 src/{core => base}/utils/misc.cpp | 6 ++--- src/{core => base}/utils/misc.h | 2 +- src/{core => base}/utils/string.cpp | 0 src/{core => base}/utils/string.h | 0 src/gui/about_imp.h | 2 +- src/gui/addnewtorrentdialog.cpp | 20 ++++++++-------- src/gui/addnewtorrentdialog.h | 4 ++-- src/gui/advancedsettings.h | 2 +- src/gui/deletionconfirmationdlg.h | 4 ++-- src/gui/executionlog.cpp | 2 +- src/gui/guiiconprovider.cpp | 2 +- src/gui/guiiconprovider.h | 2 +- src/gui/mainwindow.cpp | 16 ++++++------- src/gui/options_imp.cpp | 12 +++++----- src/gui/previewlistdelegate.h | 4 ++-- src/gui/previewselect.cpp | 6 ++--- src/gui/previewselect.h | 2 +- src/gui/programupdater.cpp | 4 ++-- src/gui/properties/peerlistdelegate.h | 4 ++-- src/gui/properties/peerlistwidget.cpp | 14 +++++------ src/gui/properties/peersadditiondlg.h | 2 +- src/gui/properties/propertieswidget.cpp | 12 +++++----- src/gui/properties/propertieswidget.h | 2 +- src/gui/properties/proplistdelegate.cpp | 4 ++-- src/gui/properties/speedplotview.cpp | 2 +- src/gui/properties/speedwidget.cpp | 8 +++---- src/gui/properties/trackerlist.cpp | 12 +++++----- src/gui/properties/trackersadditiondlg.cpp | 12 +++++----- src/gui/rss/automatedrssdownloader.cpp | 6 ++--- src/gui/rss/htmlbrowser.cpp | 2 +- src/gui/rss/rss_imp.cpp | 6 ++--- src/gui/rss/rssdownloadrule.cpp | 4 ++-- src/gui/rss/rssdownloadrulelist.cpp | 4 ++-- src/gui/rss/rssfeed.cpp | 18 +++++++------- src/gui/rss/rssfolder.cpp | 2 +- src/gui/rss/rssmanager.cpp | 4 ++-- src/gui/rss/rssparser.cpp | 2 +- src/gui/rss/rsssettingsdlg.cpp | 2 +- src/gui/shutdownconfirm.cpp | 2 +- src/gui/shutdownconfirm.h | 2 +- src/gui/speedlimitdlg.cpp | 2 +- src/gui/speedlimitdlg.h | 4 ++-- src/gui/statsdialog.cpp | 12 +++++----- src/gui/statusbar.cpp | 10 ++++---- src/gui/torrentcontentfiltermodel.cpp | 2 +- src/gui/torrentcontentmodel.cpp | 4 ++-- src/gui/torrentcontentmodel.h | 2 +- src/gui/torrentcontentmodelitem.cpp | 4 ++-- src/gui/torrentcreatordlg.cpp | 12 +++++----- src/gui/torrentimportdlg.cpp | 8 +++---- src/gui/torrentimportdlg.h | 2 +- src/gui/torrentmodel.cpp | 8 +++---- src/gui/trackerlogin.cpp | 2 +- src/gui/transferlistdelegate.cpp | 10 ++++---- src/gui/transferlistfilterswidget.cpp | 22 ++++++++--------- src/gui/transferlistsortmodel.cpp | 6 ++--- src/gui/transferlistsortmodel.h | 2 +- src/gui/transferlistwidget.cpp | 10 ++++---- src/gui/updownratiodlg.cpp | 2 +- src/searchengine/engineselectdlg.cpp | 8 +++---- src/searchengine/searchengine.cpp | 8 +++---- src/searchengine/searchlistdelegate.h | 2 +- src/searchengine/searchsortmodel.h | 2 +- src/searchengine/searchtab.cpp | 4 ++-- src/searchengine/supportedengines.h | 6 ++--- src/src.pro | 2 +- src/webui/abstractwebapplication.cpp | 2 +- src/webui/abstractwebapplication.h | 6 ++--- src/webui/btjson.cpp | 16 ++++++------- src/webui/prefjson.cpp | 6 ++--- src/webui/webapplication.cpp | 21 ++++++++-------- src/webui/webui.cpp | 10 ++++---- 156 files changed, 303 insertions(+), 302 deletions(-) rename src/{core/core.pri => base/base.pri} (100%) rename src/{core => base}/bittorrent/cachestatus.cpp (100%) rename src/{core => base}/bittorrent/cachestatus.h (100%) rename src/{core => base}/bittorrent/infohash.cpp (100%) rename src/{core => base}/bittorrent/infohash.h (100%) rename src/{core => base}/bittorrent/magneturi.cpp (98%) rename src/{core => base}/bittorrent/magneturi.h (100%) rename src/{core => base}/bittorrent/peerinfo.cpp (98%) rename src/{core => base}/bittorrent/peerinfo.h (100%) rename src/{core => base}/bittorrent/private/bandwidthscheduler.cpp (99%) rename src/{core => base}/bittorrent/private/bandwidthscheduler.h (100%) rename src/{core => base}/bittorrent/private/filterparserthread.cpp (99%) rename src/{core => base}/bittorrent/private/filterparserthread.h (100%) rename src/{core => base}/bittorrent/private/speedmonitor.cpp (100%) rename src/{core => base}/bittorrent/private/speedmonitor.h (100%) rename src/{core => base}/bittorrent/private/statistics.cpp (94%) rename src/{core => base}/bittorrent/private/statistics.h (100%) rename src/{core => base}/bittorrent/session.cpp (99%) rename src/{core => base}/bittorrent/session.h (99%) rename src/{core => base}/bittorrent/sessionstatus.cpp (100%) rename src/{core => base}/bittorrent/sessionstatus.h (100%) rename src/{core => base}/bittorrent/torrentcreatorthread.cpp (98%) rename src/{core => base}/bittorrent/torrentcreatorthread.h (100%) rename src/{core => base}/bittorrent/torrenthandle.cpp (99%) rename src/{core => base}/bittorrent/torrenthandle.h (99%) rename src/{core => base}/bittorrent/torrentinfo.cpp (98%) rename src/{core => base}/bittorrent/torrentinfo.h (100%) rename src/{core => base}/bittorrent/tracker.cpp (98%) rename src/{core => base}/bittorrent/tracker.h (96%) rename src/{core => base}/bittorrent/trackerentry.cpp (97%) rename src/{core => base}/bittorrent/trackerentry.h (100%) rename src/{core => base}/filesystemwatcher.cpp (98%) rename src/{core => base}/filesystemwatcher.h (100%) rename src/{core => base}/http/connection.cpp (100%) rename src/{core => base}/http/connection.h (100%) rename src/{core => base}/http/irequesthandler.h (100%) rename src/{core => base}/http/requestparser.cpp (100%) rename src/{core => base}/http/requestparser.h (100%) rename src/{core => base}/http/responsebuilder.cpp (100%) rename src/{core => base}/http/responsebuilder.h (100%) rename src/{core => base}/http/responsegenerator.cpp (98%) rename src/{core => base}/http/responsegenerator.h (100%) rename src/{core => base}/http/server.cpp (100%) rename src/{core => base}/http/server.h (100%) rename src/{core => base}/http/types.h (100%) rename src/{core => base}/iconprovider.cpp (100%) rename src/{core => base}/iconprovider.h (100%) rename src/{core => base}/logger.cpp (100%) rename src/{core => base}/logger.h (100%) rename src/{core => base}/net/dnsupdater.cpp (99%) rename src/{core => base}/net/dnsupdater.h (98%) rename src/{core => base}/net/downloadhandler.cpp (99%) rename src/{core => base}/net/downloadhandler.h (100%) rename src/{core => base}/net/downloadmanager.cpp (99%) rename src/{core => base}/net/downloadmanager.h (100%) rename src/{core => base}/net/geoipmanager.cpp (99%) rename src/{core => base}/net/geoipmanager.h (100%) rename src/{core => base}/net/portforwarder.cpp (98%) rename src/{core => base}/net/portforwarder.h (100%) rename src/{core => base}/net/private/geoipdatabase.cpp (99%) rename src/{core => base}/net/private/geoipdatabase.h (100%) rename src/{core => base}/net/reverseresolution.cpp (100%) rename src/{core => base}/net/reverseresolution.h (100%) rename src/{core => base}/net/smtp.cpp (99%) rename src/{core => base}/net/smtp.h (100%) rename src/{core => base}/preferences.cpp (99%) rename src/{core => base}/preferences.h (99%) rename src/{core => base}/qinisettings.h (100%) rename src/{core => base}/scanfoldersmodel.cpp (100%) rename src/{core => base}/scanfoldersmodel.h (100%) rename src/{core => base}/torrentfilter.cpp (100%) rename src/{core => base}/torrentfilter.h (100%) rename src/{core => base}/tristatebool.cpp (100%) rename src/{core => base}/tristatebool.h (100%) rename src/{core => base}/types.h (100%) rename src/{core => base}/unicodestrings.h (100%) rename src/{core => base}/utils/fs.cpp (100%) rename src/{core => base}/utils/fs.h (100%) rename src/{core => base}/utils/gzip.cpp (100%) rename src/{core => base}/utils/gzip.h (100%) rename src/{core => base}/utils/misc.cpp (99%) rename src/{core => base}/utils/misc.h (99%) rename src/{core => base}/utils/string.cpp (100%) rename src/{core => base}/utils/string.h (100%) diff --git a/src/app/application.cpp b/src/app/application.cpp index c87a430e2..9bdb62713 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -58,17 +58,17 @@ #endif #include "application.h" -#include "core/logger.h" -#include "core/preferences.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/iconprovider.h" -#include "core/scanfoldersmodel.h" -#include "core/net/smtp.h" -#include "core/net/downloadmanager.h" -#include "core/net/geoipmanager.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/logger.h" +#include "base/preferences.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/iconprovider.h" +#include "base/scanfoldersmodel.h" +#include "base/net/smtp.h" +#include "base/net/downloadmanager.h" +#include "base/net/geoipmanager.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrenthandle.h" static const char PARAMS_SEPARATOR[] = "|"; diff --git a/src/app/application.h b/src/app/application.h index 9ed308e20..0f094e535 100644 --- a/src/app/application.h +++ b/src/app/application.h @@ -50,7 +50,7 @@ QT_END_NAMESPACE typedef QtSingleCoreApplication BaseApplication; #endif -#include "core/utils/misc.h" +#include "base/utils/misc.h" #ifndef DISABLE_WEBUI class WebUI; diff --git a/src/app/main.cpp b/src/app/main.cpp index 9bfe0d6ee..94e16bcc7 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -72,8 +72,8 @@ Q_IMPORT_PLUGIN(qico) #include #include #include "application.h" -#include "core/utils/misc.h" -#include "core/preferences.h" +#include "base/utils/misc.h" +#include "base/preferences.h" #include "upgrade.h" diff --git a/src/app/upgrade.h b/src/app/upgrade.h index b361ca711..0a9ff75c8 100644 --- a/src/app/upgrade.h +++ b/src/app/upgrade.h @@ -40,11 +40,11 @@ #include #endif -#include "core/logger.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/utils/string.h" -#include "core/qinisettings.h" +#include "base/logger.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" +#include "base/qinisettings.h" bool userAcceptsUpgrade() { diff --git a/src/core/core.pri b/src/base/base.pri similarity index 100% rename from src/core/core.pri rename to src/base/base.pri diff --git a/src/core/bittorrent/cachestatus.cpp b/src/base/bittorrent/cachestatus.cpp similarity index 100% rename from src/core/bittorrent/cachestatus.cpp rename to src/base/bittorrent/cachestatus.cpp diff --git a/src/core/bittorrent/cachestatus.h b/src/base/bittorrent/cachestatus.h similarity index 100% rename from src/core/bittorrent/cachestatus.h rename to src/base/bittorrent/cachestatus.h diff --git a/src/core/bittorrent/infohash.cpp b/src/base/bittorrent/infohash.cpp similarity index 100% rename from src/core/bittorrent/infohash.cpp rename to src/base/bittorrent/infohash.cpp diff --git a/src/core/bittorrent/infohash.h b/src/base/bittorrent/infohash.h similarity index 100% rename from src/core/bittorrent/infohash.h rename to src/base/bittorrent/infohash.h diff --git a/src/core/bittorrent/magneturi.cpp b/src/base/bittorrent/magneturi.cpp similarity index 98% rename from src/core/bittorrent/magneturi.cpp rename to src/base/bittorrent/magneturi.cpp index c71e38aef..84673fffc 100644 --- a/src/core/bittorrent/magneturi.cpp +++ b/src/base/bittorrent/magneturi.cpp @@ -30,7 +30,7 @@ #include #include -#include "core/utils/string.h" +#include "base/utils/string.h" #include "magneturi.h" namespace libt = libtorrent; diff --git a/src/core/bittorrent/magneturi.h b/src/base/bittorrent/magneturi.h similarity index 100% rename from src/core/bittorrent/magneturi.h rename to src/base/bittorrent/magneturi.h diff --git a/src/core/bittorrent/peerinfo.cpp b/src/base/bittorrent/peerinfo.cpp similarity index 98% rename from src/core/bittorrent/peerinfo.cpp rename to src/base/bittorrent/peerinfo.cpp index c7e9816ee..abbe45df5 100644 --- a/src/core/bittorrent/peerinfo.cpp +++ b/src/base/bittorrent/peerinfo.cpp @@ -26,9 +26,9 @@ * exception statement from your version. */ -#include "core/net/geoipmanager.h" -#include "core/utils/string.h" -#include "core/unicodestrings.h" +#include "base/net/geoipmanager.h" +#include "base/utils/string.h" +#include "base/unicodestrings.h" #include "peerinfo.h" namespace libt = libtorrent; diff --git a/src/core/bittorrent/peerinfo.h b/src/base/bittorrent/peerinfo.h similarity index 100% rename from src/core/bittorrent/peerinfo.h rename to src/base/bittorrent/peerinfo.h diff --git a/src/core/bittorrent/private/bandwidthscheduler.cpp b/src/base/bittorrent/private/bandwidthscheduler.cpp similarity index 99% rename from src/core/bittorrent/private/bandwidthscheduler.cpp rename to src/base/bittorrent/private/bandwidthscheduler.cpp index e191b56f6..dcb0097d1 100644 --- a/src/core/bittorrent/private/bandwidthscheduler.cpp +++ b/src/base/bittorrent/private/bandwidthscheduler.cpp @@ -31,7 +31,7 @@ #include #include -#include "core/preferences.h" +#include "base/preferences.h" #include "bandwidthscheduler.h" BandwidthScheduler::BandwidthScheduler(QObject *parent) diff --git a/src/core/bittorrent/private/bandwidthscheduler.h b/src/base/bittorrent/private/bandwidthscheduler.h similarity index 100% rename from src/core/bittorrent/private/bandwidthscheduler.h rename to src/base/bittorrent/private/bandwidthscheduler.h diff --git a/src/core/bittorrent/private/filterparserthread.cpp b/src/base/bittorrent/private/filterparserthread.cpp similarity index 99% rename from src/core/bittorrent/private/filterparserthread.cpp rename to src/base/bittorrent/private/filterparserthread.cpp index 18de2fae6..e2c1564e9 100644 --- a/src/core/bittorrent/private/filterparserthread.cpp +++ b/src/base/bittorrent/private/filterparserthread.cpp @@ -36,7 +36,7 @@ #include #include -#include "core/logger.h" +#include "base/logger.h" #include "filterparserthread.h" namespace libt = libtorrent; diff --git a/src/core/bittorrent/private/filterparserthread.h b/src/base/bittorrent/private/filterparserthread.h similarity index 100% rename from src/core/bittorrent/private/filterparserthread.h rename to src/base/bittorrent/private/filterparserthread.h diff --git a/src/core/bittorrent/private/speedmonitor.cpp b/src/base/bittorrent/private/speedmonitor.cpp similarity index 100% rename from src/core/bittorrent/private/speedmonitor.cpp rename to src/base/bittorrent/private/speedmonitor.cpp diff --git a/src/core/bittorrent/private/speedmonitor.h b/src/base/bittorrent/private/speedmonitor.h similarity index 100% rename from src/core/bittorrent/private/speedmonitor.h rename to src/base/bittorrent/private/speedmonitor.h diff --git a/src/core/bittorrent/private/statistics.cpp b/src/base/bittorrent/private/statistics.cpp similarity index 94% rename from src/core/bittorrent/private/statistics.cpp rename to src/base/bittorrent/private/statistics.cpp index f57a9a7c0..a3b41ca13 100644 --- a/src/core/bittorrent/private/statistics.cpp +++ b/src/base/bittorrent/private/statistics.cpp @@ -2,10 +2,10 @@ #include -#include "core/qinisettings.h" -#include "core/preferences.h" -#include "core/bittorrent/sessionstatus.h" -#include "core/bittorrent/session.h" +#include "base/qinisettings.h" +#include "base/preferences.h" +#include "base/bittorrent/sessionstatus.h" +#include "base/bittorrent/session.h" #include "statistics.h" static const qint64 SAVE_INTERVAL = 15 * 60 * 1000; @@ -83,7 +83,7 @@ void Statistics::load() // Don't forget to remove: // 1. Preferences::getStats() // 2. Preferences::removeStats() - // 3. #include "core/preferences.h" + // 3. #include "base/preferences.h" Preferences* const pref = Preferences::instance(); QIniSettings s("qBittorrent", "qBittorrent-data"); QVariantHash v = pref->getStats(); diff --git a/src/core/bittorrent/private/statistics.h b/src/base/bittorrent/private/statistics.h similarity index 100% rename from src/core/bittorrent/private/statistics.h rename to src/base/bittorrent/private/statistics.h diff --git a/src/core/bittorrent/session.cpp b/src/base/bittorrent/session.cpp similarity index 99% rename from src/core/bittorrent/session.cpp rename to src/base/bittorrent/session.cpp index ea71a8cec..71fd9fe62 100644 --- a/src/core/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -63,20 +63,20 @@ using namespace BitTorrent; //#include #ifndef DISABLE_COUNTRIES_RESOLUTION -#include "core/net/geoipmanager.h" +#include "base/net/geoipmanager.h" #endif -#include "core/utils/misc.h" -#include "core/utils/fs.h" -#include "core/utils/string.h" -#include "core/unicodestrings.h" -#include "core/logger.h" -#include "core/preferences.h" -#include "core/torrentfilter.h" -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" -#include "core/net/portforwarder.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" +#include "base/utils/string.h" +#include "base/unicodestrings.h" +#include "base/logger.h" +#include "base/preferences.h" +#include "base/torrentfilter.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/net/portforwarder.h" +#include "base/utils/string.h" #include "private/filterparserthread.h" #include "private/statistics.h" #include "private/bandwidthscheduler.h" diff --git a/src/core/bittorrent/session.h b/src/base/bittorrent/session.h similarity index 99% rename from src/core/bittorrent/session.h rename to src/base/bittorrent/session.h index 156f3a0e9..ee945512b 100644 --- a/src/core/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -38,8 +38,8 @@ #include #include -#include "core/tristatebool.h" -#include "core/types.h" +#include "base/tristatebool.h" +#include "base/types.h" #include "torrentinfo.h" namespace libtorrent diff --git a/src/core/bittorrent/sessionstatus.cpp b/src/base/bittorrent/sessionstatus.cpp similarity index 100% rename from src/core/bittorrent/sessionstatus.cpp rename to src/base/bittorrent/sessionstatus.cpp diff --git a/src/core/bittorrent/sessionstatus.h b/src/base/bittorrent/sessionstatus.h similarity index 100% rename from src/core/bittorrent/sessionstatus.h rename to src/base/bittorrent/sessionstatus.h diff --git a/src/core/bittorrent/torrentcreatorthread.cpp b/src/base/bittorrent/torrentcreatorthread.cpp similarity index 98% rename from src/core/bittorrent/torrentcreatorthread.cpp rename to src/base/bittorrent/torrentcreatorthread.cpp index 03ce5bd33..548836500 100644 --- a/src/core/bittorrent/torrentcreatorthread.cpp +++ b/src/base/bittorrent/torrentcreatorthread.cpp @@ -43,9 +43,9 @@ #include #include -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/utils/string.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" #include "torrentcreatorthread.h" namespace libt = libtorrent; diff --git a/src/core/bittorrent/torrentcreatorthread.h b/src/base/bittorrent/torrentcreatorthread.h similarity index 100% rename from src/core/bittorrent/torrentcreatorthread.h rename to src/base/bittorrent/torrentcreatorthread.h diff --git a/src/core/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp similarity index 99% rename from src/core/bittorrent/torrenthandle.cpp rename to src/base/bittorrent/torrenthandle.cpp index 9e704a26b..b6e6f4e0e 100644 --- a/src/core/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -46,11 +46,11 @@ #include #endif -#include "core/logger.h" -#include "core/preferences.h" -#include "core/utils/string.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" +#include "base/logger.h" +#include "base/preferences.h" +#include "base/utils/string.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" #include "session.h" #include "peerinfo.h" #include "trackerentry.h" diff --git a/src/core/bittorrent/torrenthandle.h b/src/base/bittorrent/torrenthandle.h similarity index 99% rename from src/core/bittorrent/torrenthandle.h rename to src/base/bittorrent/torrenthandle.h index e46951def..d6679cbe8 100644 --- a/src/core/bittorrent/torrenthandle.h +++ b/src/base/bittorrent/torrenthandle.h @@ -40,7 +40,7 @@ #include #include -#include "core/tristatebool.h" +#include "base/tristatebool.h" #include "private/speedmonitor.h" #include "infohash.h" #include "torrentinfo.h" diff --git a/src/core/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp similarity index 98% rename from src/core/bittorrent/torrentinfo.cpp rename to src/base/bittorrent/torrentinfo.cpp index 2d454e2e2..d7da2f517 100644 --- a/src/core/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -33,9 +33,9 @@ #include -#include "core/utils/misc.h" -#include "core/utils/fs.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" +#include "base/utils/string.h" #include "infohash.h" #include "trackerentry.h" #include "torrentinfo.h" diff --git a/src/core/bittorrent/torrentinfo.h b/src/base/bittorrent/torrentinfo.h similarity index 100% rename from src/core/bittorrent/torrentinfo.h rename to src/base/bittorrent/torrentinfo.h diff --git a/src/core/bittorrent/tracker.cpp b/src/base/bittorrent/tracker.cpp similarity index 98% rename from src/core/bittorrent/tracker.cpp rename to src/base/bittorrent/tracker.cpp index fca7fbf40..7044d65e5 100644 --- a/src/core/bittorrent/tracker.cpp +++ b/src/base/bittorrent/tracker.cpp @@ -33,9 +33,9 @@ #include #include -#include "core/preferences.h" -#include "core/http/server.h" -#include "core/utils/string.h" +#include "base/preferences.h" +#include "base/http/server.h" +#include "base/utils/string.h" #include "tracker.h" // static limits diff --git a/src/core/bittorrent/tracker.h b/src/base/bittorrent/tracker.h similarity index 96% rename from src/core/bittorrent/tracker.h rename to src/base/bittorrent/tracker.h index be96b4b1e..7e8f9f318 100644 --- a/src/core/bittorrent/tracker.h +++ b/src/base/bittorrent/tracker.h @@ -33,9 +33,9 @@ #define BITTORRENT_TRACKER_H #include -#include "core/http/types.h" -#include "core/http/responsebuilder.h" -#include "core/http/irequesthandler.h" +#include "base/http/types.h" +#include "base/http/responsebuilder.h" +#include "base/http/irequesthandler.h" namespace libtorrent { diff --git a/src/core/bittorrent/trackerentry.cpp b/src/base/bittorrent/trackerentry.cpp similarity index 97% rename from src/core/bittorrent/trackerentry.cpp rename to src/base/bittorrent/trackerentry.cpp index 506c565e8..e944963a8 100644 --- a/src/core/bittorrent/trackerentry.cpp +++ b/src/base/bittorrent/trackerentry.cpp @@ -28,8 +28,8 @@ #include -#include "core/utils/misc.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" #include "trackerentry.h" using namespace BitTorrent; diff --git a/src/core/bittorrent/trackerentry.h b/src/base/bittorrent/trackerentry.h similarity index 100% rename from src/core/bittorrent/trackerentry.h rename to src/base/bittorrent/trackerentry.h diff --git a/src/core/filesystemwatcher.cpp b/src/base/filesystemwatcher.cpp similarity index 98% rename from src/core/filesystemwatcher.cpp rename to src/base/filesystemwatcher.cpp index 0debaa06f..df6bf38c6 100644 --- a/src/core/filesystemwatcher.cpp +++ b/src/base/filesystemwatcher.cpp @@ -12,9 +12,9 @@ #endif #endif -#include "core/preferences.h" -#include "core/bittorrent/torrentinfo.h" -#include "core/bittorrent/magneturi.h" +#include "base/preferences.h" +#include "base/bittorrent/torrentinfo.h" +#include "base/bittorrent/magneturi.h" #include "filesystemwatcher.h" #ifndef CIFS_MAGIC_NUMBER diff --git a/src/core/filesystemwatcher.h b/src/base/filesystemwatcher.h similarity index 100% rename from src/core/filesystemwatcher.h rename to src/base/filesystemwatcher.h diff --git a/src/core/http/connection.cpp b/src/base/http/connection.cpp similarity index 100% rename from src/core/http/connection.cpp rename to src/base/http/connection.cpp diff --git a/src/core/http/connection.h b/src/base/http/connection.h similarity index 100% rename from src/core/http/connection.h rename to src/base/http/connection.h diff --git a/src/core/http/irequesthandler.h b/src/base/http/irequesthandler.h similarity index 100% rename from src/core/http/irequesthandler.h rename to src/base/http/irequesthandler.h diff --git a/src/core/http/requestparser.cpp b/src/base/http/requestparser.cpp similarity index 100% rename from src/core/http/requestparser.cpp rename to src/base/http/requestparser.cpp diff --git a/src/core/http/requestparser.h b/src/base/http/requestparser.h similarity index 100% rename from src/core/http/requestparser.h rename to src/base/http/requestparser.h diff --git a/src/core/http/responsebuilder.cpp b/src/base/http/responsebuilder.cpp similarity index 100% rename from src/core/http/responsebuilder.cpp rename to src/base/http/responsebuilder.cpp diff --git a/src/core/http/responsebuilder.h b/src/base/http/responsebuilder.h similarity index 100% rename from src/core/http/responsebuilder.h rename to src/base/http/responsebuilder.h diff --git a/src/core/http/responsegenerator.cpp b/src/base/http/responsegenerator.cpp similarity index 98% rename from src/core/http/responsegenerator.cpp rename to src/base/http/responsegenerator.cpp index 4ec7f0178..2e070ee86 100644 --- a/src/core/http/responsegenerator.cpp +++ b/src/base/http/responsegenerator.cpp @@ -29,7 +29,7 @@ * Contact : chris@qbittorrent.org */ -#include "core/utils/gzip.h" +#include "base/utils/gzip.h" #include "responsegenerator.h" using namespace Http; diff --git a/src/core/http/responsegenerator.h b/src/base/http/responsegenerator.h similarity index 100% rename from src/core/http/responsegenerator.h rename to src/base/http/responsegenerator.h diff --git a/src/core/http/server.cpp b/src/base/http/server.cpp similarity index 100% rename from src/core/http/server.cpp rename to src/base/http/server.cpp diff --git a/src/core/http/server.h b/src/base/http/server.h similarity index 100% rename from src/core/http/server.h rename to src/base/http/server.h diff --git a/src/core/http/types.h b/src/base/http/types.h similarity index 100% rename from src/core/http/types.h rename to src/base/http/types.h diff --git a/src/core/iconprovider.cpp b/src/base/iconprovider.cpp similarity index 100% rename from src/core/iconprovider.cpp rename to src/base/iconprovider.cpp diff --git a/src/core/iconprovider.h b/src/base/iconprovider.h similarity index 100% rename from src/core/iconprovider.h rename to src/base/iconprovider.h diff --git a/src/core/logger.cpp b/src/base/logger.cpp similarity index 100% rename from src/core/logger.cpp rename to src/base/logger.cpp diff --git a/src/core/logger.h b/src/base/logger.h similarity index 100% rename from src/core/logger.h rename to src/base/logger.h diff --git a/src/core/net/dnsupdater.cpp b/src/base/net/dnsupdater.cpp similarity index 99% rename from src/core/net/dnsupdater.cpp rename to src/base/net/dnsupdater.cpp index 97dde9f30..c9aa6c2ca 100644 --- a/src/core/net/dnsupdater.cpp +++ b/src/base/net/dnsupdater.cpp @@ -36,7 +36,7 @@ #include #endif -#include "core/logger.h" +#include "base/logger.h" #include "dnsupdater.h" using namespace Net; diff --git a/src/core/net/dnsupdater.h b/src/base/net/dnsupdater.h similarity index 98% rename from src/core/net/dnsupdater.h rename to src/base/net/dnsupdater.h index 0cc809360..49afc4623 100644 --- a/src/core/net/dnsupdater.h +++ b/src/base/net/dnsupdater.h @@ -36,7 +36,7 @@ #include #include #include -#include "core/preferences.h" +#include "base/preferences.h" namespace Net { diff --git a/src/core/net/downloadhandler.cpp b/src/base/net/downloadhandler.cpp similarity index 99% rename from src/core/net/downloadhandler.cpp rename to src/base/net/downloadhandler.cpp index b9a557348..b77c59d1e 100644 --- a/src/core/net/downloadhandler.cpp +++ b/src/base/net/downloadhandler.cpp @@ -36,9 +36,9 @@ #include #include -#include "core/utils/fs.h" -#include "core/utils/gzip.h" -#include "core/utils/misc.h" +#include "base/utils/fs.h" +#include "base/utils/gzip.h" +#include "base/utils/misc.h" #include "downloadmanager.h" #include "downloadhandler.h" diff --git a/src/core/net/downloadhandler.h b/src/base/net/downloadhandler.h similarity index 100% rename from src/core/net/downloadhandler.h rename to src/base/net/downloadhandler.h diff --git a/src/core/net/downloadmanager.cpp b/src/base/net/downloadmanager.cpp similarity index 99% rename from src/core/net/downloadmanager.cpp rename to src/base/net/downloadmanager.cpp index b048877b5..c21fb813a 100644 --- a/src/core/net/downloadmanager.cpp +++ b/src/base/net/downloadmanager.cpp @@ -36,7 +36,7 @@ #include #include -#include "core/preferences.h" +#include "base/preferences.h" #include "downloadhandler.h" #include "downloadmanager.h" diff --git a/src/core/net/downloadmanager.h b/src/base/net/downloadmanager.h similarity index 100% rename from src/core/net/downloadmanager.h rename to src/base/net/downloadmanager.h diff --git a/src/core/net/geoipmanager.cpp b/src/base/net/geoipmanager.cpp similarity index 99% rename from src/core/net/geoipmanager.cpp rename to src/base/net/geoipmanager.cpp index cd0ed797a..b8c25b4d3 100644 --- a/src/core/net/geoipmanager.cpp +++ b/src/base/net/geoipmanager.cpp @@ -33,10 +33,10 @@ #include #include -#include "core/logger.h" -#include "core/preferences.h" -#include "core/utils/fs.h" -#include "core/utils/gzip.h" +#include "base/logger.h" +#include "base/preferences.h" +#include "base/utils/fs.h" +#include "base/utils/gzip.h" #include "downloadmanager.h" #include "downloadhandler.h" #include "private/geoipdatabase.h" diff --git a/src/core/net/geoipmanager.h b/src/base/net/geoipmanager.h similarity index 100% rename from src/core/net/geoipmanager.h rename to src/base/net/geoipmanager.h diff --git a/src/core/net/portforwarder.cpp b/src/base/net/portforwarder.cpp similarity index 98% rename from src/core/net/portforwarder.cpp rename to src/base/net/portforwarder.cpp index 53b258c0e..456b794b1 100644 --- a/src/core/net/portforwarder.cpp +++ b/src/base/net/portforwarder.cpp @@ -30,8 +30,8 @@ #include -#include "core/logger.h" -#include "core/preferences.h" +#include "base/logger.h" +#include "base/preferences.h" #include "portforwarder.h" namespace libt = libtorrent; diff --git a/src/core/net/portforwarder.h b/src/base/net/portforwarder.h similarity index 100% rename from src/core/net/portforwarder.h rename to src/base/net/portforwarder.h diff --git a/src/core/net/private/geoipdatabase.cpp b/src/base/net/private/geoipdatabase.cpp similarity index 99% rename from src/core/net/private/geoipdatabase.cpp rename to src/base/net/private/geoipdatabase.cpp index 6eaa5728e..52a147b24 100644 --- a/src/core/net/private/geoipdatabase.cpp +++ b/src/base/net/private/geoipdatabase.cpp @@ -33,7 +33,7 @@ #include #include -#include "core/types.h" +#include "base/types.h" #include "geoipdatabase.h" namespace diff --git a/src/core/net/private/geoipdatabase.h b/src/base/net/private/geoipdatabase.h similarity index 100% rename from src/core/net/private/geoipdatabase.h rename to src/base/net/private/geoipdatabase.h diff --git a/src/core/net/reverseresolution.cpp b/src/base/net/reverseresolution.cpp similarity index 100% rename from src/core/net/reverseresolution.cpp rename to src/base/net/reverseresolution.cpp diff --git a/src/core/net/reverseresolution.h b/src/base/net/reverseresolution.h similarity index 100% rename from src/core/net/reverseresolution.h rename to src/base/net/reverseresolution.h diff --git a/src/core/net/smtp.cpp b/src/base/net/smtp.cpp similarity index 99% rename from src/core/net/smtp.cpp rename to src/base/net/smtp.cpp index a510941ce..e232beeb4 100644 --- a/src/core/net/smtp.cpp +++ b/src/base/net/smtp.cpp @@ -33,8 +33,8 @@ */ #include "smtp.h" -#include "core/preferences.h" -#include "core/logger.h" +#include "base/preferences.h" +#include "base/logger.h" #include #ifndef QT_NO_OPENSSL diff --git a/src/core/net/smtp.h b/src/base/net/smtp.h similarity index 100% rename from src/core/net/smtp.h rename to src/base/net/smtp.h diff --git a/src/core/preferences.cpp b/src/base/preferences.cpp similarity index 99% rename from src/core/preferences.cpp rename to src/base/preferences.cpp index 08c6e5c36..590039380 100644 --- a/src/core/preferences.cpp +++ b/src/base/preferences.cpp @@ -52,8 +52,8 @@ #endif #include -#include "core/utils/fs.h" -#include "core/utils/misc.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" Preferences* Preferences::m_instance = 0; diff --git a/src/core/preferences.h b/src/base/preferences.h similarity index 99% rename from src/core/preferences.h rename to src/base/preferences.h index 41d99781c..4767a1d59 100644 --- a/src/core/preferences.h +++ b/src/base/preferences.h @@ -41,7 +41,7 @@ #include #include -#include "core/types.h" +#include "base/types.h" enum scheduler_days { diff --git a/src/core/qinisettings.h b/src/base/qinisettings.h similarity index 100% rename from src/core/qinisettings.h rename to src/base/qinisettings.h diff --git a/src/core/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp similarity index 100% rename from src/core/scanfoldersmodel.cpp rename to src/base/scanfoldersmodel.cpp diff --git a/src/core/scanfoldersmodel.h b/src/base/scanfoldersmodel.h similarity index 100% rename from src/core/scanfoldersmodel.h rename to src/base/scanfoldersmodel.h diff --git a/src/core/torrentfilter.cpp b/src/base/torrentfilter.cpp similarity index 100% rename from src/core/torrentfilter.cpp rename to src/base/torrentfilter.cpp diff --git a/src/core/torrentfilter.h b/src/base/torrentfilter.h similarity index 100% rename from src/core/torrentfilter.h rename to src/base/torrentfilter.h diff --git a/src/core/tristatebool.cpp b/src/base/tristatebool.cpp similarity index 100% rename from src/core/tristatebool.cpp rename to src/base/tristatebool.cpp diff --git a/src/core/tristatebool.h b/src/base/tristatebool.h similarity index 100% rename from src/core/tristatebool.h rename to src/base/tristatebool.h diff --git a/src/core/types.h b/src/base/types.h similarity index 100% rename from src/core/types.h rename to src/base/types.h diff --git a/src/core/unicodestrings.h b/src/base/unicodestrings.h similarity index 100% rename from src/core/unicodestrings.h rename to src/base/unicodestrings.h diff --git a/src/core/utils/fs.cpp b/src/base/utils/fs.cpp similarity index 100% rename from src/core/utils/fs.cpp rename to src/base/utils/fs.cpp diff --git a/src/core/utils/fs.h b/src/base/utils/fs.h similarity index 100% rename from src/core/utils/fs.h rename to src/base/utils/fs.h diff --git a/src/core/utils/gzip.cpp b/src/base/utils/gzip.cpp similarity index 100% rename from src/core/utils/gzip.cpp rename to src/base/utils/gzip.cpp diff --git a/src/core/utils/gzip.h b/src/base/utils/gzip.h similarity index 100% rename from src/core/utils/gzip.h rename to src/base/utils/gzip.h diff --git a/src/core/utils/misc.cpp b/src/base/utils/misc.cpp similarity index 99% rename from src/core/utils/misc.cpp rename to src/base/utils/misc.cpp index 24efe5281..3a637b827 100644 --- a/src/core/utils/misc.cpp +++ b/src/base/utils/misc.cpp @@ -72,9 +72,9 @@ const int UNLEN = 256; #include #endif -#include "core/utils/string.h" -#include "core/unicodestrings.h" -#include "core/logger.h" +#include "base/utils/string.h" +#include "base/unicodestrings.h" +#include "base/logger.h" #include "misc.h" #include "fs.h" diff --git a/src/core/utils/misc.h b/src/base/utils/misc.h similarity index 99% rename from src/core/utils/misc.h rename to src/base/utils/misc.h index e2d3e9964..fd62a637b 100644 --- a/src/core/utils/misc.h +++ b/src/base/utils/misc.h @@ -39,7 +39,7 @@ #include #include #include -#include "core/types.h" +#include "base/types.h" /* Miscellaneous functions that can be useful */ diff --git a/src/core/utils/string.cpp b/src/base/utils/string.cpp similarity index 100% rename from src/core/utils/string.cpp rename to src/base/utils/string.cpp diff --git a/src/core/utils/string.h b/src/base/utils/string.h similarity index 100% rename from src/core/utils/string.h rename to src/base/utils/string.h diff --git a/src/gui/about_imp.h b/src/gui/about_imp.h index f3b3e7584..762af37fc 100644 --- a/src/gui/about_imp.h +++ b/src/gui/about_imp.h @@ -36,7 +36,7 @@ #include #include #include -#include "core/unicodestrings.h" +#include "base/unicodestrings.h" class about : public QDialog, private Ui::AboutDlg{ Q_OBJECT diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index 4712e4581..7bee8afa5 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -35,16 +35,16 @@ #include #include -#include "core/preferences.h" -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/magneturi.h" -#include "core/bittorrent/torrentinfo.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/unicodestrings.h" +#include "base/preferences.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/magneturi.h" +#include "base/bittorrent/torrentinfo.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/unicodestrings.h" #include "guiiconprovider.h" #include "autoexpandabledialog.h" #include "messageboxraised.h" diff --git a/src/gui/addnewtorrentdialog.h b/src/gui/addnewtorrentdialog.h index e12f8758b..ae54f208a 100644 --- a/src/gui/addnewtorrentdialog.h +++ b/src/gui/addnewtorrentdialog.h @@ -35,8 +35,8 @@ #include #include -#include "core/bittorrent/infohash.h" -#include "core/bittorrent/torrentinfo.h" +#include "base/bittorrent/infohash.h" +#include "base/bittorrent/torrentinfo.h" QT_BEGIN_NAMESPACE namespace Ui { diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index 28f2c9115..f73192d3c 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -10,7 +10,7 @@ #include #include -#include "core/preferences.h" +#include "base/preferences.h" enum AdvSettingsCols { diff --git a/src/gui/deletionconfirmationdlg.h b/src/gui/deletionconfirmationdlg.h index 6356dfc2d..056fb526e 100644 --- a/src/gui/deletionconfirmationdlg.h +++ b/src/gui/deletionconfirmationdlg.h @@ -34,9 +34,9 @@ #include #include #include "ui_confirmdeletiondlg.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "guiiconprovider.h" -#include "core/utils/misc.h" +#include "base/utils/misc.h" class DeletionConfirmationDlg : public QDialog, private Ui::confirmDeletionDlg { Q_OBJECT diff --git a/src/gui/executionlog.cpp b/src/gui/executionlog.cpp index 57ec1d20f..f55946850 100644 --- a/src/gui/executionlog.cpp +++ b/src/gui/executionlog.cpp @@ -35,7 +35,7 @@ #include #include "executionlog.h" #include "ui_executionlog.h" -#include "core/logger.h" +#include "base/logger.h" #include "guiiconprovider.h" #include "loglistwidget.h" diff --git a/src/gui/guiiconprovider.cpp b/src/gui/guiiconprovider.cpp index 8fdd65a80..ae968115f 100644 --- a/src/gui/guiiconprovider.cpp +++ b/src/gui/guiiconprovider.cpp @@ -28,7 +28,7 @@ */ #include "guiiconprovider.h" -#include "core/preferences.h" +#include "base/preferences.h" #include #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) diff --git a/src/gui/guiiconprovider.h b/src/gui/guiiconprovider.h index 80d672ae2..2b6ad07d5 100644 --- a/src/gui/guiiconprovider.h +++ b/src/gui/guiiconprovider.h @@ -30,7 +30,7 @@ #ifndef GUIICONPROVIDER_H #define GUIICONPROVIDER_H -#include "core/iconprovider.h" +#include "base/iconprovider.h" class QIcon; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 8343b4c3f..ac9bbd729 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -49,20 +49,20 @@ #include "mainwindow.h" #include "transferlistwidget.h" -#include "core/utils/misc.h" +#include "base/utils/misc.h" #include "torrentcreatordlg.h" #include "downloadfromurldlg.h" #include "addnewtorrentdialog.h" #include "searchengine.h" #include "rss_imp.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/sessionstatus.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/sessionstatus.h" +#include "base/bittorrent/torrenthandle.h" #include "about_imp.h" #include "trackerlogin.h" #include "options_imp.h" #include "speedlimitdlg.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "trackerlist.h" #include "peerlistwidget.h" #include "transferlistfilterswidget.h" @@ -73,7 +73,7 @@ #include "torrentmodel.h" #include "executionlog.h" #include "guiiconprovider.h" -#include "core/logger.h" +#include "base/logger.h" #include "autoexpandabledialog.h" #ifdef Q_OS_MAC void qt_mac_set_dock_menu(QMenu *menu); @@ -85,8 +85,8 @@ void qt_mac_set_dock_menu(QMenu *menu); #endif #include "powermanagement.h" #ifdef Q_OS_WIN -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" #endif #define TIME_TRAY_BALLOON 5000 diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index c1b6b1e03..64b0a6cfa 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -42,14 +42,14 @@ #include #include "options_imp.h" -#include "core/preferences.h" -#include "core/utils/fs.h" +#include "base/preferences.h" +#include "base/utils/fs.h" #include "advancedsettings.h" -#include "core/scanfoldersmodel.h" -#include "core/bittorrent/session.h" +#include "base/scanfoldersmodel.h" +#include "base/bittorrent/session.h" #include "guiiconprovider.h" -#include "core/net/dnsupdater.h" -#include "core/unicodestrings.h" +#include "base/net/dnsupdater.h" +#include "base/unicodestrings.h" #ifndef QT_NO_OPENSSL #include diff --git a/src/gui/previewlistdelegate.h b/src/gui/previewlistdelegate.h index 0330c045a..9a7cb3601 100644 --- a/src/gui/previewlistdelegate.h +++ b/src/gui/previewlistdelegate.h @@ -37,8 +37,8 @@ #include #include #include -#include "core/utils/misc.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" #include "previewselect.h" #ifdef Q_OS_WIN diff --git a/src/gui/previewselect.cpp b/src/gui/previewselect.cpp index f37fe3654..0ae6b5232 100644 --- a/src/gui/previewselect.cpp +++ b/src/gui/previewselect.cpp @@ -36,11 +36,11 @@ #include #endif -#include "core/utils/misc.h" +#include "base/utils/misc.h" #include "previewlistdelegate.h" #include "previewselect.h" -#include "core/utils/fs.h" -#include "core/preferences.h" +#include "base/utils/fs.h" +#include "base/preferences.h" PreviewSelect::PreviewSelect(QWidget* parent, BitTorrent::TorrentHandle *const torrent) : QDialog(parent) diff --git a/src/gui/previewselect.h b/src/gui/previewselect.h index 023eef08e..16f509bcb 100644 --- a/src/gui/previewselect.h +++ b/src/gui/previewselect.h @@ -34,7 +34,7 @@ #include #include #include "ui_preview.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/bittorrent/torrenthandle.h" class PreviewListDelegate; diff --git a/src/gui/programupdater.cpp b/src/gui/programupdater.cpp index b71958b42..7a0a93900 100644 --- a/src/gui/programupdater.cpp +++ b/src/gui/programupdater.cpp @@ -39,8 +39,8 @@ #include #include "programupdater.h" -#include "core/utils/fs.h" -#include "core/preferences.h" +#include "base/utils/fs.h" +#include "base/preferences.h" #ifdef Q_OS_MAC const QUrl RSS_URL("http://sourceforge.net/projects/qbittorrent/rss?path=/qbittorrent-mac"); diff --git a/src/gui/properties/peerlistdelegate.h b/src/gui/properties/peerlistdelegate.h index 21a0d3b57..1c5be0cb5 100644 --- a/src/gui/properties/peerlistdelegate.h +++ b/src/gui/properties/peerlistdelegate.h @@ -33,8 +33,8 @@ #include #include -#include "core/utils/misc.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" class PeerListDelegate: public QItemDelegate { Q_OBJECT diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 32efd2436..c6a8360c8 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -36,14 +36,14 @@ #include #include -#include "core/net/reverseresolution.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/bittorrent/peerinfo.h" -#include "core/preferences.h" -#include "core/logger.h" -#include "core/unicodestrings.h" +#include "base/net/reverseresolution.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/bittorrent/peerinfo.h" +#include "base/preferences.h" +#include "base/logger.h" +#include "base/unicodestrings.h" #include "propertieswidget.h" -#include "core/net/geoipmanager.h" +#include "base/net/geoipmanager.h" #include "peersadditiondlg.h" #include "speedlimitdlg.h" #include "guiiconprovider.h" diff --git a/src/gui/properties/peersadditiondlg.h b/src/gui/properties/peersadditiondlg.h index d92a6c39e..5618ddf05 100644 --- a/src/gui/properties/peersadditiondlg.h +++ b/src/gui/properties/peersadditiondlg.h @@ -33,7 +33,7 @@ #include -#include "core/bittorrent/peerinfo.h" +#include "base/bittorrent/peerinfo.h" #include "ui_peersadditiondlg.h" class PeersAdditionDlg: public QDialog, private Ui::addPeersDialog diff --git a/src/gui/properties/propertieswidget.cpp b/src/gui/properties/propertieswidget.cpp index b3f2cefb5..bab2c717a 100644 --- a/src/gui/properties/propertieswidget.cpp +++ b/src/gui/properties/propertieswidget.cpp @@ -41,12 +41,12 @@ #include #include -#include "core/bittorrent/session.h" -#include "core/preferences.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/utils/string.h" -#include "core/unicodestrings.h" +#include "base/bittorrent/session.h" +#include "base/preferences.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" +#include "base/unicodestrings.h" #include "proplistdelegate.h" #include "torrentcontentfiltermodel.h" #include "torrentcontentmodel.h" diff --git a/src/gui/properties/propertieswidget.h b/src/gui/properties/propertieswidget.h index 3c845e0dc..854a99483 100644 --- a/src/gui/properties/propertieswidget.h +++ b/src/gui/properties/propertieswidget.h @@ -34,7 +34,7 @@ #include #include #include "ui_propertieswidget.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/bittorrent/torrenthandle.h" class TransferListWidget; diff --git a/src/gui/properties/proplistdelegate.cpp b/src/gui/properties/proplistdelegate.cpp index 5afd028a7..d75fb97e0 100644 --- a/src/gui/properties/proplistdelegate.cpp +++ b/src/gui/properties/proplistdelegate.cpp @@ -45,8 +45,8 @@ #endif #endif -#include "core/utils/misc.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" #include "propertieswidget.h" #include "proplistdelegate.h" #include "torrentcontentmodelitem.h" diff --git a/src/gui/properties/speedplotview.cpp b/src/gui/properties/speedplotview.cpp index d4cab2611..67ea81922 100644 --- a/src/gui/properties/speedplotview.cpp +++ b/src/gui/properties/speedplotview.cpp @@ -30,7 +30,7 @@ #include #include -#include "core/utils/misc.h" +#include "base/utils/misc.h" SpeedPlotView::SpeedPlotView(QWidget *parent) : QGraphicsView(parent) diff --git a/src/gui/properties/speedwidget.cpp b/src/gui/properties/speedwidget.cpp index 92ce17bf1..6a321c2f8 100644 --- a/src/gui/properties/speedwidget.cpp +++ b/src/gui/properties/speedwidget.cpp @@ -37,10 +37,10 @@ #include #include "propertieswidget.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/sessionstatus.h" -#include "core/preferences.h" -#include "core/utils/misc.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/sessionstatus.h" +#include "base/preferences.h" +#include "base/utils/misc.h" ComboBoxMenuButton::ComboBoxMenuButton(QWidget *parent, QMenu *menu) : QComboBox(parent) diff --git a/src/gui/properties/trackerlist.cpp b/src/gui/properties/trackerlist.cpp index fb9bf8d91..9772c38cf 100644 --- a/src/gui/properties/trackerlist.cpp +++ b/src/gui/properties/trackerlist.cpp @@ -42,12 +42,12 @@ #include #endif -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/bittorrent/peerinfo.h" -#include "core/bittorrent/trackerentry.h" -#include "core/preferences.h" -#include "core/utils/misc.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/bittorrent/peerinfo.h" +#include "base/bittorrent/trackerentry.h" +#include "base/preferences.h" +#include "base/utils/misc.h" #include "propertieswidget.h" #include "trackersadditiondlg.h" #include "guiiconprovider.h" diff --git a/src/gui/properties/trackersadditiondlg.cpp b/src/gui/properties/trackersadditiondlg.cpp index f170639ae..366824ee4 100644 --- a/src/gui/properties/trackersadditiondlg.cpp +++ b/src/gui/properties/trackersadditiondlg.cpp @@ -33,12 +33,12 @@ #include #include -#include "core/utils/misc.h" -#include "core/utils/fs.h" -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" -#include "core/bittorrent/trackerentry.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/bittorrent/trackerentry.h" +#include "base/bittorrent/torrenthandle.h" #include "guiiconprovider.h" #include "trackersadditiondlg.h" diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index b51c7bec1..bf5684a57 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -37,13 +37,13 @@ #include "automatedrssdownloader.h" #include "ui_automatedrssdownloader.h" #include "rssdownloadrulelist.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "rssmanager.h" #include "rssfeed.h" #include "guiiconprovider.h" #include "autoexpandabledialog.h" -#include "core/utils/fs.h" -#include "core/utils/string.h" +#include "base/utils/fs.h" +#include "base/utils/string.h" AutomatedRssDownloader::AutomatedRssDownloader(const QWeakPointer& manager, QWidget *parent) : QDialog(parent), diff --git a/src/gui/rss/htmlbrowser.cpp b/src/gui/rss/htmlbrowser.cpp index dbcec40ba..82ea75821 100644 --- a/src/gui/rss/htmlbrowser.cpp +++ b/src/gui/rss/htmlbrowser.cpp @@ -10,7 +10,7 @@ #include #include -#include "core/utils/fs.h" +#include "base/utils/fs.h" HtmlBrowser::HtmlBrowser(QWidget* parent) : QTextBrowser(parent) diff --git a/src/gui/rss/rss_imp.cpp b/src/gui/rss/rss_imp.cpp index 409a0a83c..2cda0096c 100644 --- a/src/gui/rss/rss_imp.cpp +++ b/src/gui/rss/rss_imp.cpp @@ -39,10 +39,10 @@ #include "rss_imp.h" #include "feedlistwidget.h" -#include "core/bittorrent/session.h" -#include "core/net/downloadmanager.h" +#include "base/bittorrent/session.h" +#include "base/net/downloadmanager.h" #include "cookiesdlg.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "rsssettingsdlg.h" #include "rssmanager.h" #include "rssfolder.h" diff --git a/src/gui/rss/rssdownloadrule.cpp b/src/gui/rss/rssdownloadrule.cpp index 5c420f9db..cd37a3a56 100644 --- a/src/gui/rss/rssdownloadrule.cpp +++ b/src/gui/rss/rssdownloadrule.cpp @@ -33,10 +33,10 @@ #include #include "rssdownloadrule.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "rssfeed.h" #include "rssarticle.h" -#include "core/utils/fs.h" +#include "base/utils/fs.h" RssDownloadRule::RssDownloadRule(): m_enabled(false), m_useRegex(false), m_apstate(USE_GLOBAL) { diff --git a/src/gui/rss/rssdownloadrulelist.cpp b/src/gui/rss/rssdownloadrulelist.cpp index 33ae84ea4..12f6a9710 100644 --- a/src/gui/rss/rssdownloadrulelist.cpp +++ b/src/gui/rss/rssdownloadrulelist.cpp @@ -33,8 +33,8 @@ #include #include "rssdownloadrulelist.h" -#include "core/preferences.h" -#include "core/qinisettings.h" +#include "base/preferences.h" +#include "base/qinisettings.h" RssDownloadRuleList::RssDownloadRuleList() { diff --git a/src/gui/rss/rssfeed.cpp b/src/gui/rss/rssfeed.cpp index 865606960..7659ecae1 100644 --- a/src/gui/rss/rssfeed.cpp +++ b/src/gui/rss/rssfeed.cpp @@ -31,19 +31,19 @@ #include #include "rssfeed.h" #include "rssmanager.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/magneturi.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/magneturi.h" #include "rssfolder.h" -#include "core/preferences.h" -#include "core/qinisettings.h" +#include "base/preferences.h" +#include "base/qinisettings.h" #include "rssarticle.h" #include "rssparser.h" -#include "core/utils/misc.h" +#include "base/utils/misc.h" #include "rssdownloadrulelist.h" -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" -#include "core/utils/fs.h" -#include "core/logger.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/utils/fs.h" +#include "base/logger.h" bool rssArticleDateRecentThan(const RssArticlePtr& left, const RssArticlePtr& right) { diff --git a/src/gui/rss/rssfolder.cpp b/src/gui/rss/rssfolder.cpp index cb5c9cae0..12b16e6df 100644 --- a/src/gui/rss/rssfolder.cpp +++ b/src/gui/rss/rssfolder.cpp @@ -33,7 +33,7 @@ #include "guiiconprovider.h" #include "rssfolder.h" #include "rssarticle.h" -#include "core/bittorrent/session.h" +#include "base/bittorrent/session.h" #include "rssmanager.h" #include "rssfeed.h" diff --git a/src/gui/rss/rssmanager.cpp b/src/gui/rss/rssmanager.cpp index 5ec47edbe..338c82d17 100644 --- a/src/gui/rss/rssmanager.cpp +++ b/src/gui/rss/rssmanager.cpp @@ -30,8 +30,8 @@ #include #include "rssmanager.h" -#include "core/preferences.h" -#include "core/bittorrent/session.h" +#include "base/preferences.h" +#include "base/bittorrent/session.h" #include "rssfeed.h" #include "rssarticle.h" #include "rssdownloadrulelist.h" diff --git a/src/gui/rss/rssparser.cpp b/src/gui/rss/rssparser.cpp index b3a1cac37..e09023cea 100644 --- a/src/gui/rss/rssparser.cpp +++ b/src/gui/rss/rssparser.cpp @@ -29,7 +29,7 @@ */ #include "rssparser.h" -#include "core/utils/fs.h" +#include "base/utils/fs.h" #include #include diff --git a/src/gui/rss/rsssettingsdlg.cpp b/src/gui/rss/rsssettingsdlg.cpp index 627a30a89..08acc1d96 100644 --- a/src/gui/rss/rsssettingsdlg.cpp +++ b/src/gui/rss/rsssettingsdlg.cpp @@ -30,7 +30,7 @@ #include "rsssettingsdlg.h" #include "ui_rsssettingsdlg.h" -#include "core/preferences.h" +#include "base/preferences.h" RssSettingsDlg::RssSettingsDlg(QWidget *parent) : QDialog(parent), diff --git a/src/gui/shutdownconfirm.cpp b/src/gui/shutdownconfirm.cpp index 50932ff58..8fc204320 100644 --- a/src/gui/shutdownconfirm.cpp +++ b/src/gui/shutdownconfirm.cpp @@ -30,7 +30,7 @@ * Contact : hammered999@gmail.com */ -#include "core/types.h" +#include "base/types.h" #include "shutdownconfirm.h" #include diff --git a/src/gui/shutdownconfirm.h b/src/gui/shutdownconfirm.h index 26a3f8d05..b28792945 100644 --- a/src/gui/shutdownconfirm.h +++ b/src/gui/shutdownconfirm.h @@ -33,7 +33,7 @@ #include #include -#include "core/utils/misc.h" +#include "base/utils/misc.h" class ShutdownConfirmDlg : public QMessageBox { diff --git a/src/gui/speedlimitdlg.cpp b/src/gui/speedlimitdlg.cpp index 65094b529..c9ba9cb1b 100644 --- a/src/gui/speedlimitdlg.cpp +++ b/src/gui/speedlimitdlg.cpp @@ -29,7 +29,7 @@ */ #include "speedlimitdlg.h" -#include "core/unicodestrings.h" +#include "base/unicodestrings.h" SpeedLimitDialog::SpeedLimitDialog(QWidget *parent): QDialog(parent) { diff --git a/src/gui/speedlimitdlg.h b/src/gui/speedlimitdlg.h index 7e26da027..e62f07da7 100644 --- a/src/gui/speedlimitdlg.h +++ b/src/gui/speedlimitdlg.h @@ -34,8 +34,8 @@ #include #include #include "ui_bandwidth_limit.h" -#include "core/utils/misc.h" -#include "core/bittorrent/session.h" +#include "base/utils/misc.h" +#include "base/bittorrent/session.h" class SpeedLimitDialog : public QDialog, private Ui_bandwidth_dlg { Q_OBJECT diff --git a/src/gui/statsdialog.cpp b/src/gui/statsdialog.cpp index dba0b9fa0..8b1321171 100644 --- a/src/gui/statsdialog.cpp +++ b/src/gui/statsdialog.cpp @@ -31,12 +31,12 @@ #include "statsdialog.h" #include "ui_statsdialog.h" -#include "core/utils/misc.h" -#include "core/utils/string.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/sessionstatus.h" -#include "core/bittorrent/cachestatus.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/sessionstatus.h" +#include "base/bittorrent/cachestatus.h" +#include "base/bittorrent/torrenthandle.h" StatsDialog::StatsDialog(QWidget *parent) : QDialog(parent) diff --git a/src/gui/statusbar.cpp b/src/gui/statusbar.cpp index 47cab07cd..211ec7811 100644 --- a/src/gui/statusbar.cpp +++ b/src/gui/statusbar.cpp @@ -33,13 +33,13 @@ #include #include -#include "core/bittorrent/session.h" -#include "core/bittorrent/sessionstatus.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/sessionstatus.h" #include "speedlimitdlg.h" #include "guiiconprovider.h" -#include "core/preferences.h" -#include "core/utils/misc.h" -#include "core/logger.h" +#include "base/preferences.h" +#include "base/utils/misc.h" +#include "base/logger.h" StatusBar::StatusBar(QStatusBar *bar) : m_bar(bar) diff --git a/src/gui/torrentcontentfiltermodel.cpp b/src/gui/torrentcontentfiltermodel.cpp index 48c9e2e6b..ac0a0edf5 100644 --- a/src/gui/torrentcontentfiltermodel.cpp +++ b/src/gui/torrentcontentfiltermodel.cpp @@ -28,7 +28,7 @@ * Contact : chris@qbittorrent.org */ -#include "core/utils/string.h" +#include "base/utils/string.h" #include "torrentcontentfiltermodel.h" #include "torrentcontentmodel.h" diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index 018bcd2f8..2a351fbc9 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -32,8 +32,8 @@ #include #include "guiiconprovider.h" -#include "core/utils/misc.h" -#include "core/utils/fs.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" #include "torrentcontentmodel.h" #include "torrentcontentmodelitem.h" #include "torrentcontentmodelfolder.h" diff --git a/src/gui/torrentcontentmodel.h b/src/gui/torrentcontentmodel.h index 25448190a..547c85cfb 100644 --- a/src/gui/torrentcontentmodel.h +++ b/src/gui/torrentcontentmodel.h @@ -36,7 +36,7 @@ #include #include -#include "core/bittorrent/torrentinfo.h" +#include "base/bittorrent/torrentinfo.h" #include "torrentcontentmodelitem.h" class TorrentContentModelFile; diff --git a/src/gui/torrentcontentmodelitem.cpp b/src/gui/torrentcontentmodelitem.cpp index 0f31dc296..65522b5d2 100644 --- a/src/gui/torrentcontentmodelitem.cpp +++ b/src/gui/torrentcontentmodelitem.cpp @@ -28,8 +28,8 @@ * Contact : chris@qbittorrent.org */ -#include "core/utils/misc.h" -#include "core/utils/fs.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" #include "torrentcontentmodelitem.h" #include "torrentcontentmodelfolder.h" #include diff --git a/src/gui/torrentcreatordlg.cpp b/src/gui/torrentcreatordlg.cpp index a8b522316..1dec48678 100644 --- a/src/gui/torrentcreatordlg.cpp +++ b/src/gui/torrentcreatordlg.cpp @@ -33,13 +33,13 @@ #include #include "torrentcreatordlg.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/preferences.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/preferences.h" #include "guiiconprovider.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrentinfo.h" -#include "core/bittorrent/torrentcreatorthread.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrentinfo.h" +#include "base/bittorrent/torrentcreatorthread.h" const uint NB_PIECES_MIN = 1200; const uint NB_PIECES_MAX = 2200; diff --git a/src/gui/torrentimportdlg.cpp b/src/gui/torrentimportdlg.cpp index a28a6145b..8fa90a1e1 100644 --- a/src/gui/torrentimportdlg.cpp +++ b/src/gui/torrentimportdlg.cpp @@ -34,11 +34,11 @@ #include "torrentimportdlg.h" #include "ui_torrentimportdlg.h" -#include "core/preferences.h" -#include "core/bittorrent/infohash.h" -#include "core/bittorrent/session.h" +#include "base/preferences.h" +#include "base/bittorrent/infohash.h" +#include "base/bittorrent/session.h" #include "guiiconprovider.h" -#include "core/utils/fs.h" +#include "base/utils/fs.h" TorrentImportDlg::TorrentImportDlg(QWidget *parent): QDialog(parent), diff --git a/src/gui/torrentimportdlg.h b/src/gui/torrentimportdlg.h index 568bb2811..780d38bf1 100644 --- a/src/gui/torrentimportdlg.h +++ b/src/gui/torrentimportdlg.h @@ -34,7 +34,7 @@ #include #include -#include "core/bittorrent/torrentinfo.h" +#include "base/bittorrent/torrentinfo.h" namespace Ui { diff --git a/src/gui/torrentmodel.cpp b/src/gui/torrentmodel.cpp index 7c6c84759..67f0bad0d 100644 --- a/src/gui/torrentmodel.cpp +++ b/src/gui/torrentmodel.cpp @@ -34,10 +34,10 @@ #include #include -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/torrentfilter.h" -#include "core/utils/fs.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/torrentfilter.h" +#include "base/utils/fs.h" #include "torrentmodel.h" static QIcon getIconByState(BitTorrent::TorrentState state); diff --git a/src/gui/trackerlogin.cpp b/src/gui/trackerlogin.cpp index 01acc782d..c13efcd1a 100644 --- a/src/gui/trackerlogin.cpp +++ b/src/gui/trackerlogin.cpp @@ -28,7 +28,7 @@ * Contact : chris@qbittorrent.org */ -#include "core/bittorrent/torrenthandle.h" +#include "base/bittorrent/torrenthandle.h" #include "trackerlogin.h" trackerLogin::trackerLogin(QWidget *parent, BitTorrent::TorrentHandle *const torrent) diff --git a/src/gui/transferlistdelegate.cpp b/src/gui/transferlistdelegate.cpp index 099cc3170..6aeadda44 100644 --- a/src/gui/transferlistdelegate.cpp +++ b/src/gui/transferlistdelegate.cpp @@ -34,12 +34,12 @@ #include #include #include -#include "core/utils/misc.h" -#include "core/utils/string.h" +#include "base/utils/misc.h" +#include "base/utils/string.h" #include "torrentmodel.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/unicodestrings.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/unicodestrings.h" #ifdef Q_OS_WIN #ifndef QBT_USES_QT5 diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index f70c9d84f..b695d0565 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -41,20 +41,20 @@ #include "transferlistdelegate.h" #include "transferlistwidget.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "torrentmodel.h" #include "guiiconprovider.h" -#include "core/utils/fs.h" -#include "core/utils/string.h" +#include "base/utils/fs.h" +#include "base/utils/string.h" #include "autoexpandabledialog.h" -#include "core/torrentfilter.h" -#include "core/bittorrent/trackerentry.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" -#include "core/utils/misc.h" -#include "core/logger.h" +#include "base/torrentfilter.h" +#include "base/bittorrent/trackerentry.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/utils/misc.h" +#include "base/logger.h" FiltersBase::FiltersBase(QWidget *parent, TransferListWidget *transferList) : QListWidget(parent) diff --git a/src/gui/transferlistsortmodel.cpp b/src/gui/transferlistsortmodel.cpp index e54d45a7d..658563f37 100644 --- a/src/gui/transferlistsortmodel.cpp +++ b/src/gui/transferlistsortmodel.cpp @@ -30,9 +30,9 @@ #include -#include "core/types.h" -#include "core/utils/string.h" -#include "core/bittorrent/torrenthandle.h" +#include "base/types.h" +#include "base/utils/string.h" +#include "base/bittorrent/torrenthandle.h" #include "torrentmodel.h" #include "transferlistsortmodel.h" diff --git a/src/gui/transferlistsortmodel.h b/src/gui/transferlistsortmodel.h index 793d630cc..ded73a7ab 100644 --- a/src/gui/transferlistsortmodel.h +++ b/src/gui/transferlistsortmodel.h @@ -32,7 +32,7 @@ #define TRANSFERLISTSORTMODEL_H #include -#include "core/torrentfilter.h" +#include "base/torrentfilter.h" class QStringList; diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index 1a6524467..87508d747 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -45,21 +45,21 @@ #endif #include "transferlistwidget.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/torrentfilter.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/torrentfilter.h" #include "transferlistdelegate.h" #include "previewselect.h" #include "speedlimitdlg.h" #include "updownratiodlg.h" #include "options_imp.h" #include "mainwindow.h" -#include "core/preferences.h" +#include "base/preferences.h" #include "torrentmodel.h" #include "deletionconfirmationdlg.h" #include "propertieswidget.h" #include "guiiconprovider.h" -#include "core/utils/fs.h" +#include "base/utils/fs.h" #include "autoexpandabledialog.h" #include "transferlistsortmodel.h" diff --git a/src/gui/updownratiodlg.cpp b/src/gui/updownratiodlg.cpp index f5705fc39..d6c753e01 100644 --- a/src/gui/updownratiodlg.cpp +++ b/src/gui/updownratiodlg.cpp @@ -31,7 +31,7 @@ #include "updownratiodlg.h" #include "ui_updownratiodlg.h" -#include "core/preferences.h" +#include "base/preferences.h" UpDownRatioDlg::UpDownRatioDlg(bool useDefault, qreal initialValue, qreal maxValue, QWidget *parent) diff --git a/src/searchengine/engineselectdlg.cpp b/src/searchengine/engineselectdlg.cpp index 4e16e81e8..0d78a81ef 100644 --- a/src/searchengine/engineselectdlg.cpp +++ b/src/searchengine/engineselectdlg.cpp @@ -29,10 +29,10 @@ */ #include "engineselectdlg.h" -#include "core/net/downloadmanager.h" -#include "core/net/downloadhandler.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" #include "ico.h" #include "searchengine.h" #include "pluginsource.h" diff --git a/src/searchengine/searchengine.cpp b/src/searchengine/searchengine.cpp index 54e50c035..dd3f143a3 100644 --- a/src/searchengine/searchengine.cpp +++ b/src/searchengine/searchengine.cpp @@ -49,10 +49,10 @@ #endif #include "searchengine.h" -#include "core/bittorrent/session.h" -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/preferences.h" +#include "base/bittorrent/session.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/preferences.h" #include "searchlistdelegate.h" #include "mainwindow.h" #include "addnewtorrentdialog.h" diff --git a/src/searchengine/searchlistdelegate.h b/src/searchengine/searchlistdelegate.h index d2c3a538b..78ba36ac5 100644 --- a/src/searchengine/searchlistdelegate.h +++ b/src/searchengine/searchlistdelegate.h @@ -36,7 +36,7 @@ #include #include #include -#include "core/utils/misc.h" +#include "base/utils/misc.h" #include "searchengine.h" class SearchListDelegate: public QItemDelegate { diff --git a/src/searchengine/searchsortmodel.h b/src/searchengine/searchsortmodel.h index c0cf7ec52..9b58e9964 100644 --- a/src/searchengine/searchsortmodel.h +++ b/src/searchengine/searchsortmodel.h @@ -2,7 +2,7 @@ #define SEARCHSORTMODEL_H #include -#include "core/utils/string.h" +#include "base/utils/string.h" class SearchSortModel : public QSortFilterProxyModel { Q_OBJECT diff --git a/src/searchengine/searchtab.cpp b/src/searchengine/searchtab.cpp index 3d1ce051c..e4b4e414f 100644 --- a/src/searchengine/searchtab.cpp +++ b/src/searchengine/searchtab.cpp @@ -39,9 +39,9 @@ #include "searchtab.h" #include "searchlistdelegate.h" -#include "core/utils/misc.h" +#include "base/utils/misc.h" #include "searchengine.h" -#include "core/preferences.h" +#include "base/preferences.h" SearchTab::SearchTab(SearchEngine *parent) : QWidget(), parent(parent) { diff --git a/src/searchengine/supportedengines.h b/src/searchengine/supportedengines.h index defe3531b..7835aefdb 100644 --- a/src/searchengine/supportedengines.h +++ b/src/searchengine/supportedengines.h @@ -41,9 +41,9 @@ #include #include -#include "core/utils/fs.h" -#include "core/utils/misc.h" -#include "core/preferences.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/preferences.h" class SearchCategories: public QObject, public QHash { Q_OBJECT diff --git a/src/src.pro b/src/src.pro index 95d19914c..7d87e9f64 100644 --- a/src/src.pro +++ b/src/src.pro @@ -61,7 +61,7 @@ win32: DEFINES += NOMINMAX INCLUDEPATH += $$PWD include(app/app.pri) -include(core/core.pri) +include(base/base.pri) !nowebui: include(webui/webui.pri) !nogui { include(gui/gui.pri) diff --git a/src/webui/abstractwebapplication.cpp b/src/webui/abstractwebapplication.cpp index 2824780a5..9e09010e4 100644 --- a/src/webui/abstractwebapplication.cpp +++ b/src/webui/abstractwebapplication.cpp @@ -35,7 +35,7 @@ #include #include -#include "core/preferences.h" +#include "base/preferences.h" #include "websessiondata.h" #include "abstractwebapplication.h" diff --git a/src/webui/abstractwebapplication.h b/src/webui/abstractwebapplication.h index 152a39f8a..ab8ad378f 100644 --- a/src/webui/abstractwebapplication.h +++ b/src/webui/abstractwebapplication.h @@ -32,9 +32,9 @@ #include #include #include -#include "core/http/types.h" -#include "core/http/responsebuilder.h" -#include "core/http/irequesthandler.h" +#include "base/http/types.h" +#include "base/http/responsebuilder.h" +#include "base/http/irequesthandler.h" struct WebSession; struct WebSessionData; diff --git a/src/webui/btjson.cpp b/src/webui/btjson.cpp index 342683709..51e779f37 100644 --- a/src/webui/btjson.cpp +++ b/src/webui/btjson.cpp @@ -29,14 +29,14 @@ */ #include "btjson.h" -#include "core/utils/misc.h" -#include "core/utils/fs.h" -#include "core/preferences.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/sessionstatus.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/bittorrent/trackerentry.h" -#include "core/torrentfilter.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" +#include "base/preferences.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/sessionstatus.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/bittorrent/trackerentry.h" +#include "base/torrentfilter.h" #include "jsonutils.h" #include diff --git a/src/webui/prefjson.cpp b/src/webui/prefjson.cpp index 6d74b6e1a..86517d326 100644 --- a/src/webui/prefjson.cpp +++ b/src/webui/prefjson.cpp @@ -29,9 +29,9 @@ */ #include "prefjson.h" -#include "core/preferences.h" -#include "core/scanfoldersmodel.h" -#include "core/utils/fs.h" +#include "base/preferences.h" +#include "base/scanfoldersmodel.h" +#include "base/utils/fs.h" #ifndef QT_NO_OPENSSL #include diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index c0712fd4a..d5a37a086 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -32,19 +32,20 @@ #include #include #include -#include "core/iconprovider.h" -#include "core/utils/misc.h" -#include "core/utils/fs.h" -#include "core/utils/string.h" -#include "core/preferences.h" + +#include "base/iconprovider.h" +#include "base/utils/misc.h" +#include "base/utils/fs.h" +#include "base/utils/string.h" +#include "base/preferences.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/trackerentry.h" +#include "base/bittorrent/torrentinfo.h" +#include "base/bittorrent/torrenthandle.h" +#include "base/net/downloadmanager.h" #include "btjson.h" #include "prefjson.h" #include "jsonutils.h" -#include "core/bittorrent/session.h" -#include "core/bittorrent/trackerentry.h" -#include "core/bittorrent/torrentinfo.h" -#include "core/bittorrent/torrenthandle.h" -#include "core/net/downloadmanager.h" #include "websessiondata.h" #include "webapplication.h" diff --git a/src/webui/webui.cpp b/src/webui/webui.cpp index f384c57ce..93add39c7 100644 --- a/src/webui/webui.cpp +++ b/src/webui/webui.cpp @@ -26,11 +26,11 @@ * exception statement from your version. */ -#include "core/preferences.h" -#include "core/logger.h" -#include "core/http/server.h" -#include "core/net/dnsupdater.h" -#include "core/net/portforwarder.h" +#include "base/preferences.h" +#include "base/logger.h" +#include "base/http/server.h" +#include "base/net/dnsupdater.h" +#include "base/net/portforwarder.h" #include "webapplication.h" #include "webui.h" From 3797cc767f873e1c15e0296248771f1e659fdc73 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 26 Aug 2015 20:05:57 +0300 Subject: [PATCH 013/238] Fix search-related file/class names. --- src/gui/mainwindow.cpp | 4 +- src/gui/mainwindow.h | 4 +- src/searchengine/engineselectdlg.cpp | 62 +++++++++---------- src/searchengine/engineselectdlg.h | 9 +-- .../{engineselect.ui => engineselectdlg.ui} | 4 +- .../{pluginsource.h => pluginsourcedlg.h} | 14 ++--- .../{pluginsource.ui => pluginsourcedlg.ui} | 4 +- src/searchengine/searchengine.pri | 12 ++-- src/searchengine/searchlistdelegate.h | 2 +- src/searchengine/searchtab.cpp | 4 +- src/searchengine/searchtab.h | 21 ++++--- .../{searchengine.cpp => searchwidget.cpp} | 52 ++++++++-------- .../{searchengine.h => searchwidget.h} | 18 +++--- .../{search.ui => searchwidget.ui} | 4 +- 14 files changed, 108 insertions(+), 106 deletions(-) rename src/searchengine/{engineselect.ui => engineselectdlg.ui} (97%) rename src/searchengine/{pluginsource.h => pluginsourcedlg.h} (87%) rename src/searchengine/{pluginsource.ui => pluginsourcedlg.ui} (93%) rename src/searchengine/{searchengine.cpp => searchwidget.cpp} (95%) rename src/searchengine/{searchengine.h => searchwidget.h} (93%) rename src/searchengine/{search.ui => searchwidget.ui} (98%) diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index ac9bbd729..953392430 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -53,7 +53,7 @@ #include "torrentcreatordlg.h" #include "downloadfromurldlg.h" #include "addnewtorrentdialog.h" -#include "searchengine.h" +#include "searchwidget.h" #include "rss_imp.h" #include "base/bittorrent/session.h" #include "base/bittorrent/sessionstatus.h" @@ -526,7 +526,7 @@ void MainWindow::displaySearchTab(bool enable) if (enable) { // RSS tab if (!searchEngine) { - searchEngine = new SearchEngine(this); + searchEngine = new SearchWidget(this); tabs->insertTab(1, searchEngine, GuiIconProvider::instance()->getIcon("edit-find"), tr("Search")); } } diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index a8cd49944..5c2338c3e 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -38,7 +38,7 @@ #include "statsdialog.h" class downloadFromURL; -class SearchEngine; +class SearchWidget; class RSSImp; class about; class options_imp; @@ -192,7 +192,7 @@ private: QSplitter *hSplitter; QSplitter *vSplitter; // Search - QPointer searchEngine; + QPointer searchEngine; // RSS QPointer rssWidget; // Execution Log diff --git a/src/searchengine/engineselectdlg.cpp b/src/searchengine/engineselectdlg.cpp index 0d78a81ef..d51f4cb2d 100644 --- a/src/searchengine/engineselectdlg.cpp +++ b/src/searchengine/engineselectdlg.cpp @@ -34,8 +34,8 @@ #include "base/utils/fs.h" #include "base/utils/misc.h" #include "ico.h" -#include "searchengine.h" -#include "pluginsource.h" +#include "searchwidget.h" +#include "pluginsourcedlg.h" #include "guiiconprovider.h" #include "autoexpandabledialog.h" #include @@ -53,7 +53,7 @@ enum EngineColumns {ENGINE_NAME, ENGINE_VERSION, ENGINE_URL, ENGINE_STATE, ENGINE_ID}; -engineSelectDlg::engineSelectDlg(QWidget *parent, SupportedEngines *supported_engines) +EngineSelectDlg::EngineSelectDlg(QWidget *parent, SupportedEngines *supported_engines) : QDialog(parent) , supported_engines(supported_engines) , m_updateUrl(QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/") + (Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova") + "/engines/") @@ -82,13 +82,13 @@ engineSelectDlg::engineSelectDlg(QWidget *parent, SupportedEngines *supported_en show(); } -engineSelectDlg::~engineSelectDlg() { +EngineSelectDlg::~EngineSelectDlg() { qDebug("Destroying engineSelectDlg"); emit enginesChanged(); qDebug("Engine plugins dialog destroyed"); } -void engineSelectDlg::dropEvent(QDropEvent *event) { +void EngineSelectDlg::dropEvent(QDropEvent *event) { event->acceptProposedAction(); QStringList files; if (event->mimeData()->hasUrls()) { @@ -123,7 +123,7 @@ void engineSelectDlg::dropEvent(QDropEvent *event) { } // Decode if we accept drag 'n drop or not -void engineSelectDlg::dragEnterEvent(QDragEnterEvent *event) { +void EngineSelectDlg::dragEnterEvent(QDragEnterEvent *event) { QString mime; foreach (mime, event->mimeData()->formats()) { qDebug("mimeData: %s", qPrintable(mime)); @@ -133,13 +133,13 @@ void engineSelectDlg::dragEnterEvent(QDragEnterEvent *event) { } } -void engineSelectDlg::on_updateButton_clicked() { +void EngineSelectDlg::on_updateButton_clicked() { // Download version file from update server on sourceforge setCursor(QCursor(Qt::WaitCursor)); downloadFromUrl(m_updateUrl + "versions.txt"); } -void engineSelectDlg::toggleEngineState(QTreeWidgetItem *item, int) { +void EngineSelectDlg::toggleEngineState(QTreeWidgetItem *item, int) { SupportedEngine *engine = supported_engines->value(item->text(ENGINE_ID)); engine->setEnabled(!engine->isEnabled()); if (engine->isEnabled()) { @@ -151,7 +151,7 @@ void engineSelectDlg::toggleEngineState(QTreeWidgetItem *item, int) { } } -void engineSelectDlg::displayContextMenu(const QPoint&) { +void EngineSelectDlg::displayContextMenu(const QPoint&) { QMenu myContextMenu(this); // Enable/disable pause/start action given the DL state QList items = pluginsTree->selectedItems(); @@ -164,11 +164,11 @@ void engineSelectDlg::displayContextMenu(const QPoint&) { myContextMenu.exec(QCursor::pos()); } -void engineSelectDlg::on_closeButton_clicked() { +void EngineSelectDlg::on_closeButton_clicked() { close(); } -void engineSelectDlg::on_actionUninstall_triggered() { +void EngineSelectDlg::on_actionUninstall_triggered() { QList items = pluginsTree->selectedItems(); QTreeWidgetItem *item; bool error = false; @@ -205,7 +205,7 @@ void engineSelectDlg::on_actionUninstall_triggered() { QMessageBox::information(0, tr("Uninstall success"), tr("All selected plugins were uninstalled successfully")); } -void engineSelectDlg::enableSelection(bool enable) { +void EngineSelectDlg::enableSelection(bool enable) { QList items = pluginsTree->selectedItems(); QTreeWidgetItem *item; foreach (item, items) { @@ -224,14 +224,14 @@ void engineSelectDlg::enableSelection(bool enable) { } // Set the color of a row in data model -void engineSelectDlg::setRowColor(int row, QString color) { +void EngineSelectDlg::setRowColor(int row, QString color) { QTreeWidgetItem *item = pluginsTree->topLevelItem(row); for (int i=0; icolumnCount(); ++i) { item->setData(i, Qt::ForegroundRole, QVariant(QColor(color))); } } -QList engineSelectDlg::findItemsWithUrl(QString url) { +QList EngineSelectDlg::findItemsWithUrl(QString url) { QList res; for (int i=0; itopLevelItemCount(); ++i) { QTreeWidgetItem *item = pluginsTree->topLevelItem(i); @@ -241,7 +241,7 @@ QList engineSelectDlg::findItemsWithUrl(QString url) { return res; } -QTreeWidgetItem* engineSelectDlg::findItemWithID(QString id) { +QTreeWidgetItem* EngineSelectDlg::findItemWithID(QString id) { QList res; for (int i=0; itopLevelItemCount(); ++i) { QTreeWidgetItem *item = pluginsTree->topLevelItem(i); @@ -251,15 +251,15 @@ QTreeWidgetItem* engineSelectDlg::findItemWithID(QString id) { return 0; } -bool engineSelectDlg::isUpdateNeeded(QString plugin_name, qreal new_version) const { - qreal old_version = SearchEngine::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"); +bool EngineSelectDlg::isUpdateNeeded(QString plugin_name, qreal new_version) const { + qreal old_version = SearchWidget::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"); qDebug("IsUpdate needed? tobeinstalled: %.2f, alreadyinstalled: %.2f", new_version, old_version); return (new_version > old_version); } -void engineSelectDlg::installPlugin(QString path, QString plugin_name) { +void EngineSelectDlg::installPlugin(QString path, QString plugin_name) { qDebug("Asked to install plugin at %s", qPrintable(path)); - qreal new_version = SearchEngine::getPluginVersion(path); + qreal new_version = SearchWidget::getPluginVersion(path); if (new_version == 0.0) { QMessageBox::warning(this, tr("Invalid plugin"), tr("The search engine plugin is invalid, please contact the author.")); return; @@ -304,7 +304,7 @@ void engineSelectDlg::installPlugin(QString path, QString plugin_name) { // Install was successful, remove backup and update plugin version if (update) { Utils::Fs::forceRemove(dest_path+".bak"); - qreal version = SearchEngine::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"); + qreal version = SearchWidget::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"); QTreeWidgetItem *item = findItemWithID(plugin_name); item->setText(ENGINE_VERSION, QString::number(version, 'f', 2)); QMessageBox::information(this, tr("Search plugin install"), tr("'%1' search engine plugin was successfully updated.", "%1 is the name of the search engine").arg(plugin_name)); @@ -315,7 +315,7 @@ void engineSelectDlg::installPlugin(QString path, QString plugin_name) { } } -void engineSelectDlg::loadSupportedSearchEngines() { +void EngineSelectDlg::loadSupportedSearchEngines() { // Some clean up first pluginsTree->clear(); foreach (QString name, supported_engines->keys()) { @@ -323,7 +323,7 @@ void engineSelectDlg::loadSupportedSearchEngines() { } } -void engineSelectDlg::addNewEngine(QString engine_name) { +void EngineSelectDlg::addNewEngine(QString engine_name) { QTreeWidgetItem *item = new QTreeWidgetItem(pluginsTree); SupportedEngine *engine = supported_engines->value(engine_name); item->setText(ENGINE_NAME, engine->getFullName()); @@ -351,17 +351,17 @@ void engineSelectDlg::addNewEngine(QString engine_name) { } } // Load version - qreal version = SearchEngine::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + engine->getName() + ".py"); + qreal version = SearchWidget::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + engine->getName() + ".py"); item->setText(ENGINE_VERSION, QString::number(version, 'f', 2)); } -void engineSelectDlg::on_installButton_clicked() { - pluginSourceDlg *dlg = new pluginSourceDlg(this); +void EngineSelectDlg::on_installButton_clicked() { + PluginSourceDlg *dlg = new PluginSourceDlg(this); connect(dlg, SIGNAL(askForLocalFile()), this, SLOT(askForLocalPlugin())); connect(dlg, SIGNAL(askForUrl()), this, SLOT(askForPluginUrl())); } -void engineSelectDlg::askForPluginUrl() { +void EngineSelectDlg::askForPluginUrl() { bool ok(false); QString clipTxt = qApp->clipboard()->text(); QString defaultUrl = "http://"; @@ -391,7 +391,7 @@ void engineSelectDlg::askForPluginUrl() { downloadFromUrl(url); } -void engineSelectDlg::askForLocalPlugin() { +void EngineSelectDlg::askForLocalPlugin() { QStringList pathsList = QFileDialog::getOpenFileNames(0, tr("Select search plugins"), QDir::homePath(), tr("qBittorrent search plugin")+QString::fromUtf8(" (*.py)")); @@ -404,7 +404,7 @@ void engineSelectDlg::askForLocalPlugin() { } } -bool engineSelectDlg::parseVersionsFile(QString versions_file) { +bool EngineSelectDlg::parseVersionsFile(QString versions_file) { qDebug("Checking if update is needed"); bool file_correct = false; QFile versions(versions_file); @@ -450,14 +450,14 @@ bool engineSelectDlg::parseVersionsFile(QString versions_file) { return file_correct; } -void engineSelectDlg::downloadFromUrl(const QString &url) +void EngineSelectDlg::downloadFromUrl(const QString &url) { Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(url, true); connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString))); connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); } -void engineSelectDlg::processDownloadedFile(const QString &url, QString filePath) { +void EngineSelectDlg::processDownloadedFile(const QString &url, QString filePath) { filePath = Utils::Fs::fromNativePath(filePath); setCursor(QCursor(Qt::ArrowCursor)); qDebug("engineSelectDlg received %s", qPrintable(url)); @@ -500,7 +500,7 @@ void engineSelectDlg::processDownloadedFile(const QString &url, QString filePath } } -void engineSelectDlg::handleDownloadFailure(const QString &url, const QString &reason) { +void EngineSelectDlg::handleDownloadFailure(const QString &url, const QString &reason) { setCursor(QCursor(Qt::ArrowCursor)); if (url.endsWith("favicon.ico", Qt::CaseInsensitive)) { qDebug("Could not download favicon: %s, reason: %s", qPrintable(url), qPrintable(reason)); diff --git a/src/searchengine/engineselectdlg.h b/src/searchengine/engineselectdlg.h index abcb19001..a98f54bad 100644 --- a/src/searchengine/engineselectdlg.h +++ b/src/searchengine/engineselectdlg.h @@ -31,14 +31,15 @@ #ifndef ENGINE_SELECT_DLG_H #define ENGINE_SELECT_DLG_H -#include "ui_engineselect.h" +#include "ui_engineselectdlg.h" #include "supportedengines.h" QT_BEGIN_NAMESPACE class QDropEvent; QT_END_NAMESPACE -class engineSelectDlg : public QDialog, public Ui::engineSelect{ +class EngineSelectDlg : public QDialog, public Ui::EngineSelectDlg +{ Q_OBJECT private: @@ -48,8 +49,8 @@ class engineSelectDlg : public QDialog, public Ui::engineSelect{ const QString m_updateUrl; public: - engineSelectDlg(QWidget *parent, SupportedEngines *supported_engines); - ~engineSelectDlg(); + EngineSelectDlg(QWidget *parent, SupportedEngines *supported_engines); + ~EngineSelectDlg(); QList findItemsWithUrl(QString url); QTreeWidgetItem* findItemWithID(QString id); diff --git a/src/searchengine/engineselect.ui b/src/searchengine/engineselectdlg.ui similarity index 97% rename from src/searchengine/engineselect.ui rename to src/searchengine/engineselectdlg.ui index 7db8f90e3..4ba4f2f54 100644 --- a/src/searchengine/engineselect.ui +++ b/src/searchengine/engineselectdlg.ui @@ -1,7 +1,7 @@ - engineSelect - + EngineSelectDlg + 0 diff --git a/src/searchengine/pluginsource.h b/src/searchengine/pluginsourcedlg.h similarity index 87% rename from src/searchengine/pluginsource.h rename to src/searchengine/pluginsourcedlg.h index aea63711b..cfabee362 100644 --- a/src/searchengine/pluginsource.h +++ b/src/searchengine/pluginsourcedlg.h @@ -28,13 +28,13 @@ * Contact : chris@qbittorrent.org */ -#ifndef PLUGIN_SOURCE_H -#define PLUGIN_SOURCE_H +#ifndef PLUGINSOURCEDLG_H +#define PLUGINSOURCEDLG_H #include -#include "ui_pluginsource.h" +#include "ui_pluginsourcedlg.h" -class pluginSourceDlg: public QDialog, private Ui::pluginSourceDlg { +class PluginSourceDlg: public QDialog, private Ui::PluginSourceDlg { Q_OBJECT signals: @@ -53,13 +53,13 @@ class pluginSourceDlg: public QDialog, private Ui::pluginSourceDlg { } public: - pluginSourceDlg(QWidget* parent): QDialog(parent) { + PluginSourceDlg(QWidget* parent): QDialog(parent) { setupUi(this); setAttribute(Qt::WA_DeleteOnClose); show(); } - ~pluginSourceDlg() {} + ~PluginSourceDlg() {} }; -#endif +#endif // PLUGINSOURCEDLG_H diff --git a/src/searchengine/pluginsource.ui b/src/searchengine/pluginsourcedlg.ui similarity index 93% rename from src/searchengine/pluginsource.ui rename to src/searchengine/pluginsourcedlg.ui index ecfcbc49c..a2ca22d95 100644 --- a/src/searchengine/pluginsource.ui +++ b/src/searchengine/pluginsourcedlg.ui @@ -1,6 +1,6 @@ - pluginSourceDlg - + PluginSourceDlg + 0 diff --git a/src/searchengine/searchengine.pri b/src/searchengine/searchengine.pri index 9a514a4b4..9a2812827 100644 --- a/src/searchengine/searchengine.pri +++ b/src/searchengine/searchengine.pri @@ -1,18 +1,18 @@ INCLUDEPATH += $$PWD -FORMS += $$PWD/search.ui \ - $$PWD/engineselect.ui \ - $$PWD/pluginsource.ui +FORMS += $$PWD/searchwidget.ui \ + $$PWD/engineselectdlg.ui \ + $$PWD/pluginsourcedlg.ui -HEADERS += $$PWD/searchengine.h \ +HEADERS += $$PWD/searchwidget.h \ $$PWD/searchtab.h \ $$PWD/engineselectdlg.h \ - $$PWD/pluginsource.h \ + $$PWD/pluginsourcedlg.h \ $$PWD/searchlistdelegate.h \ $$PWD/supportedengines.h \ $$PWD/searchsortmodel.h -SOURCES += $$PWD/searchengine.cpp \ +SOURCES += $$PWD/searchwidget.cpp \ $$PWD/searchtab.cpp \ $$PWD/engineselectdlg.cpp diff --git a/src/searchengine/searchlistdelegate.h b/src/searchengine/searchlistdelegate.h index 78ba36ac5..2986e6d41 100644 --- a/src/searchengine/searchlistdelegate.h +++ b/src/searchengine/searchlistdelegate.h @@ -37,7 +37,7 @@ #include #include #include "base/utils/misc.h" -#include "searchengine.h" +#include "searchwidget.h" class SearchListDelegate: public QItemDelegate { Q_OBJECT diff --git a/src/searchengine/searchtab.cpp b/src/searchengine/searchtab.cpp index e4b4e414f..5d2d69624 100644 --- a/src/searchengine/searchtab.cpp +++ b/src/searchengine/searchtab.cpp @@ -40,10 +40,10 @@ #include "searchtab.h" #include "searchlistdelegate.h" #include "base/utils/misc.h" -#include "searchengine.h" +#include "searchwidget.h" #include "base/preferences.h" -SearchTab::SearchTab(SearchEngine *parent) : QWidget(), parent(parent) +SearchTab::SearchTab(SearchWidget *parent) : QWidget(), parent(parent) { box = new QVBoxLayout(); results_lbl = new QLabel(); diff --git a/src/searchengine/searchtab.h b/src/searchengine/searchtab.h index 05920007d..cab2ab714 100644 --- a/src/searchengine/searchtab.h +++ b/src/searchengine/searchtab.h @@ -28,25 +28,26 @@ * Contact : chris@qbittorrent.org */ -#ifndef SEARCH_TAB_H -#define SEARCH_TAB_H +#ifndef SEARCHTAB_H +#define SEARCHTAB_H + +#include +#include -#include "ui_search.h" #include "searchsortmodel.h" #define ENGINE_URL_COLUMN 4 #define URL_COLUMN 5 class SearchListDelegate; -class SearchEngine; +class SearchWidget; -QT_BEGIN_NAMESPACE class QTreeView; class QHeaderView; class QStandardItemModel; -QT_END_NAMESPACE -class SearchTab: public QWidget, public Ui::search_engine { +class SearchTab: public QWidget +{ Q_OBJECT private: @@ -56,13 +57,13 @@ private: QStandardItemModel *SearchListModel; SearchSortModel *proxyModel; SearchListDelegate *SearchDelegate; - SearchEngine *parent; + SearchWidget *parent; protected slots: void downloadSelectedItem(const QModelIndex& index); public: - SearchTab(SearchEngine *parent); + SearchTab(SearchWidget *parent); ~SearchTab(); bool loadColWidthResultsList(); QLabel * getCurrentLabel(); @@ -74,5 +75,5 @@ public: QString status; }; -#endif +#endif // SEARCHTAB_H diff --git a/src/searchengine/searchengine.cpp b/src/searchengine/searchwidget.cpp similarity index 95% rename from src/searchengine/searchengine.cpp rename to src/searchengine/searchwidget.cpp index dd3f143a3..b28c6857a 100644 --- a/src/searchengine/searchengine.cpp +++ b/src/searchengine/searchwidget.cpp @@ -48,7 +48,6 @@ #include #endif -#include "searchengine.h" #include "base/bittorrent/session.h" #include "base/utils/fs.h" #include "base/utils/misc.h" @@ -58,11 +57,12 @@ #include "addnewtorrentdialog.h" #include "guiiconprovider.h" #include "lineedit.h" +#include "searchwidget.h" #define SEARCHHISTORY_MAXSIZE 50 /*SEARCH ENGINE START*/ -SearchEngine::SearchEngine(MainWindow* parent) +SearchWidget::SearchWidget(MainWindow* parent) : QWidget(parent) , search_pattern(new LineEdit(this)) , mp_mainWindow(parent) @@ -101,7 +101,7 @@ SearchEngine::SearchEngine(MainWindow* parent) connect(selectEngine, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(selectMultipleBox(const QString &))); } -void SearchEngine::fillCatCombobox() +void SearchWidget::fillCatCombobox() { comboCategory->clear(); comboCategory->addItem(full_cat_names["all"], QVariant("all")); @@ -112,7 +112,7 @@ void SearchEngine::fillCatCombobox() } } -void SearchEngine::fillEngineComboBox() +void SearchWidget::fillEngineComboBox() { selectEngine->clear(); selectEngine->addItem(tr("All enabled"), QVariant("enabled")); @@ -122,17 +122,17 @@ void SearchEngine::fillEngineComboBox() selectEngine->addItem(tr("Multiple..."), QVariant("multi")); } -QString SearchEngine::selectedCategory() const +QString SearchWidget::selectedCategory() const { return comboCategory->itemData(comboCategory->currentIndex()).toString(); } -QString SearchEngine::selectedEngine() const +QString SearchWidget::selectedEngine() const { return selectEngine->itemData(selectEngine->currentIndex()).toString(); } -SearchEngine::~SearchEngine() +SearchWidget::~SearchWidget() { qDebug("Search destruction"); searchProcess->kill(); @@ -151,7 +151,7 @@ SearchEngine::~SearchEngine() delete supported_engines; } -void SearchEngine::tab_changed(int t) +void SearchWidget::tab_changed(int t) { //when we switch from a tab that is not empty to another that is empty the download button //doesn't have to be available @@ -172,32 +172,32 @@ void SearchEngine::tab_changed(int t) } } -void SearchEngine::selectMultipleBox(const QString &text) +void SearchWidget::selectMultipleBox(const QString &text) { if (text == tr("Multiple...")) on_enginesButton_clicked(); } -void SearchEngine::on_enginesButton_clicked() +void SearchWidget::on_enginesButton_clicked() { - engineSelectDlg *dlg = new engineSelectDlg(this, supported_engines); + EngineSelectDlg *dlg = new EngineSelectDlg(this, supported_engines); connect(dlg, SIGNAL(enginesChanged()), this, SLOT(fillCatCombobox())); connect(dlg, SIGNAL(enginesChanged()), this, SLOT(fillEngineComboBox())); } -void SearchEngine::searchTextEdited(QString) +void SearchWidget::searchTextEdited(QString) { // Enable search button search_button->setText(tr("Search")); newQueryString = true; } -void SearchEngine::giveFocusToSearchInput() +void SearchWidget::giveFocusToSearchInput() { search_pattern->setFocus(); } // Function called when we click on search button -void SearchEngine::on_search_button_clicked() +void SearchWidget::on_search_button_clicked() { if (Utils::Misc::pythonVersion() < 0) { mp_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Please install Python to use the Search Engine.")); @@ -265,7 +265,7 @@ void SearchEngine::on_search_button_clicked() searchTimeout->start(180000); // 3min } -void SearchEngine::saveResultsColumnsWidth() +void SearchWidget::saveResultsColumnsWidth() { if (all_tab.isEmpty()) return; @@ -281,7 +281,7 @@ void SearchEngine::saveResultsColumnsWidth() pref->setSearchColsWidth(new_width_list.join(" ")); } -void SearchEngine::downloadTorrent(QString engine_url, QString torrent_url) +void SearchWidget::downloadTorrent(QString engine_url, QString torrent_url) { if (torrent_url.startsWith("bc://bt/", Qt::CaseInsensitive)) { qDebug("Converting bc link to magnet link"); @@ -307,7 +307,7 @@ void SearchEngine::downloadTorrent(QString engine_url, QString torrent_url) } } -void SearchEngine::searchStarted() +void SearchWidget::searchStarted() { // Update SearchEngine widgets activeSearchTab->status = tr("Searching..."); @@ -319,7 +319,7 @@ void SearchEngine::searchStarted() // search Qprocess return output as soon as it gets new // stuff to read. We split it into lines and add each // line to search results calling appendSearchResult(). -void SearchEngine::readSearchOutput() +void SearchWidget::readSearchOutput() { QByteArray output = searchProcess->readAllStandardOutput(); output.replace("\r", ""); @@ -334,7 +334,7 @@ void SearchEngine::readSearchOutput() activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(nb_search_results)); } -void SearchEngine::downloadFinished(int exitcode, QProcess::ExitStatus) +void SearchWidget::downloadFinished(int exitcode, QProcess::ExitStatus) { QProcess *downloadProcess = (QProcess*)sender(); if (exitcode == 0) { @@ -361,7 +361,7 @@ static inline void removePythonScriptIfExists(const QString& script_path) } // Update nova.py search plugin if necessary -void SearchEngine::updateNova() +void SearchWidget::updateNova() { qDebug("Updating nova"); // create nova directory if necessary @@ -444,7 +444,7 @@ void SearchEngine::updateNova() // Slot called when search is Finished // Search can be finished for 3 reasons : // Error | Stopped by user | Finished normally -void SearchEngine::searchFinished(int exitcode, QProcess::ExitStatus) +void SearchWidget::searchFinished(int exitcode, QProcess::ExitStatus) { if (searchTimeout->isActive()) searchTimeout->stop(); @@ -482,7 +482,7 @@ void SearchEngine::searchFinished(int exitcode, QProcess::ExitStatus) // SLOT to append one line to search results list // Line is in the following form : // file url | file name | file size | nb seeds | nb leechers | Search engine url -void SearchEngine::appendSearchResult(const QString &line) +void SearchWidget::appendSearchResult(const QString &line) { if (activeSearchTab.isNull()) { if (searchProcess->state() != QProcess::NotRunning) { @@ -536,7 +536,7 @@ void SearchEngine::appendSearchResult(const QString &line) copyURLBtn->setEnabled(true); } -void SearchEngine::closeTab(int index) +void SearchWidget::closeTab(int index) { // Search is run for active tab so if user decided to close it, then stop search if (!activeSearchTab.isNull() && index == tabWidget->indexOf(activeSearchTab)) { @@ -564,7 +564,7 @@ void SearchEngine::closeTab(int index) } // Download selected items in search results list -void SearchEngine::on_download_button_clicked() +void SearchWidget::on_download_button_clicked() { //QModelIndexList selectedIndexes = currentSearchTab->getCurrentTreeView()->selectionModel()->selectedIndexes(); QModelIndexList selectedIndexes = all_tab.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); @@ -580,7 +580,7 @@ void SearchEngine::on_download_button_clicked() } } -void SearchEngine::on_goToDescBtn_clicked() +void SearchWidget::on_goToDescBtn_clicked() { QModelIndexList selectedIndexes = all_tab.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); foreach (const QModelIndex &index, selectedIndexes) { @@ -593,7 +593,7 @@ void SearchEngine::on_goToDescBtn_clicked() } } -void SearchEngine::on_copyURLBtn_clicked() +void SearchWidget::on_copyURLBtn_clicked() { QStringList urls; QModelIndexList selectedIndexes = all_tab.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); diff --git a/src/searchengine/searchengine.h b/src/searchengine/searchwidget.h similarity index 93% rename from src/searchengine/searchengine.h rename to src/searchengine/searchwidget.h index bc2d26626..9751a620b 100644 --- a/src/searchengine/searchengine.h +++ b/src/searchengine/searchwidget.h @@ -28,20 +28,20 @@ * Contact : chris@qbittorrent.org */ -#ifndef SEARCH_H -#define SEARCH_H +#ifndef SEARCHWIDGET_H +#define SEARCHWIDGET_H #include #include #include #include #include -#include "ui_search.h" +#include "ui_searchwidget.h" #include "engineselectdlg.h" #include "searchtab.h" #include "supportedengines.h" -class SearchEngine; +class SearchWidget; class MainWindow; class LineEdit; @@ -49,16 +49,16 @@ QT_BEGIN_NAMESPACE class QTimer; QT_END_NAMESPACE -class SearchEngine : public QWidget, public Ui::search_engine{ +class SearchWidget : public QWidget, private Ui::SearchWidget{ Q_OBJECT - Q_DISABLE_COPY(SearchEngine) + Q_DISABLE_COPY(SearchWidget) private: enum PluginColumn { PL_DL_LINK, PL_NAME, PL_SIZE, PL_SEEDS, PL_LEECHS, PL_ENGINE_URL, PL_DESC_LINK, NB_PLUGIN_COLUMNS }; public: - SearchEngine(MainWindow *mp_mainWindow); - ~SearchEngine(); + SearchWidget(MainWindow *mp_mainWindow); + ~SearchWidget(); QString selectedCategory() const; QString selectedEngine() const; @@ -130,4 +130,4 @@ private: bool newQueryString; }; -#endif +#endif // SEARCHWIDGET_H diff --git a/src/searchengine/search.ui b/src/searchengine/searchwidget.ui similarity index 98% rename from src/searchengine/search.ui rename to src/searchengine/searchwidget.ui index ae35d4927..03e422c28 100644 --- a/src/searchengine/search.ui +++ b/src/searchengine/searchwidget.ui @@ -1,7 +1,7 @@ - search_engine - + SearchWidget + 0 From 8754fd56462ac1b9f9fc359227d26ac418ecbca5 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 26 Aug 2015 20:18:33 +0300 Subject: [PATCH 014/238] Move Search-related files into Gui. --- src/gui/gui.pri | 19 +++++-- src/gui/mainwindow.cpp | 2 +- .../search}/engineselectdlg.cpp | 0 .../search}/engineselectdlg.h | 0 .../search}/engineselectdlg.ui | 0 .../search}/pluginsourcedlg.h | 0 .../search}/pluginsourcedlg.ui | 0 .../search}/searchlistdelegate.h | 0 .../search}/searchsortmodel.h | 0 .../search}/searchtab.cpp | 0 src/{searchengine => gui/search}/searchtab.h | 0 .../search}/searchwidget.cpp | 0 .../search}/searchwidget.h | 0 .../search}/searchwidget.ui | 0 .../search}/supportedengines.h | 0 src/searchengine.qrc | 52 +++++++++++++++++++ src/searchengine/search.qrc | 52 ------------------- src/searchengine/searchengine.pri | 19 ------- src/src.pro | 8 ++- 19 files changed, 72 insertions(+), 80 deletions(-) rename src/{searchengine => gui/search}/engineselectdlg.cpp (100%) rename src/{searchengine => gui/search}/engineselectdlg.h (100%) rename src/{searchengine => gui/search}/engineselectdlg.ui (100%) rename src/{searchengine => gui/search}/pluginsourcedlg.h (100%) rename src/{searchengine => gui/search}/pluginsourcedlg.ui (100%) rename src/{searchengine => gui/search}/searchlistdelegate.h (100%) rename src/{searchengine => gui/search}/searchsortmodel.h (100%) rename src/{searchengine => gui/search}/searchtab.cpp (100%) rename src/{searchengine => gui/search}/searchtab.h (100%) rename src/{searchengine => gui/search}/searchwidget.cpp (100%) rename src/{searchengine => gui/search}/searchwidget.h (100%) rename src/{searchengine => gui/search}/searchwidget.ui (100%) rename src/{searchengine => gui/search}/supportedengines.h (100%) create mode 100644 src/searchengine.qrc delete mode 100644 src/searchengine/search.qrc delete mode 100644 src/searchengine/searchengine.pri diff --git a/src/gui/gui.pri b/src/gui/gui.pri index 40267792d..847373a85 100644 --- a/src/gui/gui.pri +++ b/src/gui/gui.pri @@ -41,7 +41,14 @@ HEADERS += \ $$PWD/advancedsettings.h \ $$PWD/shutdownconfirm.h \ $$PWD/torrentmodel.h \ - $$PWD/torrentcreatordlg.h + $$PWD/torrentcreatordlg.h \ + $$PWD/search/searchwidget.h \ + $$PWD/search/searchtab.h \ + $$PWD/search/engineselectdlg.h \ + $$PWD/search/pluginsourcedlg.h \ + $$PWD/search/searchlistdelegate.h \ + $$PWD/search/supportedengines.h \ + $$PWD/search/searchsortmodel.h SOURCES += \ $$PWD/mainwindow.cpp \ @@ -72,7 +79,10 @@ SOURCES += \ $$PWD/options_imp.cpp \ $$PWD/shutdownconfirm.cpp \ $$PWD/torrentmodel.cpp \ - $$PWD/torrentcreatordlg.cpp + $$PWD/torrentcreatordlg.cpp \ + $$PWD/search/searchwidget.cpp \ + $$PWD/search/searchtab.cpp \ + $$PWD/search/engineselectdlg.cpp win32|macx { HEADERS += $$PWD/programupdater.h @@ -94,6 +104,9 @@ FORMS += \ $$PWD/autoexpandabledialog.ui \ $$PWD/statsdialog.ui \ $$PWD/options.ui \ - $$PWD/torrentcreatordlg.ui + $$PWD/torrentcreatordlg.ui \ + $$PWD/search/searchwidget.ui \ + $$PWD/search/engineselectdlg.ui \ + $$PWD/search/pluginsourcedlg.ui RESOURCES += $$PWD/about.qrc diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 953392430..b2c121285 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -53,7 +53,7 @@ #include "torrentcreatordlg.h" #include "downloadfromurldlg.h" #include "addnewtorrentdialog.h" -#include "searchwidget.h" +#include "search/searchwidget.h" #include "rss_imp.h" #include "base/bittorrent/session.h" #include "base/bittorrent/sessionstatus.h" diff --git a/src/searchengine/engineselectdlg.cpp b/src/gui/search/engineselectdlg.cpp similarity index 100% rename from src/searchengine/engineselectdlg.cpp rename to src/gui/search/engineselectdlg.cpp diff --git a/src/searchengine/engineselectdlg.h b/src/gui/search/engineselectdlg.h similarity index 100% rename from src/searchengine/engineselectdlg.h rename to src/gui/search/engineselectdlg.h diff --git a/src/searchengine/engineselectdlg.ui b/src/gui/search/engineselectdlg.ui similarity index 100% rename from src/searchengine/engineselectdlg.ui rename to src/gui/search/engineselectdlg.ui diff --git a/src/searchengine/pluginsourcedlg.h b/src/gui/search/pluginsourcedlg.h similarity index 100% rename from src/searchengine/pluginsourcedlg.h rename to src/gui/search/pluginsourcedlg.h diff --git a/src/searchengine/pluginsourcedlg.ui b/src/gui/search/pluginsourcedlg.ui similarity index 100% rename from src/searchengine/pluginsourcedlg.ui rename to src/gui/search/pluginsourcedlg.ui diff --git a/src/searchengine/searchlistdelegate.h b/src/gui/search/searchlistdelegate.h similarity index 100% rename from src/searchengine/searchlistdelegate.h rename to src/gui/search/searchlistdelegate.h diff --git a/src/searchengine/searchsortmodel.h b/src/gui/search/searchsortmodel.h similarity index 100% rename from src/searchengine/searchsortmodel.h rename to src/gui/search/searchsortmodel.h diff --git a/src/searchengine/searchtab.cpp b/src/gui/search/searchtab.cpp similarity index 100% rename from src/searchengine/searchtab.cpp rename to src/gui/search/searchtab.cpp diff --git a/src/searchengine/searchtab.h b/src/gui/search/searchtab.h similarity index 100% rename from src/searchengine/searchtab.h rename to src/gui/search/searchtab.h diff --git a/src/searchengine/searchwidget.cpp b/src/gui/search/searchwidget.cpp similarity index 100% rename from src/searchengine/searchwidget.cpp rename to src/gui/search/searchwidget.cpp diff --git a/src/searchengine/searchwidget.h b/src/gui/search/searchwidget.h similarity index 100% rename from src/searchengine/searchwidget.h rename to src/gui/search/searchwidget.h diff --git a/src/searchengine/searchwidget.ui b/src/gui/search/searchwidget.ui similarity index 100% rename from src/searchengine/searchwidget.ui rename to src/gui/search/searchwidget.ui diff --git a/src/searchengine/supportedengines.h b/src/gui/search/supportedengines.h similarity index 100% rename from src/searchengine/supportedengines.h rename to src/gui/search/supportedengines.h diff --git a/src/searchengine.qrc b/src/searchengine.qrc new file mode 100644 index 000000000..a3022d37f --- /dev/null +++ b/src/searchengine.qrc @@ -0,0 +1,52 @@ + + + searchengine/nova/fix_encoding.py + searchengine/nova/helpers.py + searchengine/nova/nova2.py + searchengine/nova/nova2dl.py + searchengine/nova/novaprinter.py + searchengine/nova/socks.py + searchengine/nova/engines/btdigg.png + searchengine/nova/engines/btdigg.py + searchengine/nova/engines/demonoid.png + searchengine/nova/engines/demonoid.py + searchengine/nova/engines/extratorrent.png + searchengine/nova/engines/extratorrent.py + searchengine/nova/engines/kickasstorrents.png + searchengine/nova/engines/kickasstorrents.py + searchengine/nova/engines/legittorrents.png + searchengine/nova/engines/legittorrents.py + searchengine/nova/engines/mininova.png + searchengine/nova/engines/mininova.py + searchengine/nova/engines/piratebay.png + searchengine/nova/engines/piratebay.py + searchengine/nova/engines/torrentreactor.png + searchengine/nova/engines/torrentreactor.py + searchengine/nova/engines/torrentz.png + searchengine/nova/engines/torrentz.py + searchengine/nova3/helpers.py + searchengine/nova3/nova2.py + searchengine/nova3/nova2dl.py + searchengine/nova3/novaprinter.py + searchengine/nova3/sgmllib3.py + searchengine/nova3/socks.py + searchengine/nova3/engines/btdigg.png + searchengine/nova3/engines/btdigg.py + searchengine/nova3/engines/demonoid.png + searchengine/nova3/engines/demonoid.py + searchengine/nova3/engines/extratorrent.png + searchengine/nova3/engines/extratorrent.py + searchengine/nova3/engines/kickasstorrents.png + searchengine/nova3/engines/kickasstorrents.py + searchengine/nova3/engines/legittorrents.png + searchengine/nova3/engines/legittorrents.py + searchengine/nova3/engines/mininova.png + searchengine/nova3/engines/mininova.py + searchengine/nova3/engines/piratebay.png + searchengine/nova3/engines/piratebay.py + searchengine/nova3/engines/torrentreactor.png + searchengine/nova3/engines/torrentreactor.py + searchengine/nova3/engines/torrentz.png + searchengine/nova3/engines/torrentz.py + + diff --git a/src/searchengine/search.qrc b/src/searchengine/search.qrc deleted file mode 100644 index a1aa7edc9..000000000 --- a/src/searchengine/search.qrc +++ /dev/null @@ -1,52 +0,0 @@ - - - nova/fix_encoding.py - nova/helpers.py - nova/nova2.py - nova/nova2dl.py - nova/novaprinter.py - nova/socks.py - nova/engines/btdigg.png - nova/engines/btdigg.py - nova/engines/demonoid.png - nova/engines/demonoid.py - nova/engines/extratorrent.png - nova/engines/extratorrent.py - nova/engines/kickasstorrents.png - nova/engines/kickasstorrents.py - nova/engines/legittorrents.png - nova/engines/legittorrents.py - nova/engines/mininova.png - nova/engines/mininova.py - nova/engines/piratebay.png - nova/engines/piratebay.py - nova/engines/torrentreactor.png - nova/engines/torrentreactor.py - nova/engines/torrentz.png - nova/engines/torrentz.py - nova3/helpers.py - nova3/nova2.py - nova3/nova2dl.py - nova3/novaprinter.py - nova3/sgmllib3.py - nova3/socks.py - nova3/engines/btdigg.png - nova3/engines/btdigg.py - nova3/engines/demonoid.png - nova3/engines/demonoid.py - nova3/engines/extratorrent.png - nova3/engines/extratorrent.py - nova3/engines/kickasstorrents.png - nova3/engines/kickasstorrents.py - nova3/engines/legittorrents.png - nova3/engines/legittorrents.py - nova3/engines/mininova.png - nova3/engines/mininova.py - nova3/engines/piratebay.png - nova3/engines/piratebay.py - nova3/engines/torrentreactor.png - nova3/engines/torrentreactor.py - nova3/engines/torrentz.png - nova3/engines/torrentz.py - - diff --git a/src/searchengine/searchengine.pri b/src/searchengine/searchengine.pri deleted file mode 100644 index 9a2812827..000000000 --- a/src/searchengine/searchengine.pri +++ /dev/null @@ -1,19 +0,0 @@ -INCLUDEPATH += $$PWD - -FORMS += $$PWD/searchwidget.ui \ - $$PWD/engineselectdlg.ui \ - $$PWD/pluginsourcedlg.ui - -HEADERS += $$PWD/searchwidget.h \ - $$PWD/searchtab.h \ - $$PWD/engineselectdlg.h \ - $$PWD/pluginsourcedlg.h \ - $$PWD/searchlistdelegate.h \ - $$PWD/supportedengines.h \ - $$PWD/searchsortmodel.h - -SOURCES += $$PWD/searchwidget.cpp \ - $$PWD/searchtab.cpp \ - $$PWD/engineselectdlg.cpp - -RESOURCES += $$PWD/search.qrc diff --git a/src/src.pro b/src/src.pro index 7d87e9f64..b1cd75c7e 100644 --- a/src/src.pro +++ b/src/src.pro @@ -63,16 +63,14 @@ INCLUDEPATH += $$PWD include(app/app.pri) include(base/base.pri) !nowebui: include(webui/webui.pri) -!nogui { - include(gui/gui.pri) - include(searchengine/searchengine.pri) -} +!nogui: include(gui/gui.pri) # Resource files QMAKE_RESOURCE_FLAGS += -compress 9 -threshold 5 RESOURCES += \ icons.qrc \ - lang.qrc + lang.qrc \ + searchengine.qrc # Translations TRANSLATIONS = \ From c9b74c27427c668e3cc6892d2c0b377ae22ad947 Mon Sep 17 00:00:00 2001 From: buinsky Date: Wed, 4 Nov 2015 23:03:27 +0300 Subject: [PATCH 015/238] Add seeds tab to WebUI --- src/webui/www/public/properties.html | 1 + src/webui/www/public/properties_content.html | 5 +++++ src/webui/www/public/scripts/client.js | 13 +++++++++++++ 3 files changed, 19 insertions(+) diff --git a/src/webui/www/public/properties.html b/src/webui/www/public/properties.html index a9c04ecf0..a6369fc2e 100644 --- a/src/webui/www/public/properties.html +++ b/src/webui/www/public/properties.html @@ -2,6 +2,7 @@

diff --git a/src/webui/www/public/properties_content.html b/src/webui/www/public/properties_content.html index 2e906712a..e21cf2850 100644 --- a/src/webui/www/public/properties_content.html +++ b/src/webui/www/public/properties_content.html @@ -63,6 +63,11 @@ + + + + \ No newline at end of file diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index 0819308e1..ba28bcfbb 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -23,8 +23,10 @@ */ torrentsTable = new TorrentsTable(); +torrentPeersTable = new TorrentPeersTable(); var updatePropertiesPanel = function(){}; +var updateTorrentPeersData = function(){}; var updateMainData = function(){}; var alternativeSpeedLimits = false; var queueing_enabled = true; @@ -286,7 +288,7 @@ window.addEvent('load', function () { var update_labels = false; var full_update = (response['full_update'] == true); if (full_update) { - torrentsTable.rows.erase(); + torrentsTable.clear(); label_list = {}; } if (response['rid']) { @@ -485,7 +487,7 @@ window.addEvent('load', function () { }, contentURL : 'properties_content.html', require : { - css : ['css/Tabs.css'], + css : ['css/Tabs.css', 'css/dynamicTable.css'], js : ['scripts/prop-general.js', 'scripts/prop-trackers.js', 'scripts/prop-webseeds.js', 'scripts/prop-files.js'], }, tabsURL : 'properties.html', @@ -497,6 +499,8 @@ window.addEvent('load', function () { updateTorrentData(); else if (!$('prop_trackers').hasClass('invisible')) updateTrackersData(); + else if (!$('prop_peers').hasClass('invisible')) + updateTorrentPeersData(); else if (!$('prop_webseeds').hasClass('invisible')) updateWebSeedsData(); else if (!$('prop_files').hasClass('invisible')) @@ -576,3 +580,78 @@ var keyboardEvents = new Keyboard({ }); keyboardEvents.activate(); + +var loadTorrentPeersTimer; +var syncTorrentPeersLastResponseId = 0; +var show_flags = true; +var loadTorrentPeersData = function(){ + if ($('prop_peers').hasClass('invisible') || + $('propertiesPanel_collapseToggle').hasClass('panel-expand')) { + syncTorrentPeersLastResponseId = 0; + torrentPeersTable.clear(); + return; + } + var current_hash = torrentsTable.getCurrentTorrentHash(); + if (current_hash == "") { + syncTorrentPeersLastResponseId = 0; + torrentPeersTable.clear(); + clearTimeout(loadTorrentPeersTimer); + loadTorrentPeersTimer = loadTorrentPeersData.delay(syncMainDataTimerPeriod); + return; + } + var url = new URI('sync/torrent_peers'); + url.setData('rid', syncTorrentPeersLastResponseId); + url.setData('hash', current_hash); + var request = new Request.JSON({ + url: url, + noCache: true, + method: 'get', + onFailure: function() { + $('error_div').set('html', 'QBT_TR(qBittorrent client is not reachable)QBT_TR'); + clearTimeout(loadTorrentPeersTimer); + loadTorrentPeersTimer = loadTorrentPeersData.delay(5000); + }, + onSuccess: function(response) { + $('error_div').set('html', ''); + if (response) { + var full_update = (response['full_update'] == true); + if (full_update) { + torrentPeersTable.clear(); + } + if (response['rid']) { + syncTorrentPeersLastResponseId = response['rid']; + } + if (response['peers']) { + for (var key in response['peers']) { + response['peers'][key]['rowId'] = key; + torrentPeersTable.updateRowData(response['peers'][key]); + } + } + if (response['peers_removed']) + response['peers_removed'].each(function (hash) { + torrentPeersTable.removeRow(hash); + }); + torrentPeersTable.updateTable(full_update); + torrentPeersTable.altRow(); + + if (response['show_flags']) { + if (show_flags != response['show_flags']) { + show_flags = response['show_flags']; + torrentPeersTable.columns['country'].force_hide = !show_flags; + torrentPeersTable.updateColumn('country'); + } + } + } + else { + torrentPeersTable.clear(); + } + clearTimeout(loadTorrentPeersTimer); + loadTorrentPeersTimer = loadTorrentPeersData.delay(syncMainDataTimerPeriod); + } + }).send(); +}; + +updateTorrentPeersData = function(){ + clearTimeout(loadTorrentPeersTimer); + loadTorrentPeersData(); +}; \ No newline at end of file diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index d38c90635..018ace08c 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -412,6 +412,16 @@ var DynamicTable = new Class({ return false; }, + clear : function () { + this.cur.empty(); + this.rows.empty(); + var trs = this.table.getElements('tr'); + while (trs.length > 0) { + trs[trs.length - 1].dispose(); + trs.pop(); + } + }, + selectedRowsIds : function () { return this.cur; }, @@ -690,4 +700,117 @@ var TorrentsTable = new Class({ } }); +var TorrentPeersTable = new Class({ + Extends: DynamicTable, + + initColumns : function () { + this.newColumn('country', 'width: 4px', ''); + this.newColumn('ip', 'width: 80px', 'QBT_TR(IP)QBT_TR'); + this.newColumn('port', 'width: 35px', 'QBT_TR(Port)QBT_TR'); + this.newColumn('client', 'width: 110px', 'QBT_TR(Client)QBT_TR'); + this.newColumn('progress', 'width: 30px', 'QBT_TR(Progress)QBT_TR'); + this.newColumn('dl_speed', 'width: 30px', 'QBT_TR(Down Speed)QBT_TR'); + this.newColumn('up_speed', 'width: 30px', 'QBT_TR(Up Speed)QBT_TR'); + this.newColumn('downloaded', 'width: 30px', 'QBT_TR(Downloaded)QBT_TR'); + this.newColumn('uploaded', 'width: 30px', 'QBT_TR(Uploaded)QBT_TR'); + this.newColumn('connection', 'width: 30px', 'QBT_TR(Connection)QBT_TR'); + this.newColumn('flags', 'width: 30px', 'QBT_TR(Flags)QBT_TR'); + this.newColumn('relevance', 'min-width: 30px', 'QBT_TR(Relevance)QBT_TR'); + + this.columns['country'].dataProperties.push('country_code'); + this.columns['flags'].dataProperties.push('flags_desc'); + this.initColumnsFunctions(); + }, + + initColumnsFunctions : function () { + + // country + + this.columns['country'].updateTd = function (td, row) { + var country = this.getRowValue(row, 0); + var country_code = this.getRowValue(row, 1); + + if (!country_code) { + if (td.getChildren('img').length) + td.getChildren('img')[0].dispose(); + return; + } + + var img_path = 'images/flags/' + country_code + '.png'; + + if (td.getChildren('img').length) { + var img = td.getChildren('img')[0]; + img.set('src', img_path); + img.set('alt', country); + img.set('title', country); + } + else + td.adopt(new Element('img', { + 'src' : img_path, + 'alt' : country, + 'title' : country + })); + }; + + // ip + + this.columns['ip'].compareRows = function (row1, row2) { + var ip1 = this.getRowValue(row1); + var ip2 = this.getRowValue(row2); + + var a = ip1.split("."); + var b = ip2.split("."); + + for (var i = 0; i < 4; i++){ + if (a[i] != b[i]) + return a[i] - b[i]; + } + + return 0; + }; + + // progress, relevance + + this.columns['progress'].updateTd = function (td, row) { + var progress = this.getRowValue(row); + var progressFormated = (progress * 100).round(1); + if (progressFormated == 100.0 && progress != 1.0) + progressFormated = 99.9; + progressFormated += "%"; + td.set('html', progressFormated); + }; + + this.columns['relevance'].updateTd = this.columns['progress'].updateTd; + + // dl_speed, up_speed + + this.columns['dl_speed'].updateTd = function (td, row) { + var speed = this.getRowValue(row); + if (speed == 0) + td.set('html', ''); + else + td.set('html', friendlyUnit(speed, true)); + }; + + this.columns['up_speed'].updateTd = this.columns['dl_speed'].updateTd; + + // downloaded, uploaded + + this.columns['downloaded'].updateTd = function (td, row) { + var downloaded = this.getRowValue(row); + td.set('html', friendlyUnit(downloaded, false)); + }; + + this.columns['uploaded'].updateTd = this.columns['downloaded'].updateTd; + + // flags + + this.columns['flags'].updateTd = function (td, row) { + td.innerHTML = this.getRowValue(row, 0); + td.title = this.getRowValue(row, 1); + }; + + } + }); + /*************************************************************/ From d203f39f0ada5c2a28ee795b31356963ca28a535 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 18 Oct 2015 20:25:08 +0800 Subject: [PATCH 022/238] Update ISO 3166 country codes. Closes #3942. --- src/base/net/geoipmanager.cpp | 55 +++++++++++++++++------------------ 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/src/base/net/geoipmanager.cpp b/src/base/net/geoipmanager.cpp index b8c25b4d3..10db8e4cd 100644 --- a/src/base/net/geoipmanager.cpp +++ b/src/base/net/geoipmanager.cpp @@ -131,16 +131,15 @@ QString GeoIPManager::lookup(const QHostAddress &hostAddr) const return QString(); } -// http://www.iso.org/iso/country_codes/iso_3166_code_lists/english_country_names_and_code_elements.htm QString GeoIPManager::CountryName(const QString &countryISOCode) { static QHash countries; static bool initialized = false; + // ISO 3166-1 alpha-2 codes + // http://www.iso.org/iso/home/standards/country_codes/country_names_and_code_elements_txt-temp.htm if (!initialized) { - countries[QString()] = tr("N/A"); - countries["AP"] = tr("Asia/Pacific Region"); - countries["EU"] = tr("Europe"); + // Officially assigned countries["AD"] = tr("Andorra"); countries["AE"] = tr("United Arab Emirates"); countries["AF"] = tr("Afghanistan"); @@ -148,7 +147,6 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["AI"] = tr("Anguilla"); countries["AL"] = tr("Albania"); countries["AM"] = tr("Armenia"); - countries["AN"] = tr("Netherlands Antilles"); countries["AO"] = tr("Angola"); countries["AQ"] = tr("Antarctica"); countries["AR"] = tr("Argentina"); @@ -156,6 +154,7 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["AT"] = tr("Austria"); countries["AU"] = tr("Australia"); countries["AW"] = tr("Aruba"); + countries["AX"] = tr("Aland Islands"); countries["AZ"] = tr("Azerbaijan"); countries["BA"] = tr("Bosnia and Herzegovina"); countries["BB"] = tr("Barbados"); @@ -166,9 +165,11 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["BH"] = tr("Bahrain"); countries["BI"] = tr("Burundi"); countries["BJ"] = tr("Benin"); + countries["BL"] = tr("Saint Barthelemy"); countries["BM"] = tr("Bermuda"); countries["BN"] = tr("Brunei Darussalam"); - countries["BO"] = tr("Bolivia"); + countries["BO"] = tr("Bolivia, Plurinational State of"); + countries["BQ"] = tr("Bonaire, Sint Eustatius and Saba"); countries["BR"] = tr("Brazil"); countries["BS"] = tr("Bahamas"); countries["BT"] = tr("Bhutan"); @@ -182,7 +183,7 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["CF"] = tr("Central African Republic"); countries["CG"] = tr("Congo"); countries["CH"] = tr("Switzerland"); - countries["CI"] = tr("Cote D'Ivoire"); + countries["CI"] = tr("Cote d'Ivoire"); countries["CK"] = tr("Cook Islands"); countries["CL"] = tr("Chile"); countries["CM"] = tr("Cameroon"); @@ -191,6 +192,7 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["CR"] = tr("Costa Rica"); countries["CU"] = tr("Cuba"); countries["CV"] = tr("Cape Verde"); + countries["CW"] = tr("Curacao"); countries["CX"] = tr("Christmas Island"); countries["CY"] = tr("Cyprus"); countries["CZ"] = tr("Czech Republic"); @@ -213,12 +215,12 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["FM"] = tr("Micronesia, Federated States of"); countries["FO"] = tr("Faroe Islands"); countries["FR"] = tr("France"); - countries["FX"] = tr("France, Metropolitan"); countries["GA"] = tr("Gabon"); countries["GB"] = tr("United Kingdom"); countries["GD"] = tr("Grenada"); countries["GE"] = tr("Georgia"); countries["GF"] = tr("French Guiana"); + countries["GG"] = tr("Guernsey"); countries["GH"] = tr("Ghana"); countries["GI"] = tr("Gibraltar"); countries["GL"] = tr("Greenland"); @@ -241,12 +243,14 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["ID"] = tr("Indonesia"); countries["IE"] = tr("Ireland"); countries["IL"] = tr("Israel"); + countries["IM"] = tr("Isle of Man"); countries["IN"] = tr("India"); countries["IO"] = tr("British Indian Ocean Territory"); countries["IQ"] = tr("Iraq"); countries["IR"] = tr("Iran, Islamic Republic of"); countries["IS"] = tr("Iceland"); countries["IT"] = tr("Italy"); + countries["JE"] = tr("Jersey"); countries["JM"] = tr("Jamaica"); countries["JO"] = tr("Jordan"); countries["JP"] = tr("Japan"); @@ -271,17 +275,19 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["LT"] = tr("Lithuania"); countries["LU"] = tr("Luxembourg"); countries["LV"] = tr("Latvia"); - countries["LY"] = tr("Libyan Arab Jamahiriya"); + countries["LY"] = tr("Libya"); countries["MA"] = tr("Morocco"); countries["MC"] = tr("Monaco"); countries["MD"] = tr("Moldova, Republic of"); + countries["ME"] = tr("Montenegro"); + countries["MF"] = tr("Saint Martin (French part)"); countries["MG"] = tr("Madagascar"); countries["MH"] = tr("Marshall Islands"); - countries["MK"] = tr("Macedonia"); + countries["MK"] = tr("Macedonia, The Former Yugoslav Republic of"); countries["ML"] = tr("Mali"); countries["MM"] = tr("Myanmar"); countries["MN"] = tr("Mongolia"); - countries["MO"] = tr("Macau"); + countries["MO"] = tr("Macao"); countries["MP"] = tr("Northern Mariana Islands"); countries["MQ"] = tr("Martinique"); countries["MR"] = tr("Mauritania"); @@ -314,15 +320,16 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["PK"] = tr("Pakistan"); countries["PL"] = tr("Poland"); countries["PM"] = tr("Saint Pierre and Miquelon"); - countries["PN"] = tr("Pitcairn Islands"); + countries["PN"] = tr("Pitcairn"); countries["PR"] = tr("Puerto Rico"); - countries["PS"] = tr("Palestinian Territory"); + countries["PS"] = tr("Palestine, State of"); countries["PT"] = tr("Portugal"); countries["PW"] = tr("Palau"); countries["PY"] = tr("Paraguay"); countries["QA"] = tr("Qatar"); countries["RE"] = tr("Reunion"); countries["RO"] = tr("Romania"); + countries["RS"] = tr("Serbia"); countries["RU"] = tr("Russian Federation"); countries["RW"] = tr("Rwanda"); countries["SA"] = tr("Saudi Arabia"); @@ -331,7 +338,7 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["SD"] = tr("Sudan"); countries["SE"] = tr("Sweden"); countries["SG"] = tr("Singapore"); - countries["SH"] = tr("Saint Helena"); + countries["SH"] = tr("Saint Helena, Ascension and Tristan da Cunha"); countries["SI"] = tr("Slovenia"); countries["SJ"] = tr("Svalbard and Jan Mayen"); countries["SK"] = tr("Slovakia"); @@ -340,8 +347,10 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["SN"] = tr("Senegal"); countries["SO"] = tr("Somalia"); countries["SR"] = tr("Suriname"); + countries["SS"] = tr("South Sudan"); countries["ST"] = tr("Sao Tome and Principe"); countries["SV"] = tr("El Salvador"); + countries["SX"] = tr("Sint Maarten (Dutch part)"); countries["SY"] = tr("Syrian Arab Republic"); countries["SZ"] = tr("Swaziland"); countries["TC"] = tr("Turks and Caicos Islands"); @@ -351,10 +360,10 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["TH"] = tr("Thailand"); countries["TJ"] = tr("Tajikistan"); countries["TK"] = tr("Tokelau"); + countries["TL"] = tr("Timor-Leste"); countries["TM"] = tr("Turkmenistan"); countries["TN"] = tr("Tunisia"); countries["TO"] = tr("Tonga"); - countries["TL"] = tr("Timor-Leste"); countries["TR"] = tr("Turkey"); countries["TT"] = tr("Trinidad and Tobago"); countries["TV"] = tr("Tuvalu"); @@ -368,30 +377,20 @@ QString GeoIPManager::CountryName(const QString &countryISOCode) countries["UZ"] = tr("Uzbekistan"); countries["VA"] = tr("Holy See (Vatican City State)"); countries["VC"] = tr("Saint Vincent and the Grenadines"); - countries["VE"] = tr("Venezuela"); + countries["VE"] = tr("Venezuela, Bolivarian Republic of"); countries["VG"] = tr("Virgin Islands, British"); countries["VI"] = tr("Virgin Islands, U.S."); - countries["VN"] = tr("Vietnam"); + countries["VN"] = tr("Viet Nam"); countries["VU"] = tr("Vanuatu"); countries["WF"] = tr("Wallis and Futuna"); countries["WS"] = tr("Samoa"); countries["YE"] = tr("Yemen"); countries["YT"] = tr("Mayotte"); - countries["RS"] = tr("Serbia"); countries["ZA"] = tr("South Africa"); countries["ZM"] = tr("Zambia"); - countries["ME"] = tr("Montenegro"); countries["ZW"] = tr("Zimbabwe"); - countries["A1"] = tr("Anonymous Proxy"); - countries["A2"] = tr("Satellite Provider"); - countries["O1"] = tr("Other"); - countries["AX"] = tr("Aland Islands"); - countries["GG"] = tr("Guernsey"); - countries["IM"] = tr("Isle of Man"); - countries["JE"] = tr("Jersey"); - countries["BL"] = tr("Saint Barthelemy"); - countries["MF"] = tr("Saint Martin"); + countries[QString()] = tr("N/A"); initialized = true; } From b10f04abbd559d0e6b7c708f457d5edaa4148b6f Mon Sep 17 00:00:00 2001 From: buinsky Date: Mon, 7 Dec 2015 04:05:52 +0300 Subject: [PATCH 023/238] WebUI: Show filtered torrents number --- src/webui/abstractwebapplication.cpp | 2 +- src/webui/www/public/filters.html | 17 +++++++++-------- src/webui/www/public/scripts/client.js | 18 ++++++++++++++++++ src/webui/www/public/scripts/dynamicTable.js | 16 +++++++++++++++- 4 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/webui/abstractwebapplication.cpp b/src/webui/abstractwebapplication.cpp index 9e09010e4..cd2e70794 100644 --- a/src/webui/abstractwebapplication.cpp +++ b/src/webui/abstractwebapplication.cpp @@ -241,7 +241,7 @@ void AbstractWebApplication::translateDocument(QString& data) "HttpServer", "confirmDeletionDlg", "TrackerList", "TorrentFilesModel", "options_imp", "Preferences", "TrackersAdditionDlg", "ScanFoldersModel", "PropTabBar", "TorrentModel", "downloadFromURL", "MainWindow", "misc", - "StatusBar", "AboutDlg", "about", "PeerListWidget" + "StatusBar", "AboutDlg", "about", "PeerListWidget", "StatusFiltersWidget" }; const size_t context_count = sizeof(contexts) / sizeof(contexts[0]); int i = 0; diff --git a/src/webui/www/public/filters.html b/src/webui/www/public/filters.html index 48cce7baf..e7f43c2e6 100644 --- a/src/webui/www/public/filters.html +++ b/src/webui/www/public/filters.html @@ -1,13 +1,14 @@ QBT_TR(Torrents)QBT_TR
QBT_TR(Labels)QBT_TR diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index ba28bcfbb..28bb878b9 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -115,6 +115,7 @@ window.addEvent('load', function () { $("resumed_filter").removeClass("selectedFilter"); $("active_filter").removeClass("selectedFilter"); $("inactive_filter").removeClass("selectedFilter"); + $("errored_filter").removeClass("selectedFilter"); $(f + "_filter").addClass("selectedFilter"); selected_filter = f; localStorage.setItem('selected_filter', f); @@ -219,6 +220,22 @@ window.addEvent('load', function () { }); }; + var updateFilter = function(filter, filterTitle) { + $(filter + '_filter').firstChild.childNodes[1].nodeValue = filterTitle.replace('%1', torrentsTable.getFilteredTorrentsNumber(filter)); + }; + + var updateFiltersList = function() { + updateFilter('all', 'QBT_TR(All (%1))QBT_TR'); + updateFilter('downloading', 'QBT_TR(Downloading (%1))QBT_TR'); + updateFilter('seeding', 'QBT_TR(Seeding (%1))QBT_TR'); + updateFilter('completed', 'QBT_TR(Completed (%1))QBT_TR'); + updateFilter('resumed', 'QBT_TR(Resumed (%1))QBT_TR'); + updateFilter('paused', 'QBT_TR(Paused (%1))QBT_TR'); + updateFilter('active', 'QBT_TR(Active (%1))QBT_TR'); + updateFilter('inactive', 'QBT_TR(Inactive (%1))QBT_TR'); + updateFilter('errored', 'QBT_TR(Errored (%1))QBT_TR'); + }; + var updateLabelList = function() { var labelList = $('filterLabelList'); if (!labelList) @@ -331,6 +348,7 @@ window.addEvent('load', function () { serverState[key] = tmp[key]; processServerState(); } + updateFiltersList(); if (update_labels) { updateLabelList(); updateContextMenu(); diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index 018ace08c..0184eb050 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -480,7 +480,7 @@ var TorrentsTable = new Class({ else if (state == "checkingDL" || state == "checkingUP" || state == "queuedForChecking" || state == "checkingResumeData") state = "checking"; - else if (state == "unknown") + else if (state == "unknown" || state == "error" || state == "missingFiles") state = "error"; var img_path = 'images/skin/' + state + '.png'; @@ -645,6 +645,10 @@ var TorrentsTable = new Class({ if (state == 'downloading' || state == 'forcedDL' || state == 'uploading' || state == 'forcedUP') return false; break; + case 'errored': + if (state != 'error' && state != "unknown" && state != "missingFiles") + return false; + break; } if (labelName == LABELS_ALL) @@ -659,6 +663,16 @@ var TorrentsTable = new Class({ return true; }, + getFilteredTorrentsNumber : function (filterName) { + var cnt = 0; + var rows = this.rows.getValues(); + + for (i = 0; i < rows.length; i++) + if (this.applyFilter(rows[i], filterName, LABELS_ALL)) cnt++; + + return cnt; + }, + getFilteredAndSortedRows : function () { var filteredRows = new Array(); From 87347cf0e53756f6e1a2e4984e167e4be5bbd06f Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 7 Dec 2015 23:58:09 +0200 Subject: [PATCH 024/238] Remove unused parameter. --- src/gui/properties/peerlistwidget.cpp | 8 ++++---- src/gui/properties/peerlistwidget.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 14729cb38..96fefa3b4 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -282,14 +282,14 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo QString peerIp = addr.ip.toString(); if (m_peerItems.contains(peerIp)) { // Update existing peer - updatePeer(peerIp, torrent, peer); + updatePeer(peerIp, peer); oldeersSet.remove(peerIp); if (forceHostnameResolution && m_resolver) m_resolver->resolve(peerIp); } else { // Add new peer - m_peerItems[peerIp] = addPeer(peerIp, torrent, peer); + m_peerItems[peerIp] = addPeer(peerIp, peer); m_peerAddresses[peerIp] = addr; // Resolve peer host name is asked if (m_resolver) @@ -307,7 +307,7 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo } } -QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer) +QStandardItem* PeerListWidget::addPeer(const QString &ip, const BitTorrent::PeerInfo &peer) { int row = m_listModel->rowCount(); // Adding Peer to peer list @@ -340,7 +340,7 @@ QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHan return m_listModel->item(row, PeerListDelegate::IP); } -void PeerListWidget::updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer) +void PeerListWidget::updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer) { QStandardItem *item = m_peerItems.value(ip); int row = item->row(); diff --git a/src/gui/properties/peerlistwidget.h b/src/gui/properties/peerlistwidget.h index c7ec81ad7..b5af9530c 100644 --- a/src/gui/properties/peerlistwidget.h +++ b/src/gui/properties/peerlistwidget.h @@ -68,8 +68,8 @@ public: ~PeerListWidget(); void loadPeers(BitTorrent::TorrentHandle *const torrent, bool forceHostnameResolution = false); - QStandardItem *addPeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer); - void updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer); + QStandardItem *addPeer(const QString &ip, const BitTorrent::PeerInfo &peer); + void updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer); void handleResolved(const QString &ip, const QString &hostname); void updatePeerHostNameResolutionState(); void updatePeerCountryResolutionState(); From 9e20553dab07f111777fc3f34c555591062284e3 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 6 Dec 2015 13:14:07 +0200 Subject: [PATCH 025/238] Follow project coding style. Issue #2192. --- src/gui/programupdater.cpp | 240 +++++++++++++++++++------------------ src/gui/programupdater.h | 8 +- 2 files changed, 128 insertions(+), 120 deletions(-) diff --git a/src/gui/programupdater.cpp b/src/gui/programupdater.cpp index 7a0a93900..91246a86f 100644 --- a/src/gui/programupdater.cpp +++ b/src/gui/programupdater.cpp @@ -50,149 +50,157 @@ const QUrl RSS_URL("http://sourceforge.net/projects/qbittorrent/rss?path=/qbitto const QString FILE_EXT = "EXE"; #endif -ProgramUpdater::ProgramUpdater(QObject *parent, bool invokedByUser) : - QObject(parent), m_invokedByUser(invokedByUser) +ProgramUpdater::ProgramUpdater(QObject *parent, bool invokedByUser) + : QObject(parent) + , m_invokedByUser(invokedByUser) { - mp_manager = new QNetworkAccessManager(this); - Preferences* const pref = Preferences::instance(); - // Proxy support - if (pref->isProxyEnabled()) { - QNetworkProxy proxy; - switch(pref->getProxyType()) { - case Proxy::SOCKS4: - case Proxy::SOCKS5: - case Proxy::SOCKS5_PW: - proxy.setType(QNetworkProxy::Socks5Proxy); - default: - proxy.setType(QNetworkProxy::HttpProxy); - break; + m_networkManager = new QNetworkAccessManager(this); + Preferences* const pref = Preferences::instance(); + // Proxy support + if (pref->isProxyEnabled()) { + QNetworkProxy proxy; + switch(pref->getProxyType()) { + case Proxy::SOCKS4: + case Proxy::SOCKS5: + case Proxy::SOCKS5_PW: + proxy.setType(QNetworkProxy::Socks5Proxy); + default: + proxy.setType(QNetworkProxy::HttpProxy); + break; + } + proxy.setHostName(pref->getProxyIp()); + proxy.setPort(pref->getProxyPort()); + // Proxy authentication + if (pref->isProxyAuthEnabled()) { + proxy.setUser(pref->getProxyUsername()); + proxy.setPassword(pref->getProxyPassword()); + } + m_networkManager->setProxy(proxy); } - proxy.setHostName(pref->getProxyIp()); - proxy.setPort(pref->getProxyPort()); - // Proxy authentication - if (pref->isProxyAuthEnabled()) { - proxy.setUser(pref->getProxyUsername()); - proxy.setPassword(pref->getProxyPassword()); - } - mp_manager->setProxy(proxy); - } } -ProgramUpdater::~ProgramUpdater() { - delete mp_manager; +ProgramUpdater::~ProgramUpdater() +{ + delete m_networkManager; } void ProgramUpdater::checkForUpdates() { - // SIGNAL/SLOT - connect(mp_manager, SIGNAL(finished(QNetworkReply*)), - this, SLOT(rssDownloadFinished(QNetworkReply*))); - // Send the request - QNetworkRequest request(RSS_URL); - request.setRawHeader("User-Agent", QString("qBittorrent/%1 ProgramUpdater (www.qbittorrent.org)").arg(VERSION).toLocal8Bit()); - mp_manager->get(request); + // SIGNAL/SLOT + connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(rssDownloadFinished(QNetworkReply*))); + // Send the request + QNetworkRequest request(RSS_URL); + request.setRawHeader("User-Agent", QString("qBittorrent/%1 ProgramUpdater (www.qbittorrent.org)").arg(VERSION).toLocal8Bit()); + m_networkManager->get(request); } -void ProgramUpdater::setUpdateUrl(QString title) { - m_updateUrl = "http://downloads.sourceforge.net/project/qbittorrent"+title; - qDebug("The Update URL is %s", qPrintable(m_updateUrl)); +void ProgramUpdater::setUpdateUrl(QString title) +{ + m_updateUrl = "http://downloads.sourceforge.net/project/qbittorrent" + title; + qDebug("The Update URL is %s", qPrintable(m_updateUrl)); } void ProgramUpdater::rssDownloadFinished(QNetworkReply *reply) { - // Disconnect SIGNAL/SLOT - disconnect(mp_manager, 0, this, 0); - qDebug("Finished downloading the new qBittorrent updates RSS"); - QString new_version; - if (!reply->error()) { - qDebug("No download error, good."); - QXmlStreamReader xml(reply); - QString item_title; - bool in_title = false; - bool in_item = false; - while (!xml.atEnd()) { - xml.readNext(); - if (xml.isStartElement()) { - if (in_item && xml.name() == "title") { - in_title = true; - item_title = ""; - } else if (xml.name() == "item") { - in_item = true; - } - } else if (xml.isEndElement()) { - if (in_item && xml.name() == "title") { - in_title = false; - const QString ext = Utils::Fs::fileExtension(item_title).toUpper(); - qDebug("Found an update with file extension: %s", qPrintable(ext)); - if (ext == FILE_EXT) { - qDebug("The last update available is %s", qPrintable(item_title)); - new_version = extractVersionNumber(item_title); - if (!new_version.isEmpty()) { - qDebug("Detected version is %s", qPrintable(new_version)); - if (isVersionMoreRecent(new_version)) - setUpdateUrl(item_title); + // Disconnect SIGNAL/SLOT + disconnect(m_networkManager, 0, this, 0); + qDebug("Finished downloading the new qBittorrent updates RSS"); + QString new_version; + if (!reply->error()) { + qDebug("No download error, good."); + QXmlStreamReader xml(reply); + QString item_title; + bool in_title = false; + bool in_item = false; + while (!xml.atEnd()) { + xml.readNext(); + if (xml.isStartElement()) { + if (in_item && xml.name() == "title") { + in_title = true; + item_title = ""; + } + else if (xml.name() == "item") { + in_item = true; + } + } + else if (xml.isEndElement()) { + if (in_item && xml.name() == "title") { + in_title = false; + const QString ext = Utils::Fs::fileExtension(item_title).toUpper(); + qDebug("Found an update with file extension: %s", qPrintable(ext)); + if (ext == FILE_EXT) { + qDebug("The last update available is %s", qPrintable(item_title)); + new_version = extractVersionNumber(item_title); + if (!new_version.isEmpty()) { + qDebug("Detected version is %s", qPrintable(new_version)); + if (isVersionMoreRecent(new_version)) + setUpdateUrl(item_title); + } + break; + } + } + else if (xml.name() == "item") { + in_item = false; + } + } + else if (xml.isCharacters() && !xml.isWhitespace()) { + if (in_item && in_title) + item_title += xml.text().toString(); } - break; - } - } else if (xml.name() == "item") { - in_item = false; } - } else if (xml.isCharacters() && !xml.isWhitespace()) { - if (in_item && in_title) - item_title += xml.text().toString(); - } } - } - emit updateCheckFinished(!m_updateUrl.isEmpty(), new_version, m_invokedByUser); - // Clean up - reply->deleteLater(); + emit updateCheckFinished(!m_updateUrl.isEmpty(), new_version, m_invokedByUser); + // Clean up + reply->deleteLater(); } void ProgramUpdater::updateProgram() { - Q_ASSERT(!m_updateUrl.isEmpty()); - QDesktopServices::openUrl(m_updateUrl); - return; + Q_ASSERT(!m_updateUrl.isEmpty()); + QDesktopServices::openUrl(m_updateUrl); + return; } // title on Windows: /qbittorrent-win32/qbittorrent-2.4.7/qbittorrent_2.4.7_setup.exe // title on Mac: /qbittorrent-mac/qbittorrent-2.4.4/qbittorrent-2.4.4.dmg QString ProgramUpdater::extractVersionNumber(const QString& title) const { - qDebug() << Q_FUNC_INFO << title; - QRegExp regVer("qbittorrent[_-]([0-9.]+)(_setup)?(\\.exe|\\.dmg)"); - if (regVer.indexIn(title) < 0) { - qWarning() << Q_FUNC_INFO << "Failed to extract version from file name:" << title; - return QString::null; - } else { - QString version = regVer.cap(1); - qDebug() << Q_FUNC_INFO << "Extracted version:" << version; - return version; - } -} - -bool ProgramUpdater::isVersionMoreRecent(const QString& remote_version) const -{ - QRegExp regVer("([0-9.]+)"); - if (regVer.indexIn(QString(VERSION)) >= 0) { - QString local_version = regVer.cap(1); - qDebug() << Q_FUNC_INFO << "local version:" << local_version << "/" << VERSION; - QStringList remote_parts = remote_version.split('.'); - QStringList local_parts = local_version.split('.'); - for (int i=0; i local_parts[i].toInt()) - return true; - if (remote_parts[i].toInt() < local_parts[i].toInt()) - return false; + qDebug() << Q_FUNC_INFO << title; + QRegExp regVer("qbittorrent[_-]([0-9.]+)(_setup)?(\\.exe|\\.dmg)"); + if (regVer.indexIn(title) < 0) { + qWarning() << Q_FUNC_INFO << "Failed to extract version from file name:" << title; + return QString::null; + } + else { + QString version = regVer.cap(1); + qDebug() << Q_FUNC_INFO << "Extracted version:" << version; + return version; } - // Compared parts were equal, if remote version is longer, then it's more recent (2.9.2.1 > 2.9.2) - if (remote_parts.size() > local_parts.size()) - return true; - // versions are equal, check if the local version is a development release, in which case it is older (2.9.2beta < 2.9.2) - QRegExp regDevel("(alpha|beta|rc)"); - if (regDevel.indexIn(VERSION) >= 0) - return true; - } - return false; +} + +bool ProgramUpdater::isVersionMoreRecent(const QString &remoteVersion) const +{ + QRegExp regVer("([0-9.]+)"); + if (regVer.indexIn(QString(VERSION)) >= 0) { + QString localVersion = regVer.cap(1); + qDebug() << Q_FUNC_INFO << "local version:" << localVersion << "/" << VERSION; + QStringList remoteParts = remoteVersion.split('.'); + QStringList localParts = localVersion.split('.'); + for (int i = 0; i localParts[i].toInt()) + return true; + if (remoteParts[i].toInt() < localParts[i].toInt()) + return false; + } + // Compared parts were equal, if remote version is longer, then it's more recent (2.9.2.1 > 2.9.2) + if (remoteParts.size() > localParts.size()) + return true; + // versions are equal, check if the local version is a development release, in which case it is older (2.9.2beta < 2.9.2) + QRegExp regDevel("(alpha|beta|rc)"); + if (regDevel.indexIn(VERSION) >= 0) + return true; + } + return false; } diff --git a/src/gui/programupdater.h b/src/gui/programupdater.h index dff58f932..563a72737 100644 --- a/src/gui/programupdater.h +++ b/src/gui/programupdater.h @@ -37,7 +37,7 @@ class QNetworkReply; class QNetworkAccessManager; -class ProgramUpdater : public QObject +class ProgramUpdater: public QObject { Q_OBJECT public: @@ -48,18 +48,18 @@ public: protected: QString extractVersionNumber(const QString& title) const; - bool isVersionMoreRecent(const QString& new_version) const; + bool isVersionMoreRecent(const QString &remoteVersion) const; protected slots: void rssDownloadFinished(QNetworkReply* reply); void setUpdateUrl(QString title); signals: - void updateCheckFinished(bool update_available, QString version, bool invokedByUser); + void updateCheckFinished(bool updateAvailable, QString version, bool invokedByUser); private: QString m_updateUrl; - QNetworkAccessManager *mp_manager; + QNetworkAccessManager *m_networkManager; bool m_invokedByUser; }; From 970e21fc33fa209423bb376bbae0ca8a2e049964 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 6 Dec 2015 15:19:00 +0200 Subject: [PATCH 026/238] Change update URL to FossHub. Closes #4188. --- src/gui/programupdater.cpp | 107 +++++++++++++++++-------------------- src/gui/programupdater.h | 2 - 2 files changed, 50 insertions(+), 59 deletions(-) diff --git a/src/gui/programupdater.cpp b/src/gui/programupdater.cpp index 91246a86f..3514c6f0f 100644 --- a/src/gui/programupdater.cpp +++ b/src/gui/programupdater.cpp @@ -42,14 +42,19 @@ #include "base/utils/fs.h" #include "base/preferences.h" +namespace +{ + const QUrl RSS_URL("http://www.fosshub.com/software/feedqBittorent"); + #ifdef Q_OS_MAC -const QUrl RSS_URL("http://sourceforge.net/projects/qbittorrent/rss?path=/qbittorrent-mac"); -const QString FILE_EXT = "DMG"; + const QString OS_TYPE("Mac OS X"); #else -const QUrl RSS_URL("http://sourceforge.net/projects/qbittorrent/rss?path=/qbittorrent-win32"); -const QString FILE_EXT = "EXE"; + const QString OS_TYPE("Windows"); #endif + QString getStringValue(QXmlStreamReader &xml); +} + ProgramUpdater::ProgramUpdater(QObject *parent, bool invokedByUser) : QObject(parent) , m_invokedByUser(invokedByUser) @@ -91,66 +96,60 @@ void ProgramUpdater::checkForUpdates() this, SLOT(rssDownloadFinished(QNetworkReply*))); // Send the request QNetworkRequest request(RSS_URL); + // Don't change this User-Agent. In case our updater goes haywire, the filehost can indetify it and contact us. request.setRawHeader("User-Agent", QString("qBittorrent/%1 ProgramUpdater (www.qbittorrent.org)").arg(VERSION).toLocal8Bit()); m_networkManager->get(request); } -void ProgramUpdater::setUpdateUrl(QString title) -{ - m_updateUrl = "http://downloads.sourceforge.net/project/qbittorrent" + title; - qDebug("The Update URL is %s", qPrintable(m_updateUrl)); -} - void ProgramUpdater::rssDownloadFinished(QNetworkReply *reply) { // Disconnect SIGNAL/SLOT disconnect(m_networkManager, 0, this, 0); qDebug("Finished downloading the new qBittorrent updates RSS"); - QString new_version; + QString version; + if (!reply->error()) { qDebug("No download error, good."); QXmlStreamReader xml(reply); - QString item_title; - bool in_title = false; - bool in_item = false; + bool inItem = false; + QString updateLink; + QString type; + while (!xml.atEnd()) { xml.readNext(); + if (xml.isStartElement()) { - if (in_item && xml.name() == "title") { - in_title = true; - item_title = ""; - } - else if (xml.name() == "item") { - in_item = true; - } + if (xml.name() == "item") + inItem = true; + else if (inItem && xml.name() == "link") + updateLink = getStringValue(xml); + else if (inItem && xml.name() == "type") + type = getStringValue(xml); + else if (inItem && xml.name() == "version") + version = getStringValue(xml); } else if (xml.isEndElement()) { - if (in_item && xml.name() == "title") { - in_title = false; - const QString ext = Utils::Fs::fileExtension(item_title).toUpper(); - qDebug("Found an update with file extension: %s", qPrintable(ext)); - if (ext == FILE_EXT) { - qDebug("The last update available is %s", qPrintable(item_title)); - new_version = extractVersionNumber(item_title); - if (!new_version.isEmpty()) { - qDebug("Detected version is %s", qPrintable(new_version)); - if (isVersionMoreRecent(new_version)) - setUpdateUrl(item_title); + if (inItem && xml.name() == "item") { + if (type.compare(OS_TYPE, Qt::CaseInsensitive) == 0) { + qDebug("The last update available is %s", qPrintable(version)); + if (!version.isEmpty()) { + qDebug("Detected version is %s", qPrintable(version)); + if (isVersionMoreRecent(version)) + m_updateUrl = updateLink; } break; } + + inItem = false; + updateLink.clear(); + type.clear(); + version.clear(); } - else if (xml.name() == "item") { - in_item = false; - } - } - else if (xml.isCharacters() && !xml.isWhitespace()) { - if (in_item && in_title) - item_title += xml.text().toString(); } } } - emit updateCheckFinished(!m_updateUrl.isEmpty(), new_version, m_invokedByUser); + + emit updateCheckFinished(!m_updateUrl.isEmpty(), version, m_invokedByUser); // Clean up reply->deleteLater(); } @@ -162,23 +161,6 @@ void ProgramUpdater::updateProgram() return; } -// title on Windows: /qbittorrent-win32/qbittorrent-2.4.7/qbittorrent_2.4.7_setup.exe -// title on Mac: /qbittorrent-mac/qbittorrent-2.4.4/qbittorrent-2.4.4.dmg -QString ProgramUpdater::extractVersionNumber(const QString& title) const -{ - qDebug() << Q_FUNC_INFO << title; - QRegExp regVer("qbittorrent[_-]([0-9.]+)(_setup)?(\\.exe|\\.dmg)"); - if (regVer.indexIn(title) < 0) { - qWarning() << Q_FUNC_INFO << "Failed to extract version from file name:" << title; - return QString::null; - } - else { - QString version = regVer.cap(1); - qDebug() << Q_FUNC_INFO << "Extracted version:" << version; - return version; - } -} - bool ProgramUpdater::isVersionMoreRecent(const QString &remoteVersion) const { QRegExp regVer("([0-9.]+)"); @@ -204,3 +186,14 @@ bool ProgramUpdater::isVersionMoreRecent(const QString &remoteVersion) const return false; } +namespace +{ + QString getStringValue(QXmlStreamReader &xml) + { + xml.readNext(); + if (xml.isCharacters() && !xml.isWhitespace()) + return xml.text().toString(); + + return QString(); + } +} diff --git a/src/gui/programupdater.h b/src/gui/programupdater.h index 563a72737..ecf71bd7c 100644 --- a/src/gui/programupdater.h +++ b/src/gui/programupdater.h @@ -47,12 +47,10 @@ public: void updateProgram(); protected: - QString extractVersionNumber(const QString& title) const; bool isVersionMoreRecent(const QString &remoteVersion) const; protected slots: void rssDownloadFinished(QNetworkReply* reply); - void setUpdateUrl(QString title); signals: void updateCheckFinished(bool updateAvailable, QString version, bool invokedByUser); From 3e0f8a1e4e78d7382aec2b1680862756ad8efaf3 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 7 Dec 2015 23:42:35 +0200 Subject: [PATCH 027/238] Bump WebUI API_VERSION. --- src/webui/webapplication.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 38e58e39d..1a61bff6d 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -49,7 +49,7 @@ #include "websessiondata.h" #include "webapplication.h" -static const int API_VERSION = 6; +static const int API_VERSION = 7; static const int API_VERSION_MIN = 2; const QString WWW_FOLDER = ":/www/public/"; From 91a99c6903961a5a5ac2d510c03fea6debaa21ab Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 7 Dec 2015 23:54:38 +0200 Subject: [PATCH 028/238] Fix possible deadlock during application exit. --- src/base/bittorrent/session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 71fd9fe62..899a6e29d 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -1964,7 +1964,7 @@ void Session::getPendingAlerts(QVector &out, ulong time) QMutexLocker lock(&m_alertsMutex); - while (m_alerts.empty()) + if (m_alerts.empty()) m_alertsWaitCondition.wait(&m_alertsMutex, time); m_alerts.swap(out); From 39ad4d65e8e03cb7743e77f122c81682a2773be6 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Tue, 8 Dec 2015 00:15:50 +0200 Subject: [PATCH 029/238] Sync translations from Transifex and run lupdate. --- src/lang/qbittorrent_ar.ts | 1467 +++++++++---------- src/lang/qbittorrent_be.ts | 2184 +++++++++++++++-------------- src/lang/qbittorrent_bg.ts | 1463 ++++++++++--------- src/lang/qbittorrent_ca.ts | 1425 ++++++++++--------- src/lang/qbittorrent_cs.ts | 1429 ++++++++++--------- src/lang/qbittorrent_da.ts | 1447 +++++++++---------- src/lang/qbittorrent_de.ts | 1425 ++++++++++--------- src/lang/qbittorrent_el.ts | 1427 ++++++++++--------- src/lang/qbittorrent_en.ts | 1473 ++++++++++---------- src/lang/qbittorrent_en_AU.ts | 1463 ++++++++++--------- src/lang/qbittorrent_en_GB.ts | 1463 ++++++++++--------- src/lang/qbittorrent_eo.ts | 1451 +++++++++---------- src/lang/qbittorrent_es.ts | 1425 ++++++++++--------- src/lang/qbittorrent_eu.ts | 1433 ++++++++++--------- src/lang/qbittorrent_fi.ts | 1453 +++++++++---------- src/lang/qbittorrent_fr.ts | 1624 +++++++++++---------- src/lang/qbittorrent_gl.ts | 1425 ++++++++++--------- src/lang/qbittorrent_he.ts | 1463 ++++++++++--------- src/lang/qbittorrent_hi_IN.ts | 1463 ++++++++++--------- src/lang/qbittorrent_hr.ts | 1427 ++++++++++--------- src/lang/qbittorrent_hu.ts | 1425 ++++++++++--------- src/lang/qbittorrent_hy.ts | 1455 +++++++++---------- src/lang/qbittorrent_id.ts | 1425 ++++++++++--------- src/lang/qbittorrent_it.ts | 1425 ++++++++++--------- src/lang/qbittorrent_ja.ts | 2479 +++++++++++++++++---------------- src/lang/qbittorrent_ka.ts | 1463 ++++++++++--------- src/lang/qbittorrent_ko.ts | 2132 ++++++++++++++-------------- src/lang/qbittorrent_lt.ts | 1514 ++++++++++---------- src/lang/qbittorrent_nb.ts | 1425 ++++++++++--------- src/lang/qbittorrent_nl.ts | 1425 ++++++++++--------- src/lang/qbittorrent_pl.ts | 1425 ++++++++++--------- src/lang/qbittorrent_pt.ts | 1425 ++++++++++--------- src/lang/qbittorrent_pt_BR.ts | 1425 ++++++++++--------- src/lang/qbittorrent_ro.ts | 1467 ++++++++++--------- src/lang/qbittorrent_ru.ts | 1431 ++++++++++--------- src/lang/qbittorrent_sk.ts | 1425 ++++++++++--------- src/lang/qbittorrent_sl.ts | 1441 ++++++++++--------- src/lang/qbittorrent_sr.ts | 1463 ++++++++++--------- src/lang/qbittorrent_sv.ts | 1441 +++++++++---------- src/lang/qbittorrent_tr.ts | 1457 ++++++++++--------- src/lang/qbittorrent_uk.ts | 1523 ++++++++++---------- src/lang/qbittorrent_vi.ts | 1435 ++++++++++--------- src/lang/qbittorrent_zh.ts | 1425 ++++++++++--------- src/lang/qbittorrent_zh_HK.ts | 1435 ++++++++++--------- src/lang/qbittorrent_zh_TW.ts | 1425 ++++++++++--------- 45 files changed, 35125 insertions(+), 32516 deletions(-) diff --git a/src/lang/qbittorrent_ar.ts b/src/lang/qbittorrent_ar.ts index ec5661efd..750f4f488 100644 --- a/src/lang/qbittorrent_ar.ts +++ b/src/lang/qbittorrent_ar.ts @@ -125,217 +125,222 @@ تخطي التحقق من البيانات - + + Set as default label + + + + Torrent Information معلومات التورنت - + Size: الحجم: - + Comment: تعليق: - + Date: التاريخ: - + Info Hash: - + Normal عادي - + High مرتفع - + Maximum أقصى أهمية - + Do not download لا تنزّل - - + + I/O Error خطأ إدخال/إخراج - + The torrent file does not exist. ملف التورنت غير موجود. - + Invalid torrent ملف تورنت خاطئ - + Failed to load the torrent: %1 فشل في تنزيل التورنت: %1 - - + + Already in download list موجود في قائمة التنزيل بالفعل - + Free disk space: %1 المساحة الخالية من القرص: %1 - + Not Available This comment is unavailable غير متاح - + Not Available This date is unavailable غير متاح - + Not available غير متوفر - + Invalid magnet link رابط مغناطيسي خاطئ - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent لا يمكن إضافة التورينت - + Cannot add this torrent. Perhaps it is already in adding state. لا يمكن إضافة هذا التورنت. ربما لأنه في حالة الإضافة - + This magnet link was not recognized لا يمكن التعرف على هذا الرابط المغناطيسي - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link رابط مغناطيسي - + Retrieving metadata... يجلب البيانات الوصفية... - + Not Available This size is unavailable. غير متاح - - - + + + Choose save path اختر مسار الحفظ - + Rename the file إعادة تسمية الملف - + New name: الاسم الجديد: - - + + The file could not be renamed لا يمكن إعادة تسمية الملف - + This file name contains forbidden characters, please choose a different one. اسم هذا الملف يحتوي على أحرف محظورة الاستخدام في التسمية. من فضلك اختر اسماٌ آخر. - - + + This name is already in use in this folder. Please use a different name. هذا الاسم مستخدم بالفعل في هذا المجلد. من فضلك اختر اسما آخر. - + The folder could not be renamed لا يمكن إعادة تسمية المجلد - + Rename... إعادة التسمية... - + Priority الأولوية - + Invalid metadata بيانات وصفية خاطئة - + Parsing metadata... يحلّل البيانات الوصفية... - + Metadata retrieval complete اكتمل جلب البيانات الوصفية - + Download Error خطأ في التنزيل @@ -427,9 +432,8 @@ اظهار اسم الجهاز للقرين - Maximum number of half-open connections [0: Disabled] - أكبر كمية من الاتصالات النصف مفتوحة [0: معطلة] + أكبر كمية من الاتصالات النصف مفتوحة [0: معطلة] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number تمت معالجة قائمة الحظر المعطاة بنجاح: %1 تم تطبيقها. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. خطأ في البيانات الوصفية: لم يُعثر على المُدخلة '%1'. - + Metadata error: '%1' entry has invalid type. خطأ في البيانات الوصفية: المُدخلة '%1' هي نوع غير صالح. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. رابط واحد لكل سطر - Download local torrent - حمل تورنت محلي + حمل تورنت محلي @@ -1508,7 +1501,7 @@ You should get this information from your Web browser preferences. Upload limit: - + حد الرفع: @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + حفظ الملفات إلى: + + + + Label: + + + + + Cookie: + + + + Downloaded Is the file downloaded or not? تم تنزيله @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text مسح النص @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit ت&حرير - + &Tools أ&دوات - + &File &ملف - + &Help م&ساعدة - + On Downloads &Done - + &View &عرض - + &Options... &خيارات... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. ا&ستئناف - + Torrent &Creator - + Set Upload Limit... - + تعيين حد الرفع... - + Set Download Limit... تعيين حد التنزيل... - + Set Global Download Limit... تعيين حد التنزيل العام... - + Set Global Upload Limit... - + تعيين حد الرفع العام... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent &قفل واجهة البرنامج - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All اس&تئناف الكل - + &Log - + &Exit qBittorrent إ&غلاق البرنامج - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,72 @@ You should get this information from your Web browser preferences. &عن - Exit - خروج + خروج - + &Pause إ&لباث - + &Delete &حذف - + P&ause All إل&باث الكل - + &Add Torrent File... - + Open فتح - + E&xit - Options - خيارات + خيارات - Resume - استئناف + استئناف - Pause - إلباث + إلباث - Delete - حذف + حذف - + Open URL فتح الرابط - + &Documentation الت&عليمات - + Lock أوصد - + Show أظهر @@ -2019,22 +2027,21 @@ You should get this information from your Web browser preferences. التحقق من وجود تحديثات للتطبيق - Lock qBittorrent - قفل البرنامج + قفل البرنامج - + Add Torrent &Link... - + If you like qBittorrent, please donate! إذا أعجبك كيوبت‎تورنت، رجاءً تبرع! - + Execution Log السجل @@ -2408,52 +2415,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2468,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2486,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France فرنسا - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece اليونان - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3787,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,207 +3800,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP اي بي - + Port المنفذ - + Flags أعلام - + Connection الاتصال - + Client i.e.: Client application العميل - + Progress i.e: % downloaded التقدم - + Down Speed i.e: Download speed سرعة التنزيل - + Up Speed i.e: Upload speed سرعة الرفع - + Downloaded i.e: total data downloaded تم تنزيله - + Uploaded i.e: total data uploaded تم رفعه - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... إضافة قرين جديد... - + Copy selected نسخ المُحدد - - + + Ban peer permanently حظر القرين نهائيا - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition إضافة القرناء - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? هل أنت متأكد من رغبتك في حظر القرناء المختارين نهائيًا؟ - + &Yes &نعم - + &No &لا - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4766,17 +4776,17 @@ Are you sure you want to quit qBittorrent? مسار المرشح (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4892,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: تم تنزيل: - + Availability: التواجد: - + Progress: الحالة: - + Transfer النقل - + Time Active: Time (duration) the torrent is active (not paused) فترة النشاط - + ETA: الوقت المتبقي: - + Uploaded: تم رفع: - + Seeds: البذور: - + Download Speed: سرعة التنزيل: - + Upload Speed: سرعة الرفع: - + Peers: القرناء: - + Download Limit: حد التنزيل: - + Upload Limit: - + حد الرفع: - + Wasted: تم تضييع: - + Connections: الاتصالات: - + Information المعلومات - + Comment: تعليق: - Torrent content: - محتوى التورنت: + محتوى التورنت: - + Select All اختيار الكل - + Select None اختيار لا شئ - + Normal عادي - + High مرتفع - + Share Ratio: نسبة المشاركة: - + Reannounce In: إعادة الإعلان خلال: - + Last Seen Complete: - + Total Size: إجمالي الحجم: - + Pieces: القطع: - + Created By: أنشئ باستخدام: - + Added On: تاريخ الإضافة: - + Completed On: تاريخ الاكتمال: - + Created On: تاريخ الإنشاء: - + Torrent Hash: بصمة التورنت: - + Save Path: مسار الحفظ: - + Maximum أقصى أهمية - - + + Do not download لا تنزّل - + Never أبدا - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) %1 (%2 هذه الجلسة) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (من إجمالي %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (بمعدّل %2) - + Open فتح - + Open Containing Folder فتح المجلد الحاوي - + Rename... تغيير التسمية... - + Priority الأولوية - + New Web seed رابط للقرين عبر الويب - + Remove Web seed ازالة رابط القرين عبر الويب - + Copy Web seed URL نسخ رابط القرين عبر الويب - + Edit Web seed URL تعديل رابط القرين عبر الويب - + Rename the file تغيير تسمية الملف - + New name: الاسم الجديد: - - + + The file could not be renamed لا يمكن تغيير تسمية الملف - + This file name contains forbidden characters, please choose a different one. هذا الاسم يحتوي أحرف ممنوع استخدامها في التسمية، رجاءً اختر واحدا مختلفا. - - + + This name is already in use in this folder. Please use a different name. هذا الاسم مستخدم بالفعل في هذا المجلد، رجاءً استخدم اسما مختلفا. - + The folder could not be renamed لا يمكن تغيير تسمية المجلد - + qBittorrent كيوبت‎تورنت @@ -5184,29 +5193,29 @@ Are you sure you want to quit qBittorrent? تصفية الملفات... - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing تعديل القرين عبر الويب - + Web seed URL: رابط القرين عبر الويب: @@ -5219,19 +5228,19 @@ Are you sure you want to quit qBittorrent? تم حظر عنوان الآي بي الخاص بك بعد الكثير محاولات الاستيثاق الفاشلة. - + Error: '%1' is not a valid torrent file. خطأ: '%1' ليس ملف تورنت صالح. - + Error: Could not add torrent to session. خطأ: تعذّر إضافة التورنت للجلسة. - + I/O Error: Could not create temporary file. @@ -5382,138 +5391,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + لقد قمت بالتحديث من إصدارة قديمة تحتفظ بأشياء مختلفة. ينبغي عليك الترحيل إلى نظام الحفظ الجديد. لن يكون بإمكانك إستخدام إصدارة أقدم من 3.3.0 مجددا. هل ترغب بالمتابعة؟ [نعم/لا] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + لقد قمت بالتحديث من إصدارة قديمة تحتفظ بأشياء مختلفة. ينبغي عليك الترحيل إلى نظام الحفظ الجديد. لن يكون بإمكانك إستخدام إصدارة أقدم من 3.3.0 مجددا. هل ترغب بالمتابعة؟ - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5702,12 +5711,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5751,17 +5760,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder المجلد المراقب - + Download here حمل هنا - + Download path @@ -7821,11 +7830,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads التنزيلات @@ -7833,103 +7842,103 @@ Those plugins were disabled. misc - + B bytes ب - + KiB kibibytes (1024 bytes) ك.ب - + MiB mebibytes (1024 kibibytes) م.ب - + GiB gibibytes (1024 mibibytes) ج.ب - + TiB tebibytes (1024 gibibytes) ت.ب - + Python not detected - + Python version: %1 إصدارة بايثون: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1س %2د - + %1d %2h e.g: 2days 10hours %1ي %2س - + Unknown Unknown (size) غير معروف - + qBittorrent will shutdown the computer now because all downloads are complete. سيتم إطفاء تشغيل الحاسوب الآن لأن جميع التنزيلات اكتملت. - + < 1m < 1 minute < د - + %1m e.g: 10minutes %1د - + Working يعمل - + Updating... يحدّث... - + Not working لا يعمل - + Not contacted yet لم يتصل بعد diff --git a/src/lang/qbittorrent_be.ts b/src/lang/qbittorrent_be.ts index 2d92010da..83afde839 100644 --- a/src/lang/qbittorrent_be.ts +++ b/src/lang/qbittorrent_be.ts @@ -125,217 +125,222 @@ Прапусціць праверку хэшу - + + Set as default label + + + + Torrent Information Інфармацыя пра торэнт - + Size: Памер: - + Comment: Каментар: - + Date: Дата: - + Info Hash: Хэш: - + Normal Звычайны - + High Высокі - + Maximum Максімальны - + Do not download Не сцягваць - - + + I/O Error Памылка ўводу/вываду - + The torrent file does not exist. Torrent-файл не існуе. - + Invalid torrent Памылковы торэнт - + Failed to load the torrent: %1 Не выйшла загрузіць торэнт: %1 - - + + Already in download list Ужо ў спісе сцягванняў - + Free disk space: %1 Свабодная прастора: %1 - + Not Available This comment is unavailable Не даступны - + Not Available This date is unavailable Не даступна - + Not available Не даступна - + Invalid magnet link Памылковая Magnet-спасылка - + Torrent is already in download list. Trackers were merged. Торэнт ужо ў спісе сцягванняў. Трэкеры былі аб'яднаны. - - + + Cannot add torrent Нельга дадаць торэнт - + Cannot add this torrent. Perhaps it is already in adding state. Нельга дадаць гэты торэнт. Мабыць, ён ужо ў стане дадавання. - + This magnet link was not recognized Magnet-спасылка не пазнана - + Magnet link is already in download list. Trackers were merged. Magnet-спасылка ўжо ў спісе сцягванняў. Трэкеры былі аб'яднаны. - + Cannot add this torrent. Perhaps it is already in adding. Нельга дадаць гэты торэнт. Мабыць, ён ужо дадаецца. - + Magnet link Magnet-спасылка - + Retrieving metadata... Атрыманне метазвестак... - + Not Available This size is unavailable. Не даступны - - - + + + Choose save path Пазначце шлях захавання - + Rename the file Пераназваць файл - + New name: Новая назва: - - + + The file could not be renamed Немагчыма пераназваць файл - + This file name contains forbidden characters, please choose a different one. Назва файла змяшчае недазволеныя сімвалы. Калі ласка, дайце іншую назву. - - + + This name is already in use in this folder. Please use a different name. Гэтая назва ўжо выкарыстоўваецца ў каталогу. Калі ласка, дайце іншую назву. - + The folder could not be renamed Немагчыма пераназваць каталог - + Rename... Пераназваць... - + Priority Прыярытэт - + Invalid metadata Хібныя метазвесткі - + Parsing metadata... Ідзе разбор метазвестак... - + Metadata retrieval complete Атрыманне метазвестак скончана - + Download Error Памылка сцягвання @@ -427,9 +432,8 @@ Вызначыць назву хоста піра - Maximum number of half-open connections [0: Disabled] - Макс. колькасць адкрытых на палову злучэнняў [0: Адключана] + Макс. колькасць адкрытых на палову злучэнняў [0: Адключана] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Інтэрвал захавання файлаў хуткага аднаўлення (fastresume) + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -553,58 +562,58 @@ RSS Downloader - + Сцягвальнік RSS Enable Automated RSS Downloader - + Уключыць аўтаматычны сцягвальнік RSS Download Rules - + Правілы сцягвання Rule Definition - + Апісанне правіла Use Regular Expressions - + Выкарыстоўваць рэгулярныя выразы Must Contain: - + Мусіць змяшчаць: Must Not Contain: - + Мусіць не змяшчаць: Episode Filter: - + Фільтр эпізодаў: Assign Label: - + Прызначыць цэтлік: Save to a Different Directory - + Захаваць у іншы каталог Ignore Subsequent Matches for (0 to Disable) ... X days - + Ігнараваць наступныя супадзенні цягам (0 - адключана) @@ -619,37 +628,37 @@ Use global settings - + Паводле агульных настáўленняў Always - + Заўсёды Never - Ніколі + Ніколі Apply Rule to Feeds: - + Ужыць правіла да стужак: Matching RSS Articles - + Распазнаныя RSS-загалоўкі &Import... - + &Імпарт... &Export... - + &Экспарт... @@ -710,12 +719,12 @@ Last Match: %1 days ago - + Апошні вынік: %1 дзён таму Last Match: Unknown - + Апошні вынік: невядома @@ -858,331 +867,330 @@ BitTorrent::Session - + Peer ID: ID піра: - + HTTP User-Agent is '%1' - + HTTP User-Agent: '%1' - + Anonymous mode [ON] Ананімны рэжым [Укл] - + Anonymous mode [OFF] Ананімны рэжым [Адкл] - + PeX support [ON] Падтрымка PeX [Укл] - + PeX support [OFF] Падтрымка PeX [Адкл] - + Restart is required to toggle PeX support Змяненне стану PeX патрабуе перазапуску - + Local Peer Discovery support [ON] Выяўленне лакальных піраў [Укл] - + Local Peer Discovery support [OFF] Выяўленне лакальных піраў [Адкл] - + Encryption support [ON] Падтрымка шыфравання [Укл] - + Encryption support [FORCED] Падтрымка шыфравання [Прымусова] - + Encryption support [OFF] Падтрымка шыфравання [Адкл] - + Embedded Tracker [ON] Убудаваны трэкер [Укл] - + Failed to start the embedded tracker! Не выйшла запусціць убудаваны трэкер! - + Embedded Tracker [OFF] Убудаваны трэкер [Адкл] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + Стан сеткі сістэмы змяніўся на %1 - + ONLINE - + У СЕТЦЫ - + OFFLINE - + ПА-ЗА СЕТКАЙ - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Настáўленні сеткі %1 змяніліся, абнаўленне прывязкі сеансу - + Unable to decode '%1' torrent file. - + Не выйшла дэкадаваць торэнт-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + У торэнт '%2' убудавана рэкурсіўнае сцягванне файла '%1' - + Couldn't save '%1.torrent' - + Не выйшла захаваць '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + бо %1 адключаны. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + бо %1 адключаны. - + URL seed lookup failed for URL: '%1', message: %2 - + Не знайшлося сіда па адрасе: '%1', паведамленне: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' выдалены са спісу перадач і цвёрдага дыску. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' выдалены са спісу перадач. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Сцягваецца '%1', чакайце... - Torrent Export: torrent is invalid, skipping... - + Экспарт торэнта: хібны торэнт, прапускаем... - + DHT support [ON] Падтрымка DHT [Укл] - + DHT support [OFF]. Reason: %1 Падтрымка DHT [Адкл]. Прычына: %1 - + DHT support [OFF] Падтрымка DHT [Адкл] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent спрабуе праслухоўваць любы порт інтэрфейсу: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2 + qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2 - + The network interface defined is invalid: %1 Вызначаны сеткавы інтэрфэйс недапушчальны: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent спрабуе праслухоўваць інтэрфейс %1, порт: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent не знайшоў лакальны %1-адрас для праслухоўвання - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' - + Трэкер '%1' дададзены да торэнта '%2' - + Tracker '%1' was deleted from torrent '%2' - + Трэкер '%1' выдалены з торэнта '%2' - + URL seed '%1' was added to torrent '%2' - + Адрас сіда '%1' дададзены да торэнта '%2' - + URL seed '%1' was removed from torrent '%2' - + Адрас сіда '%1' выдалены з торэнта '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Не выйшла узнавіць торэнт '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - IP фільтр паспяхова прачытаны: ужыта %1 правілаў. + IP-фільтр паспяхова прачытаны: ужыта %1 правілаў. - + Error: Failed to parse the provided IP filter. - + Памылка: не выйшла прачытаць пададзены IP-фільтр. - + Couldn't add torrent. Reason: %1 - + Не выйшла дадаць торэнт з прычыны: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' узноўлены (хуткае ўзнаўленне) - + '%1' added to download list. 'torrent name' was added to download list. - + '%1' дададзены да спісу сцягванняў. - + An I/O error occurred, '%1' paused. %2 - + Памылка ўводу/вываду. '%1' спынены. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: не выйшла перанакіраваць порты, паведамленне: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + UPnP/NAT-PMP: перанакіраванне партоў паспяхова адбылося, паведамленне: %1 - + due to IP filter. this peer was blocked due to ip filter. - + паводле IP-фільтра. - + due to port filter. this peer was blocked due to port filter. - + паводле порт-фільтра. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + паводле абмежаванняў змяшанага рэжыму i2p. - + because it has a low port. this peer was blocked because it has a low port. - + бо ён меў малы нумар парта. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent паспяхова праслухоўваецца на інтэрфэйсе %1, порт: %2/%3 + + + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent не здолеў праслухоўвацца на інтэрфейсе %1, порт: %2/%3 з прычыны: %4. {1 ?} {2/%3.?} - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent не здолеў праслухоўвацца на інтэрфейсе %1, порт: %2/%3 з прычыны: %4 - + External IP: %1 e.g. External IP: 192.168.0.1 Вонкавы IP: %1 @@ -1191,19 +1199,19 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + Не выйшла перанесці торэнт '%1' з прычыны: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Разыходжанне памераў файлаў торэнта '%1', торэнт спынены. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - + Хуткае аднаўленне змесціва торэнта '%1' не выйшла з прычыны %2, новая праверка... @@ -1253,17 +1261,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + Белы: адсутныя кавалкі Green: Partial pieces - + Зялёны: частковыя кавалкі Blue: Completed pieces - + Сіні: сцягнутыя кавалкі @@ -1307,20 +1315,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - + Памылка ўводу/вываду: не выйшла адкрыць файл ip-фільтра ў рэжыме чытання. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Памылка разбору: Файл фільтра не ёсць валідным файлам PeerGuardian P2B. @@ -1328,43 +1336,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1397,9 +1405,8 @@ You should get this information from your Web browser preferences. Адна спасылка на радок - Download local torrent - Сцягнуць лакальны торэнт + Сцягнуць лакальны торэнт @@ -1572,7 +1579,22 @@ You should get this information from your Web browser preferences. Неактыўныя - + + Save files to location: + Захоўваць новыя сцягванні ў: + + + + Label: + Цэтлік: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Сцягнуты @@ -1582,6 +1604,11 @@ You should get this information from your Web browser preferences. Logout Выйсці + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1749,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Ачысціць тэкст @@ -1743,37 +1770,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Кіраванне - + &Tools &Начынне - + &File &Файл - + &Help &Даведка - + On Downloads &Done Па сканчэнні &сцягванняў - + &View &Выгляд - + &Options... &Настáўленні... @@ -1783,153 +1810,153 @@ You should get this information from your Web browser preferences. &Узнавціь - + Torrent &Creator Стварыць &торэнт - + Set Upload Limit... Абмежаваць раздачу... - + Set Download Limit... Абмежаваць сцягванне... - + Set Global Download Limit... Абмежаваць агульнае сцягванне... - + Set Global Upload Limit... Абмежаваць агульную раздачу... - + Minimum Priority - Найнізкі прыярытэт + Найнізкі пр-тэт - + Top Priority - Найвысокі прыярытэт + Найвысокі пр-тэт - + Decrease Priority - Зменшыць прыярытэт + Зменшыць пр-тэт - + Increase Priority - Павялічыць прыярытэт + Павялічыць пр-тэт - - + + Alternative Speed Limits Альтэрнатыўныя абмежаванні хуткасці - + &Top Toolbar Верхняя &панэль - + Display Top Toolbar Паказаць верхнюю панэль - + S&peed in Title Bar Х&уткасць у загалоўку - + Show Transfer Speed in Title Bar Паказваць хуткасць перадачы ў загалоўку акна - + &RSS Reader Чытанне &RSS - + Search &Engine &Пошук - + L&ock qBittorrent З&амкнуць qBittorrent - + &Import Existing Torrent... &Імпартаваць існы торэнт... - + Import Torrent... Імпартаваць торэнт... - + Do&nate! Ах&вяраваць! - + R&esume All У&знавіць усё - + &Log &Лог - + &Exit qBittorrent &Выйсці з qBittorrent - + &Suspend System &Прыпыніць камп'ютар - + &Hibernate System &Усыпіць камп'ютар - + S&hutdown System А&дключыць камп'ютар - + &Disabled &Адключана - + &Statistics &Статыстыка - + Check for Updates Праверыць на абнаўленні - + Check for Program Updates Праверыць, ці ёсць абнаўленні праграмы @@ -1939,77 +1966,72 @@ You should get this information from your Web browser preferences. &Пра qBittorrent - Exit - Выйсці + Выйсці - + &Pause &Спыніць - + &Delete &Выдаліць - + P&ause All С&пыніць усё - + &Add Torrent File... &Дадаць торэнт-файл... - + Open Адкрыць - + E&xit В&ыйсці - Options - Настáўленні + Настáўленні - Resume - Узнавіць + Узнавіць - Pause - Спыніць + Спыніць - Delete - Выдаліць + Выдаліць - + Open URL Адкрыць URL - + &Documentation &Дакументацыя - + Lock Замкнуць - + Show Паказаць @@ -2020,22 +2042,21 @@ You should get this information from your Web browser preferences. Праверыць на існасць абнаўленняў праграмы - Lock qBittorrent - Замкнуць qBittorrent + Замкнуць qBittorrent - + Add Torrent &Link... Дадаць &спасылку на торэнт... - + If you like qBittorrent, please donate! Калі вам падабаецца qBittorrent, калі ласка, зрабіце ахвяраванне! - + Execution Log Лог выканання @@ -2241,7 +2262,7 @@ Do you want to associate qBittorrent to torrent files and Magnet links? '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + Сцягванне '%1' скончана. @@ -2249,17 +2270,18 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + Памылка ўводу/вываду для торэнта '%1'. + Прычына: %2 The torrent '%1' contains torrent files, do you want to proceed with their download? - + Торэнт '%1' змяшчае торэнт-файлы, жадаеце пачаць сцягванне іх змесціва? Couldn't download file at URL '%1', reason: %2. - + Не выйшла сцягнуць файл па адрасе '%1' з прычыны: %2. @@ -2321,7 +2343,7 @@ You are already using the latest version. Python found in '%1' - + Python знойдзены ў '%1' @@ -2413,52 +2435,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Ваш дынамічны DNS адрас паспяхова абноўлены. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Памылка дынамічнага DNS: служба часова недаступная. Паўторная спроба праз 30 хвілін. - + Dynamic DNS error: hostname supplied does not exist under specified account. Памылка дынамічнага DNS: дадзеная назва хоста не існуе ў вызначаным уліковым запісе. - + Dynamic DNS error: Invalid username/password. Памылка дынамічнага DNS: Нядзейснае імя карыстальніка ці пароль. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Памылка дынамічнага DNS: qBittorrent заблакаваны гэтай службай. Калі ласка, паведаміце пра гэта на http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Памылка дынамічнага DNS: служба вяртае %1. Калі ласка, паведаміце пра гэта на http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Памылка дынамічнага DNS: вашае імя карыстальніка было заблакавана праз злоўжыванні. - + Dynamic DNS error: supplied domain name is invalid. Памылка дынамічнага DNS: дадзеная назва дамену несапраўдная. - + Dynamic DNS error: supplied username is too short. Памылка дынамічнага DNS: гэтае імя карыстальніка занадта кароткае. - + Dynamic DNS error: supplied password is too short. Памылка дынамічнага DNS: дадзены пароль занадта кароткі. @@ -2466,17 +2488,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error Памылка ўводу/вываду - + The file size is %1. It exceeds the download limit of %2. Памер файла: %1. Гэта перавышае абмежаванне сцягвання %2. - + Unexpected redirect to magnet URI. Нечаканае перанакіраванне на Magnet-спасылку. @@ -2484,1313 +2506,1313 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - + База даных GeoIP загружана. Тып: %1. Час пабудовы: %2. - - + + Couldn't load GeoIP database. Reason: %1 - + Не выйшла загрузіць базу даных GeoIP з прычыны: %1 - - + + N/A Н/Д - + Asia/Pacific Region - + Азіяцка-Ціхаакіянскі рэгіён - + Europe - + Еўропа - + Andorra - + Андора - + United Arab Emirates - + Аб'яднаныя Арабскія Эміраты - + Afghanistan - + Афганістан - + Antigua and Barbuda - + Антыгуа і Барбуда - + Anguilla - + Ангілья - + Albania - + Албанія - + Armenia - + Арменія - + Netherlands Antilles - + Нідэрландскія Антыльскія выспы - + Angola - + Ангола - + Antarctica - + Антарктыда - + Argentina - + Аргенціна - + American Samoa - + Амерыканскае Самоа - + Austria - + Аўстрыя - + Australia - + Аўстралія - + Aruba - + Аруба - + Azerbaijan - + Азербайджан - + Bosnia and Herzegovina - + Боснія і Герцагавіна - + Barbados - + Барбадас - + Bangladesh - + Бангладэш - + Belgium - + Бельгія - + Burkina Faso - + Буркіна-Фасо - + Bulgaria - + Балгарыя - + Bahrain - + Бахрэйн - + Burundi - + Бурундзі - + Benin - + Бенін - + Bermuda - + Бэрмудзкія выспы - + Brunei Darussalam - + Бруней-Даруссалам - + Bolivia - + Балівія - + Brazil - + Бразілія - + Bahamas - + Багамскія выспы - + Bhutan - + Бутан - + Bouvet Island - + Востраў Буве - + Botswana - + Батсвана - + Belarus - + Беларусь - + Belize - + Беліз - + Canada - + Канада - + Cocos (Keeling) Islands - + Какосавыя (Кілінг) выспы - + Congo, The Democratic Republic of the - + Конга, Дэмакратычная Рэспубліка - + Central African Republic - + Цэнтральная Афрыканская Рэспубліка - + Congo - + Конга - + Switzerland - + Швейцарыя - + Cote D'Ivoire - + Кот д'Івуар - + Cook Islands - + Выспы Кука - + Chile - + Чылі - + Cameroon - + Камерун - + China - + Кітай - + Colombia - + Калумбія - + Costa Rica - + Коста-Рыка - + Cuba - + Куба - + Cape Verde - + Каба-Вэрдэ - + Christmas Island - + Выспа Раства - + Cyprus - + Кіпр - + Czech Republic - + Чэская Рэспубліка - + Germany - + Германія - + Djibouti - + Джыбуці - + Denmark - + Данія - + Dominica - + Дамініка - + Dominican Republic - + Дамініканская Рэспубліка - + Algeria - + Алжыр - + Ecuador - + Эквадор - + Estonia - + Эстонія - + Egypt - + Егіпет - + Western Sahara - + Заходняя Сахара - + Eritrea - + Эрытрэя - + Spain - + Іспанія - + Ethiopia - + Эфіопія - + Finland - + Фінляндыя - + Fiji - + Фіджы - + Falkland Islands (Malvinas) - + Фалкленскія выспы (Мальдзівы) - + Micronesia, Federated States of - + Мікранезія, Фэдэратыўныя Штаты - + Faroe Islands - + Фарэрскія выспы - + France - Францыя + Францыя - + France, Metropolitan - + Францыя, Метраполія - + Gabon - + Габон - + United Kingdom - + Злучанае Каралеўства - + Grenada - + Грэнада - + Georgia - + Грузія - + French Guiana - + Французская Гвіяна - + Ghana - + Гана - + Gibraltar - + Гібралтар - + Greenland - + Грэнландыя - + Gambia - + Гамбія - + Guinea - + Гвінея - + Guadeloupe - + Гвадэлупа - + Equatorial Guinea - + Экватарыяльная Гвінея - + Greece - Грэцыя + Грэцыя - + South Georgia and the South Sandwich Islands - + Паўднёвая Джорджыя і Паўднёвыя Сандвічавы выспы - + Guatemala - + Гватэмала - + Guam - + Гуам - + Guinea-Bissau - + Гвінея-Бісаў - + Guyana - + Гаяна - + Hong Kong - + Ганконг - + Heard Island and McDonald Islands - + Выспа Херд і выспы Макдональд - + Honduras - + Гандурас - + Croatia - + Харватыя - + Haiti - + Гаіці - + Hungary - + Венгрыя - + Indonesia - + Інданезія - + Ireland - + Ірландыя - + Israel - + Ізраіль - + India - + Індыя - + British Indian Ocean Territory - + Брытанская тэрыторыя Індыйскага акіяна - + Iraq - + Ірак - + Iran, Islamic Republic of - + Іран, Ісламская Рэспубліка - + Iceland - + Ісландыя - + Italy - + Італія - + Jamaica - + Ямайка - + Jordan - + Іарданія - + Japan - + Японія - + Kenya - + Кенія - + Kyrgyzstan - + Кіргізія - + Cambodia - + Камбоджа - + Kiribati - + Кірыбаці - + Comoros - + Каморскія выспы - + Saint Kitts and Nevis - + Сэнт-Кітс і Нэвіс - + Korea, Democratic People's Republic of - + Карэйская Народна-Дэмакратычная Рэспубліка - + Korea, Republic of - + Карэя, Рэспубліка - + Kuwait - + Кувейт - + Cayman Islands - + Кайманавы выспы - + Kazakhstan - + Казахстан - + Lao People's Democratic Republic - + Лаоская Народна-Дэмакратычная Рэспубліка - + Lebanon - + Ліван - + Saint Lucia - + Сэнт-Люсія - + Liechtenstein - + Ліхтэнштэйн - + Sri Lanka - + Шры Ланка - + Liberia - + Ліберыя - + Lesotho - + Лесота - + Lithuania - + Літва - + Luxembourg - + Люксембург - + Latvia - + Латвія - + Libyan Arab Jamahiriya - + Лівійская Арабская Джамахірыя - + Morocco - + Марока - + Monaco - + Манака - + Moldova, Republic of - + Малдова, Рэспубліка - + Madagascar - + Мадагаскар - + Marshall Islands - + Маршалавы выспы - + Macedonia - + Македонія - + Mali - + Малі - + Myanmar - + М'янма - + Mongolia - + Манголія - + Macau - + Макао - + Northern Mariana Islands - + Паўночныя Марыянскія выспы - + Martinique - + Марцініка - + Mauritania - + Маўрытанія - + Montserrat - + Мантсерат - + Malta - + Мальта - + Mauritius - + Маўрыкій - + Maldives - + Мальдывы - + Malawi - + Малаві - + Mexico - + Мексіка - + Malaysia - + Малайзія - + Mozambique - + Мазамбік - + Namibia - + Намібія - + New Caledonia - + Новая Каледонія - + Niger - + Нігер - + Norfolk Island - + Выспа Норфалк - + Nigeria - + Нігерыя - + Nicaragua - + Нікарагуа - + Netherlands - + Нідэрланды - + Norway - + Нарвегія - + Nepal - + Непал - + Nauru - + Науру - + Niue - + Ніуе - + New Zealand - + Новая Зеландыя - + Oman - + Аман - + Panama - + Панама - + Peru - + Перу - + French Polynesia - + Французская Палінезія - + Papua New Guinea - + Папуа-Новая Гвінея - + Philippines - + Філіпіны - + Pakistan - + Пакістан - + Poland - + Польшча - + Saint Pierre and Miquelon - + Сен-П'ер і Мікелон - + Pitcairn Islands - + Піткэрн - + Puerto Rico - + Пуэрта-Рыка - + Palestinian Territory - + Палестынская тэрыторыя - + Portugal - + Партугалія - + Palau - + Палаў - + Paraguay - + Парагвай - + Qatar - + Катар - + Reunion - + Уз'яднанне - + Romania - + Румынія - + Russian Federation - + Расійская Федэрацыя - + Rwanda - + Руанда - + Saudi Arabia - + Сірыя - + Solomon Islands - + Саламонавы выспы - + Seychelles - + Сейшэльскія выспы - + Sudan - + Судан - + Sweden - + Швецыя - + Singapore - + Сінгапур - + Saint Helena - + Выспа Святой Алены - + Slovenia - + Славенія - + Svalbard and Jan Mayen - + Шпіцбэрген і Ян-Майен - + Slovakia - + Славакія - + Sierra Leone - + Сьера-Леонэ - + San Marino - + Сан-Марына - + Senegal - + Сенегал - + Somalia - + Самалі - + Suriname - + Сурынам - + Sao Tome and Principe - + Сан-Томе і Прынсэп - + El Salvador - + Сальвадор - + Syrian Arab Republic - + Сірыйская Арабская Рэспубліка - + Swaziland - + Свазіленд - + Turks and Caicos Islands - + Цёркс і Кайкас - + Chad - + Чад - + French Southern Territories - + Французскія Паўднёвыя тэрыторыі - + Togo - + Таго - + Thailand - + Тайланд - + Tajikistan - + Таджыкістан - + Tokelau - + Такелаў - + Turkmenistan - + Туркменістан - + Tunisia - + Туніс - + Tonga - + Тонга - + Timor-Leste - + Тымор-Лешці - + Turkey - + Турцыя - + Trinidad and Tobago - + Трынідад і Табага - + Tuvalu - + Тувалу - + Taiwan - + Тайвань - + Tanzania, United Republic of - + Танзанія, Аб'яднаная Рэспубліка - + Ukraine - + Украіна - + Uganda - + Уганда - + United States Minor Outlying Islands - + Знешнія малыя выспы ЗША - + United States - + ЗША - + Uruguay - + Уругвай - + Uzbekistan - + Узбекістан - + Holy See (Vatican City State) - + Святы Пасад (Дзяржава-горад Ватыкан) - + Saint Vincent and the Grenadines - + Сэнт-Вінсэнт і Грэнадыны - + Venezuela - + Венесуэла - + Virgin Islands, British - + Віргінскія выспы, Брытанскія - + Virgin Islands, U.S. - + Віргінскія выспы, ЗША - + Vietnam - + В'етнам - + Vanuatu - + Вануату - + Wallis and Futuna - + Уоліс і Футуна - + Samoa - + Самоа - + Yemen - + Емен - + Mayotte - + Маёта - + Serbia - + Сербія - + South Africa - + Паўднёвая Афрыка - + Zambia - + Замбія - + Montenegro - + Чарнагорыя - + Zimbabwe - + Зімбабвэ - + Anonymous Proxy - + Ананімны проксі - + Satellite Provider - + Спадарожнікавы правайдар - + Other - + Іншае - + Aland Islands - + Аландскія выспы - + Guernsey - + Выспа Гернсі - + Isle of Man - + Выспа Мэн - + Jersey - + Джэрсі - + Saint Barthelemy - + Сен-Бартэльмі - + Saint Martin - + Сен-Мартэн - + Could not uncompress GeoIP database file. - + Не выйшла распакаваць файл з базай даных GeoIP. - + Couldn't save downloaded GeoIP database file. - + Не выйшла захаваць сцягнуты файл з базай даных GeoIP. - + Successfully updated GeoIP database. База звестак GeoIP паспяхова абноўлена. - + Couldn't download GeoIP database file. Reason: %1 - + Не выйшла сцягнуць файл з базай даных GeoIP з прычыны: %1 Net::PortForwarder - + UPnP / NAT-PMP support [ON] Падтрымка UPnP / NAT-PMP [Укл] - + UPnP / NAT-PMP support [OFF] Падтрымка UPnP / NAT-PMP [Адкл] @@ -3798,206 +3820,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Памылка паведамлення на email: + + PeerInfo + + + interested(local) and choked(peer) + зацікаўлены(лакальна) і заглухшы(пір) + + + + interested(local) and unchoked(peer) + зацікаўлены(лакальна) і незаглухшы(пір) + + + + interested(peer) and choked(local) + зацікаўлены(пір) і заглухшы(лакальна) + + + + interested(peer) and unchoked(local) + зацікаўлены(пір) і незаглухшы(лакальна) + + + + optimistic unchoke + аптымістычна незаглухшы + + + + peer snubbed + грэблівы пір + + + + incoming connection + уваходнае злучэнне + + + + not interested(local) and unchoked(peer) + незацікаўлены(лакальна) і незаглухшы(пір) + + + + not interested(peer) and unchoked(local) + незацікаўлены(пір) і незаглухшы(лакальна) + + + + peer from PEX + пір з PEX + + + + peer from DHT + пір з DHT + + + + encrypted traffic + зашыфраваны трафік + + + + encrypted handshake + зашыфраваны "поціск рук" + + + + peer from LSD + пір з LSD + + PeerListWidget - + IP IP - + Port Порт - + Flags Сцяжкі - + Connection Злучэнне - + Client i.e.: Client application Кліент - + Progress i.e: % downloaded Рух - + Down Speed i.e: Download speed Хуткасць сцягвання - + Up Speed i.e: Upload speed Хуткасць раздачы - + Downloaded i.e: total data downloaded Сцягнута - + Uploaded i.e: total data uploaded Раздадзена - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Рэлевантнасць - + Add a new peer... Дадаць новы пір... - + Copy selected Капіяваць у буфер абмену - - + + Ban peer permanently Заблакаваць пір назаўсёды - + Manually adding peer '%1'... - + Ручное даданне піра '%1'... - + The peer '%1' could not be added to this torrent. - + Пір '%1' не можа быць дадзены да гэтага торэнта. - + Manually banning peer '%1'... - + Ручное блакаванне піра '%1'... - + Peer addition Даданне піра - + Some peers could not be added. Check the Log for details. Некаторыя піры нельга дадаць. Глядзіце лог па падрабязнасці. - + The peers were added to this torrent. Піры дададзены да торэнта. - + Are you sure you want to ban permanently the selected peers? Сапраўды жадаеце заблакаваць вылучаныя піры назаўсёды? - + &Yes &Так - + &No &Не - interested(local) and choked(peer) - зацікаўлены(лакальна) і заглухшы(пір) + зацікаўлены(лакальна) і заглухшы(пір) - interested(local) and unchoked(peer) - зацікаўлены(лакальна) і незаглухшы(пір) + зацікаўлены(лакальна) і незаглухшы(пір) - interested(peer) and choked(local) - зацікаўлены(пір) і заглухшы(лакальна) + зацікаўлены(пір) і заглухшы(лакальна) - interested(peer) and unchoked(local) - зацікаўлены(пір) і незаглухшы(лакальна) + зацікаўлены(пір) і незаглухшы(лакальна) - optimistic unchoke - аптымістычна незаглухшы + аптымістычна незаглухшы - peer snubbed - грэблівы пір + грэблівы пір - incoming connection - уваходнае злучэнне + уваходнае злучэнне - not interested(local) and unchoked(peer) - незацікаўлены(лакальна) і незаглухшы(пір) + незацікаўлены(лакальна) і незаглухшы(пір) - not interested(peer) and unchoked(local) - незацікаўлены(пір) і незаглухшы(лакальна) + незацікаўлены(пір) і незаглухшы(лакальна) - peer from PEX - пір з PEX + пір з PEX - peer from DHT - пір з DHT + пір з DHT - encrypted traffic - зашыфраваны трафік + зашыфраваны трафік - encrypted handshake - зашыфраваны "поціск рук" + зашыфраваны "поціск рук" - peer from LSD - пір з LSD + пір з LSD @@ -4020,7 +4101,7 @@ Are you sure you want to quit qBittorrent? The peer '%1' is invalid. - + Пір '%1' нядзейсны. @@ -4028,12 +4109,12 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + Белы: Недаступныя кавалкі Blue: Available pieces - + Сіні: Даступныя кавалкі @@ -4125,13 +4206,13 @@ Are you sure you want to quit qBittorrent? From: from (time1 to time2) - + З: To: time1 to time2 - + Да: @@ -4514,12 +4595,12 @@ Are you sure you want to quit qBittorrent? Use proxy only for torrents - + Выкарыстоўваць проксі толькі для торэнтаў RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + RSS-стужкі, пошукавыя рухавікі, абнаўленні праграмы і ўсё астатняе, апроч торэнт-перадач і звязаных аперацый (такіх як абмен пірамі) будзе выкарыстоўваць непасрэднае злучэнне @@ -4554,27 +4635,27 @@ Are you sure you want to quit qBittorrent? Weekdays - + Будні Weekends - + Выходныя Rate Limits Settings - + Настáўленні абмежавання хуткасці Enable µTP protocol - + Уключыць пратакол µTP Apply rate limit to µTP protocol - + Ужываць абмежаванне хуткасці да пратакола µTP @@ -4634,7 +4715,7 @@ Are you sure you want to quit qBittorrent? Automatically add these trackers to new downloads: - + Аўтаматычна дадаваць гэтыя трэкеры да новых сцягванняў: @@ -4664,7 +4745,7 @@ Are you sure you want to quit qBittorrent? Alternative Rate Limits - + Альтэрнатыўныя абмежаванні хуткасці @@ -4771,19 +4852,19 @@ Are you sure you want to quit qBittorrent? Шлях да фільтраў (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + Выяўлены некарэктны выхад з праграмы. Спроба выкарыстаць рэзервовы файл, каб аднавіць настáўленні. - + An access error occurred while trying to write the configuration file. - + Здарылася памылка доступу падчас спробы запісу файла канфігурацыі. - + A format error occurred while trying to write the configuration file. - + Здарылася памылка фарматавання падчас спробы запісу файла канфігурацыі. @@ -4887,299 +4968,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Сцягнута: - + Availability: Даступна: - + Progress: Рух: - + Transfer Перадача - + Time Active: Time (duration) the torrent is active (not paused) Час актыўнасці: - + ETA: Часу засталося: - + Uploaded: Раздадзена: - + Seeds: Сіды: - + Download Speed: Хуткасць сцягвання: - + Upload Speed: Хуткасць раздачы: - + Peers: Піры: - + Download Limit: Абмежаванне сцягвання: - + Upload Limit: Абмежаванне раздачы: - + Wasted: Згублена: - + Connections: Злучэнні: - + Information Інфармацыя - + Comment: Каментар: - Torrent content: - Змесціва торэнта: + Змесціва торэнта: - + Select All Вылучыць усё - + Select None Зняць усё - + Normal Звычайны - + High Высокі - + Share Ratio: Стасунак раздачы: - + Reannounce In: Пераабвяшчэнне праз: - + Last Seen Complete: Апошняя поўная прысутнасць: - + Total Size: Поўны памер: - + Pieces: Кавалкі: - + Created By: Створаны ў: - + Added On: Дададзены: - + Completed On: Скончаны: - + Created On: Створаны: - + Torrent Hash: Хэш торэнта: - + Save Path: Шлях захавання: - + Maximum Максімальны - - + + Do not download Не сцягваць - + Never Ніколі - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (з іх ёсць %3) - + %1 (%2 this session) %1 (%2 гэтая сесія) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (раздаецца %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (макс. %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (усяго %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (сяр. %2) - + Open Адкрыць - + Open Containing Folder Адкрыць змяшчальны каталог - + Rename... Пераназваць... - + Priority Прыярытэт - + New Web seed Новы Web-сід - + Remove Web seed Выдаліць Web-сід - + Copy Web seed URL - Капіяваць URL Web-раздачы + Капіяваць адрас Web-раздачы - + Edit Web seed URL - Змяніць URL Web-раздачы + Змяніць адрас Web-раздачы - + Rename the file Пераназваць файл - + New name: Новая назва: - - + + The file could not be renamed Немагчыма пераназваць файл - + This file name contains forbidden characters, please choose a different one. Назва файла змяшчае недазволеныя сімвалы. Калі ласка, дайце іншую назву. - - + + This name is already in use in this folder. Please use a different name. Гэтая назва ўжо ёсць ў каталогу. Калі ласка, дайце іншую назву. - + The folder could not be renamed Немагчыма пераназваць каталог - + qBittorrent qBittorrent @@ -5189,31 +5269,31 @@ Are you sure you want to quit qBittorrent? Фільтраваць файлы... - + New URL seed New HTTP source Новы URL раздачы - + New URL seed: URL новага сіда: - - + + This URL seed is already in the list. URL гэтага сіда ўжо ў спісе. - + Web seed editing Рэдагаванне Web-раздачы - + Web seed URL: - URL Web-раздачы: + Адрас Web-раздачы: @@ -5224,20 +5304,20 @@ Are you sure you want to quit qBittorrent? Ваш IP-адрас быў заблакаваны пасля занадта шматлікіх няўдалых спробаў аўтэнтыфікацыі. - + Error: '%1' is not a valid torrent file. Памылка: '%1' гэта нядзейсны торэнт-файл. - + Error: Could not add torrent to session. Памылка: Не выйшла дадаць торэнт да сесіі. - + I/O Error: Could not create temporary file. - Памылка I/O: не выходзіць стварыць часовы файл. + Памылка ўводу/вываду: не выходзіць стварыць часовы файл. @@ -5388,138 +5468,138 @@ No further notices will be issued. [qBittorrent] Сцягванне '%1' скончана - + The remote host name was not found (invalid hostname) Адлеглы хост не знойдзены (памылковая назва хоста) - + The operation was canceled Аперацыя была скасавана - + The remote server closed the connection prematurely, before the entire reply was received and processed Адлеглы сервер закрыў злучэнне перад тым, як увесь адказ быў атрыманы і апрацаваны - + The connection to the remote server timed out Тэрмін чакання злучэння з адлеглым серверам скончыўся - + SSL/TLS handshake failed Рукапацісканне SSL/TLS не выйшла - + The remote server refused the connection Адлеглы сервер адмовіў у злучэнні - + The connection to the proxy server was refused У злучэнні з проксі-серверам адмоўлена - + The proxy server closed the connection prematurely Проксі-сервер заўчасна закрыў злучэнне - + The proxy host name was not found Назва проксі-сервера не знойдзена - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Тэрмін чакання злучэння з проксі-серверам скончыўся, ці ён своечасова не адказаў на запыт - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + Проксі-сервер патрабуе аўтэнтыфікацыю, але не прыняў пазначаныя ўліковыя звесткі - + The access to the remote content was denied (401) Доступ да адлеглага змесціва забаронены (401) - + The operation requested on the remote content is not permitted Дзеянне, якое запытвала адлеглае змесціва, забаронена - + The remote content was not found at the server (404) Адлеглага змесціва не знойдзена на гэтым серверы (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Адлеглы сервер патрабуе аўтэнтыфікацыі для доступа да змесціва, але прадастаўленныя ўліковыя звесткі не прыняў - + The Network Access API cannot honor the request because the protocol is not known API сеткавага доступу не можа выканаць запыт праз невядомасць пратаколу - + The requested operation is invalid for this protocol Запатрабаванае дзеянне не падтрымліваецца гэтым пратаколам - + An unknown network-related error was detected Узнікла невядомая сеткавая памылка - + An unknown proxy-related error was detected Узнікла невядомая памылка проксі-сервера - + An unknown error related to the remote content was detected Узнікла невядомая памылка адлеглага змесціва - + A breakdown in protocol was detected Паўстала памылка ў пратаколе - + Unknown error Невядомая памылка - - + + Upgrade Абнавіць - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Вы абнаўляецеся з надта старой версіі, якая захоўвае звесткі па-іншаму. Вы мусіць міграваць на новую сістэму захоўвання. Вы не зможаце ізноў выкарыстоўваць версію, старэйшую за 3.3.0. Працягваць? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Вы абнаўляецеся з надта старой версіі, якая захоўвае звесткі па-іншаму. Вы мусіць міграваць на новую сістэму захоўвання. Калі працягнеце, то не зможаце ізноў выкарыстоўваць версію, старэйшую за 3.3.0. - + Couldn't migrate torrent with hash: %1 Нельга міграваць торэнт з хэшам %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Немагчыма міграваць торэнт. Недапушчальная для хуткага ўзнаўлення назва файла: %1 @@ -5632,7 +5712,7 @@ No further notices will be issued. Stream URL: - URL плыні: + Адрас плыні: @@ -5708,14 +5788,14 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Не выйшла аўтаматычна сцягнуць '%1' з RSS-стужкі '%2', бо ён не змяшчае торэнта ці магнет-спасылкі... - + Automatically downloading '%1' torrent from '%2' RSS feed... - + Аўтаматычнае сцягванне торэнта '%1' з RSS-стужкі '%2'... @@ -5728,7 +5808,7 @@ No further notices will be issued. Invalid RSS feed at '%1'. - + Нядзейсная RSS-стужка '%1'. @@ -5757,19 +5837,19 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Каталогі, за якімі сачыць - + Download here Сцягваць сюды - + Download path - + Шлях сцягвання @@ -6345,7 +6425,7 @@ No further notices will be issued. Errored (0) - + З памылкамі (0) @@ -6390,7 +6470,7 @@ No further notices will be issued. Errored (%1) - + З памылкамі (%1) @@ -6767,17 +6847,17 @@ No further notices will be issued. Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Не выйшла дэкадаваць фавікон па адрасе '%1'. Спроба сцягнуць фавікон у фармаце PNG. Couldn't decode favicon for URL '%1'. - + Не выйшла дэкадаваць фавікон па адрасе '%1'. Couldn't download favicon for URL '%1'. Reason: %2 - + Не выйшла сцягнуць фавікон па адрасе '%1' з прычыны: %2 @@ -7046,13 +7126,13 @@ No further notices will be issued. Errored torrent status, the torrent has an error - + З памылкамі %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - %1 (раздаецца %2) + %1 (раздаецца цягам %2) @@ -7684,42 +7764,42 @@ No further notices will be issued. Invalid plugin - + Нядзейсная ўбудова The search engine plugin is invalid, please contact the author. - + Пошукавая ўбудова нядзейсная, напішыце аўтару. A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - + Больш новая версія ўбудовы '%1' ужо ўсталявана. '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - + Пошукавая ўбудова '%1' не можа быць абноўлена, пакінута старая версія. '%1' search engine plugin could not be installed. %1 is the name of the search engine - + Пошукавая ўбудова '%1' не можа быць усталявана. '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + Пошукавая ўбудова '%1' паспяхова абноўлена. '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + Пошукавая ўбудова '%1' паспяхова ўсталяваная. @@ -7735,7 +7815,7 @@ No further notices will be issued. Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - + Выбачайце, не выйшла ўсталяваць убудову '%1'. @@ -7826,11 +7906,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Сцягванні @@ -7838,103 +7918,103 @@ Those plugins were disabled. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КіБ - + MiB mebibytes (1024 kibibytes) МіБ - + GiB gibibytes (1024 mibibytes) ГіБ - + TiB tebibytes (1024 gibibytes) ТіБ - + Python not detected Python не знойдзены - + Python version: %1 Версія Python: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1г %2хв - + %1d %2h e.g: 2days 10hours %1дз %2г - + Unknown Unknown (size) Невядомы - + qBittorrent will shutdown the computer now because all downloads are complete. Зараз qBittorrent адключыць кампутар, таму што ўсе сцягванні скончаны. - + < 1m < 1 minute < 1хв - + %1m e.g: 10minutes %1хв - + Working Працуе - + Updating... Абнаўляецца... - + Not working Не працуе - + Not contacted yet Яшчэ не злучыўся @@ -7963,52 +8043,52 @@ Those plugins were disabled. Supported parameters (case sensitive): - + Падтрымліваюцца параметры (рэгістр улічваецца): %N: Torrent name - + %N: Назва торэнта %L: Label - + %L: Цэтлік %F: Content path (same as root path for multifile torrent) - + %F: Шлях прызначэння (тое ж, што і каранёвы шлях для шматфайлавага торэнта) %R: Root path (first torrent subdirectory path) - + %R: Каранёвы шлях (галоўны шлях для падкаталога торэнта) %D: Save path - + %D: Шлях захавання %C: Number of files - + %C: Колькасць файлаў %Z: Torrent size (bytes) - + %Z: Памер торэнта (у байтах) %T: Current tracker - + %T: Дзейны трэкер %I: Info hash - + %I: Хэш @@ -8186,7 +8266,7 @@ Those plugins were disabled. Copy description page URL - + Скапіяваць адрас старонкі з апісаннем diff --git a/src/lang/qbittorrent_bg.ts b/src/lang/qbittorrent_bg.ts index 8e92df00a..55737d829 100644 --- a/src/lang/qbittorrent_bg.ts +++ b/src/lang/qbittorrent_bg.ts @@ -125,217 +125,222 @@ Прескочи проверката на парчетата - + + Set as default label + + + + Torrent Information Информация за торента - + Size: Размер: - + Comment: Коментар: - + Date: Дата: - + Info Hash: - + Normal Нормален - + High Висок - + Maximum Максимален - + Do not download Не сваляй - - + + I/O Error Грешка на Вход/Изход - + The torrent file does not exist. Торент файла не съществува. - + Invalid torrent Невалиден торент - + Failed to load the torrent: %1 Неуспешно зареждане на торент:%1 - - + + Already in download list Вече е в списъка за сваляне - + Free disk space: %1 Свободно дисково пространство: %1 - + Not Available This comment is unavailable Не е налично - + Not Available This date is unavailable Не е налично - + Not available Не е наличен - + Invalid magnet link Невалидна магнитна връзка - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Тази магнитна връзка не се разпознава - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Магнитна връзка - + Retrieving metadata... Извличане на метаданни... - + Not Available This size is unavailable. Не е наличен - - - + + + Choose save path Избери път за съхранение - + Rename the file Преименувай файла - + New name: Ново име: - - + + The file could not be renamed Файлът не може да се преименува - + This file name contains forbidden characters, please choose a different one. Името на файла съдържа забранени символи, моля изберете различно име. - - + + This name is already in use in this folder. Please use a different name. Това име вече съществува в тази папка. Моля, ползвайте различно име. - + The folder could not be renamed Папката не може да се преименува - + Rename... Преименувай... - + Priority Предимство - + Invalid metadata - + Parsing metadata... Проверка на метаданните... - + Metadata retrieval complete Извличането на метаданни завърши - + Download Error @@ -427,9 +432,8 @@ Намери имената на получаващата двойка - Maximum number of half-open connections [0: Disabled] - Максимален брой полу-отворени връзки [0: Изключен] + Максимален брой полу-отворени връзки [0: Изключен] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] DHT поддръжка [ИЗКЛ] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успешно вмъкване на дадения IP филтър: %1 правила бяха добавени. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Само един линк на реда - Download local torrent - Сваляне на местен торент + Сваляне на местен торент @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Съхрани файловете в: + + + + Label: + Етикет: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Свалени @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Изтрий текста @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Редактирай - + &Tools &Инструменти - + &File &Файл - + &Help &Помощ - + On Downloads &Done - + &View &Оглед - + &Options... &Опции... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Пауза - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All П&ауза Всички - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &Относно - Exit - Изход + Изход - + &Pause &Пауза - + &Delete &Изтрий - + P&ause All П&ауза Всички - + &Add Torrent File... - + Open - + E&xit - - Options - Опции - - - - Resume - Продължи - - - - Pause - Пауза - - - - Delete - Изтрий - - - + Open URL - + &Documentation &Документация - + Lock - + Show Покажи @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. Проверка за обновления на програмата - Lock qBittorrent - Заключи qBittorrent + Заключи qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Ако ви харесва qBittorrent, моля дарете! - + Execution Log Изпълнение на Запис @@ -2407,52 +2398,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2460,17 +2451,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2478,1300 +2469,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Франция - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Гърция - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3779,12 +3770,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3792,207 +3783,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port - + Flags Флагове - + Connection Връзка - + Client i.e.: Client application Клиент - + Progress i.e: % downloaded Изпълнение - + Down Speed i.e: Download speed Скорост на сваляне - + Up Speed i.e: Upload speed Скорост на качване - + Downloaded i.e: total data downloaded Свалени - + Uploaded i.e: total data uploaded Качени - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Добави нова двойка... - + Copy selected - - + + Ban peer permanently Спри двойката завинаги - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Добавяне на двойка - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Сигурни ли сте че искате да спрете завинаги избраните двойки? - + &Yes &Да - + &No &Не - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4765,17 +4759,17 @@ Are you sure you want to quit qBittorrent? Филтър път (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4881,299 +4875,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Свалени: - + Availability: Наличност: - + Progress: Изпълнение: - + Transfer Трансфер - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Качени: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Изгубени: - + Connections: Връзки: - + Information Информация - + Comment: Коментар: - Torrent content: - Съдържание на Торента: + Съдържание на Торента: - + Select All Избери всички - + Select None Не избирай - + Normal Нормален - + High Висок - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Максимален - - + + Do not download Не сваляй - + Never Никога - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... Преименувай... - + Priority Предимство - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file Преименувай файла - + New name: Ново име: - - + + The file could not be renamed Файла не може да се преименува - + This file name contains forbidden characters, please choose a different one. Името на файла съдържа забранени символи, моля изберете различно име. - - + + This name is already in use in this folder. Please use a different name. Това име вече съществува в тази папка. Моля, ползвайте различно име. - + The folder could not be renamed Папката не може да се преименува - + qBittorrent qBittorrent @@ -5183,29 +5176,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5218,18 +5211,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5380,138 +5373,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5700,12 +5693,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5749,17 +5742,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Наблюдавана Папка - + Download here Свали тук - + Download path @@ -7817,11 +7810,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Сваляния @@ -7829,103 +7822,103 @@ Those plugins were disabled. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КБ - + MiB mebibytes (1024 kibibytes) МБ - + GiB gibibytes (1024 mibibytes) ГБ - + TiB tebibytes (1024 gibibytes) ТБ - + Python not detected - + Python version: %1 Python версия: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1ч%2мин - + %1d %2h e.g: 2days 10hours %1д%2ч - + Unknown Unknown (size) Неизвестен - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent ще угаси компютъра, защото всички сваляния са завършени. - + < 1m < 1 minute < 1мин - + %1m e.g: 10minutes %1мин - + Working Работи - + Updating... Обновяване... - + Not working Не работи - + Not contacted yet Още не е свързан diff --git a/src/lang/qbittorrent_ca.ts b/src/lang/qbittorrent_ca.ts index 378c46b4c..302107121 100644 --- a/src/lang/qbittorrent_ca.ts +++ b/src/lang/qbittorrent_ca.ts @@ -125,217 +125,222 @@ Omet comprovació de funció resum (hash) - + + Set as default label + + + + Torrent Information Informació del Torrent - + Size: Mida: - + Comment: Comentari: - + Date: Data: - + Info Hash: Informació de la funció resum (hash) - + Normal Normal - + High Alta - + Maximum Màxima - + Do not download No ho baixis - - + + I/O Error Error d'entrada-sortida - + The torrent file does not exist. L'arxiu Torrent no existeix. - + Invalid torrent Torrent invàlid - + Failed to load the torrent: %1 No ha estat possible carregar el Torrent: %1 - - + + Already in download list Ja és a la llista de baixades - + Free disk space: %1 Espai disponible en disc: %1 - + Not Available This comment is unavailable No disponible - + Not Available This date is unavailable No disponible - + Not available No disponible - + Invalid magnet link Enllaç imant invàlid. - + Torrent is already in download list. Trackers were merged. El Torrent ja és a la llista de baixades. Els rastrejadors han estat fusionats. - - + + Cannot add torrent No es pot afegir el Torrent - + Cannot add this torrent. Perhaps it is already in adding state. No s'ha pogut afegir aquest Torrent. Potser està en estat d'addició. - + This magnet link was not recognized Aquest enllaç imant no és reconegut. - + Magnet link is already in download list. Trackers were merged. El Torrent ja és a la llista de baixades. Els rastrejadors han estat fusionats. - + Cannot add this torrent. Perhaps it is already in adding. No s'ha pogut afegir aquest Torrent. Potser ja s'està afegint. - + Magnet link Enllaç imant - + Retrieving metadata... Rebent metadades... - + Not Available This size is unavailable. No disponible - - - + + + Choose save path Seleccioneu camí de desada - + Rename the file Reanomena l'arxiu - + New name: Nou nom: - - + + The file could not be renamed L'arxiu no es pot reanomenar - + This file name contains forbidden characters, please choose a different one. Aquest nom d'arxiu conté caràcters prohibits, escolliu un de diferent. - - + + This name is already in use in this folder. Please use a different name. Aquest nom ja és en ús en aquesta carpeta. Utilitzeu un de diferent. - + The folder could not be renamed La carpeta no pot ser reanomenada - + Rename... Reanomena... - + Priority Prioritat - + Invalid metadata Metadades no vàlides - + Parsing metadata... Analitzant metadades... - + Metadata retrieval complete Recuperació de metadades completada - + Download Error Error de baixada @@ -427,9 +432,8 @@ Resol noms d'hostes en xarxa de punt a punt - Maximum number of half-open connections [0: Disabled] - Capacitat màxima de connexions obertes [0: Desactivat] + Capacitat màxima de connexions obertes [0: Desactivat] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Desa l'interval de reprenció de dades + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Identitat del parell: - + HTTP User-Agent is '%1' La HTTP de l'usuari és %1 - + Anonymous mode [ON] Mode anònim [Encès] - + Anonymous mode [OFF] Mode anònim [Apagat] - + PeX support [ON] Suport per a PeX [Encès] - + PeX support [OFF] Suport PeX [Apagat] - + Restart is required to toggle PeX support És necessari reiniciar per activar suport PeX - + Local Peer Discovery support [ON] Suport per a trobar parells locals [Encès] - + Local Peer Discovery support [OFF] Suport per trobar parells locals [Apagat] - + Encryption support [ON] Suport per a l'encriptació [Encès] - + Encryption support [FORCED] Suport per a l'encriptació [Forçat] - + Encryption support [OFF] Suport per a l'encriptació [Apagat] - + Embedded Tracker [ON] Rastrejador integrat [Encès] - + Failed to start the embedded tracker! Error en iniciar el rastrejador integratt! - + Embedded Tracker [OFF] Rastrejador integrat [Apagat] - + '%1' reached the maximum ratio you set. Removing... %1 ha assolit el ràtio màxim establert. Eliminant... - + '%1' reached the maximum ratio you set. Pausing... %1 ha assolit el ràtio màxim establert. Pausant... - Error: Could not create torrent export directory: '%1' - Error: No s'ha pogut crear el directori d'exportació Torrent: '%1' + Error: No s'ha pogut crear el directori d'exportació Torrent: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Error: no s'ha pogut exportar el Torrent '%1', potser encara no te metadades. + Error: no s'ha pogut exportar el Torrent '%1', potser encara no te metadades. - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. No s'han pogut descodificar '%1' arxius Torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descàrrega recursiva d'arxiu %1 integrada al Torrent %2 - + Couldn't save '%1.torrent' No s'ha pogut desar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. perquè %1 es troba inhabilitat. - + because %1 is disabled. this peer was blocked because TCP is disabled. perquè %1 es troba inhabilitat. - + URL seed lookup failed for URL: '%1', message: %2 Ha fallat la cerca de llavor per a la URL: %1, missatge: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' ha estat eliminat de la llista de transferència i del disc. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' ha estat eliminat de la llista de transferència. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Baixant '%1', espereu... - Torrent Export: torrent is invalid, skipping... - Exportació del Torrent: el Torrent no és vàlid, ometent... + Exportació del Torrent: el Torrent no és vàlid, ometent... - + DHT support [ON] Suport DHT [Encès] - + DHT support [OFF]. Reason: %1 Suport DHT [Apagat]. Raó: %1 - + DHT support [OFF] Suport DHT [Encès] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent està intentant contactar a algun port interfície: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent ha fallat en intentar contactar a algun port interfície: %1. Raó: %2 + qBittorrent ha fallat en intentar contactar a algun port interfície: %1. Raó: %2 - + The network interface defined is invalid: %1 La interfície de la xarxa definida no és vàlida:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent està intentant contactar a l'interfície %1 del port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent no ha trobat una adreça local %1 per a contactar - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent ha fallat en intentar contactar a algun port interfície: %1. Raó: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' El rastrejador '%1' ha estat afegit al Torrent '%2' - + Tracker '%1' was deleted from torrent '%2' El rastrejador '%1' ha estat eliminat del Torrent '%2' - + URL seed '%1' was added to torrent '%2' La llavor URL '%1' ha estat afegida al Torrent '%2' - + URL seed '%1' was removed from torrent '%2' La llavor URL '%1' ha estat eliminada del Torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossible reprendre el Torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analitzat satisfactòriament el filtre IP: %1 regles han estat aplicades. - + Error: Failed to parse the provided IP filter. Error: Ha fallat l'anàlisi del filtre IP proporcionat. - + Couldn't add torrent. Reason: %1 No s'ha pogut afegir el Torrent: '%1'. Raó: %2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' reprès. (represa ràpida) - + '%1' added to download list. 'torrent name' was added to download list. '%1' afegit a la llista de baixades. - + An I/O error occurred, '%1' paused. %2 S'ha produït un error d'entrada-sortida, '%1' pausat. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Ha fallat el mapatge del port, missatge: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapatge del port reeixit, missatge: %1 - + due to IP filter. this peer was blocked due to ip filter. degut al filtre IP. - + due to port filter. this peer was blocked due to port filter. degut al filtre de ports. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. degut a restriccions mixtes i2p. - + because it has a low port. this peer was blocked because it has a low port. perquè te un port baix. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent està contactant satisfactòriament en la interfície %1 del port: %2%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent ha fallat intentant contactar en la interfície %1 port: %2%3. Raó: %4 + qBittorrent ha fallat intentant contactar en la interfície %1 port: %2%3. Raó: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent ha fallat intentant contactar en la interfície %1 port: %2%3. Raó: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP externa: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 No s'ha pogut moure el Torrent: '%1'. Raó: %2 - + File sizes mismatch for torrent '%1', pausing it. La mida de l'arxiu no coincideix amb el Torrent '%1', pausat-lo. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... S'han negat les dades per a la represa ràpida del Torrent '%1'. Raó: %2. Comprovant de nou... @@ -1307,20 +1323,20 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Error d'entrada-sortida: No s'ha pogut obrir l'arxiu de filtres IP en mode lectura. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Error d'anàlisi: L'arxiu de filtre no és un arxiu PeerGuardian P2B vàlid. @@ -1328,43 +1344,43 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< GeoIPDatabase - - + + Unsupported database file size. La mida de l'arxiu de base de dades no és suportada. - + Metadata error: '%1' entry not found. Error de metadades: '%1' entrades no trobades. - + Metadata error: '%1' entry has invalid type. Error de metadades: '%1' entrades tenen una escriptura invàlida. - + Unsupported database version: %1.%2 Versió de base de dades no suportada: %1.%2 - + Unsupported IP version: %1 Versió IP no suportada: %1 - + Unsupported record size: %1 Mida de registre no suportada: %1 - + Invalid database type: %1 Entrada de base de dades invàlida: %1 - + Database corrupted: no data section found. Base de dades corrupta: no s'ha trobat secció de dades. @@ -1397,9 +1413,8 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< Només un enllaç per línia - Download local torrent - Baixa Torrent local + Baixa Torrent local @@ -1572,7 +1587,22 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< Inactius - + + Save files to location: + Desa els arxius en la seva ubicació: + + + + Label: + Etiqueta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Baixat @@ -1582,6 +1612,11 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< Logout Tanca la sessió + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< LineEdit - + Clear the text Esborra el text @@ -1743,37 +1778,37 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< MainWindow - + &Edit &Edita - + &Tools &Eines - + &File &Axiu - + &Help &Ajuda - + On Downloads &Done A Baixades &Fet - + &View &Mostra - + &Options... &Opcions... @@ -1783,153 +1818,153 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< &Reprendre - + Torrent &Creator Torrent &Creador - + Set Upload Limit... Establiu límit de pujada... - + Set Download Limit... Establiu límit de baixada... - + Set Global Download Limit... Establiu límit de baixada global... - + Set Global Upload Limit... Establiu límit de pujada global... - + Minimum Priority Prioritat mínima - + Top Priority Prioritat màxima - + Decrease Priority Disminuir prioritat - + Increase Priority Incrementar prioritat - - + + Alternative Speed Limits Límits de velocitat alternativa - + &Top Toolbar Barra d'eines &superior - + Display Top Toolbar Mostra barra d'eines superior - + S&peed in Title Bar Mostra v&elocitat a la barra de títol - + Show Transfer Speed in Title Bar Mostra velocitat de transferència a la barra de títol - + &RSS Reader Lector &RSS - + Search &Engine &Motor de cerca - + L&ock qBittorrent B&loca qBittorrent - + &Import Existing Torrent... &Importa Torrent existent... - + Import Torrent... Importa Torrent... - + Do&nate! Do&neu - + R&esume All R&eprende Tot - + &Log &Registre - + &Exit qBittorrent &Tanca qBittorrent - + &Suspend System &Suspèn el sistema - + &Hibernate System &Hiberna el sistema - + S&hutdown System A&paga el sistema - + &Disabled &Inhabilitat - + &Statistics &Estadístiques - + Check for Updates Cerca actualitzacions - + Check for Program Updates Cerca actualitzacions del programa @@ -1939,77 +1974,72 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< &Quant a - Exit - Surt + Surt - + &Pause &Pausa - + &Delete &Elimina - + P&ause All P&ausa totes - + &Add Torrent File... &Afegeix arxiu Torrent... - + Open Obre - + E&xit T&anca - Options - Opcions + Opcions - Resume - Reprèn + Reprèn - Pause - Pausa + Pausa - Delete - Elimina + Elimina - + Open URL Obre URL - + &Documentation &Documentació - + Lock Bloca - + Show Mostrar @@ -2020,22 +2050,21 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< Cerca actualitzacions del programa - Lock qBittorrent - Bloca qBittorrent + Bloca qBittorrent - + Add Torrent &Link... Afegeix &enllaç Torrent... - + If you like qBittorrent, please donate! Si us agrada qBittorrent, feu una donació! - + Execution Log Execució Log @@ -2414,52 +2443,52 @@ Esteu segur que voleu tancar qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. El vostre DNS dinàmic ha estat correctament actualitzat. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Error de DNS dinàmica: El servei no està disponible temporalment, nou reintent en 30 minuts. - + Dynamic DNS error: hostname supplied does not exist under specified account. Error de DNS dinàmica: el nom d'amfitrió proporcionat no existeix en el compte especificat. - + Dynamic DNS error: Invalid username/password. Error DNS dinàmica: nom d'usuari/contrasenya no vàlides. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Error de DNS dinàmica: qBittorrent ha estat inclòs en la Llista Negra, si us plau, informar d'això a http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Error de DNS dinàmica: %1 ha estat rebutjat pel servei, si us plau, informe d'aquest error a http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Error de DNS dinàmica: El seu nom d'usuari ha estat blocat degut a un abús. - + Dynamic DNS error: supplied domain name is invalid. Error de DNS dinàmica: el nom d'usuari subministrat és massa curt. - + Dynamic DNS error: supplied username is too short. Error de DNS dinàmica: el nom d'usuari proporcionat és massa curt. - + Dynamic DNS error: supplied password is too short. Error de DNS dinàmica: el nom d'usuari subministrat és massa curt. @@ -2467,17 +2496,17 @@ Esteu segur que voleu tancar qBittorrent? Net::DownloadHandler - + I/O Error Error d'entrada-sortida - + The file size is %1. It exceeds the download limit of %2. La mida d'aquest arxiu és de %1. Això excedeix el límit de baixada de %2. - + Unexpected redirect to magnet URI. Redirecció a una URL imant no esperada. @@ -2485,1300 +2514,1300 @@ Esteu segur que voleu tancar qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Base de dades GeoIP carregada. Tipus: %1. Temps de compilació: %2. - - + + Couldn't load GeoIP database. Reason: %1 No s'ha pogut carregar la base de dades GeoIP. Raó: %1 - - + + N/A No disponible - + Asia/Pacific Region Regió Àsia-Pacífic - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emirats Àrabs Units - + Afghanistan Afganistan - + Antigua and Barbuda Antigua i Barbuda - + Anguilla Anguilla - + Albania Albània - + Armenia Armènia - + Netherlands Antilles Antilles Neerlandeses - + Angola Angola - + Antarctica Antàrtica - + Argentina Argentina - + American Samoa Samoa Nord-americana - + Austria Àustria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaidjan - + Bosnia and Herzegovina Bòsnia i Hercegovina - + Barbados Barbados - + Bangladesh Bangladeix - + Belgium Bèlgica - + Burkina Faso Burkina Faso - + Bulgaria Bulgària - + Bahrain Bahrain - + Burundi Burundi - + Benin Benín - + Bermuda Bermuda - + Brunei Darussalam Brunei - + Bolivia Bolívia - + Brazil Brasil - + Bahamas Bahames - + Bhutan Bhutan - + Bouvet Island Bouvet - + Botswana Botswana - + Belarus Bielorússia - + Belize Belize - + Canada Canadà - + Cocos (Keeling) Islands Illes Cocos (Keeling) - + Congo, The Democratic Republic of the Congo, República Democràtica del - + Central African Republic República Centreafricana - + Congo Congo - + Switzerland Suïssa - + Cote D'Ivoire Costa d'Ivori - + Cook Islands Illes Cook - + Chile Xile - + Cameroon Camerun - + China Xina - + Colombia Colòmbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cap Verd - + Christmas Island Illa Christmas - + Cyprus Xipre - + Czech Republic República Txeca - + Germany Alemanya - + Djibouti Djibouti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Algèria - + Ecuador Equador - + Estonia Estònia - + Egypt Egipte - + Western Sahara Sahara Occidental - + Eritrea Eritrea - + Spain Espanya - + Ethiopia Etiòpia - + Finland Finlàndia - + Fiji Fiji - + Falkland Islands (Malvinas) Illes Malvines (Falkland) - + Micronesia, Federated States of Micronèsia - + Faroe Islands Illes Fèroe - + France França - + France, Metropolitan França metropolitana - + Gabon Gabon - + United Kingdom Regne Unit - + Grenada Grenada - + Georgia Geòrgia - + French Guiana Guaiana Francesa - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlàndia - + Gambia Gàmbia - + Guinea Guinea - + Guadeloupe Guadalupe (França) - + Equatorial Guinea Guinea Equatorial - + Greece Grècia - + South Georgia and the South Sandwich Islands Illes Geòrgia del Sud i Sandwich del Sud - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Illes Heard i McDonald - + Honduras Hondures - + Croatia Croàcia - + Haiti Haití - + Hungary Hongria - + Indonesia Indonèsia - + Ireland Irlanda - + Israel Israel - + India Índia - + British Indian Ocean Territory Territori Britànic de l'Oceà Índic - + Iraq Irak - + Iran, Islamic Republic of Iran - + Iceland Islàndia - + Italy Itàlia - + Jamaica Jamaica - + Jordan Jordània - + Japan Japó - + Kenya Kènia - + Kyrgyzstan Kirguizistan - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comores - + Saint Kitts and Nevis Saint Christopher i Nevis - + Korea, Democratic People's Republic of Corea del Nord - + Korea, Republic of Corea del Sud - + Kuwait Kuwait - + Cayman Islands Illes Caiman - + Kazakhstan Kazakhstan - + Lao People's Democratic Republic Laos - + Lebanon Líban - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libèria - + Lesotho Lesotho - + Lithuania Lituània - + Luxembourg Luxemburg - + Latvia Letònia - + Libyan Arab Jamahiriya Líbia - + Morocco Marroc - + Monaco Mònaco - + Moldova, Republic of Moldàvia - + Madagascar Madagascar - + Marshall Islands Illes Marshall - + Macedonia Macedònia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongòlia - + Macau Macau - + Northern Mariana Islands Illes Mariannes Septentrionals - + Martinique Martinica - + Mauritania Mauritània - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurici - + Maldives Maldives - + Malawi Malawi - + Mexico Mèxic - + Malaysia Malàsia - + Mozambique Moçambic - + Namibia Namíbia - + New Caledonia Nova Caledònia - + Niger Níger - + Norfolk Island Illa Norfolk - + Nigeria Nigèria - + Nicaragua Nicaragua - + Netherlands Països Baixos - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nova Zelanda - + Oman Oman - + Panama Panamà - + Peru Perú - + French Polynesia Polinèsia Francesa - + Papua New Guinea Papua Nova Guinea - + Philippines Filipines - + Pakistan Pakistan - + Poland Polònia - + Saint Pierre and Miquelon Saint-Pierre i Miquelon - + Pitcairn Islands Illes Pitcairn - + Puerto Rico Puerto Rico - + Palestinian Territory Palestina - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunió - + Romania Romania - + Russian Federation Federació Russa - + Rwanda Rwanda - + Saudi Arabia Aràbia Saudí - + Solomon Islands Illes Solomon - + Seychelles Seychelles - + Sudan Sudan - + Sweden Suècia - + Singapore Singapur - + Saint Helena Santa Helena - + Slovenia Eslovènia - + Svalbard and Jan Mayen Svalbard i Jan mayen - + Slovakia Eslovàquia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somàlia - + Suriname Surinam - + Sao Tome and Principe São Tomé i Príncipe - + El Salvador El Salvador - + Syrian Arab Republic República Àrab Siriana - + Swaziland Swazilàndia - + Turks and Caicos Islands Illes Turks i Caicos - + Chad Txad - + French Southern Territories Terres Australs i Antàrtiques Franceses - + Togo Togo - + Thailand Tailàndia - + Tajikistan Tadjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tuníssia - + Tonga Tonga - + Timor-Leste Timor Oriental - + Turkey Turquia - + Trinidad and Tobago Trinitat i Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzània - + Ukraine Ucraïna - + Uganda Uganda - + United States Minor Outlying Islands Illes Perifèriques Menors dels EUA - + United States Estats Units - + Uruguay Uruguai - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Ciutat del Vaticà - + Saint Vincent and the Grenadines Saint Vincent i les Grenadines - + Venezuela Veneçuela - + Virgin Islands, British Illes Verges Britàniques - + Virgin Islands, U.S. Illes Verges Nord-americanes - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis i Futuna - + Samoa Samoa - + Yemen Iemen - + Mayotte Mayotte - + Serbia Sèrbia - + South Africa Sud Àfrica - + Zambia Zàmbia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Servidor intermediari anònim - + Satellite Provider Proveïdor satèl·lit - + Other Altres - + Aland Islands Illes Åland - + Guernsey Guernsey - + Isle of Man Illa de Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin Sant Martí - + Could not uncompress GeoIP database file. No ha estat possible descomprimir l'arxiu de base de dades GeoIP. - + Couldn't save downloaded GeoIP database file. No ha estat possible desar l'arxiu de base de dades GeoIP baixat. - + Successfully updated GeoIP database. Base de dades GeoIP actualitzada correctament. - + Couldn't download GeoIP database file. Reason: %1 No s'ha pogut baixar la base de dades GeoIP. Raó: %1 @@ -3786,12 +3815,12 @@ Esteu segur que voleu tancar qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Suport UPnP / NAT-PMP [Encès] - + UPnP / NAT-PMP support [OFF] Suport UPnP / NAT-PMP [Apagat] @@ -3799,206 +3828,265 @@ Esteu segur que voleu tancar qBittorrent? Net::Smtp - + Email Notification Error: Error de notificació de correu electrònic: + + PeerInfo + + + interested(local) and choked(peer) + interessats (local) i muts (parells) + + + + interested(local) and unchoked(peer) + interessats (local) i no muts (parells) + + + + interested(peer) and choked(local) + interessats (parells) i muts (local) + + + + interested(peer) and unchoked(local) + interessats (parells) i no muts (local) + + + + optimistic unchoke + unchoke optimista + + + + peer snubbed + parell desairat + + + + incoming connection + connexió entrant + + + + not interested(local) and unchoked(peer) + no interessats (local) i no muts (parells) + + + + not interested(peer) and unchoked(local) + no interessats (parells) i no muts (local) + + + + peer from PEX + parell de PEX + + + + peer from DHT + parell de DHT + + + + encrypted traffic + trànsit encriptat + + + + encrypted handshake + salutació encriptada + + + + peer from LSD + parell de LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Banderes - + Connection Connexió - + Client i.e.: Client application Client - + Progress i.e: % downloaded Progrés - + Down Speed i.e: Download speed Velocitat de Baixada - + Up Speed i.e: Upload speed Velocitat de Pujada - + Downloaded i.e: total data downloaded Descarregat - + Uploaded i.e: total data uploaded Pujat - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevancia - + Add a new peer... Afegir nou Parell... - + Copy selected Copia seleccionats - - + + Ban peer permanently Prohibició permanent de Parells - + Manually adding peer '%1'... Afegint manualment el parell '%1'... - + The peer '%1' could not be added to this torrent. No s'ha pogut afegir el parell '%1' a aquest Torrent. - + Manually banning peer '%1'... Bandejant manualment el parell '%1'... - + Peer addition Incorporar Parell - + Some peers could not be added. Check the Log for details. No s'han pogut afegir alguns parells. Reviseu el registre per a més detalls. - + The peers were added to this torrent. Els parells ha estat afegits al Torrent. - + Are you sure you want to ban permanently the selected peers? Esteu segur que voleu bandejar permanentment els parells seleccionats? - + &Yes &Sí - + &No &No - interested(local) and choked(peer) - interessats (local) i muts (parells) + interessats (local) i muts (parells) - interested(local) and unchoked(peer) - interessats (local) i no muts (parells) + interessats (local) i no muts (parells) - interested(peer) and choked(local) - interessats (parells) i muts (local) + interessats (parells) i muts (local) - interested(peer) and unchoked(local) - interessats (parells) i no muts (local) + interessats (parells) i no muts (local) - optimistic unchoke - unchoke optimista + unchoke optimista - peer snubbed - parell desairat + parell desairat - incoming connection - connexió entrant + connexió entrant - not interested(local) and unchoked(peer) - no interessats (local) i no muts (parells) + no interessats (local) i no muts (parells) - not interested(peer) and unchoked(local) - no interessats (parells) i no muts (local) + no interessats (parells) i no muts (local) - peer from PEX - parell de PEX + parell de PEX - peer from DHT - parell de DHT + parell de DHT - encrypted traffic - trànsit encriptat + trànsit encriptat - encrypted handshake - salutació encriptada + salutació encriptada - peer from LSD - parell de LSD + parell de LSD @@ -4772,17 +4860,17 @@ Esteu segur que voleu tancar qBittorrent? Ruta de Filtre (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4888,299 +4976,298 @@ Esteu segur que voleu tancar qBittorrent? PropertiesWidget - + Downloaded: Baixat: - + Availability: Disponibilitat: - + Progress: Progrés: - + Transfer Transferència - + Time Active: Time (duration) the torrent is active (not paused) Temps actiu: - + ETA: Temps estimat: - + Uploaded: Pujada: - + Seeds: Llavors: - + Download Speed: Velocitat de baixada: - + Upload Speed: Velocitat de pujada: - + Peers: Parells: - + Download Limit: Límit de baixada: - + Upload Limit: Límit de pujada: - + Wasted: Perdut: - + Connections: Connexions: - + Information Informació - + Comment: Comentari: - Torrent content: - Contingut del Torrent: + Contingut del Torrent: - + Select All Selecciona Totes - + Select None Treure Seleccions - + Normal Normal - + High Alt - + Share Ratio: Ràtio de compartició: - + Reannounce In: Comunica en: - + Last Seen Complete: Últim cop vist complet: - + Total Size: Mida total: - + Pieces: Peces: - + Created By: Creat per: - + Added On: Afegit el: - + Completed On: Completat el: - + Created On: Creat el: - + Torrent Hash: Funció resum del Torrent (hash): - + Save Path: Ruta de desada: - + Maximum Màxim - - + + Do not download No descarregar - + Never Mai - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (te %3) - + %1 (%2 this session) %1 (%2 en aquesta sessió) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sembrat per %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 màxim) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 de mitja) - + Open Obre - + Open Containing Folder Obre carpeta contenidora - + Rename... Rebatejar... - + Priority Prioritat - + New Web seed Nova llavor web - + Remove Web seed Elimina llavor web - + Copy Web seed URL Copia URL de la llavor web - + Edit Web seed URL Edita URL de la llavor web - + Rename the file Rebatejar arxiu Torrent - + New name: Nou nom: - - + + The file could not be renamed No es pot canviar el nom d'arxiu - + This file name contains forbidden characters, please choose a different one. El nom introduït conté caràcters prohibits, si us plau n'elegeixi un altre. - - + + This name is already in use in this folder. Please use a different name. Aquest nom ja està en ús. Si us plau, usi un nom diferent. - + The folder could not be renamed No es pot canviar el nom d'arxiu - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Esteu segur que voleu tancar qBittorrent? Filtra arxius... - + New URL seed New HTTP source Nova llavor URL - + New URL seed: Nova llavor URL: - - + + This URL seed is already in the list. Aquesta llavor URL ja es troba en la llista. - + Web seed editing Edició de la llavor web - + Web seed URL: URL de la llavor web: @@ -5225,19 +5312,19 @@ Esteu segur que voleu tancar qBittorrent? La vostra adreça IP ha estat bandejada després de masses intents d'autentificació fallits. - + Error: '%1' is not a valid torrent file. Error: '%1' no és un arxiu Torrent vàlid. - + Error: Could not add torrent to session. Error: no s'ha pogut afegir el Torrent a la sessió. - + I/O Error: Could not create temporary file. Error d'entrada-sortida: No s'ha pogut crear un arxiu temporal. @@ -5390,138 +5477,138 @@ No es mostraran més avisos. [qBittorrent] '%1' s'han finalitzat les baixades - + The remote host name was not found (invalid hostname) El nom host no s'ha trobat (nom host no vàlid) - + The operation was canceled L'operació ha estat cancel·lada - + The remote server closed the connection prematurely, before the entire reply was received and processed El servidor remot ha tancat la connexió abans de temps, abans quela resposta fos rebuda i processada - + The connection to the remote server timed out Temps d'espera esgotat per a la connexió amb el servidor remot - + SSL/TLS handshake failed Salutació SSL/TSL fallida - + The remote server refused the connection El servidor remot ha rebutjat la connexió - + The connection to the proxy server was refused La connexió amb el servidor intermediari ha estat rebutjada - + The proxy server closed the connection prematurely El servidor intermediari ha tancat la connexió abans de temps - + The proxy host name was not found El nom del servidor intermediari no s'ha trobat - + The connection to the proxy timed out or the proxy did not reply in time to the request sent La connexió amb el servidor intermediari s'ha esgotat, o el servidor no ha respost a temps a la sol·licitud enviada - + The proxy requires authentication in order to honor the request but did not accept any credentials offered El servidor intermediari requereix autenticació per a atendre la sol·licitud, però no ha acceptat les credencials ofertes - + The access to the remote content was denied (401) L'accés al contingut remot ha estat rebutjat (401) - + The operation requested on the remote content is not permitted L'operació sol·licitada en el contingut remot no és permesa - + The remote content was not found at the server (404) El contingut remot no es troba al servidor (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted El servidor remot requereix autenticació per servir el contingut, però les credencials proporcionades no són correctes - + The Network Access API cannot honor the request because the protocol is not known L'accés a la xarxa de l'API no pot complir amb la sol·licitud perquè el protocol és desconegut - + The requested operation is invalid for this protocol L'operació sol·licitada no és vàlida per a aquest protocol - + An unknown network-related error was detected Error de xarxa desconegut - + An unknown proxy-related error was detected Error de servidor intermediari desconegut - + An unknown error related to the remote content was detected Error de contingut remot desconegut - + A breakdown in protocol was detected Una error en el protocol ha estat detectat - + Unknown error Error desconegut - - + + Upgrade Actualitza - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Heu actualitzat des d'una versió antiga que desava les coses de manera diferent. Heu de migrar al nou sistema de desada i no podreu tornar a fer servir una versió més antiga de 3.3.0. Voleu continuar? - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Heu actualitzat des d'una versió antiga que desava les coses de manera diferent. Heu de migrar al nou sistema de desada. Si continueu, no podreu tornar a fer servir una versió més antiga de la 3.3.0. - + Couldn't migrate torrent with hash: %1 No s'ha pogut migrar el Torrent amb la funció resum (hash): %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 No s'ha pogut migrar el torrent. Nom del fitxer de represa ràpida invàlid: %1 @@ -5710,12 +5797,12 @@ No es mostraran més avisos. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... La baixada automàtica de '%1' de la font 'RSS' %2 ha fallat perquè no conté un Torrent o enllaç imant... - + Automatically downloading '%1' torrent from '%2' RSS feed... Baixant automàticament '%1' Torrent de '%2' fonts RSS... @@ -5759,17 +5846,17 @@ No es mostraran més avisos. ScanFoldersModel - + Watched Folder Cerca fitxers .torrents - + Download here Descarregar Torrent aquí - + Download path @@ -7828,11 +7915,11 @@ De totes maneres, aquests connectors han estat inhabilitats. fsutils - - - - - + + + + + Downloads Baixades @@ -7840,103 +7927,103 @@ De totes maneres, aquests connectors han estat inhabilitats. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python no detectat - + Python version: %1 Versió de Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Desconegut - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent tancarà l'equip ara, perquè totes les baixades s'han completat. - + < 1m < 1 minute <1m - + %1m e.g: 10minutes %1m - + Working Operatiu - + Updating... Actualitzant... - + Not working No operatiu - + Not contacted yet Encara no connectat diff --git a/src/lang/qbittorrent_cs.ts b/src/lang/qbittorrent_cs.ts index 9e6705da0..cdcf87626 100644 --- a/src/lang/qbittorrent_cs.ts +++ b/src/lang/qbittorrent_cs.ts @@ -125,217 +125,222 @@ Přeskočit kontrolu haše - + + Set as default label + + + + Torrent Information Informace o torrentu - + Size: Velikost: - + Comment: Komentář: - + Date: Datum: - + Info Hash: Haš info: - + Normal Normální - + High Vysoká - + Maximum Maximální - + Do not download Nestahovat - - + + I/O Error Chyba I/O - + The torrent file does not exist. Torrent soubor neexistuje. - + Invalid torrent Neplatný torrent - + Failed to load the torrent: %1 Selhalo načtení torrentu: %1 - - + + Already in download list Torrent je již v seznamu ke stažení - + Free disk space: %1 Volné místo na disku: %1 - + Not Available This comment is unavailable Není k dispozici - + Not Available This date is unavailable Není k dispozici - + Not available Není k dispozici - + Invalid magnet link Neplatný magnet odkaz - + Torrent is already in download list. Trackers were merged. Torrent je již v seznamu ke stažení. Trackery byly sloučeny. - - + + Cannot add torrent Nelze přidat torrent - + Cannot add this torrent. Perhaps it is already in adding state. Nelze přidat tento torrent. Zřejmě se již jednou přidává. - + This magnet link was not recognized Tento magnet odkaz nebyl rozpoznán - + Magnet link is already in download list. Trackers were merged. Magnet je již v seznamu ke stažení. Trackery byly sloučeny. - + Cannot add this torrent. Perhaps it is already in adding. Nelze přidat tento torrent. Zřejmě se již jednou přidává. - + Magnet link Magnet odkaz - + Retrieving metadata... Načítám metadata... - + Not Available This size is unavailable. Není k dispozici - - - + + + Choose save path Vyberte cestu pro uložení - + Rename the file Přejmenovat soubor - + New name: Nový název: - - + + The file could not be renamed Soubor nelze přejmenovat - + This file name contains forbidden characters, please choose a different one. Název souboru obsahuje nepovolené znaky, zvolte prosím jiný. - - + + This name is already in use in this folder. Please use a different name. Tento název je již v tomto adresáři použit. Vyberte prosím jiný název. - + The folder could not be renamed Adresář nelze přejmenovat - + Rename... Přejmenovat... - + Priority Priorita - + Invalid metadata Neplatná metadata - + Parsing metadata... Analýza metadat... - + Metadata retrieval complete Načítání metadat dokončeno - + Download Error Chyba stahování @@ -427,9 +432,8 @@ Zjišťovat názvy počítačů protějšků - Maximum number of half-open connections [0: Disabled] - Maximální počet napůl otevřených spojení [0: Vypnuto] + Maximální počet napůl otevřených spojení [0: Vypnuto] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Interval uložení rychlého obnovení + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,330 @@ BitTorrent::Session - + Peer ID: ID protějšku: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] Anonymní režim [ZAP] - + Anonymous mode [OFF] Anonymní režim [VYP] - + PeX support [ON] Podpora PeX [ZAP] - + PeX support [OFF] Podpora PeX [VYP] - + Restart is required to toggle PeX support Kvůli přepnutí podpory PEX je nutný restart - + Local Peer Discovery support [ON] Podpora Local Peer Discovery [ZAP] - + Local Peer Discovery support [OFF] Podpora Local Peer Discovery [VYP] - + Encryption support [ON] Podpora šifrování [ZAP] - + Encryption support [FORCED] Podpora šifrování [VYNUCENO] - + Encryption support [OFF] Podpora šifrování [VYP] - + Embedded Tracker [ON] Vestavěný tracker [ZAP] - + Failed to start the embedded tracker! Start vestavěného trackeru selhal! - + Embedded Tracker [OFF] Vestavěný tracker [VYP] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' byl odstraněn ze seznamu i z pevného disku. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' byl odstraněn ze seznamu přenosů. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Stahuji '%1', prosím čekejte... - Torrent Export: torrent is invalid, skipping... - Torrent Export: torrent je neplatný, přeskakuji... + Torrent Export: torrent je neplatný, přeskakuji... - + DHT support [ON] Podpora DHT [ZAP] - + DHT support [OFF]. Reason: %1 Podpora DHT [VYP]. Důvod: %1 - + DHT support [OFF] Podpora DHT [VYP] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent se pokouší naslouchat na jakémkoli rozhraní, portu: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent selhal naslouchat na rozhraní %1. Důvod: %2 + qBittorrent selhal naslouchat na rozhraní %1. Důvod: %2 - + The network interface defined is invalid: %1 Nastavené síťové rozhraní je neplatné: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent se pokouší naslouchat na rozhraní %1, portu: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nenalezl místní adresu %1 na které by měl naslouchat - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent selhal naslouchat na rozhraní %1. Důvod: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Tracker '%1' byl přidán do torrentu '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' byl odebrán z torrentu '%2' - + URL seed '%1' was added to torrent '%2' URL zdroj '%1' byl přidán do torrentu '%2' - + URL seed '%1' was removed from torrent '%2' URL zdroj '%1' byl odebrán z torrentu '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nelze obnovit torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP filter byl úspěšně zpracován: bylo aplikováno %1 pravidel. - + Error: Failed to parse the provided IP filter. Chyba: Nepovedlo se zpracovat poskytnutý IP filtr. - + Couldn't add torrent. Reason: %1 Nelze přidat torrent. Důvod: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' obnoven. (rychlé obnovení) - + '%1' added to download list. 'torrent name' was added to download list. '%1' přidán do seznamu stahování. - + An I/O error occurred, '%1' paused. %2 Došlo k chybě I/O, '%1' je pozastaven. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Namapování portů selhalo, zpráva: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Namapování portů bylo úspěšné, zpráva: %1 - + due to IP filter. this peer was blocked due to ip filter. kvůli IP filtru. - + due to port filter. this peer was blocked due to port filter. kvůli port filtru. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. kvůli omezením i2p mixed módu. - + because it has a low port. this peer was blocked because it has a low port. kvůli nízkému portu. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent naslouchá na rozhraní %1, portu: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent selhal naslouchat na rozhraní %1, portu: %2/%3, důvod: %4 + qBittorrent selhal naslouchat na rozhraní %1, portu: %2/%3, důvod: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent selhal naslouchat na rozhraní %1, portu: %2/%3, důvod: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Externí IP: %1 @@ -1191,17 +1199,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Nelze přesunout torrent: '%1'. Důvod: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1307,20 +1315,20 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Chyba parsování: soubor s filtrem není validní PeerGuardian P2B soubor. @@ -1328,43 +1336,43 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1397,9 +1405,8 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.Pouze jeden odkaz na řádek - Download local torrent - Stáhnout lokální torrent + Stáhnout lokální torrent @@ -1572,7 +1579,22 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.Neaktivní - + + Save files to location: + Ukládat soubory do umístění: + + + + Label: + Štítek: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Staženo @@ -1582,6 +1604,11 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.Logout Odhlásit + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1749,7 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. LineEdit - + Clear the text Vymazat text @@ -1743,37 +1770,37 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. MainWindow - + &Edit Ú&pravy - + &Tools &Nástroje - + &File &Soubor - + &Help Nápo&věda - + On Downloads &Done Při &dokončení stahování - + &View &Zobrazit - + &Options... &Možnosti... @@ -1783,153 +1810,153 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.&Obnovit - + Torrent &Creator &Vytvoření torrentu - + Set Upload Limit... Nastavit limit odesílání... - + Set Download Limit... Nastavit limit stahování... - + Set Global Download Limit... Nastavit celkový limit stahování... - + Set Global Upload Limit... Nastavit celkový limit odesílání... - + Minimum Priority Minimální priorita - + Top Priority Top priorita - + Decrease Priority Snížit prioritu - + Increase Priority Zvýšit prioritu - - + + Alternative Speed Limits Alternativní limity rychlosti - + &Top Toolbar Horní panel nás&trojů - + Display Top Toolbar Zobrazit horní panel nástrojů - + S&peed in Title Bar R&ychlost v záhlaví okna - + Show Transfer Speed in Title Bar Zobrazit aktuální rychlost v záhlaví okna - + &RSS Reader &RSS čtečka - + Search &Engine Vyhl&edávač - + L&ock qBittorrent Zamkn&out qBittorrent - + &Import Existing Torrent... &Importovat existující torrent... - + Import Torrent... Importovat torrent... - + Do&nate! Darujte! - + R&esume All Obnovit vš&e - + &Log &Log - + &Exit qBittorrent Ukončit qBittorr&ent - + &Suspend System U&spat počítač - + &Hibernate System &Režim spánku - + S&hutdown System &Vypnout počítač - + &Disabled &Zakázáno - + &Statistics &Statistika - + Check for Updates Zkontrolovat aktualizace - + Check for Program Updates Zkontrolovat aktualizace programu @@ -1939,77 +1966,72 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.O &aplikaci - Exit - Ukončit + Ukončit - + &Pause Po&zastavit - + &Delete Smaza&t - + P&ause All Pozastavit vš&e - + &Add Torrent File... Přid&at torrent soubor... - + Open Otevřít - + E&xit &Konec - Options - Možnosti + Možnosti - Resume - Obnovit + Obnovit - Pause - Pozastavit + Pozastavit - Delete - Smazat + Smazat - + Open URL Otevřít URL - + &Documentation &Dokumentace - + Lock Zamknout - + Show Ukázat @@ -2020,22 +2042,21 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.Zkontrolovat aktualizace programu - Lock qBittorrent - Zamknout qBittorrent + Zamknout qBittorrent - + Add Torrent &Link... Přidat torrent odka&z... - + If you like qBittorrent, please donate! Pokud se Vám qBittorrent líbí, prosím přispějte! - + Execution Log Záznamy programu (Log) @@ -2412,52 +2433,52 @@ Opravdu chcete ukončit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Vašedynamická DNS byla úspěšně aktualizována. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Chyba dynamické DNS: Služba je dočasně nedostupná, akce bude opakována za 30 minut. - + Dynamic DNS error: hostname supplied does not exist under specified account. Chyba dynamické DNS: poskytnutý název hostitele pod tímto účtem neexistuje. - + Dynamic DNS error: Invalid username/password. Chyba dynamické DNS: Chybné jméno/heslo. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamické DNS: qBittorrent je na černé listině této služby, nahlašte prosím chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamické DNS: služba odpověděla %1, nahlašte prosím chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Chyba dynamické DNS: Vaše přihlašovací jméno bylo zablokováno v důsledku zneužití. - + Dynamic DNS error: supplied domain name is invalid. Chyba dynamické DNS: poskytnuté doménové jméno je neplatné. - + Dynamic DNS error: supplied username is too short. Chyba dynamické DNS: poskytnuté přihlašovací jméno je příliš krátké. - + Dynamic DNS error: supplied password is too short. Chyba dynamické DNS: poskytnuté heslo je příliš krátké. @@ -2465,17 +2486,17 @@ Opravdu chcete ukončit qBittorrent? Net::DownloadHandler - + I/O Error Chyba I/O - + The file size is %1. It exceeds the download limit of %2. Velikost souboru je %1. Přesahuje limit pro stažení %2. - + Unexpected redirect to magnet URI. @@ -2483,1300 +2504,1300 @@ Opravdu chcete ukončit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Francie - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Řecko - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3784,12 +3805,12 @@ Opravdu chcete ukončit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Podpora UPnP / NAT-PMP [ZAP] - + UPnP / NAT-PMP support [OFF] Podpora UPnP / NAT-PMP [VYP] @@ -3797,206 +3818,265 @@ Opravdu chcete ukončit qBittorrent? Net::Smtp - + Email Notification Error: Chyba upozornění e-mailem: + + PeerInfo + + + interested(local) and choked(peer) + zájem(místní) a přiškrcený(protějšek) + + + + interested(local) and unchoked(peer) + zájem(místní) a uvoľnený(protějšek) + + + + interested(peer) and choked(local) + zájem(protějšek) a přiškrcený(místní) + + + + interested(peer) and unchoked(local) + zájem(protějšek) a uvoľnený(místní) + + + + optimistic unchoke + optimisticky uvolněný + + + + peer snubbed + lokálně zasekaný + + + + incoming connection + příchozí spojení + + + + not interested(local) and unchoked(peer) + nezájem(místní) a uvoľnený(protějšek) + + + + not interested(peer) and unchoked(local) + nezájem(protějšek) a uvoľnený(místní) + + + + peer from PEX + protějšek z PEX + + + + peer from DHT + protějšek z DHT + + + + encrypted traffic + šifrovaný přenos + + + + encrypted handshake + šifrovaný handshake + + + + peer from LSD + lokální protějšek (z LSD) + + PeerListWidget - + IP IP - + Port Port - + Flags Vlajky - + Connection Připojení - + Client i.e.: Client application Klient - + Progress i.e: % downloaded Průběh - + Down Speed i.e: Download speed Rychlost stahování - + Up Speed i.e: Upload speed Rychlost odesílání - + Downloaded i.e: total data downloaded Staženo - + Uploaded i.e: total data uploaded Odesláno - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Důležitost - + Add a new peer... Přidat nový protějšek... - + Copy selected Kopírovat vybrané - - + + Ban peer permanently Natrvalo zakázat protějšek - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Přidání protějšku - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Opravdu chcete natrvalo zakázat označené protějšky? - + &Yes &Ano - + &No &Ne - interested(local) and choked(peer) - zájem(místní) a přiškrcený(protějšek) + zájem(místní) a přiškrcený(protějšek) - interested(local) and unchoked(peer) - zájem(místní) a uvoľnený(protějšek) + zájem(místní) a uvoľnený(protějšek) - interested(peer) and choked(local) - zájem(protějšek) a přiškrcený(místní) + zájem(protějšek) a přiškrcený(místní) - interested(peer) and unchoked(local) - zájem(protějšek) a uvoľnený(místní) + zájem(protějšek) a uvoľnený(místní) - optimistic unchoke - optimisticky uvolněný + optimisticky uvolněný - peer snubbed - lokálně zasekaný + lokálně zasekaný - incoming connection - příchozí spojení + příchozí spojení - not interested(local) and unchoked(peer) - nezájem(místní) a uvoľnený(protějšek) + nezájem(místní) a uvoľnený(protějšek) - not interested(peer) and unchoked(local) - nezájem(protějšek) a uvoľnený(místní) + nezájem(protějšek) a uvoľnený(místní) - peer from PEX - protějšek z PEX + protějšek z PEX - peer from DHT - protějšek z DHT + protějšek z DHT - encrypted traffic - šifrovaný přenos + šifrovaný přenos - encrypted handshake - šifrovaný handshake + šifrovaný handshake - peer from LSD - lokální protějšek (z LSD) + lokální protějšek (z LSD) @@ -4770,17 +4850,17 @@ Opravdu chcete ukončit qBittorrent? Cesta k filtru (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4886,299 +4966,298 @@ Opravdu chcete ukončit qBittorrent? PropertiesWidget - + Downloaded: Staženo: - + Availability: Dostupnost: - + Progress: Průběh: - + Transfer Přenos - + Time Active: Time (duration) the torrent is active (not paused) Aktivní po dobu: - + ETA: Odh. čas: - + Uploaded: Odesláno: - + Seeds: Seedy: - + Download Speed: Rychlost stahování: - + Upload Speed: Rychlost odesílání: - + Peers: Protějšky: - + Download Limit: Omezení stahování: - + Upload Limit: Omezení odesílání: - + Wasted: Zahozeno: - + Connections: Připojení: - + Information Informace - + Comment: Komentář: - Torrent content: - Obsah torrentu: + Obsah torrentu: - + Select All Vybrat vše - + Select None Zrušit výběr - + Normal Normální - + High Vysoká - + Share Ratio: Poměr sdílení: - + Reannounce In: Znovu-oznámit za: - + Last Seen Complete: Poslední komplet zdroj: - + Total Size: Celková velikost: - + Pieces: Části: - + Created By: Vytvořil/a: - + Added On: Přidáno: - + Completed On: Dokončeno: - + Created On: Vytvořeno: - + Torrent Hash: Kontrolní součet: - + Save Path: Uložit do: - + Maximum Maximální - - + + Do not download Nestahovat - + Never Nikdy - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Otevřít - + Open Containing Folder Otevřít cílový adresář - + Rename... Přejmenovat... - + Priority Priorita - + New Web seed Nový webový seed - + Remove Web seed Odstranit webový seed - + Copy Web seed URL Kopírovat URL webového seedu - + Edit Web seed URL Upravit URL webového seedu - + Rename the file Přejmenovat soubor - + New name: Nový název: - - + + The file could not be renamed Soubor nelze přejmenovat - + This file name contains forbidden characters, please choose a different one. Název souboru obsahuje nepovolené znaky, zvolte prosím jiný. - - + + This name is already in use in this folder. Please use a different name. Tento název je již v tomto adresáři použit. Vyberte prosím jiný název. - + The folder could not be renamed Adresář nelze přejmenovat - + qBittorrent qBittorrent @@ -5188,29 +5267,29 @@ Opravdu chcete ukončit qBittorrent? Filtrovat soubory... - + New URL seed New HTTP source Nový URL seed - + New URL seed: Nový URL seed: - - + + This URL seed is already in the list. Tento URL seed už v seznamu existuje. - + Web seed editing Úpravy webového seedu - + Web seed URL: URL webového seedu: @@ -5223,19 +5302,19 @@ Opravdu chcete ukončit qBittorrent? Vaše IP adresa byla zablokována kvůli vysokém počtu neúspěšných pokusů o přihlášení. - + Error: '%1' is not a valid torrent file. Chyba: '%1' není platný torrent soubor. - + Error: Could not add torrent to session. Chyba: Torrent nelze přidat do sezení. - + I/O Error: Could not create temporary file. I/O Chyba: Nelze vytvořit dočasný soubor. @@ -5388,138 +5467,138 @@ Další upozornění již nebudou zobrazena. - + The remote host name was not found (invalid hostname) Vzdálený server nebyl nalezen (neplatný název hostitele) - + The operation was canceled Operace byla zrušena - + The remote server closed the connection prematurely, before the entire reply was received and processed Vzdálený server předčasně ukončil připojení, dříve než byla celá odpověď přijata a zpracována - + The connection to the remote server timed out Připojení k vzdálenému serveru vypršelo - + SSL/TLS handshake failed SSL/TLS handshake selhalo - + The remote server refused the connection Vzdálený server odmítl připojení - + The connection to the proxy server was refused Připojení k proxy serveru bylo odmítnuto - + The proxy server closed the connection prematurely Proxy server předčasně ukončil připojení - + The proxy host name was not found Název proxy serveru nebyl nalezen - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Připojení k proxy serveru vypršelo nebo proxy dostatečně rychle neodpověděla na zaslaný požadavek - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) Přístup ke vzdálenému obsahu byl odepřen (401) - + The operation requested on the remote content is not permitted Požadovaná operace na vzdáleném obsahu není dovolena - + The remote content was not found at the server (404) Vzdálený obsah nebyl na serveru nalezen (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Vzdálený server vyžaduje přihlášení, ale neakceptoval žádné z nabízených přihlašovacích údajů - + The Network Access API cannot honor the request because the protocol is not known API pro připojení k síti nemohlo akceptovat požadavek z důvodu neznámého protokolu - + The requested operation is invalid for this protocol Požadovaná operace není pro tento protokol platná - + An unknown network-related error was detected Byla detekována neznámá chyba sítě - + An unknown proxy-related error was detected Byla detekována neznámá chyba související s proxy - + An unknown error related to the remote content was detected Byla detekována neznámá chyba související se vzdáleným obsahem - + A breakdown in protocol was detected Byla detekována chyba v protokolu - + Unknown error Neznámá chyba - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5708,12 +5787,12 @@ Další upozornění již nebudou zobrazena. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5757,17 +5836,17 @@ Další upozornění již nebudou zobrazena. ScanFoldersModel - + Watched Folder Sledovaný adresář - + Download here Stáhnout zde - + Download path @@ -7825,11 +7904,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Stahování @@ -7837,103 +7916,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Neznámá - + qBittorrent will shutdown the computer now because all downloads are complete. Protože jsou staženy všechny torrenty, qBittorrent nyní vypne počítač. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Funkční - + Updating... Aktualizuji... - + Not working Nefunkční - + Not contacted yet Dosud nekontaktován diff --git a/src/lang/qbittorrent_da.ts b/src/lang/qbittorrent_da.ts index 4685679fc..2607965ee 100644 --- a/src/lang/qbittorrent_da.ts +++ b/src/lang/qbittorrent_da.ts @@ -125,217 +125,222 @@ Spring hash tjek over - + + Set as default label + + + + Torrent Information Torrent Information - + Size: Størrelse: - + Comment: Kommentar: - + Date: Dato: - + Info Hash: - + Normal Normal - + High Høj - + Maximum Højest - + Do not download Hent ikke - - + + I/O Error I/O Fejl - + The torrent file does not exist. Torrent filen eksistere ikke. - + Invalid torrent Ugyldig torrent - + Failed to load the torrent: %1 Kunne ikke indlæse torrent: %1 - - + + Already in download list Allerede i download listen - + Free disk space: %1 - + Not Available This comment is unavailable Ikke tilgængelig - + Not Available This date is unavailable Ikke tilgængelig - + Not available Ikke tilgængelig - + Invalid magnet link Ugyldig magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Dette magnet link blev ikke genkendt - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Modtager metadata... - + Not Available This size is unavailable. Ikke tilgængelig - - - + + + Choose save path Vælg destinationen - + Rename the file Omdøb filen - + New name: Nyt navn: - - + + The file could not be renamed Filen kunne ikke omdøbes - + This file name contains forbidden characters, please choose a different one. Filnavnet indeholder forbudte tegn, vælg venligst nogle andre. - - + + This name is already in use in this folder. Please use a different name. Navnet for denne mappe er allerede i brug. Vælg venligst et andet. - + The folder could not be renamed Mappen kunne ikke omdøbes - + Rename... Omdøb... - + Priority Prioritet - + Invalid metadata - + Parsing metadata... Behandler metadata... - + Metadata retrieval complete Metadata modtaget - + Download Error @@ -427,9 +432,8 @@ Oversæt peer host navn - Maximum number of half-open connections [0: Disabled] - Maks antal af halvt åbne forbindelsers [0: Deaktiveret] + Maks antal af halvt åbne forbindelsers [0: Deaktiveret] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Kun et link per linje - Download local torrent - Download lokal torrent + Download lokal torrent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Gem .torrents i: + + + + Label: + Mærkat: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Hentet @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Ryd teksten @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Rediger - + &Tools &Værktøjer - + &File &Filer - + &Help &Hjælp - + On Downloads &Done - + &View &Vis - + &Options... &Indstillinger... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Genoptag - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All G&enoptag Alle - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,60 @@ You should get this information from your Web browser preferences. &Om - Exit - Afslut + Afslut - + &Pause &Pause - + &Delete &Slet - + P&ause All P&ause Alle - + &Add Torrent File... - + Open Åben - + E&xit - - Options - Indstillinger - - - - Resume - Genoptag - - - - Pause - Pause - - - Delete - Slet + Slet - + Open URL - + &Documentation &Dokumentation - + Lock - + Show Vis @@ -2019,22 +2015,21 @@ You should get this information from your Web browser preferences. Tjek for program opdateringer - Lock qBittorrent - Lås qBittorrent + Lås qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Hvis du kan lide qBittorrent, donér venligst! - + Execution Log Eksekveret Log @@ -2409,52 +2404,52 @@ Er du sikker på at du vil afslutte qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2462,17 +2457,17 @@ Er du sikker på at du vil afslutte qBittorrent? Net::DownloadHandler - + I/O Error I/O Fejl - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2480,1300 +2475,1300 @@ Er du sikker på at du vil afslutte qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Frankrig - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grækenland - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3781,12 +3776,12 @@ Er du sikker på at du vil afslutte qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3794,206 +3789,237 @@ Er du sikker på at du vil afslutte qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + Peer afbrudt + + + + incoming connection + Indgående forbindelse + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + peer fra PEX + + + + peer from DHT + peer fra DHT + + + + encrypted traffic + krypteret trafik + + + + encrypted handshake + krypteret håndtryk + + + + peer from LSD + peer fra LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Flags - + Connection Forbindelse - + Client i.e.: Client application Klient - + Progress i.e: % downloaded Fremgang - + Down Speed i.e: Download speed Hast. ned - + Up Speed i.e: Upload speed Hast. op - + Downloaded i.e: total data downloaded Modtaget - + Uploaded i.e: total data uploaded Sendt - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Tilføj ny peer... - + Copy selected - - + + Ban peer permanently Bandlys peer permanent - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Tilføjelse af peer - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Er du sikker på at du vil bandlyse de valgte peers permanent? - + &Yes &Ja - + &No &Nej - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - peer snubbed - Peer afbrudt + Peer afbrudt - incoming connection - Indgående forbindelse + Indgående forbindelse - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - peer from PEX - peer fra PEX + peer fra PEX - peer from DHT - peer fra DHT + peer fra DHT - encrypted traffic - krypteret trafik + krypteret trafik - encrypted handshake - krypteret håndtryk + krypteret håndtryk - peer from LSD - peer fra LSD + peer fra LSD @@ -4767,17 +4793,17 @@ Er du sikker på at du vil afslutte qBittorrent? Filter sti (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4883,299 +4909,298 @@ Er du sikker på at du vil afslutte qBittorrent? PropertiesWidget - + Downloaded: Hentet: - + Availability: Tilgængelighed: - + Progress: Fremgang: - + Transfer Overførsel - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Sendt: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Spildt: - + Connections: Forbindelser: - + Information Information - + Comment: Kommentar: - Torrent content: - Torrent indhold: + Torrent indhold: - + Select All Vælg Alt - + Select None Vælg Intet - + Normal Normal - + High Høj - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Maksimum - - + + Do not download Hent ikke - + Never Aldrig - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Åben - + Open Containing Folder Åben Destinationsmappe - + Rename... Omdøb... - + Priority Prioritet - + New Web seed Ny Web seed - + Remove Web seed Fjern Web seed - + Copy Web seed URL Kopier Web seed URL - + Edit Web seed URL Rediger Web seed URL - + Rename the file Omdøb fil - + New name: Nyt navn: - - + + The file could not be renamed Filen kunne ikke omdøbes - + This file name contains forbidden characters, please choose a different one. Filnavnet indeholder forbudte tegn, vælg venligst nogle andre. - - + + This name is already in use in this folder. Please use a different name. Navnet for denne mappe er allerede i brug. Vælg venligst et andet. - + The folder could not be renamed Mappen kunne ikke omdøbes - + qBittorrent qBittorrent @@ -5185,29 +5210,29 @@ Er du sikker på at du vil afslutte qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Web seed redigering - + Web seed URL: Web seed URL: @@ -5220,18 +5245,18 @@ Er du sikker på at du vil afslutte qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5382,138 +5407,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5702,12 +5727,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5751,17 +5776,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Overvåget mapper - + Download here Hent hertil - + Download path @@ -7819,11 +7844,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Downloads @@ -7831,103 +7856,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KB - + MiB mebibytes (1024 kibibytes) MB - + GiB gibibytes (1024 mibibytes) GB - + TiB tebibytes (1024 gibibytes) TB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Ukendt - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent lukker nu komputeren fordi alle downloads er færdige. - + < 1m < 1 minute < 1 m - + %1m e.g: 10minutes %1m - + Working Arbejder - + Updating... Opdatere... - + Not working Virker ikke - + Not contacted yet Ingen kontakt endnu diff --git a/src/lang/qbittorrent_de.ts b/src/lang/qbittorrent_de.ts index 6a3d88995..724740e6e 100644 --- a/src/lang/qbittorrent_de.ts +++ b/src/lang/qbittorrent_de.ts @@ -125,217 +125,222 @@ Prüfsummenkontrolle überspringen - + + Set as default label + + + + Torrent Information Torrent-Informationen - + Size: Größe: - + Comment: Kommentar: - + Date: Datum: - + Info Hash: Info-Hash: - + Normal Normal - + High Hoch - + Maximum Maximum - + Do not download Nicht herunterladen - - + + I/O Error I/O Fehler - + The torrent file does not exist. Die Torrent-Datei existiert nicht. - + Invalid torrent Ungültiger Torrent - + Failed to load the torrent: %1 Laden des Torrents fehlgeschlagen: %1 - - + + Already in download list Bereits in der Downloadliste - + Free disk space: %1 Freier Speicherplatz: %1 - + Not Available This comment is unavailable Nicht verfügbar - + Not Available This date is unavailable Nicht verfügbar - + Not available Nicht verfügbar - + Invalid magnet link Ungültiger Magnet-Link - + Torrent is already in download list. Trackers were merged. Torrent befindet sich bereits in der Downloadliste. Tracker wurden zusammengeführt. - - + + Cannot add torrent Kann torrent nicht hinzufügen - + Cannot add this torrent. Perhaps it is already in adding state. Kann diesen Torrent nicht hinzufügen. Vielleicht wird er bereits gerade hinzugefügt. - + This magnet link was not recognized Dieser Magnet-Link wurde nicht erkannt - + Magnet link is already in download list. Trackers were merged. Magnet-Link befindet sich bereits in der Downloadliste. Tracker wurden zusammengeführt. - + Cannot add this torrent. Perhaps it is already in adding. Kann diesen Torrent nicht hinzufügen. Vielleicht wird er bereits gerade hinzugefügt. - + Magnet link Magnet-Link - + Retrieving metadata... Frage Metadaten ab ... - + Not Available This size is unavailable. Nicht verfügbar - - - + + + Choose save path Speicherpfad auswählen - + Rename the file Datei umbenennen - + New name: Neuer Name: - - + + The file could not be renamed Die Datei konnte nicht umbenannt werden - + This file name contains forbidden characters, please choose a different one. Der Dateiname enthält ungültige Zeichen - bitte einen anderen Namen wählen. - - + + This name is already in use in this folder. Please use a different name. Der Dateiname wird in diesem Verzeichnis bereits verwendet - bitte einen anderen Namen wählen. - + The folder could not be renamed Das Verzeichnis konnte nicht umbenannt werden - + Rename... Umbenennen ... - + Priority Priorität - + Invalid metadata Ungültige Metadaten - + Parsing metadata... Analysiere Metadaten ... - + Metadata retrieval complete Abfrage Metadaten komplett - + Download Error Downloadfehler @@ -427,9 +432,8 @@ Hostnamen der Peers auflösen - Maximum number of half-open connections [0: Disabled] - Maximale Anzahl halboffener Verbindungen [0: Deaktiviert] + Maximale Anzahl halboffener Verbindungen [0: Deaktiviert] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Speicherintervall für Fortsetzungsdaten + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Peer-ID: - + HTTP User-Agent is '%1' HTTP Benutzer-Agent ist '%1' - + Anonymous mode [ON] Anonymer Modus [EIN] - + Anonymous mode [OFF] Anonymer Modus [AUS] - + PeX support [ON] PeX-Unterstützung [EIN] - + PeX support [OFF] PeX-Unterstützung [AUS] - + Restart is required to toggle PeX support Neustart erforderlich, um PeX-Unterstützung umzuschalten - + Local Peer Discovery support [ON] Lokale Peers (LPD) finden [EIN] - + Local Peer Discovery support [OFF] Lokale Peers (LPD) finden [AUS] - + Encryption support [ON] Verschlüsselungsunterstützung [EIN] - + Encryption support [FORCED] Verschlüsselungsunterstützung [ERZWUNGEN] - + Encryption support [OFF] Verschlüsselungsunterstützung [AUS] - + Embedded Tracker [ON] Eingebetteter Tracker [EIN] - + Failed to start the embedded tracker! Starten des eingebetteten Trackers fehlgeschlagen! - + Embedded Tracker [OFF] Eingebetteter Tracker [AUS] - + '%1' reached the maximum ratio you set. Removing... '%1' hat das gesetzte maximale Verhältnis erreicht. Wird entfernt ... - + '%1' reached the maximum ratio you set. Pausing... '%1' hat das gesetzte maximale Verhältnis erreicht. Wird angehalten ... - Error: Could not create torrent export directory: '%1' - Fehler: Konnte das Verzeichnis für den Torrent-Export nicht erstellen: '%1' + Fehler: Konnte das Verzeichnis für den Torrent-Export nicht erstellen: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Fehler: Konnte den Torrent '%1' nicht exportieren - vielleicht fehlen noch Metadaten. + Fehler: Konnte den Torrent '%1' nicht exportieren - vielleicht fehlen noch Metadaten. - + System network status changed to %1 e.g: System network status changed to ONLINE Systemnetzwerkstatus auf %1 geändert - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Die Netzwerk-Konfiguration von %1 hat sich geändert - die Sitzungsbindung wird erneuert - + Unable to decode '%1' torrent file. '%1' Torrentdatei kann nicht dekodiert werden. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursiver Download von Datei '%1', eingebettet in Torrent '%2' - + Couldn't save '%1.torrent' '%1.torrent' konnte nicht gespeichert werden - + because %1 is disabled. this peer was blocked because uTP is disabled. weil %1 deaktiviert ist. - + because %1 is disabled. this peer was blocked because TCP is disabled. weil %1 deaktiviert ist. - + URL seed lookup failed for URL: '%1', message: %2 URL Überprüfung für die Seed-URL '%1' ist fehlgeschlagen; Grund: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' wurde von der Transferliste und von der Festplatte entfernt. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' wurde von der Übertragungsliste entfernt. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Herunterladen von '%1' - bitte warten ... - Torrent Export: torrent is invalid, skipping... - Torrent-Export: Ungültiger Torrent - wird verworfen ... + Torrent-Export: Ungültiger Torrent - wird verworfen ... - + DHT support [ON] DHT-Unterstützung [EIN] - + DHT support [OFF]. Reason: %1 DHT-Unterstützung [AUS]. Grund: %1 - + DHT support [OFF] DHT-Unterstützung [AUS] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent versucht auf allen beliebigen Ports zu lauschen: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2 + qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2 - + The network interface defined is invalid: %1 Das angegebene Netzwerkinterface ist ungültig: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent versucht auf Interface %1 Port %2 zu lauschen - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent konnte auf die zu lauschende lokale Adresse %1 nicht finden - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Tracker '%1' wurde dem Torrent '%2' hinzugefügt - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' wurde vom Torrent '%2' entfernt - + URL seed '%1' was added to torrent '%2' URL Seed '%1' wurde dem Torrent '%2' hinzugefügt - + URL seed '%1' was removed from torrent '%2' URL Seed '%1' wurde vom Torrent '%2' entfernt - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Konnte Torrent %1 nicht fortsetzen. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Der IP-Filter wurde erfolgreich analysiert. Es wurden %1 Regeln angewendet. - + Error: Failed to parse the provided IP filter. Fehler: IP-Filter konnte nicht analysiert werden. - + Couldn't add torrent. Reason: %1 Konnte den Torrent nicht hinzufügen. Grund: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' fortgesetzt. (Schnelles Fortsetzen) - + '%1' added to download list. 'torrent name' was added to download list. '%1' der Downloadliste hinzugefügt. - + An I/O error occurred, '%1' paused. %2 Ein I/O Fehler ist aufgetreten, '%1' angehalten. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Fehler beim Portmapping, Meldung: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Portmapping erfolgreich, Meldung: %1 - + due to IP filter. this peer was blocked due to ip filter. wegen IP-Filter. - + due to port filter. this peer was blocked due to port filter. wegen Port-Filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. auf Grund von Beschränkungen für den gemischten i2p-Modus. - + because it has a low port. this peer was blocked because it has a low port. weil der Port niedrig ist. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent lauscht erfolgreich auf Interface %1 Port %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4 + qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Externe IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Konnte den Torrent '%1' nicht verschieben. Grund: %2 - + File sizes mismatch for torrent '%1', pausing it. Dateigrößen des Torrent '%1' stimmen nicht überein, wird angehalten. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Fortsetzungsdaten des Torrent '%1' wurden zurückgewiesen. Grund: '%2'. Prüfe erneut ... @@ -1307,20 +1323,20 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. E/A-Fehler: Konnte IP-Filterdatei nicht im Lesemodus öffnen. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Syntax-Fehler: Die Filterdatei ist keine gültige PeerGuardian P2B-Datei. @@ -1328,43 +1344,43 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. GeoIPDatabase - - + + Unsupported database file size. Nicht unterstützte Dateigröße der Datenbank. - + Metadata error: '%1' entry not found. Fehler in Metadaten: '%1'-Eintrag nicht gefunden. - + Metadata error: '%1' entry has invalid type. Fehler in Metadaten: '%1'-Eintrag ist ein ungültiger Typ. - + Unsupported database version: %1.%2 Nicht unterstützte Version der Datenbank: %1.%2 - + Unsupported IP version: %1 Nicht unterstützte IP-Version: %1 - + Unsupported record size: %1 Nicht unterstützte Speichergröße: %1 - + Invalid database type: %1 Ungültiger Datenbanktyp: %1 - + Database corrupted: no data section found. Fehlerhafte Datenbank: Kein Datenabschnitt gefunden. @@ -1397,9 +1413,8 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Nur ein Link pro Zeile - Download local torrent - Lokalen Torrent herunterladen + Lokalen Torrent herunterladen @@ -1572,7 +1587,22 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Inaktiv - + + Save files to location: + Datei(en) hierhin speichern: + + + + Label: + Label: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Heruntergeladen @@ -1582,6 +1612,11 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Logout Abmelden + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. LineEdit - + Clear the text Text löschen @@ -1743,37 +1778,37 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. MainWindow - + &Edit B&earbeiten - + &Tools &Werkzeuge - + &File &Datei - + &Help &Hilfe - + On Downloads &Done Wenn &Downloads abgeschlossen sind - + &View &Ansicht - + &Options... &Optionen ... @@ -1783,153 +1818,153 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Fo&rtsetzen - + Torrent &Creator &Torrent Ersteller - + Set Upload Limit... Upload Limit setzen ... - + Set Download Limit... Download Limit setzen ... - + Set Global Download Limit... Globales Download Limit setzen ... - + Set Global Upload Limit... Globales Upload Limit setzen ... - + Minimum Priority Niedrigste Priorität - + Top Priority Höchste Priorität - + Decrease Priority Priorität verringern - + Increase Priority Priorität erhöhen - - + + Alternative Speed Limits Alternative Geschwindigkeitsbegrenzungen - + &Top Toolbar Obere Werkzeugleis&te - + Display Top Toolbar Obere Werkzeugleiste anzeigen - + S&peed in Title Bar &Geschwindigkeit in der Titelleiste - + Show Transfer Speed in Title Bar Übertragungsgeschwindigkeit in der Titelleiste anzeigen - + &RSS Reader &RSS Reader - + Search &Engine Suchmaschin&e - + L&ock qBittorrent qBitt&orrent sperren - + &Import Existing Torrent... Existierenden Torrent &importieren ... - + Import Torrent... Torrent importieren ... - + Do&nate! Spe&nden! - + R&esume All Alle forts&etzen - + &Log Protoko&ll - + &Exit qBittorrent qBittorrent b&eenden - + &Suspend System &Standbymodus - + &Hibernate System &Ruhezustand - + S&hutdown System System &herunterfahren - + &Disabled &Deaktiviert - + &Statistics &Statistiken - + Check for Updates Auf Aktualisierungen prüfen - + Check for Program Updates Auf Programmaktualisierungen prüfen @@ -1939,77 +1974,72 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. &Über - Exit - Beenden + Beenden - + &Pause &Pausieren - + &Delete &Löschen - + P&ause All A&lle anhalten - + &Add Torrent File... Torrent-D&atei hinzufügen... - + Open Öffnen - + E&xit &Beenden - Options - Optionen + Optionen - Resume - Fortsetzen + Fortsetzen - Pause - Pausieren + Pausieren - Delete - Löschen + Löschen - + Open URL URL öffnen - + &Documentation &Dokumentation - + Lock Sperren - + Show Zeige @@ -2020,22 +2050,21 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Auf Programm-Updates prüfen - Lock qBittorrent - qBittorrent sperren + qBittorrent sperren - + Add Torrent &Link... Torrent-&Link hinzufügen... - + If you like qBittorrent, please donate! Bitte spenden Sie wenn Ihnen qBittorrent gefällt! - + Execution Log Ausführungs-Log @@ -2414,52 +2443,52 @@ Soll qBittorrent wirklich beendet werden? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Der dynamische DNS-Eintrag wurde erfolgreich aktualisiert. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dynamischer DNS Fehler: Der Dienst ist vorübergehend nicht erreichbar. Ein neuer Versuch wird in 30 Minuten gestartet. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dynamischer DNS Fehler: Der Hostname existiert nicht für den angegebenen Account. - + Dynamic DNS error: Invalid username/password. Dynamischer DNS Fehler: Ungültiger Benutzername/Passwort. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dynamischer DNS Fehler: qBittorrent wurde durch den Dienst geblacklisted. Bitte melden sie einen Bug unter http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dynamischer DNS Fehler: Der Dienst hat %1 zurückgegeben. Bitte diesen Bug unter http://bugs.qbittorrent.org melden. - + Dynamic DNS error: Your username was blocked due to abuse. Dynamischer DNS Fehler: Der Benutzername wurde wegen Missbrauch geblockt. - + Dynamic DNS error: supplied domain name is invalid. Dynamischer DNS Fehler: Angegebener Domainname ist ungültig. - + Dynamic DNS error: supplied username is too short. Dynamischer DNS Fehler: Angegebener Benutzername ist zu kurz. - + Dynamic DNS error: supplied password is too short. Dynamischer DNS Fehler: Angegebenes Passwort ist zu kurz. @@ -2467,17 +2496,17 @@ Soll qBittorrent wirklich beendet werden? Net::DownloadHandler - + I/O Error E/A-Fehler - + The file size is %1. It exceeds the download limit of %2. Die Dateigröße beträgt %1. Sie überschreitet das Download-Limit von %2. - + Unexpected redirect to magnet URI. Unerwartete Weiterleitung zu Magnet-URI. @@ -2485,1300 +2514,1300 @@ Soll qBittorrent wirklich beendet werden? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP-Datenbank geladen. Typ: %1. Erstellungsdatum: %2. - - + + Couldn't load GeoIP database. Reason: %1 Konnte GeoIP-Datenbank nicht laden. Grund: %1 - - + + N/A N/V - + Asia/Pacific Region Asien/Pazifikraum - + Europe Europa - + Andorra Andorra - + United Arab Emirates Vereinigte Arabische Emirate - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua und Barbuda - + Anguilla Anguilla - + Albania Albanien - + Armenia Armenien - + Netherlands Antilles Niederländische Antillen - + Angola Angola - + Antarctica Antarktika - + Argentina Argentinien - + American Samoa Amerikanisch-Samoa - + Austria Österreich - + Australia Australien - + Aruba Aruba - + Azerbaijan Aserbaidschan - + Bosnia and Herzegovina Bosnien und Herzegowina - + Barbados Barbados - + Bangladesh Bangladesch - + Belgium Belgien - + Burkina Faso Burkina Faso - + Bulgaria Bulgarien - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei - + Bolivia Bolivien - + Brazil Brasilien - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Bouvetinsel - + Botswana Botswana - + Belarus Weißrussland - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kokos-Inseln (Keeling-Inseln) - + Congo, The Democratic Republic of the Kongo - + Central African Republic Zentralafrikanische Republik - + Congo Kongo - + Switzerland Schweiz - + Cote D'Ivoire Elfenbeinküste - + Cook Islands Cookinseln - + Chile Chile - + Cameroon Kamerun - + China China - + Colombia Kolumbien - + Costa Rica Costa Rica - + Cuba Kuba - + Cape Verde Kap Verde - + Christmas Island Weihnachtsinsel - + Cyprus Zypern - + Czech Republic Tschechien - + Germany Deutschland - + Djibouti Dschibuti - + Denmark Dänemark - + Dominica Dominica - + Dominican Republic Dominikanische Republik - + Algeria Algerien - + Ecuador Ecuador - + Estonia Estland - + Egypt Ägypten - + Western Sahara Westsahara - + Eritrea Eritrea - + Spain Spanien - + Ethiopia Äthiopien - + Finland Finnland - + Fiji Fidschi - + Falkland Islands (Malvinas) Falkland-Inseln - + Micronesia, Federated States of Mikronesien - + Faroe Islands Färöer-Inseln - + France Frankreich - + France, Metropolitan Metropolitan-Frankreich - + Gabon Gabun - + United Kingdom Vereinigtes Königreich - + Grenada Grenada - + Georgia Georgien - + French Guiana Französisch-Guayana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Grönland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Äquatorialguinea - + Greece Griechenland - + South Georgia and the South Sandwich Islands Südgeorgien und die Südlichen Sandwichinseln - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Heard und die McDonaldinseln - + Honduras Honduras - + Croatia Kroatien - + Haiti Haiti - + Hungary Ungarn - + Indonesia Indonesien - + Ireland Irland - + Israel Israel - + India Indien - + British Indian Ocean Territory Das Britische Territorium im Indischen Ozean - + Iraq Irak - + Iran, Islamic Republic of Iran, Islamische Republik - + Iceland Island - + Italy Italien - + Jamaica Jamaika - + Jordan Jordanien - + Japan Japan - + Kenya Kenia - + Kyrgyzstan Kirgisistan - + Cambodia Kambodscha - + Kiribati Kiribati - + Comoros Komoren - + Saint Kitts and Nevis St. Kitts und Nevis - + Korea, Democratic People's Republic of Korea, Demokratische Volksrepublik - + Korea, Republic of Korea, Republik - + Kuwait Kuwait - + Cayman Islands Kaimaninseln - + Kazakhstan Kasachstan - + Lao People's Democratic Republic Laos - + Lebanon Libanon - + Saint Lucia St. Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litauen - + Luxembourg Luxemburg - + Latvia Lettland - + Libyan Arab Jamahiriya Libyen - + Morocco Marokko - + Monaco Monaco - + Moldova, Republic of Moldawien, Republik - + Madagascar Madagaskar - + Marshall Islands Marshallinseln - + Macedonia Mazedonien - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolei - + Macau Macau - + Northern Mariana Islands Nördliche Marianen - + Martinique Martinique - + Mauritania Mauretanien - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Malediven - + Malawi Malawi - + Mexico Mexiko - + Malaysia Malaysia - + Mozambique Mosambik - + Namibia Namibia - + New Caledonia Neukaledonien - + Niger Niger - + Norfolk Island Norfolkinsel - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Niederlande - + Norway Norwegen - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Neuseeland - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Französisch-Polynesien - + Papua New Guinea Papua-Neuguinea - + Philippines Philippinen - + Pakistan Pakistan - + Poland Polen - + Saint Pierre and Miquelon Saint-Pierre und Miquelon - + Pitcairn Islands Pitcairninseln - + Puerto Rico Puerto Rico - + Palestinian Territory Palästinensische Autonomiegebiete - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion La Réunion - + Romania Rumänien - + Russian Federation Russische Föderation - + Rwanda Ruanda - + Saudi Arabia Saudi-Arabien - + Solomon Islands Salomonen - + Seychelles Seychellen - + Sudan Sudan - + Sweden Schweden - + Singapore Singapur - + Saint Helena St. Helena - + Slovenia Slowenien - + Svalbard and Jan Mayen Spitzbergen (Inselgruppe) - + Slovakia Slowakei - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe São Tomé und Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Arabische Republik Syrien - + Swaziland Swasiland - + Turks and Caicos Islands Turks- und Caicosinseln - + Chad Tschad - + French Southern Territories Französische Süd- und Antarktisgebiete - + Togo Togo - + Thailand Thailand - + Tajikistan Tadschikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunesien - + Tonga Tonga - + Timor-Leste Osttimor - + Turkey Türkei - + Trinidad and Tobago Trinidad und Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tansania - + Ukraine Ukraine - + Uganda Uganda - + United States Minor Outlying Islands Kleinere Inselbesitzungen der Vereinigten Staaten - + United States Vereinigte Staaten - + Uruguay Uruguay - + Uzbekistan Usbekistan - + Holy See (Vatican City State) Heiliger Stuhl (Staat der Vatikanstadt) - + Saint Vincent and the Grenadines St. Vincent und die Grenadinen - + Venezuela Venezuela - + Virgin Islands, British Britische Jungferninseln - + Virgin Islands, U.S. Amerikanische Jungferninseln - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis und Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Serbien - + South Africa Südafrika - + Zambia Sambia - + Montenegro Montenegro - + Zimbabwe Simbabwe - + Anonymous Proxy Anonymer Proxy - + Satellite Provider Satelliten-Provider - + Other Andere - + Aland Islands Åland - + Guernsey Britische Kanalinseln - + Isle of Man Insel Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin St. Martin - + Could not uncompress GeoIP database file. Konnte GeoIP-Datenbank nicht entpacken. - + Couldn't save downloaded GeoIP database file. Konnte die heruntergeladene GeoIP-Datenbank nicht speichern. - + Successfully updated GeoIP database. Die GeoIP-Datenbank wurde erfolgreich aktualisiert. - + Couldn't download GeoIP database file. Reason: %1 Konnte GeoIP-Datenbank nicht herunterladen. Grund: %1 @@ -3786,12 +3815,12 @@ Soll qBittorrent wirklich beendet werden? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP Unterstützung [EIN] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP Unterstützung [AUS] @@ -3799,206 +3828,265 @@ Soll qBittorrent wirklich beendet werden? Net::Smtp - + Email Notification Error: E-Mail-Benachrichtigungsfehler: + + PeerInfo + + + interested(local) and choked(peer) + Interessiert (Lokal) und verstopft (Peer) + + + + interested(local) and unchoked(peer) + Interessiert (Lokal) und frei verfügbar (Peer) + + + + interested(peer) and choked(local) + Interessiert (Peer) und verstopft (Lokal) + + + + interested(peer) and unchoked(local) + Interessiert (Peer) und frei verfügbar (Lokal) + + + + optimistic unchoke + Optimistische Freigabe + + + + peer snubbed + Peer abgewiesen + + + + incoming connection + eingehende Verbindung + + + + not interested(local) and unchoked(peer) + Nicht interessiert (Lokal) und frei verfügbar (Peer) + + + + not interested(peer) and unchoked(local) + Nicht interessiert (Peer) und frei verfügbar (Lokal) + + + + peer from PEX + Peer von PEX + + + + peer from DHT + Peer von DHT + + + + encrypted traffic + verschlüsselter Datenverkehr + + + + encrypted handshake + verschlüsselter Handshake + + + + peer from LSD + Peer von LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Flags - + Connection Verbindung - + Client i.e.: Client application Programm - + Progress i.e: % downloaded Fortschritt - + Down Speed i.e: Download speed DL-Rate - + Up Speed i.e: Upload speed UL-Rate - + Downloaded i.e: total data downloaded Runtergeladen - + Uploaded i.e: total data uploaded Hochgeladen - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevanz - + Add a new peer... Füge einen neuen Peer hinzu ... - + Copy selected Ausgewählte kopieren - - + + Ban peer permanently Peer dauerhaft bannen - + Manually adding peer '%1'... Peer '%1' von Hand hinzufügen ... - + The peer '%1' could not be added to this torrent. Der Peer '%1' konnte diesem Torrent nicht hinzugefügt werden. - + Manually banning peer '%1'... Peer '%1' von Hand bannen ... - + Peer addition Peer hinzufügen - + Some peers could not be added. Check the Log for details. Einige Peers konnten nicht hinzugefügt werden. Bitte das Log für weitere Details überprüfen. - + The peers were added to this torrent. Die Peers wurden diesem Torrent hinzugefügt. - + Are you sure you want to ban permanently the selected peers? Sollen die ausgewählten Peers wirklich dauerhaft gebannt werden? - + &Yes &Ja - + &No &Nein - interested(local) and choked(peer) - Interessiert (Lokal) und verstopft (Peer) + Interessiert (Lokal) und verstopft (Peer) - interested(local) and unchoked(peer) - Interessiert (Lokal) und frei verfügbar (Peer) + Interessiert (Lokal) und frei verfügbar (Peer) - interested(peer) and choked(local) - Interessiert (Peer) und verstopft (Lokal) + Interessiert (Peer) und verstopft (Lokal) - interested(peer) and unchoked(local) - Interessiert (Peer) und frei verfügbar (Lokal) + Interessiert (Peer) und frei verfügbar (Lokal) - optimistic unchoke - Optimistische Freigabe + Optimistische Freigabe - peer snubbed - Peer abgewiesen + Peer abgewiesen - incoming connection - eingehende Verbindung + eingehende Verbindung - not interested(local) and unchoked(peer) - Nicht interessiert (Lokal) und frei verfügbar (Peer) + Nicht interessiert (Lokal) und frei verfügbar (Peer) - not interested(peer) and unchoked(local) - Nicht interessiert (Peer) und frei verfügbar (Lokal) + Nicht interessiert (Peer) und frei verfügbar (Lokal) - peer from PEX - Peer von PEX + Peer von PEX - peer from DHT - Peer von DHT + Peer von DHT - encrypted traffic - verschlüsselter Datenverkehr + verschlüsselter Datenverkehr - encrypted handshake - verschlüsselter Handshake + verschlüsselter Handshake - peer from LSD - Peer von LSD + Peer von LSD @@ -4772,18 +4860,18 @@ Soll qBittorrent wirklich beendet werden? Pfad zur Filterdatei (.dat, .p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. Es wurde ein fehlerhaftes Beenden von qBittorrent festgestellt. Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwendet. - + An access error occurred while trying to write the configuration file. Es ist ein Zugriffsfehler beim Schreiben der Sicherungsdatei aufgetreten. - + A format error occurred while trying to write the configuration file. Es ist ein Formatfehler beim Schreiben der Sicherungsdatei aufgetreten. @@ -4889,299 +4977,298 @@ Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwe PropertiesWidget - + Downloaded: Runtergeladen: - + Availability: Verfügbarkeit: - + Progress: Fortschritt: - + Transfer Übertragungen - + Time Active: Time (duration) the torrent is active (not paused) Aktiv seit: - + ETA: Fertig in: - + Uploaded: Hochgeladen: - + Seeds: Seeds: - + Download Speed: DL-Geschwindigkeit: - + Upload Speed: UL-Geschwindigkeit: - + Peers: Peers: - + Download Limit: Grenze für Download: - + Upload Limit: Grenze für Upload: - + Wasted: Verworfen: - + Connections: Verbindungen: - + Information Informationen - + Comment: Kommentar: - Torrent content: - Inhalt des Torrents: + Inhalt des Torrents: - + Select All Alle Wählen - + Select None Keine Wählen - + Normal Normal - + High Hoch - + Share Ratio: Share Verhältnis: - + Reannounce In: Erneute Anmeldung in: - + Last Seen Complete: Letzter Seeder (100%) gesehen: - + Total Size: Gesamtgröße: - + Pieces: Teile: - + Created By: Erstellt von: - + Added On: Hinzugefügt am: - + Completed On: Abgeschlossen am: - + Created On: Erstellt am: - + Torrent Hash: Torrent Prüfsumme: - + Save Path: Speicherpfad: - + Maximum Maximum - - + + Do not download Nicht herunterladen - + Never Niemals - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (%3 fertig) - + %1 (%2 this session) %1 (%2 diese Sitzung) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) '%1' (geseedet seit '%2') - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 max.) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 gesamt) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 durchschn.) - + Open Öffnen - + Open Containing Folder Öffne Verzeichnis - + Rename... Umbenennen ... - + Priority Priorität - + New Web seed Neuer Webseed - + Remove Web seed Webseed entfernen - + Copy Web seed URL Webseed-URL kopieren - + Edit Web seed URL Webseed-URL editieren - + Rename the file Datei umbenennen - + New name: Neuer Name: - - + + The file could not be renamed Die Datei konnte nicht umbenannt werden - + This file name contains forbidden characters, please choose a different one. Der Dateiname enthält ungültige Zeichen - bitte einen anderen Dateinamen wählen. - - + + This name is already in use in this folder. Please use a different name. Der Dateiname wird in diesem Verzeichnis bereits verwendet - bitte einen anderen Dateinamen wählen. - + The folder could not be renamed Das Verzeichnis konnte nicht umbenannt werden - + qBittorrent qBittorrent @@ -5191,29 +5278,29 @@ Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwe Dateien filtern ... - + New URL seed New HTTP source Neuer URL Seed - + New URL seed: Neuer URL Seed: - - + + This URL seed is already in the list. Dieser URL Seed befindet sich bereits in der Liste. - + Web seed editing Webseed-URL editieren - + Web seed URL: Webseed-URL: @@ -5226,19 +5313,19 @@ Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwe Die IP-Adresse wurde wegen zu vieler Authentifizierungsversuche gebannt. - + Error: '%1' is not a valid torrent file. Fehler: '%1' ist keine gültige Torrent-Datei. - + Error: Could not add torrent to session. Fehler: Konnte Torrent in dieser Sitzung nicht hinzufügen. - + I/O Error: Could not create temporary file. I/O-Fehler: Konnte temporäre Datei nicht erstellen. @@ -5391,138 +5478,138 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw [qBittorrent] '%1' wurde vollständig heruntergeladen - + The remote host name was not found (invalid hostname) Der Hostname konnte nicht gefunden werden (ungültiger Hostname) - + The operation was canceled Der Vorgang wurde abgebrochen - + The remote server closed the connection prematurely, before the entire reply was received and processed Der Server hat die Verbindung beendet bevor die gesamte Antwort empfangen und verarbeitet werden konnte - + The connection to the remote server timed out Zeitüberschreitung beim Verbinden mit dem Server - + SSL/TLS handshake failed SSL/TLS Handshake fehlgeschlagen - + The remote server refused the connection Der Server hat die Verbindung verweigert - + The connection to the proxy server was refused Die Verbindung zum Proxy-Server wurde verweigert - + The proxy server closed the connection prematurely Der Proxy-Server hat die Verbindung vorzeitig beendet - + The proxy host name was not found Der Proxy-Hostname wurde nicht gefunden - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Zeitüberschreitung beim Verbindungsaufbau mit dem Proxy oder der Proxy hat nicht in angemessener Zeit auf die Anfrage reagiert - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Der Proxy benötigt Authentifizierung hat jedoch keine der angebotenen Zugangsdaten akzeptiert - + The access to the remote content was denied (401) Der Zugriff auf den Inhalt wurde verweigert (401) - + The operation requested on the remote content is not permitted Der angeforderte Vorgang auf rechnerferne Inhalte ist nicht gestattet - + The remote content was not found at the server (404) Die rechnerfernen Inhalte wurden auf dem Server nicht gefunden (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Der Server verlangt Authentifizierung, aber die angebotenen Zugangsdaten wurden nicht akzeptiert - + The Network Access API cannot honor the request because the protocol is not known Die Network-Access-API konnte die Anfrage nicht bearbeiten da Protokoll unbekannt. - + The requested operation is invalid for this protocol Der angeforderte Vorgang ist für dieses Protokoll ungültig - + An unknown network-related error was detected Ein unbekannter Netzwerk-Fehler ist aufgetreten - + An unknown proxy-related error was detected Ein unbekannter Proxy-Fehler ist aufgetreten - + An unknown error related to the remote content was detected Unbekannter Fehler in Zusammenhang mit dem Inhalt ist aufgetreten - + A breakdown in protocol was detected Es ist eine Störung im Protokoll aufgetreten - + Unknown error Unbekannter Fehler - - + + Upgrade Aktualisieren - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Es wurde von einer älteren Version aktualisiert die eine andere Speicherart verwendete, daher muss die Speicherungsart aktualisiert werden. Es kann aber danach keine ältere Version als 3.3.0 mehr verwendet werden. Soll jetzt wirklich aktualisiert werden? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Es wurde von einer älteren Version aktualisiert die eine andere Speicherart verwendete, daher muss die Speicherungsart aktualisiert werden. Es kann aber danach keine ältere Version als 3.3.0 mehr verwendet werden. - + Couldn't migrate torrent with hash: %1 Konnte den Torrent mit hash %1 nicht migrieren. - + Couldn't migrate torrent. Invalid fastresume file name: %1 Konnte den Torrent nicht migrieren. Ungültiger Name der Fortsetzungsdatei: %1 @@ -5711,12 +5798,12 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... - + Automatically downloading '%1' torrent from '%2' RSS feed... Lade Torrent '%1' automatisch von RSS-Feed '%2' ... @@ -5760,17 +5847,17 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw ScanFoldersModel - + Watched Folder Überwachtes Verzeichnis - + Download here Hier herunterladen - + Download path Downloadpfad @@ -7830,11 +7917,11 @@ Die Plugins wurden jedoch deaktiviert. fsutils - - - - - + + + + + Downloads Downloads @@ -7842,103 +7929,103 @@ Die Plugins wurden jedoch deaktiviert. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TB - + Python not detected Python nicht gefunden - + Python version: %1 Python-Version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1 T %2 h - + Unknown Unknown (size) Unbekannt - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent wird den Computer jetzt herunterfahren, da alle Downloads vollständig sind. - + < 1m < 1 minute < 1 Min - + %1m e.g: 10minutes %1 Min - + Working Arbeitet - + Updating... Aktualisiere ... - + Not working Arbeitet nicht - + Not contacted yet Noch nicht kontaktiert diff --git a/src/lang/qbittorrent_el.ts b/src/lang/qbittorrent_el.ts index 4e7b35fc2..5ad73009b 100644 --- a/src/lang/qbittorrent_el.ts +++ b/src/lang/qbittorrent_el.ts @@ -125,217 +125,222 @@ Παράλειψη ελέγχου hash - + + Set as default label + + + + Torrent Information Πληροφορίες torrent - + Size: Μέγεθος: - + Comment: Σχόλιο: - + Date: Ημερομηνία: - + Info Hash: Πληροφορίες Hash - + Normal Κανονική - + High Υψηλή - + Maximum Μέγιστη - + Do not download Να μην γίνει λήψη - - + + I/O Error Σφάλμα I/O - + The torrent file does not exist. Το αρχείο torrent δεν υπάρχει. - + Invalid torrent Μη έγκυρο torrent - + Failed to load the torrent: %1 Αποτυχία φόρτωσης του torrent: %1 - - + + Already in download list Ήδη στη λίστα λήψεων - + Free disk space: %1 - + Not Available This comment is unavailable Μη Διαθέσιμο - + Not Available This date is unavailable Μη Διαθέσιμο - + Not available Μη διαθέσιμο - + Invalid magnet link Μη έγκυρος magnet σύνδεσμος - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent Αδυναμία προσθήκης τόρεντ - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Αυτός ο magnet σύνδεσμος δεν αναγνωρίστηκε - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Σύνδεσμος magnet - + Retrieving metadata... Ανάκτηση μεταδεδομένων... - + Not Available This size is unavailable. Μη Διαθέσιμο - - - + + + Choose save path Επιλέξτε την τοποθεσία αποθήκευσης - + Rename the file Μετονομασία αρχείου - + New name: Νέο όνομα: - - + + The file could not be renamed Αυτό το αρχείο δεν ήταν δυνατό να μετονομαστεί - + This file name contains forbidden characters, please choose a different one. Αυτό το όνομα αρχείου περιέχει απαγορευμένους χαρακτήρες, παρακαλώ επιλέξτε ένα διαφορετικό. - - + + This name is already in use in this folder. Please use a different name. Αυτό το όνομα ήδη χρησιμοποιείται σε αυτόν τον φάκελο. Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. - + The folder could not be renamed Ο φάκελος δεν ήταν δυνατό να μετονομαστεί - + Rename... Μετονομασία... - + Priority Προτεραιότητα - + Invalid metadata - + Parsing metadata... Ανάλυση μεταδεδομένων... - + Metadata retrieval complete Ανάκτηση μεταδεδομένων ολοκληρώθηκε - + Download Error @@ -427,9 +432,8 @@ Επίλυση ονομάτων φορέων διασυνδέσεων - Maximum number of half-open connections [0: Disabled] - Μέγιστος αριθμός μισάνοιχτων συνδέσεων [0: Απενεργοποιημένο] + Μέγιστος αριθμός μισάνοιχτων συνδέσεων [0: Απενεργοποιημένο] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Αποθήκευση διαστήματος συνέχισης δεδομένων + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Επιτυχής ανάλυση του παρεχόμενου φίλτρου IP: %1 κανόνες εφαρμόστηκαν. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Μόνο ένας σύνδεσμος ανά γραμμή - Download local torrent - Λήψη τοπικού torrent + Λήψη τοπικού torrent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Αποθήκευση αρχείων στην τοποθεσία: + + + + Label: + Ετικέτα: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Έγινε Λήψη @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Εκκαθάριση κειμένου @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Επεξεργασία - + &Tools &Εργαλεία - + &File &Αρχείο - + &Help &Βοήθεια - + On Downloads &Done - + &View &Προβολή - + &Options... &Επιλογές... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Συνέχιση - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Σ&υνέχιση Όλων - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,72 @@ You should get this information from your Web browser preferences. &Σχετικά - Exit - Έξοδος + Έξοδος - + &Pause &Παύση - + &Delete &Διαγραφή - + P&ause All Π&αύση Όλων - + &Add Torrent File... - + Open Άνοιγμα - + E&xit - Options - Επιλογές + Επιλογές - Resume - Συνέχιση + Συνέχιση - Pause - Παύση + Παύση - Delete - Διαγραφή + Διαγραφή - + Open URL Άνοιγμα URL - + &Documentation &Τεκμηρίωση - + Lock Κλείδωμα - + Show Εμφάνιση @@ -2019,22 +2027,21 @@ You should get this information from your Web browser preferences. Έλεγχος για ενημερώσεις προγράμματος - Lock qBittorrent - Κλείδωμα του qBittorrent + Κλείδωμα του qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Αν σας αρέσει το qBittorrentq, παρακαλώ κάντε μια δωρεά! - + Execution Log Αρχείο καταγραφής εκτελεσθέντων @@ -2409,52 +2416,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2462,17 +2469,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2480,1300 +2487,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Γαλλία - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Ελλάδα - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory Περιοχή της Παλαιστίνης - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3781,12 +3788,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3794,206 +3801,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + interested(τοπικά) και choked(διασύνδεση) + + + + interested(local) and unchoked(peer) + interested(τοπικά) και unchoked(διασύνδεση) + + + + interested(peer) and choked(local) + interested(διασύνδεση) και choked(τοπικά) + + + + interested(peer) and unchoked(local) + interested(διασύνδεση) και unchoked(τοπικά) + + + + optimistic unchoke + optimistic unchoke + + + + peer snubbed + snubbed διασύνδεση + + + + incoming connection + εισερχόμενη σύνδεση + + + + not interested(local) and unchoked(peer) + not interested(τοπικά) και unchoked(διασύνδεση) + + + + not interested(peer) and unchoked(local) + not interested(διασυνδεση) and unchoked(τοπικά) + + + + peer from PEX + διασύνδεση απο PEX + + + + peer from DHT + διασύνδεση απο DHT + + + + encrypted traffic + κρυπτογραφημένη κυκλοφορία + + + + encrypted handshake + κρυπτογραφημένη χειραψία + + + + peer from LSD + διασύνδεση απο LSD + + PeerListWidget - + IP IP - + Port Θύρα - + Flags Σημάνσεις - + Connection Σύνδεση - + Client i.e.: Client application Πελάτης - + Progress i.e: % downloaded Πρόοδος - + Down Speed i.e: Download speed Ταχύτητα Λήψης - + Up Speed i.e: Upload speed Ταχύτητα Αποστολής - + Downloaded i.e: total data downloaded Ληφθέντα - + Uploaded i.e: total data uploaded Απεσταλμένα - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Συνάφεια - + Add a new peer... Προσθήκη νέας διασύνδεσης... - + Copy selected Αντιγραφή επιλεγμένου - - + + Ban peer permanently Μόνιμος αποκλεισμός διασύνδεσης - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Προσθήκη διασύνδεσης - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Είστε σίγουροι ότι θέλετε να αποκλείσετε μόνιμα τις επιλεγμένες διασυνδέσεις; - + &Yes &Ναι - + &No &Όχι - interested(local) and choked(peer) - interested(τοπικά) και choked(διασύνδεση) + interested(τοπικά) και choked(διασύνδεση) - interested(local) and unchoked(peer) - interested(τοπικά) και unchoked(διασύνδεση) + interested(τοπικά) και unchoked(διασύνδεση) - interested(peer) and choked(local) - interested(διασύνδεση) και choked(τοπικά) + interested(διασύνδεση) και choked(τοπικά) - interested(peer) and unchoked(local) - interested(διασύνδεση) και unchoked(τοπικά) + interested(διασύνδεση) και unchoked(τοπικά) - optimistic unchoke - optimistic unchoke + optimistic unchoke - peer snubbed - snubbed διασύνδεση + snubbed διασύνδεση - incoming connection - εισερχόμενη σύνδεση + εισερχόμενη σύνδεση - not interested(local) and unchoked(peer) - not interested(τοπικά) και unchoked(διασύνδεση) + not interested(τοπικά) και unchoked(διασύνδεση) - not interested(peer) and unchoked(local) - not interested(διασυνδεση) and unchoked(τοπικά) + not interested(διασυνδεση) and unchoked(τοπικά) - peer from PEX - διασύνδεση απο PEX + διασύνδεση απο PEX - peer from DHT - διασύνδεση απο DHT + διασύνδεση απο DHT - encrypted traffic - κρυπτογραφημένη κυκλοφορία + κρυπτογραφημένη κυκλοφορία - encrypted handshake - κρυπτογραφημένη χειραψία + κρυπτογραφημένη χειραψία - peer from LSD - διασύνδεση απο LSD + διασύνδεση απο LSD @@ -4767,17 +4833,17 @@ Are you sure you want to quit qBittorrent? Διαδρομή φίλτρου (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4883,299 +4949,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Ληφθέντα: - + Availability: Διαθεσιμότητα: - + Progress: Πρόοδος: - + Transfer Μεταφορά - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Απεσταλμένα: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Χαμένα: - + Connections: Συνδέσεις: - + Information Πληροφορίες - + Comment: Σχόλιο: - Torrent content: - Περιεχόμενο torrent: + Περιεχόμενο torrent: - + Select All Επιλογή Όλων - + Select None Καμία επιλογή - + Normal Κανονική - + High Υψηλή - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Μέγιστη - - + + Do not download Να μην γίνει λήψη - + Never Ποτέ - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Άνοιγμα - + Open Containing Folder Άνοιγμα Θέσης Φακέλου - + Rename... Μετονομασία... - + Priority Προτεραιότητα - + New Web seed Νέος διαμοιραστής Ιστού - + Remove Web seed Αφαίρεση διαμοιραστή Ιστού - + Copy Web seed URL Αντιγραφή URL διαμοιραστή Ιστού - + Edit Web seed URL Επεξεργασία URL διαμοιραστή Ιστού - + Rename the file Μετονομασία αρχείου - + New name: Νέο όνομα: - - + + The file could not be renamed Αυτό το αρχείο δεν ήταν δυνατό να μετονομαστεί - + This file name contains forbidden characters, please choose a different one. Αυτό το όνομα αρχείου περιέχει απαγορευμένους χαρακτήρες, παρακαλώ επιλέξτε ένα διαφορετικό. - - + + This name is already in use in this folder. Please use a different name. Αυτό το όνομα ήδη χρησιμοποιείται σε αυτόν τον φάκελο. Παρακαλώ επιλέξτε ένα άλλο. - + The folder could not be renamed Αυτός ο φάκελος δεν ήταν δυνατό να μετονομαστεί - + qBittorrent qBittorrent @@ -5185,29 +5250,29 @@ Are you sure you want to quit qBittorrent? Φίλτρο αρχείων... - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Επεξεργασία διαμοιραστή Ιστού - + Web seed URL: URL διαμοιραστή Ιστού: @@ -5220,19 +5285,19 @@ Are you sure you want to quit qBittorrent? Η IP σας διεύθυνση έχει απαγορευτεί μετά από πάρα πολλές αποτυχημένες προσπάθειες ελέγχου ταυτότητας. - + Error: '%1' is not a valid torrent file. Σφάλμα: το '%1' δεν είναι έγκυρο αρχείο torrent. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. Σφάλμα I/O: Δεν ήταν δυνατή η δημιουργία προσωρινού αρχείου. @@ -5385,138 +5450,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5705,12 +5770,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5754,17 +5819,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Φάκελος υπό Παρακολούθηση - + Download here Λήψη εδώ - + Download path @@ -7822,11 +7887,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Λήψεις @@ -7834,103 +7899,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1ώ %2λ - + %1d %2h e.g: 2days 10hours %1μ %2ώ - + Unknown Unknown (size) Άγνωστο - + qBittorrent will shutdown the computer now because all downloads are complete. Το qBittorrent θα απενεργοποιήσει τον υπολογιστή τώρα καθώς έχουν ολοκληρωθεί όλες οι λήψεις. - + < 1m < 1 minute < 1λ - + %1m e.g: 10minutes %1λ - + Working Λειτουργεί - + Updating... Ενημερώνεται... - + Not working Δεν λειτουργεί - + Not contacted yet Χωρίς επικοινωνία ακόμα diff --git a/src/lang/qbittorrent_en.ts b/src/lang/qbittorrent_en.ts index a99fb3544..c76919811 100644 --- a/src/lang/qbittorrent_en.ts +++ b/src/lang/qbittorrent_en.ts @@ -125,217 +125,222 @@ - + + Set as default label + + + + Torrent Information - + Size: - + Comment: - + Date: - + Info Hash: - + Normal - + High - + Maximum - + Do not download - - + + I/O Error - + The torrent file does not exist. - + Invalid torrent - + Failed to load the torrent: %1 - - + + Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available - + Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link - + Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path - + Rename the file - + New name: - - + + The file could not be renamed - + This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. - + The folder could not be renamed - + Rename... - + Priority - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -426,11 +431,6 @@ Resolve peer host names - - - Maximum number of half-open connections [0: Disabled] - - Strict super seeding @@ -473,6 +473,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1181,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1296,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1317,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1395,11 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line - - - Download local torrent - - Download @@ -1571,7 +1556,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + + + + + Label: + + + + + Cookie: + + + + Downloaded Is the file downloaded or not? @@ -1581,6 +1581,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1726,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text @@ -1742,37 +1747,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit - + &Tools - + &File - + &Help - + On Downloads &Done - + &View - + &Options... @@ -1782,153 +1787,153 @@ You should get this information from your Web browser preferences. - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1943,52 @@ You should get this information from your Web browser preferences. - - Exit - - - - + &Pause - + &Delete - + P&ause All - + &Add Torrent File... - + Open - + E&xit - - Options - - - - - Resume - - - - - Pause - - - - - Delete - - - - + Open URL - + &Documentation - + Lock - + Show @@ -2019,22 +1999,17 @@ You should get this information from your Web browser preferences. - - Lock qBittorrent - - - - + Add Torrent &Link... - + If you like qBittorrent, please donate! - + Execution Log @@ -2406,52 +2381,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2459,17 +2434,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2477,1300 +2452,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3778,12 +3753,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3791,207 +3766,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP - + Port - + Flags - + Connection - + Client i.e.: Client application - + Progress i.e: % downloaded - + Down Speed i.e: Download speed - + Up Speed i.e: Upload speed - + Downloaded i.e: total data downloaded - + Uploaded i.e: total data uploaded - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... - + Copy selected - - + + Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? - + &Yes - + &No - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4764,17 +4742,17 @@ Are you sure you want to quit qBittorrent? - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4880,299 +4858,294 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: - + Availability: - + Progress: - + Transfer - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: - + Connections: - + Information - + Comment: - - Torrent content: - - - - + Select All - + Select None - + Normal - + High - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum - - + + Do not download - + Never - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... - + Priority - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file - + New name: - - + + The file could not be renamed - + This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. - + The folder could not be renamed - + qBittorrent @@ -5182,29 +5155,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5217,18 +5190,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5379,138 +5352,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5699,12 +5672,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5748,17 +5721,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder - + Download here - + Download path @@ -7816,11 +7789,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads @@ -7828,103 +7801,103 @@ Those plugins were disabled. misc - + B bytes - + KiB kibibytes (1024 bytes) - + MiB mebibytes (1024 kibibytes) - + GiB gibibytes (1024 mibibytes) - + TiB tebibytes (1024 gibibytes) - + Python not detected - + Python version: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes - + %1d %2h e.g: 2days 10hours - + Unknown Unknown (size) - + qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute - + %1m e.g: 10minutes - + Working - + Updating... - + Not working - + Not contacted yet diff --git a/src/lang/qbittorrent_en_AU.ts b/src/lang/qbittorrent_en_AU.ts index 7d93a7650..72e336463 100644 --- a/src/lang/qbittorrent_en_AU.ts +++ b/src/lang/qbittorrent_en_AU.ts @@ -125,217 +125,222 @@ Skip hash check - + + Set as default label + + + + Torrent Information Torrent Information - + Size: Size: - + Comment: Comment: - + Date: Date: - + Info Hash: - + Normal Normal - + High High - + Maximum Maximum - + Do not download Do not download - - + + I/O Error I/O Error - + The torrent file does not exist. The torrent file does not exist. - + Invalid torrent Invalid torrent - + Failed to load the torrent: %1 Failed to load the torrent: %1 - - + + Already in download list Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available Not available - + Invalid magnet link Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized This magnet link was not recognised - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path Choose save path - + Rename the file Rename the file - + New name: New name: - - + + The file could not be renamed The file could not be renamed - + This file name contains forbidden characters, please choose a different one. This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. This name is already in use in this folder. Please use a different name. - + The folder could not be renamed The folder could not be renamed - + Rename... Rename... - + Priority Priority - + Invalid metadata - + Parsing metadata... Parsing metadata... - + Metadata retrieval complete Metadata retrieval complete - + Download Error @@ -427,9 +432,8 @@ Resolve peer host names - Maximum number of half-open connections [0: Disabled] - Maximum number of half-open connections [0: Disabled] + Maximum number of half-open connections [0: Disabled] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Only one link per line - Download local torrent - Download local torrent + Download local torrent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Save files to location: + + + + Label: + Label: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Downloaded @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Clear the text @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Edit - + &Tools &Tools - + &File &File - + &Help &Help - + On Downloads &Done - + &View &View - + &Options... &Options... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Resume - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All R&esume All - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &About - Exit - Exit + Exit - + &Pause &Pause - + &Delete &Delete - + P&ause All P&ause All - + &Add Torrent File... - + Open - + E&xit - - Options - Options - - - - Resume - Resume - - - - Pause - Pause - - - - Delete - Delete - - - + Open URL - + &Documentation &Documentation - + Lock - + Show Show @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. - Lock qBittorrent - Lock qBittorrent + Lock qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! If you like qBittorrent, please donate! - + Execution Log Execution Log @@ -2408,52 +2399,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2452,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2470,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France France - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3771,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,207 +3784,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port - + Flags Flags - + Connection Connection - + Client i.e.: Client application Client - + Progress i.e: % downloaded Progress - + Down Speed i.e: Download speed Down Speed - + Up Speed i.e: Upload speed Up Speed - + Downloaded i.e: total data downloaded Downloaded - + Uploaded i.e: total data uploaded Uploaded - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Add a new peer... - + Copy selected - - + + Ban peer permanently Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Peer addition - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Are you sure you want to ban permanently the selected peers? - + &Yes &Yes - + &No &No - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4766,17 +4760,17 @@ Are you sure you want to quit qBittorrent? Filter path (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4876,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Downloaded: - + Availability: Availability: - + Progress: Progress: - + Transfer Transfer - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Wasted: - + Connections: Connections: - + Information Information - + Comment: Comment: - Torrent content: - Torrent content: + Torrent content: - + Select All Select All - + Select None Select None - + Normal Normal - + High High - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Maximum - - + + Do not download Do not download - + Never Never - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... Rename... - + Priority Priority - + New Web seed New Web seed - + Remove Web seed Remove Web seed - + Copy Web seed URL Copy Web seed URL - + Edit Web seed URL Edit Web seed URL - + Rename the file Rename the file - + New name: New name: - - + + The file could not be renamed The file could not be renamed - + This file name contains forbidden characters, please choose a different one. This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. This name is already in use in this folder. Please use a different name. - + The folder could not be renamed The folder could not be renamed - + qBittorrent qBittorrent @@ -5184,29 +5177,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Web seed editing - + Web seed URL: Web seed URL: @@ -5219,18 +5212,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5381,138 +5374,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5701,12 +5694,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5750,17 +5743,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Watched Folder - + Download here Download here - + Download path @@ -7818,11 +7811,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Downloads @@ -7830,103 +7823,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Unknown - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Working - + Updating... Updating... - + Not working Not working - + Not contacted yet Not contacted yet diff --git a/src/lang/qbittorrent_en_GB.ts b/src/lang/qbittorrent_en_GB.ts index ab0a4afd2..805727e9d 100644 --- a/src/lang/qbittorrent_en_GB.ts +++ b/src/lang/qbittorrent_en_GB.ts @@ -125,217 +125,222 @@ Skip hash check - + + Set as default label + + + + Torrent Information Torrent Information - + Size: Size: - + Comment: Comment: - + Date: Date: - + Info Hash: - + Normal Normal - + High High - + Maximum Maximum - + Do not download Do not download - - + + I/O Error I/O Error - + The torrent file does not exist. The torrent file does not exist. - + Invalid torrent Invalid torrent - + Failed to load the torrent: %1 Failed to load the torrent: %1 - - + + Already in download list Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available Not available - + Invalid magnet link Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized This magnet link was not recognised - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path Choose save path - + Rename the file Rename the file - + New name: New name: - - + + The file could not be renamed The file could not be renamed - + This file name contains forbidden characters, please choose a different one. This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. This name is already in use in this folder. Please use a different name. - + The folder could not be renamed The folder could not be renamed - + Rename... Rename... - + Priority Priority - + Invalid metadata - + Parsing metadata... Parsing metadata... - + Metadata retrieval complete Metadata retrieval complete - + Download Error @@ -427,9 +432,8 @@ Resolve peer host names - Maximum number of half-open connections [0: Disabled] - Maximum number of half-open connections [0: Disabled] + Maximum number of half-open connections [0: Disabled] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Only one link per line - Download local torrent - Download local torrent + Download local torrent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Save files to location: + + + + Label: + Label: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Downloaded @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Clear the text @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Edit - + &Tools &Tools - + &File &File - + &Help &Help - + On Downloads &Done - + &View &View - + &Options... &Options... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Resume - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All R&esume All - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &About - Exit - Exit + Exit - + &Pause &Pause - + &Delete &Delete - + P&ause All P&ause All - + &Add Torrent File... - + Open - + E&xit - - Options - Options - - - - Resume - Resume - - - - Pause - Pause - - - - Delete - Delete - - - + Open URL - + &Documentation &Documentation - + Lock - + Show Show @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. - Lock qBittorrent - Lock qBittorrent + Lock qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! If you like qBittorrent, please donate! - + Execution Log Execution Log @@ -2408,52 +2399,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2452,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2470,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France France - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3771,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,207 +3784,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port - + Flags Flags - + Connection Connection - + Client i.e.: Client application Client - + Progress i.e: % downloaded Progress - + Down Speed i.e: Download speed Down Speed - + Up Speed i.e: Upload speed Up Speed - + Downloaded i.e: total data downloaded Downloaded - + Uploaded i.e: total data uploaded Uploaded - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Add a new peer... - + Copy selected - - + + Ban peer permanently Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Peer addition - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Are you sure you want to ban permanently the selected peers? - + &Yes &Yes - + &No &No - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4766,17 +4760,17 @@ Are you sure you want to quit qBittorrent? Filter path (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4876,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Downloaded: - + Availability: Availability: - + Progress: Progress: - + Transfer Transfer - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Uploaded: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Wasted: - + Connections: Connections: - + Information Information - + Comment: Comment: - Torrent content: - Torrent content: + Torrent content: - + Select All Select All - + Select None Select None - + Normal Normal - + High High - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Maximum - - + + Do not download Do not download - + Never Never - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... Rename... - + Priority Priority - + New Web seed New Web seed - + Remove Web seed Remove Web seed - + Copy Web seed URL Copy Web seed URL - + Edit Web seed URL Edit Web seed URL - + Rename the file Rename the file - + New name: New name: - - + + The file could not be renamed The file could not be renamed - + This file name contains forbidden characters, please choose a different one. This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. This name is already in use in this folder. Please use a different name. - + The folder could not be renamed The folder could not be renamed - + qBittorrent qBittorrent @@ -5184,29 +5177,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Web seed editing - + Web seed URL: Web seed URL: @@ -5219,18 +5212,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5381,138 +5374,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5701,12 +5694,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5750,17 +5743,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Watched Folder - + Download here Download here - + Download path @@ -7818,11 +7811,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Downloads @@ -7830,103 +7823,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Unknown - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Working - + Updating... Updating... - + Not working Not working - + Not contacted yet Not contacted yet diff --git a/src/lang/qbittorrent_eo.ts b/src/lang/qbittorrent_eo.ts index 7fd6d4d3d..448a8e69c 100644 --- a/src/lang/qbittorrent_eo.ts +++ b/src/lang/qbittorrent_eo.ts @@ -125,217 +125,222 @@ Preterpasi la haketan kontrolon - + + Set as default label + + + + Torrent Information Informoj de la Torento - + Size: Grando: - + Comment: Komento: - + Date: Dato: - + Info Hash: Informa Haketaĵo: - + Normal Norma - + High Alta - + Maximum Maksimuma - + Do not download Ne elŝuti - - + + I/O Error Eneliga Eraro - + The torrent file does not exist. La torentodosiero ne ekzistas. - + Invalid torrent Nevalida torento - + Failed to load the torrent: %1 Malsukcesis ŝargi la torenton: %1 - - + + Already in download list Jam en la elŝuta listo - + Free disk space: %1 Libera diskospaco: %1 - + Not Available This comment is unavailable Ne Disponeblas - + Not Available This date is unavailable Ne Disponeblas - + Not available Ne disponeblas - + Invalid magnet link Nevalida magnet-ligilo - + Torrent is already in download list. Trackers were merged. La torento jam estas en la elŝuta listo. La ŝanĝospuriloj kunfandiĝis. - - + + Cannot add torrent Ne eblas aldoni la torenton - + Cannot add this torrent. Perhaps it is already in adding state. Ne eblas aldoni ĉi tiun torenton. Ĝi eble jam estas en la aldonata stato. - + This magnet link was not recognized Ĉi tiu magnet-ligilo ne estis rekonata - + Magnet link is already in download list. Trackers were merged. La magnet-ligilo jam estas en la elŝuta listo. La ŝanĝospuriloj kunfandiĝis. - + Cannot add this torrent. Perhaps it is already in adding. Ne eblas aldoni ĉi tiun torenton. Ĝi eble jam estas aldonata. - + Magnet link Magnet-ligilo - + Retrieving metadata... Ricevante metadatumojn... - + Not Available This size is unavailable. Ne Disponeblas - - - + + + Choose save path Elektu la dosierindikon por konservi - + Rename the file Renomi la dosieron - + New name: Nova nomo: - - + + The file could not be renamed La dosiero ne eblis renomiĝi - + This file name contains forbidden characters, please choose a different one. La dosiernomo enhavas malpermesitajn signojn, bonvolu elekti alian. - - + + This name is already in use in this folder. Please use a different name. La nomo jam estas uzata en ĉi tiu dosierujo. Bonvolu uzi alian nomon. - + The folder could not be renamed La dosierujo ne eblis renomiĝi - + Rename... Renomi... - + Priority Prioritato - + Invalid metadata Nevalidaj metadatumoj - + Parsing metadata... Sintakse analizante metadatumojn... - + Metadata retrieval complete La ricevo de metadatumoj finiĝis - + Download Error Elŝuta Eraro @@ -426,11 +431,6 @@ Resolve peer host names - - - Maximum number of half-open connections [0: Disabled] - - Strict super seeding @@ -473,6 +473,11 @@ How often the fastresume file is saved. Konserv-intervalo de reaktivigaj datumoj + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +863,316 @@ BitTorrent::Session - + Peer ID: Samtavolano-identigilo: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] Sennoma modo [ŜALTITA] - + Anonymous mode [OFF] Sennoma modo [MALŜALTITA] - + PeX support [ON] Subteno de PeX [ŜALTITA] - + PeX support [OFF] Subteno de PeX [MALŜALTITA] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] Subteno de Local Peer Discovery [ŜALTITA] - + Local Peer Discovery support [OFF] Subteno de Local Peer Discovery [MALŜALTITA] - + Encryption support [ON] Subteno de ĉifrado [ŜALTITA] - + Encryption support [FORCED] Subteno de ĉifrado [TRUDITA] - + Encryption support [OFF] Subteno de ĉifrado [MALŜALTITA] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' foriĝis de la transmetlisto. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Elŝutante na '%1', bonvolu atendi... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] Subteno de DHT [ŜALTITA] - + DHT support [OFF]. Reason: %1 Subteno de DHT [MALŜALTITA]. Kial: %1 - + DHT support [OFF] Subteno de DHT [MALŜALTITA] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent ne trovis lokan adreson de %1 por aŭskulti - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' Ŝanĝospurilo '%1' aldoniĝis al la torento '%2' - + Tracker '%1' was deleted from torrent '%2' Ŝanĝospurilo '%1' foriĝis de la torento '%2' - + URL seed '%1' was added to torrent '%2' URL-fonto '%1' aldoniĝis al la torento '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ne eblas reaktivigi la torenton '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 Ne eblis aldoni la torenton. Kial: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' reaktiviĝis. (rapida reaktiviĝo) - + '%1' added to download list. 'torrent name' was added to download list. '%1' aldoniĝis al la elŝutlisto. - + An I/O error occurred, '%1' paused. %2 Eneliga eraro okazis, '%1' paŭzis. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. pro IP-filtrilo. - + due to port filter. this peer was blocked due to port filter. pro porda filtro. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. ĉar ĝi havas malaltan pordon. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 Ekstera IP-adreso: %1 @@ -1191,17 +1181,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Ne eblis movigi la torenton: '%1'. Kial: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1296,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1317,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 Nesubtenata IP-versio: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1386,8 @@ You should get this information from your Web browser preferences. Nur po unu ligilo por linio - Download local torrent - Elŝuti lokan torenton + Elŝuti lokan torenton @@ -1571,7 +1560,22 @@ You should get this information from your Web browser preferences. Malaktiva - + + Save files to location: + Konservi dosierojn al la loko: + + + + Label: + Etikedo: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Elŝutis @@ -1581,6 +1585,11 @@ You should get this information from your Web browser preferences. Logout Elsaluti + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1730,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Vakigi la tekston @@ -1742,37 +1751,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Redakti - + &Tools &Iloj - + &File &Dosiero - + &Help &Helpo - + On Downloads &Done - + &View &Vido - + &Options... &Opcioj @@ -1782,153 +1791,153 @@ You should get this information from your Web browser preferences. &Reaktivigi - + Torrent &Creator Torent&kreilo - + Set Upload Limit... Agordi Alŝutlimon... - + Set Download Limit... Agordi Elŝutlimon... - + Set Global Download Limit... Agordi Mallokan Elŝutlimon... - + Set Global Upload Limit... Agordi Mallokan Alŝutlimon... - + Minimum Priority Minimuma Prioritato - + Top Priority Plejalta Prioritato - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent Ŝl&osi na qBittorrent - + &Import Existing Torrent... E&nporti Ekzistantan Torenton... - + Import Torrent... Enporti Torenton... - + Do&nate! Do&naci! - + R&esume All R&eaktivigi Ĉion - + &Log &Protokolo - + &Exit qBittorrent Ĉ&esigi na qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled &Malebligita - + &Statistics &Statistikoj - + Check for Updates - + Check for Program Updates @@ -1938,77 +1947,72 @@ You should get this information from your Web browser preferences. &Pri - Exit - Ĉesigi + Ĉesigi - + &Pause &Paŭzigi - + &Delete &Forigi - + P&ause All &Paŭzigi Ĉion - + &Add Torrent File... Aldoni Torent&dosieron... - + Open Malfermi - + E&xit &Ĉesi - Options - Opcioj + Opcioj - Resume - Reaktivigi + Reaktivigi - Pause - Paŭzigi + Paŭzigi - Delete - Forigi + Forigi - + Open URL Malfermi na URL - + &Documentation &Dokumentado - + Lock Ŝlosi - + Show Montri @@ -2019,22 +2023,21 @@ You should get this information from your Web browser preferences. - Lock qBittorrent - Ŝlosi na qBittorrent + Ŝlosi na qBittorrent - + Add Torrent &Link... Aldoni Torent&ligilon... - + If you like qBittorrent, please donate! - + Execution Log @@ -2408,52 +2411,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2464,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error Eneliga Eraro - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2482,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Francujo - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grekujo - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3783,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,206 +3796,221 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + samtavolano de PEX + + + + peer from DHT + samtavolano de DHT + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + samtavolano de LSD + + PeerListWidget - + IP IP-adreso - + Port Pordo - + Flags - + Connection Konekto - + Client i.e.: Client application Kliento - + Progress i.e: % downloaded Progreso - + Down Speed i.e: Download speed Elŝutrapido - + Up Speed i.e: Upload speed Alŝutrapido - + Downloaded i.e: total data downloaded Elŝutis - + Uploaded i.e: total data uploaded Alŝutis - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Aldoni novan samtavolano... - + Copy selected Kopii la elektiton - - + + Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Aldono de samtavolano - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. La samtavolanoj aldoniĝis al la torento. - + Are you sure you want to ban permanently the selected peers? - + &Yes &Jes - + &No &Ne - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - peer from PEX - samtavolano de PEX + samtavolano de PEX - peer from DHT - samtavolano de DHT + samtavolano de DHT - - encrypted traffic - - - - - encrypted handshake - - - - peer from LSD - samtavolano de LSD + samtavolano de LSD @@ -4766,17 +4784,17 @@ Are you sure you want to quit qBittorrent? Filtri la dosierindikon (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4900,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Elŝutis: - + Availability: Disponeblo: - + Progress: Progreso: - + Transfer - + Time Active: Time (duration) the torrent is active (not paused) Aktiva Tempo: - + ETA: ETA: - + Uploaded: Alŝutis: - + Seeds: Fontsendantoj: - + Download Speed: Elŝutrapido: - + Upload Speed: Alŝutrapido: - + Peers: Samtavolanoj: - + Download Limit: Elŝutlimo: - + Upload Limit: Alŝutlimo: - + Wasted: - + Connections: Konektoj: - + Information Informoj - + Comment: Komento: - Torrent content: - Enhavo de la torento: + Enhavo de la torento: - + Select All Elekti Ĉion - + Select None Elekti Nenion - + Normal Norma - + High Alta - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: Tuta Grando: - + Pieces: Pecoj: - + Created By: Kreita de: - + Added On: Aldonita je: - + Completed On: Finita je: - + Created On: Kreita je: - + Torrent Hash: Torenta Haketaĵo: - + Save Path: Konserva Dosierindiko: - + Maximum Maksimuma - - + + Do not download Ne elŝuti - + Never Neniam - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (havas %3) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Malfermi - + Open Containing Folder Malfermi la Enhavantan Dosierujon - + Rename... Renomi... - + Priority Prioritato - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file Renomi la dosieron - + New name: Nova nomo: - - + + The file could not be renamed La dosiero ne eblis renomiĝi - + This file name contains forbidden characters, please choose a different one. La dosiernomo enhavas malpermesitajn signojn, bonvolu elekti alian. - - + + This name is already in use in this folder. Please use a different name. La nomo jam estas uzata en ĉi tiu dosierujo. Bonvolu uzi alian nomon. - + The folder could not be renamed La dosierujo ne eblis renomiĝi - + qBittorrent qBittorrent @@ -5184,29 +5201,29 @@ Are you sure you want to quit qBittorrent? Filtri dosierojn... - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5219,19 +5236,19 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. Eraro: '%1' ne estas valida torentdosiero. - + Error: Could not add torrent to session. Eraro: Ne eblis aldoni la torenton al la seanco. - + I/O Error: Could not create temporary file. @@ -5382,138 +5399,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error Nekonata eraro - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5702,12 +5719,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5751,17 +5768,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder - + Download here Elŝuti ĉi tien - + Download path @@ -7820,11 +7837,11 @@ Tiuj kromprogramoj malebliĝis. fsutils - - - - - + + + + + Downloads Elŝutoj @@ -7832,103 +7849,103 @@ Tiuj kromprogramoj malebliĝis. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1t %2h - + Unknown Unknown (size) Nekonata - + qBittorrent will shutdown the computer now because all downloads are complete. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working - + Updating... Ĝisdatiĝante... - + Not working - + Not contacted yet diff --git a/src/lang/qbittorrent_es.ts b/src/lang/qbittorrent_es.ts index 1dc0694af..f9c4536ad 100644 --- a/src/lang/qbittorrent_es.ts +++ b/src/lang/qbittorrent_es.ts @@ -125,217 +125,222 @@ No comprobar hash - + + Set as default label + + + + Torrent Information Información del torrent - + Size: Tamaño: - + Comment: Comentario: - + Date: Fecha: - + Info Hash: Info Hash: - + Normal Normal - + High Alta - + Maximum Máxima - + Do not download No descargar - - + + I/O Error Error de Entrada/Salida (I/O) - + The torrent file does not exist. El archivo torrent no existe. - + Invalid torrent Torrent inválido - + Failed to load the torrent: %1 Fallo al cargar el torrent: %1 - - + + Already in download list Ya está en la lista de descargas - + Free disk space: %1 Espacio libre en disco: %1 - + Not Available This comment is unavailable No disponible - + Not Available This date is unavailable No disponible - + Not available No disponible - + Invalid magnet link Enlace magnet inválido - + Torrent is already in download list. Trackers were merged. El torrent ya está en la lista de descargas. Los Trackers fueron fusionados. - - + + Cannot add torrent No se pudo agregar el torrent - + Cannot add this torrent. Perhaps it is already in adding state. No se pudo agregar este torrent. Tal vez ya se esté agregando. - + This magnet link was not recognized Este enlace magnet no pudo ser reconocido - + Magnet link is already in download list. Trackers were merged. El enlace magnet ya está en la lista de descargas. Los Trackers fueron fusionados. - + Cannot add this torrent. Perhaps it is already in adding. No se pudo agregar este torrent. Tal vez ya se esté agregando. - + Magnet link Enlace magnet - + Retrieving metadata... Recibiendo metadatos... - + Not Available This size is unavailable. No disponible - - - + + + Choose save path Elegir ruta - + Rename the file Renombrar archivo - + New name: Nuevo nombre: - - + + The file could not be renamed No se pudo renombrar el archivo - + This file name contains forbidden characters, please choose a different one. Este nombre contiene caracteres prohibidos, por favor, elija uno diferente. - - + + This name is already in use in this folder. Please use a different name. Este nombre ya está en uso. Por favor, use un nombre diferente. - + The folder could not be renamed La carpeta no se pudo renombrar - + Rename... Renombrar... - + Priority Prioridad - + Invalid metadata Metadatos inválidos - + Parsing metadata... Analizando metadatos... - + Metadata retrieval complete Recepción de metadatos completa - + Download Error Error de descarga @@ -427,9 +432,8 @@ Resolver nombres de host de los pares - Maximum number of half-open connections [0: Disabled] - Número máximo de conexiones semi-abiertas [0: Desactivado] + Número máximo de conexiones semi-abiertas [0: Desactivado] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Intervalo entre el guardado de datos de reanudación + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID del Par: - + HTTP User-Agent is '%1' El User-Agent HTTP es '%1' - + Anonymous mode [ON] Modo anónimo [Activado] - + Anonymous mode [OFF] Modo anónimo [Desactivado] - + PeX support [ON] Soporte PeX [Activado] - + PeX support [OFF] Soporte PeX [Desactivado] - + Restart is required to toggle PeX support Es necesario reiniciar para cambiar el soporte PeX - + Local Peer Discovery support [ON] Buscar pares locales [Activado] - + Local Peer Discovery support [OFF] Buscar pares locales [Desactivado] - + Encryption support [ON] Soporte para cifrado [Activado] - + Encryption support [FORCED] Soporte para cifrado [Forzado] - + Encryption support [OFF] Sopote para cifrado [Desactivado] - + Embedded Tracker [ON] Tracker integrado [Activado] - + Failed to start the embedded tracker! Error al iniciar el tracker integrado! - + Embedded Tracker [OFF] Tracker integrado [Desactivado] - + '%1' reached the maximum ratio you set. Removing... '%1' alcanzó el ratio máximo establecido. Eliminandolo... - + '%1' reached the maximum ratio you set. Pausing... '%1' alcanzó el ratio máximo establecido. Pausandolo... - Error: Could not create torrent export directory: '%1' - Error: No se pudo crear el directorio: '%1' + Error: No se pudo crear el directorio: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Error: No se pudo exportar el torrent '%1', tal vez no tenga metadatos todavía. + Error: No se pudo exportar el torrent '%1', tal vez no tenga metadatos todavía. - + System network status changed to %1 e.g: System network status changed to ONLINE El estado de la red de sistema cambió a %1 - + ONLINE EN LÍNEA - + OFFLINE FUERA DE LÍNEA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding La configuración de red de %1 ha cambiado, refrescando la sesión - + Unable to decode '%1' torrent file. No se pudo decodificar el torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descarga recursiva del archivo '%1' incluido en el torrent '%2' - + Couldn't save '%1.torrent' No se pudo guardar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. porque %1 está deshabilitado. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque %1 está deshabilitado. - + URL seed lookup failed for URL: '%1', message: %2 Falló la búsqueda de la semilla Url: '%1', mensaje: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' Fue eliminado de la lista de transferencias y del disco. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' Fue eliminado de la lista de transferencias. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', por favor espere... - Torrent Export: torrent is invalid, skipping... - Exportar torrent: el torrent no es valido, saltando... + Exportar torrent: el torrent no es valido, saltando... - + DHT support [ON] Soporte para DHT [Activado] - + DHT support [OFF]. Reason: %1 Soporte para DHT [Desactivado]. Razón: %1 - + DHT support [OFF] Soporte para DHT [Desactivado] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tratando de escuchar en cualquier interfaz, puerto: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2 + qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2 - + The network interface defined is invalid: %1 La interfaz de red definida no es válida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent está tratando de escuchar en la interfaz %1 puerto: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent no encuentra una dirección local %1 para escuchar - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' El tracker '%1' se agregó al torrent '%2' - + Tracker '%1' was deleted from torrent '%2' El tracker '%1' se eliminó del torrent '%2' - + URL seed '%1' was added to torrent '%2' La semilla URL '%1' se agregó al torrent '%2' - + URL seed '%1' was removed from torrent '%2' La semilla URL '%1' se eliminó del torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. No se pudo continuar el torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro IP analizado correctamente: %1 reglas aplicadas. - + Error: Failed to parse the provided IP filter. Error: Falló el análisis del filtro IP. - + Couldn't add torrent. Reason: %1 No se pudo agregar el torrent. Razón: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' continuado. (continuación rápida) - + '%1' added to download list. 'torrent name' was added to download list. '%1' agregado a la lista de descargas. - + An I/O error occurred, '%1' paused. %2 Ocurrió un error de Entrada/Salida (I/O), '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Falló el mapeo del puerto, mensaje: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Puerto mapeado correctamente, mensaje: %1 - + due to IP filter. this peer was blocked due to ip filter. por el filtro IP. - + due to port filter. this peer was blocked due to port filter. por el filtro de puertos. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. por restricciones del modo mixto i2p. - + because it has a low port. this peer was blocked because it has a low port. por tener un puerto bajo. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent está escuchando en la interfaz %1 puerto: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4 + qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP Externa: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 No se pudo mover el torrent: '%1'. Razón: %2 - + File sizes mismatch for torrent '%1', pausing it. El tamaño de archivo no coincide con el torrent '%1', pausandolo. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Continuación rápida rechazada para el torrent: '%1', Razón %2. Verificando de nuevo... @@ -1307,20 +1323,20 @@ Debe obtener esta información de las preferencias de su navegador Web. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Error de Entrada/Salida (I/O): No se pudo abrir el archivo de filtros IP en modo lectura. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Error de análisis: El archivo de filtros no es un P2B valido de PeerGuardian. @@ -1328,43 +1344,43 @@ Debe obtener esta información de las preferencias de su navegador Web. GeoIPDatabase - - + + Unsupported database file size. El tamaño del archivo de base de datos no es soportado. - + Metadata error: '%1' entry not found. Error de metadatos: no se encontró la entrada '%1'. - + Metadata error: '%1' entry has invalid type. Error de metadatos: la entrada '%1' tiene un tipo invalido. - + Unsupported database version: %1.%2 Versión de base de datos no soportada: %1.%2 - + Unsupported IP version: %1 Versión de IP no soportada: %1 - + Unsupported record size: %1 Tamaño del registro no soportado: %1 - + Invalid database type: %1 Tipo de base de datos invalido: %1 - + Database corrupted: no data section found. Base de datos corrupta: no se encontró la sección de datos. @@ -1397,9 +1413,8 @@ Debe obtener esta información de las preferencias de su navegador Web.Solamente un enlace por línea - Download local torrent - Descargar torrent local + Descargar torrent local @@ -1572,7 +1587,22 @@ Debe obtener esta información de las preferencias de su navegador Web.Inactivos - + + Save files to location: + Guardar los archivos en: + + + + Label: + Etiqueta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Bajado @@ -1582,6 +1612,11 @@ Debe obtener esta información de las preferencias de su navegador Web.Logout Salir + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Debe obtener esta información de las preferencias de su navegador Web. LineEdit - + Clear the text Borrar texto @@ -1743,37 +1778,37 @@ Debe obtener esta información de las preferencias de su navegador Web. MainWindow - + &Edit &Editar - + &Tools &Herramientas - + &File &Archivo - + &Help A&yuda - + On Downloads &Done Al finalizar las &descargas - + &View &Ver - + &Options... &Opciones... @@ -1783,153 +1818,153 @@ Debe obtener esta información de las preferencias de su navegador Web.&Reanudar - + Torrent &Creator &Crear torrent - + Set Upload Limit... Establecer límite de subida... - + Set Download Limit... Establecer límite de descarga... - + Set Global Download Limit... Límite global de descarga... - + Set Global Upload Limit... Límite global de subida... - + Minimum Priority Mínima prioridad - + Top Priority Máxima prioridad - + Decrease Priority Disminuir prioridad - + Increase Priority Incrementar prioridad - - + + Alternative Speed Limits Límites de velocidad alternativos - + &Top Toolbar &Barra de herramientas - + Display Top Toolbar Mostrar barra de herramientas - + S&peed in Title Bar &Velocidad en la barra de título - + Show Transfer Speed in Title Bar Mostrar Velocidad de Transferencia en la Barra de Título - + &RSS Reader Lector &RSS - + Search &Engine Motor de Búsqu&eda - + L&ock qBittorrent Bl&oquear qBittorrent - + &Import Existing Torrent... &Importar torrent existente... - + Import Torrent... Importar Torrent... - + Do&nate! Do&nar! - + R&esume All R&eanudar todos - + &Log &Log - + &Exit qBittorrent Salir de &qBittorrent - + &Suspend System &Suspender Sistema - + &Hibernate System &Hibernar Sistema - + S&hutdown System &Apagar Sistema - + &Disabled &Deshabilitado - + &Statistics E&stadísticas - + Check for Updates Buscar actualizaciones - + Check for Program Updates Buscar actualizaciones del programa @@ -1939,77 +1974,72 @@ Debe obtener esta información de las preferencias de su navegador Web.&Acerca de - Exit - Salir + Salir - + &Pause &Pausar - + &Delete &Eliminar - + P&ause All Pa&usar todos - + &Add Torrent File... &Agregar archivo torrent... - + Open Abrir - + E&xit &Salir - Options - Opciones + Opciones - Resume - Reanudar + Reanudar - Pause - Pausar + Pausar - Delete - Eliminar + Eliminar - + Open URL Abrir URL - + &Documentation &Documentación - + Lock Bloquear - + Show Mostrar @@ -2020,22 +2050,21 @@ Debe obtener esta información de las preferencias de su navegador Web.Buscar actualizaciones del programa - Lock qBittorrent - Bloquear qBittorrent + Bloquear qBittorrent - + Add Torrent &Link... Agregar &enlace torrent... - + If you like qBittorrent, please donate! Si le gusta qBittorrent, por favor realice una donación! - + Execution Log Log @@ -2414,52 +2443,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. El DNS dinámico se actualizó correctamente. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Error del DNS dinámico: El servicio no está disponible temporalmente, nuevo reintento en 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Error del DNS dinámico: El nombre de host proporcionado no existe en la cuenta especificada. - + Dynamic DNS error: Invalid username/password. Error del DNS dinámico: El nombre de usuario/contraseña no es válido. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Error del DNS dinámico: qBittorrent ha sido incluido en la Lista Negra por el servicio, por favor, informar de ésto en http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Error del DNS dinámico: %1 fue rechazado por el servicio, por favor, informe de este error en http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Error del DNS dinámico: Su nombre de usuario fue bloqueado debido a excesos. - + Dynamic DNS error: supplied domain name is invalid. Error del DNS dinámico: El nombre de dominio proporcionado no válido. - + Dynamic DNS error: supplied username is too short. Error del DNS dinámico: El nombre de usuario proporcionado es demasiado corto. - + Dynamic DNS error: supplied password is too short. Error del DNS dinámico: La contraseña proporcionada demasiado corta. @@ -2467,17 +2496,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error Error de Entrada/Salida (I/O) - + The file size is %1. It exceeds the download limit of %2. El tamaño de archivo es %1. Excede el limite de descarga de %2. - + Unexpected redirect to magnet URI. Redirección inesperada hacia un enlace magnet. @@ -2485,1300 +2514,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Base de datos GeoIP cargada. Tipo: %1. Creada el: %2. - - + + Couldn't load GeoIP database. Reason: %1 No se pudo cargar la base de datos GeoIP. Razon: %1 - - + + N/A N/A - + Asia/Pacific Region Región de Asia-Pacífico - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emiratos Árabes Unidos - + Afghanistan Afganistán - + Antigua and Barbuda Antigua y Barbuda - + Anguilla Anguila - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antillas Neerlandesas - + Angola Angola - + Antarctica Antártida - + Argentina Argentina - + American Samoa Samoa Americana - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaiyán - + Bosnia and Herzegovina Bosnia y Herzegovina - + Barbados Barbados - + Bangladesh Bangladés - + Belgium Bélgica - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Baréin - + Burundi Burundi - + Benin Benín - + Bermuda Bermudas - + Brunei Darussalam Brunéi Darussalam - + Bolivia Bolivia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Bután - + Bouvet Island Isla Bouvet - + Botswana Botsuana - + Belarus Bielorrusia - + Belize Belice - + Canada Canadá - + Cocos (Keeling) Islands Islas Cocos (Keeling) - + Congo, The Democratic Republic of the República Democrática del Congo - + Central African Republic República Centroafricana - + Congo Congo - + Switzerland Suiza - + Cote D'Ivoire Costa de Marfil - + Cook Islands Islas Cook - + Chile Chile - + Cameroon Camerún - + China China - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + Christmas Island Isla de Navidad - + Cyprus Chipre - + Czech Republic República Checa - + Germany Alemania - + Djibouti Yibuti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Argelia - + Ecuador Ecuador - + Estonia Estonia - + Egypt Egipto - + Western Sahara Sahara Occidental - + Eritrea Eritrea - + Spain España - + Ethiopia Etiopía - + Finland Finlandia - + Fiji Fiyi - + Falkland Islands (Malvinas) Islas Malvinas (Falkland) - + Micronesia, Federated States of Estados Federados de Micronesia - + Faroe Islands Islas Feroe - + France Francia - + France, Metropolitan Francia metropolitana - + Gabon Gabón - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Georgia - + French Guiana Guayana Francesa - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlandia - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guinea Ecuatorial - + Greece Grecia - + South Georgia and the South Sandwich Islands Islas Georgias del Sur y Sandwich del Sur - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bisáu - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Islas Heard y McDonald - + Honduras Honduras - + Croatia Croacia - + Haiti Haití - + Hungary Hungría - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Territorio Británico del Océano Índico - + Iraq Irak - + Iran, Islamic Republic of Irán - + Iceland Islandia - + Italy Italia - + Jamaica Jamaica - + Jordan Jordania - + Japan Japón - + Kenya Kenya - + Kyrgyzstan Kirguistán - + Cambodia Camboya - + Kiribati Kiribati - + Comoros Comoras - + Saint Kitts and Nevis San Cristóbal y Nieves - + Korea, Democratic People's Republic of Corea del Norte - + Korea, Republic of Corea del Sur - + Kuwait Kuwait - + Cayman Islands Islas Caimán - + Kazakhstan Kazajistán - + Lao People's Democratic Republic Laos - + Lebanon Líbano - + Saint Lucia Santa Lucía - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesoto - + Lithuania Lituania - + Luxembourg Luxemburgo - + Latvia Letonia - + Libyan Arab Jamahiriya Libia - + Morocco Marruecos - + Monaco Mónaco - + Moldova, Republic of Moldavia - + Madagascar Madagascar - + Marshall Islands Islas Marshall - + Macedonia Macedonia - + Mali Malí - + Myanmar Birmania - + Mongolia Mongolia - + Macau Macao - + Northern Mariana Islands Islas Marianas del Norte - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauricio - + Maldives Maldivas - + Malawi Malaui - + Mexico México - + Malaysia Malasia - + Mozambique Mozambique - + Namibia Namibia - + New Caledonia Nueva Caledonia - + Niger Níger - + Norfolk Island Isla Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Países Bajos - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nueva Zelanda - + Oman Omán - + Panama Panamá - + Peru Perú - + French Polynesia Polinesia Francesa - + Papua New Guinea Papúa Nueva Guinea - + Philippines Filipinas - + Pakistan Pakistán - + Poland Polonia - + Saint Pierre and Miquelon San Pedro y Miquelón - + Pitcairn Islands Islas Pitcairn - + Puerto Rico Puerto Rico - + Palestinian Territory Territorios Palestinos - + Portugal Portugal - + Palau Palaos - + Paraguay Paraguay - + Qatar Catar - + Reunion Reunión - + Romania Rumanía - + Russian Federation Rusia - + Rwanda Ruanda - + Saudi Arabia Arabia Saudita - + Solomon Islands Islas Salomón - + Seychelles Seychelles - + Sudan Sudán - + Sweden Suecia - + Singapore Singapur - + Saint Helena Isla Santa Elena - + Slovenia Eslovenia - + Svalbard and Jan Mayen Svalbard y Jan Mayen - + Slovakia Eslovaquia - + Sierra Leone Sierra Leona - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe Santo Tomé y Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Siria - + Swaziland Suazilandia - + Turks and Caicos Islands Islas Turcas y Caicos - + Chad Chad - + French Southern Territories Tierras Australes y Antárticas Francesas - + Togo Togo - + Thailand Tailandia - + Tajikistan Tayikistán - + Tokelau Tokelau - + Turkmenistan Turkmenistán - + Tunisia Túnez - + Tonga Tonga - + Timor-Leste Timor Oriental - + Turkey Turquía - + Trinidad and Tobago Trinidad y Tobago - + Tuvalu Tuvalu - + Taiwan Taiwán - + Tanzania, United Republic of Tanzania - + Ukraine Ucrania - + Uganda Uganda - + United States Minor Outlying Islands Islas Ultramarinas Menores de Estados Unidos - + United States Estados Unidos - + Uruguay Uruguay - + Uzbekistan Uzbekistán - + Holy See (Vatican City State) Santa Sede (Estado de la ciudad del Vaticano) - + Saint Vincent and the Grenadines San Vicente y las Granadinas - + Venezuela Venezuela - + Virgin Islands, British Islas Vírgenes Británicas - + Virgin Islands, U.S. Islas Vírgenes de los Estados Unidos - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis y Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Sudáfrica - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabue - + Anonymous Proxy Proxy Anónimo - + Satellite Provider Proveedor Satélital - + Other Otro - + Aland Islands Åland - + Guernsey Guernsey - + Isle of Man Isla de Man - + Jersey Jersey - + Saint Barthelemy San Bartolomé - + Saint Martin Isla de San Martín - + Could not uncompress GeoIP database file. No se pudo descomprimir el archivo de base de datos GeoIP. - + Couldn't save downloaded GeoIP database file. No se pudo guardar la base de datos GeoIP descargada. - + Successfully updated GeoIP database. Base de datos GeoIP actualizada correctamente. - + Couldn't download GeoIP database file. Reason: %1 No se pudo descargar la base de datos GeoIP. Razon: %1 @@ -3786,12 +3815,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Soporte UPnP / NAT-PMP [Activado] - + UPnP / NAT-PMP support [OFF] Soporte UPnP / NAT-PMP [Desactivado] @@ -3799,206 +3828,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Error en la notificación por E-mail: + + PeerInfo + + + interested(local) and choked(peer) + interesado(local) y ahogado(par) + + + + interested(local) and unchoked(peer) + interesado(local) y no ahogado(par) + + + + interested(peer) and choked(local) + interesado(par) y ahogado(local) + + + + interested(peer) and unchoked(local) + interesado(par) y no ahogado(local) + + + + optimistic unchoke + desahogo optimista + + + + peer snubbed + par descartado + + + + incoming connection + conexión entrante + + + + not interested(local) and unchoked(peer) + no interesado(local) y no ahogado(par) + + + + not interested(peer) and unchoked(local) + no interesado(par) y no ahogado(local) + + + + peer from PEX + par de PEX + + + + peer from DHT + par de DHT + + + + encrypted traffic + trafico cifrado + + + + encrypted handshake + negociación cifrada + + + + peer from LSD + par de LSD + + PeerListWidget - + IP IP - + Port Puerto - + Flags Banderas - + Connection Conexión - + Client i.e.: Client application Cliente - + Progress i.e: % downloaded Progreso - + Down Speed i.e: Download speed Vel. Descarga - + Up Speed i.e: Upload speed Vel. Subida - + Downloaded i.e: total data downloaded Bajado - + Uploaded i.e: total data uploaded Subido - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Importancia - + Add a new peer... Agregar nuevo par... - + Copy selected Copiar seleccionado - - + + Ban peer permanently Prohibir este par permanentemente - + Manually adding peer '%1'... Agregando manualmente el par '%1'... - + The peer '%1' could not be added to this torrent. El par '%1' no se ha podido agregar al torrent. - + Manually banning peer '%1'... Prohibiendo manualmente al par '%1'... - + Peer addition Agregar par - + Some peers could not be added. Check the Log for details. Algunos pares no pudieron agregarse. Revisa el log para obtener más detalles. - + The peers were added to this torrent. Los pares se agregaron a este torrent. - + Are you sure you want to ban permanently the selected peers? ¿Seguro que desea prohibir permanentemente los pares seleccionados? - + &Yes &Sí - + &No &No - interested(local) and choked(peer) - interesado(local) y ahogado(par) + interesado(local) y ahogado(par) - interested(local) and unchoked(peer) - interesado(local) y no ahogado(par) + interesado(local) y no ahogado(par) - interested(peer) and choked(local) - interesado(par) y ahogado(local) + interesado(par) y ahogado(local) - interested(peer) and unchoked(local) - interesado(par) y no ahogado(local) + interesado(par) y no ahogado(local) - optimistic unchoke - desahogo optimista + desahogo optimista - peer snubbed - par descartado + par descartado - incoming connection - conexión entrante + conexión entrante - not interested(local) and unchoked(peer) - no interesado(local) y no ahogado(par) + no interesado(local) y no ahogado(par) - not interested(peer) and unchoked(local) - no interesado(par) y no ahogado(local) + no interesado(par) y no ahogado(local) - peer from PEX - par de PEX + par de PEX - peer from DHT - par de DHT + par de DHT - encrypted traffic - trafico cifrado + trafico cifrado - encrypted handshake - negociación cifrada + negociación cifrada - peer from LSD - par de LSD + par de LSD @@ -4772,18 +4860,18 @@ Are you sure you want to quit qBittorrent? Ruta del filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Se ha detectado un cierre inesperado. Usando el archivo de respaldo para restaurar la configuración. - + An access error occurred while trying to write the configuration file. Ocurrió un error de acceso tratando de escribir el archivo de configuración. - + A format error occurred while trying to write the configuration file. Ocurrió un error de formato tratando de escribir el archivo de configuración. @@ -4889,299 +4977,298 @@ Usando el archivo de respaldo para restaurar la configuración. PropertiesWidget - + Downloaded: Descargado: - + Availability: Disponibilidad: - + Progress: Progreso: - + Transfer Transferencia - + Time Active: Time (duration) the torrent is active (not paused) Tiempo activo: - + ETA: Tiempo restante: - + Uploaded: Subido: - + Seeds: Semillas: - + Download Speed: Velocidad de descarga: - + Upload Speed: Velocidad de subida: - + Peers: Pares: - + Download Limit: Límite de descarga: - + Upload Limit: Límite de subida: - + Wasted: Desperdiciado: - + Connections: Conexiones: - + Information Información - + Comment: Comentario: - Torrent content: - Contenido del torrent: + Contenido del torrent: - + Select All Seleccionar todo - + Select None Seleccionar ninguno - + Normal Normal - + High Alta - + Share Ratio: Ratio de compartición: - + Reannounce In: Anunciar en: - + Last Seen Complete: Ultima vez visto completo: - + Total Size: Tamaño total: - + Pieces: Piezas: - + Created By: Creado por: - + Added On: Agregado el: - + Completed On: Completado el: - + Created On: Creado el: - + Torrent Hash: Hash del torrent: - + Save Path: Ruta de destino: - + Maximum Máxima - - + + Do not download No descargar - + Never Nunca - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (tienes %3) - + %1 (%2 this session) %1 (%2 en esta sesión) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sembrado durante %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 máx) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 prom.) - + Open Abrir - + Open Containing Folder Abrir carpeta de destino - + Rename... Renombrar... - + Priority Prioridad - + New Web seed Nueva semilla Web - + Remove Web seed Eliminar semilla Web - + Copy Web seed URL Copiar URL de la semilla Web - + Edit Web seed URL Editar URL de la semilla Web - + Rename the file Renombrar archivo - + New name: Nuevo nombre: - - + + The file could not be renamed No se pudo renombrar el archivo - + This file name contains forbidden characters, please choose a different one. El nombre introducido contiene caracteres prohibidos, por favor elija otro. - - + + This name is already in use in this folder. Please use a different name. Este nombre ya está en uso. Por favor, use un nombre diferente. - + The folder could not be renamed La carpeta no se pudo renombrar - + qBittorrent qBittorrent @@ -5191,29 +5278,29 @@ Usando el archivo de respaldo para restaurar la configuración. Filtrar archivos... - + New URL seed New HTTP source Nueva semilla URL - + New URL seed: Nueva semilla URL: - - + + This URL seed is already in the list. Esta semilla URL ya está en la lista. - + Web seed editing Editando semilla Web - + Web seed URL: URL de la semilla Web: @@ -5226,19 +5313,19 @@ Usando el archivo de respaldo para restaurar la configuración. Su dirección IP ha sido bloqueada debido a demasiados intentos fallados de autenticación. - + Error: '%1' is not a valid torrent file. Error: '%1' no es un archivo torrent valido. - + Error: Could not add torrent to session. Error: No se pudo agregar el torrent a la sesión. - + I/O Error: Could not create temporary file. Error de Entrada/Salida (I/O): No se pudo crear un archivo temporal. @@ -5391,138 +5478,138 @@ No se le volverá a notificar sobre esto. [qBittorrent] '%1' ha terminado de descargarse - + The remote host name was not found (invalid hostname) El nombre de host remoto no se ha encontrado (nombre de host no válido) - + The operation was canceled La operación fue cancelada - + The remote server closed the connection prematurely, before the entire reply was received and processed El servidor remoto cerró la conexión prematuramente, antes de que se recibiera y procesara toda la respuesta - + The connection to the remote server timed out La conexión con el servidor remoto ha agotado el tiempo de espera - + SSL/TLS handshake failed Handshake SSL/TLS fallido - + The remote server refused the connection El servidor remoto rechazó la conexión - + The connection to the proxy server was refused La conexión con el servidor proxy fué rechazada - + The proxy server closed the connection prematurely El servidor proxy cerró la conexión antes de tiempo - + The proxy host name was not found No se encontró el nombre del servidor proxy - + The connection to the proxy timed out or the proxy did not reply in time to the request sent La conexión con el servidor proxy ha agotado el tiempo de espera o el proxy no respondió a tiempo a la solicitud enviada - + The proxy requires authentication in order to honor the request but did not accept any credentials offered El proxy requiere autenticación para poder atender la solicitud, pero no aceptó las credenciales proporcionadas - + The access to the remote content was denied (401) El acceso al contenido remoto ha sido rechazado (401) - + The operation requested on the remote content is not permitted La operación solicitada en el contenido remoto no está permitida - + The remote content was not found at the server (404) El contenido remoto no se encontró en el servidor (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted El servidor remoto requiere autenticación para servir el contenido, pero no se aceptaron las credenciales proporcionadas - + The Network Access API cannot honor the request because the protocol is not known La API de acceso a la red no pudo cumplir con la solicitud debido a que el protocolo es desconocido - + The requested operation is invalid for this protocol La operación solicitada no es válida para este protocolo - + An unknown network-related error was detected Se ha detectado un error desconocido relacionado con la red - + An unknown proxy-related error was detected Se ha detectado un error desconocido relacionado con el proxy - + An unknown error related to the remote content was detected Se ha detectado un error desconocido relacionado con el contenido remoto - + A breakdown in protocol was detected Se ha detectado una ruptura en el protocolo - + Unknown error Error desconocido - - + + Upgrade Actualizar - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Actualizaste desde una versión anterior que guardaba las cosas de forma diferente. Debes migrar al nuevo sistema de guardado. Si continuas, no podrás volver a usar una versión anterior a v3.3.0. ¿Continuar? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Actualizaste desde una versión anterior que guardaba las cosas de forma diferente. Debes migrar al nuevo sistema de guardado. Si continuas, no podrás volver a usar una versión anterior a v3.3.0. - + Couldn't migrate torrent with hash: %1 No se pudo migrar el torrent con el hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 No se pudo migrar el torrent. Nombre del archivo de continuación rapida invalido: %1 @@ -5711,12 +5798,12 @@ No se le volverá a notificar sobre esto. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... @@ -5760,17 +5847,17 @@ No se le volverá a notificar sobre esto. ScanFoldersModel - + Watched Folder Carpeta vigilada - + Download here Descargar aquí - + Download path Ruta de descarga @@ -7829,11 +7916,11 @@ En su lugar, esos plugins fueron deshabilitados. fsutils - - - - - + + + + + Downloads Descargas @@ -7841,103 +7928,103 @@ En su lugar, esos plugins fueron deshabilitados. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python no detectado - + Python version: %1 Versión de Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Desconocido - + qBittorrent will shutdown the computer now because all downloads are complete. Todas las descargas se han completado. qBittorrent apagará el equipo ahora. - + < 1m < 1 minute <1m - + %1m e.g: 10minutes %1m - + Working Trabajando - + Updating... Actualizando... - + Not working No funciona - + Not contacted yet Aún no contactado diff --git a/src/lang/qbittorrent_eu.ts b/src/lang/qbittorrent_eu.ts index 0d71b092b..d23ca8734 100644 --- a/src/lang/qbittorrent_eu.ts +++ b/src/lang/qbittorrent_eu.ts @@ -125,217 +125,222 @@ Jauzi hash egiaztapena - + + Set as default label + + + + Torrent Information Torrent Argibideak - + Size: Neurria: - + Comment: Aipamena: - + Date: Eguna: - + Info Hash: Info Hash: - + Normal Arrunta - + High Handia - + Maximum Gehiena - + Do not download Ez jeitsi - - + + I/O Error S/I Akatsa - + The torrent file does not exist. Torrent agiria ez dago. - + Invalid torrent Torrent baliogabea - + Failed to load the torrent: %1 Hutsegitea torrenta gertatzerakoan: %1 - - + + Already in download list Jadanik jeisketa zerrendan - + Free disk space: %1 Diskako toki askea: %1 - + Not Available This comment is unavailable Ez dago Eskuragarri - + Not Available This date is unavailable Ez dago Eskuragarri - + Not available Eskuraezina - + Invalid magnet link Magnet lotura baliogabea - + Torrent is already in download list. Trackers were merged. Torrenta jadanik jeisketa zerrendan dago. Aztarnariak batu dira. - - + + Cannot add torrent Ezin da torrenta gehitu - + Cannot add this torrent. Perhaps it is already in adding state. Ezin da torrent hau gehitu. Badaiteke jadanik gehituta egoeran egotea. - + This magnet link was not recognized Magnet lotura hau ez da ezagutu - + Magnet link is already in download list. Trackers were merged. Torrenta jadanik jeisketa zerrendan dago. Aztarnariak batu dira. - + Cannot add this torrent. Perhaps it is already in adding. Ezin da torrent hau gehitu. Badaiteke jadanik gehituta egotea. - + Magnet link Magnet lotura - + Retrieving metadata... Metadatuak eskuratzen... - + Not Available This size is unavailable. Ez dago Eskuragarri - - - + + + Choose save path Hautatu gordetze helburua - + Rename the file Berrizendatu agiria - + New name: Izen berria: - - + + The file could not be renamed Agiria ezin da berrizendatu - + This file name contains forbidden characters, please choose a different one. Agiri honek hizki galaraziak ditu, mesedez hautatu beste bat. - - + + This name is already in use in this folder. Please use a different name. Izen hau jadanik erabilia da agiritegi honetan. Mesedez erabili beste bat. - + The folder could not be renamed Agiritegia ezin da berrizendatu - + Rename... Berrizendatu... - + Priority Lehentasuna - + Invalid metadata Metadatu baliogabeak - + Parsing metadata... Metadatuak aztertzen... - + Metadata retrieval complete Metadatu eskurapena osatuta - + Download Error Jeisketa Akatsa @@ -427,9 +432,8 @@ Erabaki hartzaile hostalari izenak - Maximum number of half-open connections [0: Disabled] - Gehienezko elkarketa erdi-ireki zenbatekoa [0:Ezgaituta] + Gehienezko elkarketa erdi-ireki zenbatekoa [0:Ezgaituta] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Gorde berregite datu tartea + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Hartzaile ID-a: - + HTTP User-Agent is '%1' HTTP Erabiltzaile-Ordezkaria da, '%1' - + Anonymous mode [ON] Izengabeko modua [BAI] - + Anonymous mode [OFF] Izengabeko modua [EZ] - + PeX support [ON] HaX sostengua [BAI] - + PeX support [OFF] HaX sostengua [EZ] - + Restart is required to toggle PeX support Berrabiaraztea beharrezkoa HaX sostengua aldatzeko - + Local Peer Discovery support [ON] Tokiko Hartzaile Aurkikuntza sostengua [BAI] - + Local Peer Discovery support [OFF] Tokiko Hartzaile Aurkikuntza sostengua [EZ] - + Encryption support [ON] Enkripataketa sostengua [BAI] - + Encryption support [FORCED] Enkripataketa sostengua [BEHARTUTA] - + Encryption support [OFF] Enkripataketa sostengua [EZ] - + Embedded Tracker [ON] Barneratutako Aztarnaria [BAI] - + Failed to start the embedded tracker! Hutsegitea barneratutako aztarnaria abiaraztean! - + Embedded Tracker [OFF] Barneratutako Aztarnaria [EZ] - + '%1' reached the maximum ratio you set. Removing... %1 ezarri duzun gehienezko maila erdietsita. Kentzen... - + '%1' reached the maximum ratio you set. Pausing... %1 ezarri duzun gehienezko maila erdietsita. Pausatzen... - Error: Could not create torrent export directory: '%1' - Akatsa: Ezin da torrent esportatze zuzenbidea sortu: '%1' + Akatsa: Ezin da torrent esportatze zuzenbidea sortu: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Akatsa: ezin da '%1' torrenta, badaiteke oraindik metadaturik ez izatea. + Akatsa: ezin da '%1' torrenta, badaiteke oraindik metadaturik ez izatea. - + System network status changed to %1 e.g: System network status changed to ONLINE Sistemaren sare egoera %1-ra aldatu da - + ONLINE ONLINE - + OFFLINE LINEAZ-KANPO - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1-ren sare itxurapena aldatu egin da, saio lotura berritzen - + Unable to decode '%1' torrent file. Ezinezkoa '%1' torrent agiria dekodeatzea. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' '%1' agiriaren jeisketa mugagabea '%2' torrentean barneratuta - + Couldn't save '%1.torrent' Ezinezkoa '%1.torrent' gordetzea - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 ezgaituta dagoelako. - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 ezgaituta dagoelako. - + URL seed lookup failed for URL: '%1', message: %2 Url emaritza bigizta hutsegitea url honetan: '%1', mezua: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' eskualdaketa zerrendatik eta diska gogorretik kendu da. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' eskualdaketa zerrendatik kendu da. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' jeisten, mesedez itxaron... - Torrent Export: torrent is invalid, skipping... - Torrent Esportazioa: torrent baliogabea, jauzi egiten... + Torrent Esportazioa: torrent baliogabea, jauzi egiten... - + DHT support [ON] DHT sostengua [BAI] - + DHT support [OFF]. Reason: %1 DHT sostengua [EZ]. Zergaitia: %1 - + DHT support [OFF] DHT sostengua [EZ] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent interfazearen edozein atakan aditzen saiatzen ari da: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2 + qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2 - + The network interface defined is invalid: %1 Zehaztutako sare interfazea baliogabea da: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent aditzen saiatzen ari da %1 interfazean, ataka: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent-ek ez du %1 tokiko helbide bat aurkitu aditzeko - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' '%1' aztarnaria '%2' torrentera gehitu da. - + Tracker '%1' was deleted from torrent '%2' '%1' aztarnaria '%2' torrentetik kendu da - + URL seed '%1' was added to torrent '%2' '%1' emaritza URL-a '%2' torrentera gehitu da - + URL seed '%1' was removed from torrent '%2' '%1' aztarnaria '%2' torrentetik kendu da - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ezinezkoa %1 torrenta berrekitea. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Emandako IP iragazkia ongi aztertu da: %1 araua ezarri dira. - + Error: Failed to parse the provided IP filter. Akatsa: Hutsegitea emandako IP iragazkia aztertzerakoan. - + Couldn't add torrent. Reason: %1 Ezinezkoa torrenta gehitzea. Zergaitia: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' berrekinda. (berrekite azkarra) - + '%1' added to download list. 'torrent name' was added to download list. '%1' jeisketa zerrendara gehituta. - + An I/O error occurred, '%1' paused. %2 S/I akats bat gertatu da, '%1' pausatuta. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Ataka mapaketa hutsegitea, mezua: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Ataka mapaketa ongi burutu da, mezua: %1 - + due to IP filter. this peer was blocked due to ip filter. IP iragazkiagaitik. - + due to port filter. this peer was blocked due to port filter. ataka iragazkiagaitik. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p modu nahasi murrizpenengaitik. - + because it has a low port. this peer was blocked because it has a low port. ataka apala delako. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent ongi aditzen ari da %1 interfazean, ataka: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent-ek huts egin du aditzean %1 interfazean, ataka: %2/%3. Zergaitia: %4 + qBittorrent-ek huts egin du aditzean %1 interfazean, ataka: %2/%3. Zergaitia: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent-ek huts egin du aditzean %1 interfazean, ataka: %2/%3. Zergaitia: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Kanpoko IP-a: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Ezinezkoa torrenta mugitzea: '%1'. Zergaitia: %2 - + File sizes mismatch for torrent '%1', pausing it. Agiri neurriak ez datoz bat '%1' torrentarekin, pausatzen. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Berrekite azkarreko datuak baztertuak izan dira '%1' torrentean. Zergaitia: %2. Berriro egiaztatzen... @@ -1307,20 +1323,20 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. S/I Akatsa: Ezin da ip iragazki agiria ireki irakurtzeko moduan. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Aztertze Akatsa: Iragazki agiria ez da baliozko PeerGuardian P2B agiria. @@ -1328,43 +1344,43 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. GeoIPDatabase - - + + Unsupported database file size. Datubase agiri neurri sostengatu gabea. - + Metadata error: '%1' entry not found. Metadatu akatsa: '%1' sarrera ez da aurkitu. - + Metadata error: '%1' entry has invalid type. Metadatu akatsa: '%1' sarrera mota baliogabekoa da. - + Unsupported database version: %1.%2 Datubase bertsio sostengatu gabea: %1.%2 - + Unsupported IP version: %1 IP bertsio sostengatu gabea: %1 - + Unsupported record size: %1 Erregistro neurri sostengatu gabea: %1 - + Invalid database type: %1 Datubase mota baliogabea: %1 - + Database corrupted: no data section found. Datubasea hondatuta: ez da datu atalik aurkitu. @@ -1397,9 +1413,8 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Lotura bakar bat lerroko - Download local torrent - Jeitsi tokiko torrenta + Jeitsi tokiko torrenta @@ -1572,7 +1587,22 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Jardungabe - + + Save files to location: + Gorde agiriak kokaleku honetan: + + + + Label: + Etiketa: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Jeitsita @@ -1582,6 +1612,11 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Logout Amaitu saioa + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. LineEdit - + Clear the text Garbitu idazkia @@ -1743,37 +1778,37 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. MainWindow - + &Edit &Editatu - + &Tools &Tresnak - + &File &Agiria - + &Help &Laguntza - + On Downloads &Done &Burututako Jeisketetan - + &View &Ikusi - + &Options... A&ukerak... @@ -1783,153 +1818,153 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. &Berrekin - + Torrent &Creator Torrent &Sortzailea - + Set Upload Limit... Ezarri Igoera Muga... - + Set Download Limit... Ezarri Jeisketa Muga... - + Set Global Download Limit... Ezarri Jeisketa Muga Orokorra... - + Set Global Upload Limit... Ezarri Igoera Muga Orokorra... - + Minimum Priority Lehentasun Gutxiena - + Top Priority Lehentasun Gehiena - + Decrease Priority Gutxitu Lehentasuna - + Increase Priority Handitu Lehentasuna - - + + Alternative Speed Limits Aukerazko Abiadura Mugak - + &Top Toolbar Goiko &Tresnabarra - + Display Top Toolbar Erakutsi Goiko Tresnabarra - + S&peed in Title Bar &Abiadura Izenaren Barran - + Show Transfer Speed in Title Bar Erakutsi Eskualdaketa Abiadura Izenaren Barran - + &RSS Reader &RSS Irakurlea - + Search &Engine Bilaketa &Gailua - + L&ock qBittorrent &Blokeatu qBittorrent - + &Import Existing Torrent... I&nportatu Badagoen Torrenta... - + Import Torrent... Inportatu Torrenta... - + Do&nate! E&man Dirulaguntza! - + R&esume All Berrekin &Denak - + &Log &Oharra - + &Exit qBittorrent I&rten qBittorrent-etik - + &Suspend System &Egoneratu Sistema - + &Hibernate System &Neguratu Sistema - + S&hutdown System &Itzali Sistema - + &Disabled E&zgaituta - + &Statistics E&statistikak - + Check for Updates Egiaztatu Eguneraketarik dagoen - + Check for Program Updates Egiaztatu Programaren Eguneraketarik dagoen @@ -1939,77 +1974,72 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. &Honi buruz - Exit - Irten + Irten - + &Pause &Pausatu - + &Delete &Ezabatu - + P&ause All P&asatu Denak - + &Add Torrent File... Gehitu Torrent &Agiria... - + Open Ireki - + E&xit I&rten - Options - Aukerak + Aukerak - Resume - Berrekin + Berrekin - Pause - Pausatu + Pausatu - Delete - Ezabatu + Ezabatu - + Open URL Ireki URL-a - + &Documentation &Agiritza - + Lock Blokeatu - + Show Erakutsi @@ -2020,22 +2050,21 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Egiaztatu programaren eguneraketak - Lock qBittorrent - Blokeatu qBittorrent + Blokeatu qBittorrent - + Add Torrent &Link... Gehitu Torrent &Lotura... - + If you like qBittorrent, please donate! qBittorrent gogoko baduzu, mesedez eman dirulaguntza! - + Execution Log Ekintza Oharra @@ -2414,52 +2443,52 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Zure DNS dinamikoa ongi eguneratu da. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. DNS dinamiko akatsa: Zerbitzua aldibatez eskuraezina da, berriro saiatuko da 30 minutu barru. - + Dynamic DNS error: hostname supplied does not exist under specified account. DNS dinamiko akatsa: Emandako hostalari-izena ez dago adierazitako kontuan. - + Dynamic DNS error: Invalid username/password. DNS dinamiko akatsa: Erabiltzaile-izen/sarhitz baliogabea. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. DNS dinamiko akatsa: qBittorrent zerbitzuaren zerrenda-beltzean dago, mesedez jakinarazi matxura http://bugs.qbittorrent.org helbidean. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. DNS dinamiko akatsa: %1 itzuli du zerbitzuak, mesedez jakinarazi matxura http://bugs.qbittorrent.org helbidean. - + Dynamic DNS error: Your username was blocked due to abuse. DNS dinamiko akatsa: Zure erabiltzaile-izena blokeatua izan da gehiegikeriagaitik. - + Dynamic DNS error: supplied domain name is invalid. DNS dinamiko akatsa: Emandako domeinu izena baliogabea da. - + Dynamic DNS error: supplied username is too short. DNS dinamiko akatsa: Emandako erabiltzaile-izena laburregia da. - + Dynamic DNS error: supplied password is too short. DNS dinamiko akatsa: Emandako sarhitza laburregia da. @@ -2467,17 +2496,17 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::DownloadHandler - + I/O Error S/I Akatsa - + The file size is %1. It exceeds the download limit of %2. Agiriaren neurria %1 da. %2 jeisketa muga gainditzen du. - + Unexpected redirect to magnet URI. Ustekabeko berzuzentzea magnet URI-ra. @@ -2485,1300 +2514,1300 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP datubasea gertatuta. Mota: %1. Eraiketa eguna: %2. - - + + Couldn't load GeoIP database. Reason: %1 Ezin da GeoIP datubasea gertatu. Zergaitia: %1 - - + + N/A E/G - + Asia/Pacific Region Asia/Pazifikoa Eskualdea - + Europe Europa - + Andorra Andorra - + United Arab Emirates Arabiar Emirrerri Batuak - + Afghanistan Afganistan - + Antigua and Barbuda Antigua eta Barbuda - + Anguilla Angila - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antilla Herbeherearrak - + Angola Angola - + Antarctica Antartika - + Argentina Argentina - + American Samoa Amerikar Samoa - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaijan - + Bosnia and Herzegovina Bosnia eta Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgika - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei Darussalam - + Bolivia Bolivia - + Brazil Brazil - + Bahamas Bahamak - + Bhutan Butan - + Bouvet Island Bouvet Uhartea - + Botswana Botswana - + Belarus Belaerrusia - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Cocos (Keeling) Uharteak - + Congo, The Democratic Republic of the Kongoa, Herriaginte Herkalderria - + Central African Republic Ertafrikako Herkalderria - + Congo Kongoa - + Switzerland Suitza - + Cote D'Ivoire Boli Kosta - + Cook Islands Cook Uharteak - + Chile Txile - + Cameroon Kamerun - + China Txina - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Kuba - + Cape Verde Lurmutur Berdea - + Christmas Island Christmas Uhartea - + Cyprus Zipre - + Czech Republic Txekiar Herkalderria - + Germany Alemania - + Djibouti Djibouti - + Denmark Danimarka - + Dominica Dominika - + Dominican Republic Dominikar Herkalderria - + Algeria Aljeria - + Ecuador Ekuador - + Estonia Estonia - + Egypt Egipto - + Western Sahara Sahara Mendebaldea - + Eritrea Eritrea - + Spain Espainia - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fiji - + Falkland Islands (Malvinas) Malvina Uharteak - + Micronesia, Federated States of Mikronesia, Estatu Federatuak - + Faroe Islands Faroe Uharteak - + France Frantzia - + France, Metropolitan Frantzia, Metropolitarra - + Gabon Gabon - + United Kingdom Erresuma Batua - + Grenada Granada - + Georgia Georgia - + French Guiana Frantziar Guiana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlandia - + Gambia Gambia - + Guinea Ginea - + Guadeloupe Guadalupe - + Equatorial Guinea Ekuatore Ginea - + Greece Grezia - + South Georgia and the South Sandwich Islands Hego Georgia eta Hego Sandwich Uharteak - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Ginea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heard Uhartea McDonald Uharteak - + Honduras Honduras - + Croatia Kroazia - + Haiti Haiti - + Hungary Hungaria - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Britainiar Indiatako Itsasoko Lurraldea - + Iraq Irak - + Iran, Islamic Republic of Iran, Islamiar Herkalderria - + Iceland Islandia - + Italy Italia - + Jamaica Jamaika - + Jordan Jordania - + Japan Japonia - + Kenya Kenia - + Kyrgyzstan Kyrgyzstan - + Cambodia Kanbodia - + Kiribati Kiribati - + Comoros Comoros - + Saint Kitts and Nevis Saint Kitts eta Nevis - + Korea, Democratic People's Republic of Korea, Herriagintezko Herriaren Herkalderria - + Korea, Republic of Korea, Herkalderria - + Kuwait Kuwait - + Cayman Islands Kaiman Uharteak - + Kazakhstan Kazakhstan - + Lao People's Democratic Republic Laoseko Herriaren Herriagintezko Herkalderria - + Lebanon Libanoa - + Saint Lucia Santa Luzia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luxenburgo - + Latvia Letonia - + Libyan Arab Jamahiriya Libiako Arabiar Jamahiriya - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Moldavia, Herkalderria - + Madagascar Madagaskar - + Marshall Islands Marshall Uharteak - + Macedonia Mazedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - + Macau Macau - + Northern Mariana Islands Iparraldeko Mariana Uharteak - + Martinique Martinika - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurizio - + Maldives Maldivak - + Malawi Malawi - + Mexico Mexiko - + Malaysia Malaisia - + Mozambique Mozanbike - + Namibia Namibia - + New Caledonia Kaledonia Berria - + Niger Niger - + Norfolk Island Norfolk Uhartea - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Herbehereak - + Norway Norbegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Zeelanda Berria - + Oman Oman - + Panama Panama - + Peru Peruq - + French Polynesia Frantziar Polinesia - + Papua New Guinea Papua Ginea Berria - + Philippines Filipinak - + Pakistan Pakistan - + Poland Polonia - + Saint Pierre and Miquelon Saint Pierre eta Mikelon - + Pitcairn Islands Pitcairn Uharteak - + Puerto Rico Puerto Rico - + Palestinian Territory Palestinar Lurraldea - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion Reunion - + Romania Errumania - + Russian Federation Errusiar Federazioa - + Rwanda Ruanda - + Saudi Arabia Saudi Arabia - + Solomon Islands Solomon Uharteak - + Seychelles Seychelles - + Sudan Sudan - + Sweden Suedia - + Singapore Singapur - + Saint Helena Saint Helena - + Slovenia Eslobenia - + Svalbard and Jan Mayen Svalbard eta Jan Mayen - + Slovakia Eslobakia - + Sierra Leone Sierra Leona - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe Sao Tome eta Principe - + El Salvador El Salvador - + Syrian Arab Republic Siriako Arabiar Herkalderria - + Swaziland Swazilandia - + Turks and Caicos Islands Dordokak eta Caicos Uharteak - + Chad Txad - + French Southern Territories Frantziar Hegoaldeko Lurraldeak - + Togo Togo - + Thailand Thailandia - + Tajikistan Tajikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunizia - + Tonga Tonga - + Timor-Leste Timor-Ekialdea - + Turkey Turkia - + Trinidad and Tobago Trinidad eta Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tantzania, Herkalderri Batua - + Ukraine Ukrainia - + Uganda Uganda - + United States Minor Outlying Islands Estatu Batuetako Itsasoz Haraindiko Uharteak - + United States Estatu Batuak - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Hiri Santua (Vaticanoa Hiri Estatua) - + Saint Vincent and the Grenadines Saint Vincent eta Granadinak - + Venezuela Venezuela - + Virgin Islands, British Virgin Uharteak, Britainiarrak - + Virgin Islands, U.S. Virgin Uharteak, AEB - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis eta Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Hego Afrika - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Izengabeko Proxya - + Satellite Provider Satelite Hornitzailea - + Other Besterik - + Aland Islands Aland Uharteak - + Guernsey Guernsey - + Isle of Man Man Uhartea - + Jersey Jersey - + Saint Barthelemy Saint Bartolome - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. Ezin da GeoIP datubase agiria deskonprimitu. - + Couldn't save downloaded GeoIP database file. Ezin da jeitsitako GeoIP datubase agiria gorde. - + Successfully updated GeoIP database. GeoIP datubasea ongi eguneratu da. - + Couldn't download GeoIP database file. Reason: %1 Ezin da GeoIP datubase agiria jeitsi. Zergaitia: %1 @@ -3786,12 +3815,12 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP sostengua [BAI] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP sostengua [EZ] @@ -3799,206 +3828,265 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::Smtp - + Email Notification Error: Post@ Jakinarazpen Akatsa: + + PeerInfo + + + interested(local) and choked(peer) + interesatuta (tokikoa) eta itota (hartzailea) + + + + interested(local) and unchoked(peer) + interesatuta (tokikoa) eta itogabe (hartzailea) + + + + interested(peer) and choked(local) + interesatuta (hartzailea) eta itota (tokikoa) + + + + interested(peer) and unchoked(local) + interesatuta (hartzailea) eta itogabe (tokikoa) + + + + optimistic unchoke + itogabe baikorra + + + + peer snubbed + hartzailea baztertuta + + + + incoming connection + barrurako elkarketa + + + + not interested(local) and unchoked(peer) + ez interesatuta (tokikoa) eta itogabe (hartzailea) + + + + not interested(peer) and unchoked(local) + ez interesatuta (hartzailea) eta itogabe (tokikoa) + + + + peer from PEX + HaX-tiko hartzailea + + + + peer from DHT + DHT-tiko hartzailea + + + + encrypted traffic + trafiko enkriptatua + + + + encrypted handshake + eskuemate enkriptatua + + + + peer from LSD + LSD-tiko hartzailea + + PeerListWidget - + IP IP-a - + Port Ataka - + Flags Ikurrak - + Connection Elkarketa - + Client i.e.: Client application Bezeroa - + Progress i.e: % downloaded Garapena - + Down Speed i.e: Download speed Jeisketa Abiadura - + Up Speed i.e: Upload speed Igoera Abiadura - + Downloaded i.e: total data downloaded Jeitsita - + Uploaded i.e: total data uploaded Igota - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Garrantzia - + Add a new peer... Gehitu hartzaile berri bat... - + Copy selected Kopiatu hautatua - - + + Ban peer permanently Eragotzi hartzailea mugagabe - + Manually adding peer '%1'... Eskuzko hartzaile gehitzea '%1'... - + The peer '%1' could not be added to this torrent. '%1' hartzailea ezin da torrent honetara gehitu. - + Manually banning peer '%1'... Eskuzko hartzaile eragoztea '%1'... - + Peer addition Hartzaile gehiketa - + Some peers could not be added. Check the Log for details. Zenbait hartzailea ezin dira gehitu. Egiaztatu Oharra xehetasunetarako. - + The peers were added to this torrent. Hartzaileak torrent honetara gehitu dira. - + Are you sure you want to ban permanently the selected peers? Zihur zaude mugagabe eragoztea nahi dituzula hautatutako hartzaileak? - + &Yes &Bai - + &No &Ez - interested(local) and choked(peer) - interesatuta (tokikoa) eta itota (hartzailea) + interesatuta (tokikoa) eta itota (hartzailea) - interested(local) and unchoked(peer) - interesatuta (tokikoa) eta itogabe (hartzailea) + interesatuta (tokikoa) eta itogabe (hartzailea) - interested(peer) and choked(local) - interesatuta (hartzailea) eta itota (tokikoa) + interesatuta (hartzailea) eta itota (tokikoa) - interested(peer) and unchoked(local) - interesatuta (hartzailea) eta itogabe (tokikoa) + interesatuta (hartzailea) eta itogabe (tokikoa) - optimistic unchoke - itogabe baikorra + itogabe baikorra - peer snubbed - hartzailea baztertuta + hartzailea baztertuta - incoming connection - barrurako elkarketa + barrurako elkarketa - not interested(local) and unchoked(peer) - ez interesatuta (tokikoa) eta itogabe (hartzailea) + ez interesatuta (tokikoa) eta itogabe (hartzailea) - not interested(peer) and unchoked(local) - ez interesatuta (hartzailea) eta itogabe (tokikoa) + ez interesatuta (hartzailea) eta itogabe (tokikoa) - peer from PEX - HaX-tiko hartzailea + HaX-tiko hartzailea - peer from DHT - DHT-tiko hartzailea + DHT-tiko hartzailea - encrypted traffic - trafiko enkriptatua + trafiko enkriptatua - encrypted handshake - eskuemate enkriptatua + eskuemate enkriptatua - peer from LSD - LSD-tiko hartzailea + LSD-tiko hartzailea @@ -4772,17 +4860,17 @@ Zihur zaude qBittorrent uztea nahi duzula? Iragazki helburua (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Programatik irtetze ezgarbia atzeman da. Atzera egitea erabiltzen ezarpenak leheneratzeko. - + An access error occurred while trying to write the configuration file. Sarbide akats bat gertatu da itxurapen agiria idazten saiatzerakoan. - + A format error occurred while trying to write the configuration file. Heuskarri akats bat gertatu da itxurapen agiria idazten saiatzerakoan. @@ -4888,299 +4976,298 @@ Zihur zaude qBittorrent uztea nahi duzula? PropertiesWidget - + Downloaded: Jeitsita: - + Availability: Eskuragarritasuna: - + Progress: Garapena: - + Transfer Eskualdaketa - + Time Active: Time (duration) the torrent is active (not paused) Denbora Ekinean: - + ETA: UED: - + Uploaded: Igota: - + Seeds: Emaleak: - + Download Speed: Jeisketa Abiadura: - + Upload Speed: Igoera Abiadura: - + Peers: Hartzaileak: - + Download Limit: Jeisketa Muga: - + Upload Limit: Igoera Muga: - + Wasted: Alperrik: - + Connections: Elkarketak: - + Information Argibideak - + Comment: Aipamena: - Torrent content: - Torrent edukia: + Torrent edukia: - + Select All Hautatu Denak - + Select None Ez Hautatu Ezer - + Normal Arrunta - + High Handia - + Share Ratio: Elkarbanatze Maila: - + Reannounce In: Berriragarpena: - + Last Seen Complete: Azken Ikusaldia Osorik: - + Total Size: Neurria Guztira: - + Pieces: Atalak: - + Created By: Sortzailea: - + Added On: Gehituta: - + Completed On: Osatuta: - + Created On: Sortua: - + Torrent Hash: Torrent Hasha: - + Save Path: Gordetze Helburua: - + Maximum Gehiena - - + + Do not download Ez jeitsi - + Never Inoiz ez - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (ditu %3) - + %1 (%2 this session) %1 (%2 saio honetan) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (emarituta %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 geh) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 guztira) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 bat.-best.) - + Open Ireki - + Open Containing Folder Ireki Edukiaren Agiritegia - + Rename... Berrizendatu... - + Priority Lehentasuna - + New Web seed Web emaritza berria - + Remove Web seed Kendu Web emaritza - + Copy Web seed URL Kopiatu Web emaritza URL-a - + Edit Web seed URL Editatu Web emaritza URL-a - + Rename the file Berrizendatu agiri hau - + New name: Izen berria: - - + + The file could not be renamed Agiria ezin da berrizendatu - + This file name contains forbidden characters, please choose a different one. Agiri honek hizki galaraziak ditu, mesedez hautatu beste bat. - - + + This name is already in use in this folder. Please use a different name. Izen hau jadanik erabilia da agiritegi honetan. Mesedez erabili beste bat. - + The folder could not be renamed Agiritegia ezin da berrizendatu - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Zihur zaude qBittorrent uztea nahi duzula? Iragazi agiriak... - + New URL seed New HTTP source URL emaritza berria - + New URL seed: URL emaritza berria: - - + + This URL seed is already in the list. URL emaritza hau jadanik zerrendan dago. - + Web seed editing Web emaritza editatzen - + Web seed URL: Web emaritza URL-a: @@ -5225,7 +5312,7 @@ Zihur zaude qBittorrent uztea nahi duzula? Zure IP helbidea eragotzia izan da egiaztapen saiakera hutsegite askoren ondoren. - + Error: '%1' is not a valid torrent file. Akatsa: '%1' ez da baliozko torrent agiria. @@ -5233,12 +5320,12 @@ Zihur zaude qBittorrent uztea nahi duzula? - + Error: Could not add torrent to session. Akatsa: Ezin da torrenta saiora gehitu. - + I/O Error: Could not create temporary file. S/I Akatsa: Ezin da aldibaterako agiria sortu. @@ -5390,138 +5477,138 @@ Ez dira jakinarazpen gehiago egingo. [qBittorrent] '%1' jeisketa amaitu du - + The remote host name was not found (invalid hostname) Hurruneko hostalari izena ez da aurkitu (hostalari-izen baliogabea) - + The operation was canceled Eragiketa ezeztatua izan da - + The remote server closed the connection prematurely, before the entire reply was received and processed Hurruneko zerbitzariak elkarketa azkarregi itxi du, erantzuna osorik jaso eta prozesatu aurretik - + The connection to the remote server timed out Hurruneko zerbitzariarekiko elkarketa denboraz kanpo - + SSL/TLS handshake failed SLL/TLS eskuemate hutsegitea - + The remote server refused the connection Hurruneko zerbitzariak elkarketa baztertu du - + The connection to the proxy server was refused Proxy zerbitzariarekiko elkarketa baztertua izan da - + The proxy server closed the connection prematurely Proxy zerbitzariak elkarketa azkarregi itxi du - + The proxy host name was not found Proxy hostalari izena ez da aurkitu - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Proxyarekiko elkarketa denboraz kanpo edo proxyak ez dio garaiz erantzun bidalitako eskabideari - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Proxyak egiaztapena behar du eskabidea burutzeko baina ez du onartu eskainitako nortasunik - + The access to the remote content was denied (401) Hurruneko edukirako sarbidea ukatua izan da (401) - + The operation requested on the remote content is not permitted Hurruneko edukian eskatutako eragiketa ez dago baimenduta - + The remote content was not found at the server (404) Hurruneko edukia ez da aurkitu zerbitzarian (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Hurruneko zerbitzariak egiaztapena behar du edukia zerbitzatzeko baina ez du onartu emandako nortasunik - + The Network Access API cannot honor the request because the protocol is not known Sare Sarbide API-k ezin du eskabidea burutu protokoloa ez delako ezaguna - + The requested operation is invalid for this protocol Eskatutako eragiketa baliogabea da protokolo honentzat - + An unknown network-related error was detected Sareari-buruzko akats ezezagun bat atzeman da - + An unknown proxy-related error was detected Proxyari-buruzko akats ezezagun bat atzeman da - + An unknown error related to the remote content was detected Hurruneko edukiari buruzko akats ezezagun bat atzeman da - + A breakdown in protocol was detected Protokolo matxura bat atzeman da - + Unknown error Akats ezezaguna - - + + Upgrade Eguneratu - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Gauzak beste modu batean gordetzen dituen bertsio zahar batetik eguneratu zara. Gordetze sistema berrira migratu behar duzu. Ezingo duzu v3.3.0 baino zaharragoa den bertsiorik erabili ahalko berriro. Jarriatu? [y/n]. - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Gauzak beste modu batean gordetzen dituen bertsio zahar batetik eguneratu zara. Gordetze sistema berrira migratu behar duzu. Jarraitzen baduzu, ezingo duzu v3.3.0 baino zaharragoa den bertsiorik erabili ahalko berriro. - + Couldn't migrate torrent with hash: %1 Ezinezkoa torrenta migratzea, hasha: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Ezinezkoa torrenta migratzea. Berrekite-azkar agiri izen baliogabea: %1 @@ -5710,12 +5797,12 @@ Ez dira jakinarazpen gehiago egingo. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... - + Automatically downloading '%1' torrent from '%2' RSS feed... '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... @@ -5759,17 +5846,17 @@ Ez dira jakinarazpen gehiago egingo. ScanFoldersModel - + Watched Folder Begiratutako Agiritegia - + Download here Jeitsi hemen - + Download path Jeitsiera helburua @@ -6010,12 +6097,12 @@ Ez dira jakinarazpen gehiago egingo. Total Upload - Igota Guztira + Igoera Guztira Total Download - Jeitsita Guztira + Jeitsiera Guztira @@ -6093,12 +6180,12 @@ Ez dira jakinarazpen gehiago egingo. Total Upload - Igota Guztira + Igoera Guztira Total Download - Jeitsita Guztira + Jeitsiera Guztira @@ -7828,11 +7915,11 @@ Plugin hauek ezgaituta daude. fsutils - - - - - + + + + + Downloads Jeisketak @@ -7840,103 +7927,103 @@ Plugin hauek ezgaituta daude. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python ez da atzeman - + Python version: %1 Python bertsioa: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1o %2m - + %1d %2h e.g: 2days 10hours %1e %2o - + Unknown Unknown (size) Ezezaguna - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent-ek orain ordenagailua itzaliko du jeisketa guztiak osatu direlako. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Lanean - + Updating... Eguneratzen... - + Not working Lan gabe - + Not contacted yet Harremandu gabe oraindik diff --git a/src/lang/qbittorrent_fi.ts b/src/lang/qbittorrent_fi.ts index 4e4cb80fd..b1bc4372b 100644 --- a/src/lang/qbittorrent_fi.ts +++ b/src/lang/qbittorrent_fi.ts @@ -125,217 +125,222 @@ Ohita tarkistus - + + Set as default label + + + + Torrent Information Torrentin tiedot - + Size: Koko: - + Comment: Kommentti: - + Date: Päiväys: - + Info Hash: - + Normal Normaali - + High Korkea - + Maximum Suurin - + Do not download Älä lataa - - + + I/O Error I/O-virhe - + The torrent file does not exist. Torrent-tiedostoa ei ole olemassa. - + Invalid torrent Virheellinen torrent - + Failed to load the torrent: %1 Torrentin lataaminen epäonnistui: %1 - - + + Already in download list On jo latausluettelossa - + Free disk space: %1 - + Not Available This comment is unavailable Ei saatavilla - + Not Available This date is unavailable Ei saatavilla - + Not available Ei saatavilla - + Invalid magnet link Virheellinen magnet-linkki - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Tätä magnet-linkkiä ei tunnistettu - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet-linkki - + Retrieving metadata... Noudetaan metatietoja... - + Not Available This size is unavailable. Ei saatavilla - - - + + + Choose save path Valitse tallennuskansio - + Rename the file Nimeä tiedosto uudelleen - + New name: Uusi nimi: - - + + The file could not be renamed Tiedostoa ei voitu nimetä uudelleen - + This file name contains forbidden characters, please choose a different one. Tämä tiedostonimi sisältää kiellettyjä merkkejä, valitse toinen tiedostonimi. - - + + This name is already in use in this folder. Please use a different name. Tämä nimi on jo käytössä tässä kansiossa. Käytä toista nimeä. - + The folder could not be renamed Kansiota ei voitu nimetä uudelleen - + Rename... Nimeä uudelleen... - + Priority Prioriteetti - + Invalid metadata - + Parsing metadata... Jäsennetään metatietoja... - + Metadata retrieval complete Metatietojen noutaminen valmistui - + Download Error @@ -427,9 +432,8 @@ Selvitä asiakkaiden isäntänimet - Maximum number of half-open connections [0: Disabled] - Puoliavointen yhteyksien enimmäismäärä [0: ei käytössä] + Puoliavointen yhteyksien enimmäismäärä [0: ei käytössä] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Yksi linkki riville - Download local torrent - Lataa paikallinen torrentti + Lataa paikallinen torrentti @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. Toimettomat - + + Save files to location: + Tallenna tiedostot kohteeseen: + + + + Label: + Nimike: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Ladattu @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout Kirjaudu ulos + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Tyhjennä teksti @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Muokkaa - + &Tools T&yökalut - + &File &Tiedosto - + &Help &Ohje - + On Downloads &Done - + &View &Näytä - + &Options... &Asetukset... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Jatka - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All J&atka kaikkia - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,72 @@ You should get this information from your Web browser preferences. &Tietoja - Exit - Lopeta + Lopeta - + &Pause P&ysäytä - + &Delete &Poista - + P&ause All Py&säytä kaikki - + &Add Torrent File... - + Open Avaa - + E&xit - Options - Valinnat + Valinnat - Resume - Palauta + Palauta - Pause - Keskeytä + Keskeytä - Delete - Poista + Poista - + Open URL Avaa osoite - + &Documentation &Dokumentaatio - + Lock - + Show Näytä @@ -2019,22 +2027,21 @@ You should get this information from your Web browser preferences. Tarkista ohjelmapäivitykset - Lock qBittorrent - Lukitse qBittorrent + Lukitse qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Jos pidät qBittorrentista, lahjoita! - + Execution Log Suoritusloki @@ -2409,52 +2416,52 @@ Haluatko varmasti lopettaa qBittorrentin? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2462,17 +2469,17 @@ Haluatko varmasti lopettaa qBittorrentin? Net::DownloadHandler - + I/O Error I/O-virhe - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2480,1300 +2487,1300 @@ Haluatko varmasti lopettaa qBittorrentin? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Ranska - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Kreikka - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3781,12 +3788,12 @@ Haluatko varmasti lopettaa qBittorrentin? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3794,206 +3801,213 @@ Haluatko varmasti lopettaa qBittorrentin? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + saapuva yhteys + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port Portti - + Flags Liput - + Connection Yhteys - + Client i.e.: Client application Asiakassovellus - + Progress i.e: % downloaded Edistyminen - + Down Speed i.e: Download speed Latausnopeus - + Up Speed i.e: Upload speed Lähetysnopeus - + Downloaded i.e: total data downloaded Ladattu - + Uploaded i.e: total data uploaded Lähetetty - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Lisää uusi asiakas... - + Copy selected - - + + Ban peer permanently Poista asiakas pysyvästi - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Asiakkaan lisäys - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Haluatko varmasti poistaa valitut asiakkaat pysyvästi? - + &Yes &Kyllä - + &No &Ei - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - incoming connection - saapuva yhteys - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - + saapuva yhteys @@ -4767,17 +4781,17 @@ Haluatko varmasti lopettaa qBittorrentin? Suodatustiedoston sijainti (.dat, .p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4883,299 +4897,298 @@ Haluatko varmasti lopettaa qBittorrentin? PropertiesWidget - + Downloaded: Ladattu: - + Availability: Saatavuus: - + Progress: Edistyminen: - + Transfer Siirto - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Lähetetty: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Hukattu: - + Connections: Yhteydet: - + Information Tiedot - + Comment: Kommentti: - Torrent content: - Torrentin sisältö: + Torrentin sisältö: - + Select All Valitse kaikki - + Select None Poista valinnat - + Normal Normaali - + High Korkea - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Korkein - - + + Do not download Älä lataa - + Never Ei koskaan - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Avaa - + Open Containing Folder Avaa sisältävä kansio - + Rename... Nimeä uudelleen... - + Priority Prioriteetti - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file Nimeä tiedosto uudelleen - + New name: Uusi nimi: - - + + The file could not be renamed Tiedostoa ei voitu nimetä uudelleen - + This file name contains forbidden characters, please choose a different one. Tiedostonimi sisältää kiellettyjä merkkejä, valitse toinen. - - + + This name is already in use in this folder. Please use a different name. Nimi on jo käytössä tässä kansiossa. Käytä toista nimeä. - + The folder could not be renamed Kansiota ei voitu nimetä uudelleen - + qBittorrent qBittorrent @@ -5185,29 +5198,29 @@ Haluatko varmasti lopettaa qBittorrentin? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5220,19 +5233,19 @@ Haluatko varmasti lopettaa qBittorrentin? - + Error: '%1' is not a valid torrent file. Virhe: '%1' ei ole kelvollinen torrent-tiedosto. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. I/O-virhe: väliaikaistiedoston luominen epäonnistui. @@ -5383,138 +5396,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5703,12 +5716,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5752,17 +5765,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Seurattu kansio - + Download here Lataa tänne - + Download path @@ -7820,11 +7833,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Lataukset @@ -7832,103 +7845,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1 h %2 min - + %1d %2h e.g: 2days 10hours %1 d %2 h - + Unknown Unknown (size) Tuntematon - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent sammuttaa tietokoneen nyt, koska kaikki lataukset ovat valmistuneet. - + < 1m < 1 minute alle minuutti - + %1m e.g: 10minutes %1 min - + Working Toiminnassa - + Updating... Päivitetään... - + Not working Ei toiminnassa - + Not contacted yet Ei yhteyttä vielä diff --git a/src/lang/qbittorrent_fr.ts b/src/lang/qbittorrent_fr.ts index dd5da76c2..eaf9c9bab 100644 --- a/src/lang/qbittorrent_fr.ts +++ b/src/lang/qbittorrent_fr.ts @@ -125,217 +125,222 @@ Ne pas vérifier les données du torrent - + + Set as default label + + + + Torrent Information Informations sur le torrent - + Size: Taille : - + Comment: Commentaire : - + Date: Date : - + Info Hash: Info hachage : - + Normal Normale - + High Haute - + Maximum Maximale - + Do not download Ne pas télécharger - - + + I/O Error Erreur E/S - + The torrent file does not exist. Le fichier torrent n'existe pas. - + Invalid torrent Torrent invalide - + Failed to load the torrent: %1 Impossible de charger le torrent : %1 - - + + Already in download list Déjà présent dans la liste des téléchargements - + Free disk space: %1 Espace disque libre : %1 - + Not Available This comment is unavailable Non disponible - + Not Available This date is unavailable Non disponible - + Not available Non disponible - + Invalid magnet link Lien magnet invalide - + Torrent is already in download list. Trackers were merged. Impossible d'ajouter le torrent - - + + Cannot add torrent Impossible d'ajouter le torrent - + Cannot add this torrent. Perhaps it is already in adding state. Impossible d'ajouter ce torrent. Peut-être est-il déjà en cours d'ajout. - + This magnet link was not recognized Ce lien magnet n'a pas été reconnu - + Magnet link is already in download list. Trackers were merged. Le lien magnet est déjà dans la liste des téléchargements. Les trackers ont été fusionnés. - + Cannot add this torrent. Perhaps it is already in adding. Impossible d'ajouter ce torrent. Peut-être est-il déjà en cours d'ajout. - + Magnet link Lien magnet - + Retrieving metadata... Récupération des métadonnées… - + Not Available This size is unavailable. Non disponible - - - + + + Choose save path Choisir un répertoire de destination - + Rename the file Renommer le fichier - + New name: Nouveau nom : - - + + The file could not be renamed Le fichier n'a pas pu être renommé - + This file name contains forbidden characters, please choose a different one. Ce nom de fichier contient des caractères interdits, veuillez en choisir un autre. - - + + This name is already in use in this folder. Please use a different name. Ce nom de fichier est déjà utilisé dans ce dossier. Veuillez utiliser un autre nom. - + The folder could not be renamed Le dossier n'a pas pu être renommé - + Rename... Renommer… - + Priority Priorité - + Invalid metadata Metadata invalides. - + Parsing metadata... Analyse syntaxique des métadonnées... - + Metadata retrieval complete Récuperation des métadonnées terminée - + Download Error Erreur de téléchargement @@ -427,9 +432,8 @@ Afficher le nom d'hôte des pairs - Maximum number of half-open connections [0: Disabled] - Nombre maximum de connexions à moitié ouvertes [0: désactivé] + Nombre maximum de connexions à moitié ouvertes [0: désactivé] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Intervalle de sauvegarde des données de reprise + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -553,58 +562,58 @@ RSS Downloader - + Gestionnaire de téléchargement RSS Enable Automated RSS Downloader - + Activer le téléchargement auto de flux RSS Download Rules - + Règles pour le téléchargement Rule Definition - + Définition d'une règle Use Regular Expressions - + Utiliser les expressions régulières Must Contain: - + Doit contenir : Must Not Contain: - + Ne contient pas : Episode Filter: - + Filtre d'épisode : Assign Label: - + Assigner catégorie : Save to a Different Directory - + Enregistrer dans un dossier différent Ignore Subsequent Matches for (0 to Disable) ... X days - + Ignorer les correspondances ultérieures pour (0 pour désactiver) @@ -619,37 +628,37 @@ Use global settings - + Utiliser la configuration globale Always - + Toujours Never - Jamais + Jamais Apply Rule to Feeds: - + Appliquer la règle aux flux : Matching RSS Articles - + Articles RSS correspondants &Import... - + &Import... &Export... - + &Export... @@ -710,12 +719,12 @@ Last Match: %1 days ago - + Dernière correspondance : il y a %1 jours Last Match: Unknown - + Dernière correspondance : inconnu @@ -858,352 +867,359 @@ BitTorrent::Session - + Peer ID: ID du pair : - + HTTP User-Agent is '%1' - + Le User-Agent HTTP est '%1' - + Anonymous mode [ON] Mode anonyme [ACTIVE] - + Anonymous mode [OFF] Mode anonyme [DESACTIVE] - + PeX support [ON] Prise en charge de PeX [ACTIVÉE] - + PeX support [OFF] Prise en charge de PeX [DÉSACTIVÉE] - + Restart is required to toggle PeX support Un redémarrage est nécessaire pour changer le support PeX - + Local Peer Discovery support [ON] Découverte de pairs sur le réseau local [ACTIVÉE] - + Local Peer Discovery support [OFF] Découverte de pairs sur le réseau local [DÉSACTIVÉE] - + Encryption support [ON] Support de cryptage [ACTIVE] - + Encryption support [FORCED] Support de cryptage [FORCE] - + Encryption support [OFF] Support de cryptage [DESACTIVE] - + Embedded Tracker [ON] Tracker intégré [ACTIVÉ] - + Failed to start the embedded tracker! Impossible de démarrer le tracker intégré ! - + Embedded Tracker [OFF] Tracker intégré [DÉSACTIVÉ] - + '%1' reached the maximum ratio you set. Removing... '%1' a atteint le ratio maximum que vous avez défini. Suppression... - + '%1' reached the maximum ratio you set. Pausing... '%1' a atteint le ratio maximum que vous avez défini. Mise en pause... - Error: Could not create torrent export directory: '%1' - + Erreur lors de la création du dossier d'export de torrents : '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - + Erreur lors de l'exportation du torrent '%1', peut-être n'a-t-il pas encore de métadonnées. - + System network status changed to %1 e.g: System network status changed to ONLINE - + Statut réseau du système changé en %1 - + ONLINE - + EN LIGNE - + OFFLINE - + HORS LIGNE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Impossible de décoder le fichier torrent '%1' - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Téléchargement récursif du fichier '%1' au sein du torrent '%2' - + Couldn't save '%1.torrent' Impossible de sauvegarder '%1.torrent" - + because %1 is disabled. this peer was blocked because uTP is disabled. parce que '%1' est désactivé - + because %1 is disabled. this peer was blocked because TCP is disabled. parce que '%1' est désactivé - + URL seed lookup failed for URL: '%1', message: %2 - + Le contact de la source URL a échoué pour l'URL : '%1', message : %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' a été supprimé de la liste de transferts et du disque. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' a été supprimé de la liste de transferts. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Téléchargement de '%1', veuillez patienter... - Torrent Export: torrent is invalid, skipping... - Exportation de torrents : le torrent est invalide et a été ignoré... + Exportation de torrents : le torrent est invalide et a été ignoré... - + DHT support [ON] Prise en charge de DHT [ACTIVÉE] - + DHT support [OFF]. Reason: %1 Prise en charge de DHT [DÉSACTIVÉE]. Motif : %1 - + DHT support [OFF] Prise en charge de DHT [DÉSACTIVÉE] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + qBittorrent tente d'écouter un port d'interface : %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + qBittorrent n'a pas réussi à écouter sur un port d'interface : %1. Motif : %2 - + The network interface defined is invalid: %1 - + L'interface réseau définie est invalide : %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent tente d'écouter sur le port %2 de l'interface %1 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent n’a pas trouvé d'adresse locale %1 sur laquelle écouter - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent n'a pas réussi à écouter sur un port d'interface : %1. Motif : %2. {1.?} + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' ajouté au torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + Tracker '%1' retiré du torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL de partage '%1' ajoutée au torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + URL de partage '%1' retirée du torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossible de résumer le torrent "%1". - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - Le filtre IP a été correctement chargé : %1 règles ont été appliquées. + Le filtre IP a été correctement chargé : %1 règles ont été appliquées. - + Error: Failed to parse the provided IP filter. - + Erreur : impossible d'analyser le filtre IP fourni. - + Couldn't add torrent. Reason: %1 - + Impossible d'ajouter le torrent. Motif : %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' a été relancé. (relancement rapide) - + '%1' added to download list. 'torrent name' was added to download list. '%1' ajouté à la liste de téléchargement. - + An I/O error occurred, '%1' paused. %2 - + Une erreur E/S s'est produite, '%1' a été mis en pause. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP : impossible de rediriger le port, message : %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + UPnP/NAT-PMP : la redirection du port a réussi, message : %1 - + due to IP filter. this peer was blocked due to ip filter. - + à cause du filtrage IP. - + due to port filter. this peer was blocked due to port filter. - + à cause du filtrage de ports. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + à cause des restrictions du mode mixte d'i2p. - + because it has a low port. this peer was blocked because it has a low port. - + parce que son numéro de port est trop bas. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent écoute correctement sur le port %2/%3 de l'interface %1 + + + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent ne parvient pas à écouter sur le port %2/%3 de l'interface %1. Motif : %4. {1 ?} {2/%3.?} - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent ne parvient pas à écouter sur le port %2/%3 de l'interface %1. Motif : %4 - + External IP: %1 e.g. External IP: 192.168.0.1 - + IP externe : %1 BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + Le torrent '%1' n'a pas pu être déplacé. Motif : %2 - + File sizes mismatch for torrent '%1', pausing it. - + Les tailles de fichiers ne correspondent pas pour le torrent %1, mise en pause. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - + La relance rapide du torrent %1 a été rejetée. Motif : %2. Revérification... @@ -1229,7 +1245,8 @@ Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - + Les clés habituelles des cookies sont : '%1', '%2'. +Vous pouvez récupérer ces informations à partir des préférences de votre navigateur Internet. @@ -1238,7 +1255,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + Voulez-vous vraiment supprimer '%1' de la liste des transferts ? @@ -1252,17 +1269,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + Blanc : morceaux manquants Green: Partial pieces - + Vert : morceaux partiels Blue: Completed pieces - + Bleu : morceaux complets @@ -1306,66 +1323,66 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - + Erreur d'entrée/sortie : impossible d'ouvrir le fichier de filtrage IP en lecture. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. - + Erreur d'analyse : le fichier de filtrage n'est pas un fichier P2B PeerGuardian valide. GeoIPDatabase - - + + Unsupported database file size. - + Taille du ficher de base de données non supporté. - + Metadata error: '%1' entry not found. - + Erreur des métadonnées : '%1' non trouvé. - + Metadata error: '%1' entry has invalid type. - + Erreur des métadonnées : le type de '%1' est invalide. - + Unsupported database version: %1.%2 - + Version de base de données non supportée : %1.%2 - + Unsupported IP version: %1 - + Version IP non supportée : %1 - + Unsupported record size: %1 - + Taille du registre non supportée : %1 - + Invalid database type: %1 - + Type de base de données invalide : %1 - + Database corrupted: no data section found. - + Base de données corrompue : section data introuvable. @@ -1396,9 +1413,8 @@ You should get this information from your Web browser preferences. Un seul lien par ligne - Download local torrent - Téléchargement d'un torrent local + Téléchargement d'un torrent local @@ -1408,37 +1424,37 @@ You should get this information from your Web browser preferences. Global upload rate limit must be greater than 0 or disabled. - + La limite globale pour la vitesse d'envoi doit être supérieure à 0 ou désactivée. Global download rate limit must be greater than 0 or disabled. - + La limite globale pour la vitesse de réception doit être supérieure à 0 ou désactivée. Alternative upload rate limit must be greater than 0 or disabled. - + La limite alternative pour la vitesse d'envoi doit être supérieure à 0 ou désactivée. Alternative download rate limit must be greater than 0 or disabled. - + La limite alternative pour la vitesse de réception doit être supérieure à 0 ou désactivée. Maximum active downloads must be greater than -1. - + Le nombre maximum de téléchargements actifs doit être supérieur à -1. Maximum active uploads must be greater than -1. - + Le nombre maximum d'envois actifs doit être supérieur à -1. Maximum active torrents must be greater than -1. - + Le nombre maximum de torrents actifs doit être supérieur à -1. @@ -1468,12 +1484,12 @@ You should get this information from your Web browser preferences. The port used for incoming connections must be between 1 and 65535. - + Le port utilisé pour les connexions entrantes doit être compris entre 1 et 65535. The port used for the Web UI must be between 1 and 65535. - + Le port utilisé pour l'interface Web doit être compris entre 1024 et 65535. @@ -1503,75 +1519,90 @@ You should get this information from your Web browser preferences. Original authors - + Auteurs originaux Upload limit: - + Limite d'envoi : Download limit: - + Limite de téléchargement : Apply - + Appliquer Add - + Ajouter Upload Torrents - + Téléverser des torrents All - + Tous Downloading - En téléchargement + En téléchargement Seeding - En partage + En partage Completed - Terminé + Complétés Resumed - + Continués Paused - En pause + En pause Active - + Actifs Inactive + Inactifs + + + + Save files to location: + Sauvegarder les fichiers vers : + + + + Label: + Catégorie : + + + + Cookie: - + Downloaded Is the file downloaded or not? Téléchargé @@ -1579,12 +1610,17 @@ You should get this information from your Web browser preferences. Logout + Se déconnecter + + + + Upload local torrent Are you sure you want to delete the selected torrents from the transfer list? - + Voulez-vous vraiment supprimer les torrents sélectionnés de la liste de transfert ? @@ -1721,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Effacer le texte @@ -1742,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Édition - + &Tools Ou&tils - + &File &Fichier - + &Help &Aide - + On Downloads &Done - + Action lorsque les téléchargements sont &terminés - + &View A&ffichage - + &Options... &Options... @@ -1782,153 +1818,153 @@ You should get this information from your Web browser preferences. &Démarrer - + Torrent &Creator - + &Créateur de torrent - + Set Upload Limit... - + Définir la limite d'envoi... - + Set Download Limit... - + Définir la limite de téléchargement... - + Set Global Download Limit... - + Définir la limite de téléchargement globale... - + Set Global Upload Limit... - + Définir la limite d'envoi globale... - + Minimum Priority - + Priorité minimale - + Top Priority - + Priorité maximale - + Decrease Priority - + Diminuer la priorité - + Increase Priority - + Augmenter la priorité - - + + Alternative Speed Limits - + Limites de vitesse alternatives - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Tout Dé&marrer - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1974,72 @@ You should get this information from your Web browser preferences. &À propos - Exit - Quitter + Quitter - + &Pause Mettre en &pause - + &Delete &Supprimer - + P&ause All Tout &mettre en pause - + &Add Torrent File... - + Open Ouvrir - + E&xit - Options - Options + Options - Resume - Démarrer + Démarrer - Pause - Mettre en pause + Mettre en pause - Delete - Supprimer + Supprimer - + Open URL Ouvrir URL - + &Documentation &Documentation - + Lock Verrouiller - + Show Afficher @@ -2019,22 +2050,21 @@ You should get this information from your Web browser preferences. Vérifier la disponibilité de mises à jour du logiciel - Lock qBittorrent - Verrouiller qBittorrent + Verrouiller qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Si vous aimez qBittorrent, faites un don ! - + Execution Log Journal d'exécution @@ -2409,52 +2439,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2462,17 +2492,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error Erreur E/S - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2480,1300 +2510,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France France - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grèce - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3781,12 +3811,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3794,206 +3824,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + intéressé (local) et engorgé (pair) + + + + interested(local) and unchoked(peer) + intéressé (local) et non engorgé (pair) + + + + interested(peer) and choked(local) + intéressé (pair) et engorgé (local) + + + + interested(peer) and unchoked(local) + intéressé (pair) et non engorgé (local) + + + + optimistic unchoke + non-étranglement optimiste + + + + peer snubbed + pair évité + + + + incoming connection + connexion entrante + + + + not interested(local) and unchoked(peer) + non intéressé (local) et non engorgé (pair) + + + + not interested(peer) and unchoked(local) + non intéressé (pair) et non engorgé (local) + + + + peer from PEX + pair issu de PEX + + + + peer from DHT + pair issu du DHT + + + + encrypted traffic + trafic chiffré + + + + encrypted handshake + poignée de main chiffrée + + + + peer from LSD + pair issu de LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Indicateurs - + Connection Connexion - + Client i.e.: Client application Logiciel - + Progress i.e: % downloaded Progression - + Down Speed i.e: Download speed Vitesse DL - + Up Speed i.e: Upload speed Vitesse UP - + Downloaded i.e: total data downloaded Téléchargé - + Uploaded i.e: total data uploaded Envoyé - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Pertinence - + Add a new peer... Ajouter un nouveau pair… - + Copy selected Copie sélectionnée - - + + Ban peer permanently Bloquer le pair indéfiniment - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Ajout d'un pair - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Êtes-vous sûr de vouloir bloquer les pairs sélectionnés ? - + &Yes &Oui - + &No &Non - interested(local) and choked(peer) - intéressé (local) et engorgé (pair) + intéressé (local) et engorgé (pair) - interested(local) and unchoked(peer) - intéressé (local) et non engorgé (pair) + intéressé (local) et non engorgé (pair) - interested(peer) and choked(local) - intéressé (pair) et engorgé (local) + intéressé (pair) et engorgé (local) - interested(peer) and unchoked(local) - intéressé (pair) et non engorgé (local) + intéressé (pair) et non engorgé (local) - optimistic unchoke - non-étranglement optimiste + non-étranglement optimiste - peer snubbed - pair évité + pair évité - incoming connection - connexion entrante + connexion entrante - not interested(local) and unchoked(peer) - non intéressé (local) et non engorgé (pair) + non intéressé (local) et non engorgé (pair) - not interested(peer) and unchoked(local) - non intéressé (pair) et non engorgé (local) + non intéressé (pair) et non engorgé (local) - peer from PEX - pair issu de PEX + pair issu de PEX - peer from DHT - pair issu du DHT + pair issu du DHT - encrypted traffic - trafic chiffré + trafic chiffré - encrypted handshake - poignée de main chiffrée + poignée de main chiffrée - peer from LSD - pair issu de LSD + pair issu de LSD @@ -4767,17 +4856,17 @@ Are you sure you want to quit qBittorrent? Chemin du filtre (.dat, .p2p, .p2b) : - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4883,299 +4972,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Téléchargé : - + Availability: Disponibilité : - + Progress: Progression : - + Transfer Transfert - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Envoyé : - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Gaspillé : - + Connections: Connexions : - + Information Informations - + Comment: Commentaire : - Torrent content: - Contenu du torrent : + Contenu du torrent : - + Select All Tout sélectionner - + Select None Ne rien sélectionner - + Normal Normale - + High Haute - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Maximale - - + + Do not download Ne pas télécharger - + Never - Jamais + Jamais - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Ouvert - + Open Containing Folder Ouvrir le contenu du dossier - + Rename... Renommer… - + Priority Priorité - + New Web seed Nouvelle source web - + Remove Web seed Supprimer la source web - + Copy Web seed URL Copier l'URL de la source web - + Edit Web seed URL Modifier l'URL de la source web - + Rename the file Renommer le fichier - + New name: Nouveau nom : - - + + The file could not be renamed Le fichier n'a pas pu être renommé - + This file name contains forbidden characters, please choose a different one. Ce nom de fichier contient des caractères interdits, veuillez en choisir un autre. - - + + This name is already in use in this folder. Please use a different name. Ce nom est déjà utilisé au sein de ce dossier. Veuillez choisir un nom différent. - + The folder could not be renamed Le dossier n'a pas pu être renommé - + qBittorrent qBittorrent @@ -5185,29 +5273,29 @@ Are you sure you want to quit qBittorrent? Filtrer les fichiers… - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Modification de la source web - + Web seed URL: URL de la source web : @@ -5220,19 +5308,19 @@ Are you sure you want to quit qBittorrent? Votre adresse IP a été bannie après un nombre excessif de tentatives d'authentification échouées. - + Error: '%1' is not a valid torrent file. Erreur : « %1 » n'est pas un fichier torrent valide. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. Erreur d'entrée/sortie : le fichier temporaire n'a pas pu être créé. @@ -5385,138 +5473,138 @@ Ce message d'avertissement ne sera plus affiché. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5705,12 +5793,12 @@ Ce message d'avertissement ne sera plus affiché. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5754,17 +5842,17 @@ Ce message d'avertissement ne sera plus affiché. ScanFoldersModel - + Watched Folder Répertoire surveillé - + Download here Télécharger ici - + Download path @@ -7822,11 +7910,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Téléchargements @@ -7834,103 +7922,103 @@ Those plugins were disabled. misc - + B bytes o - + KiB kibibytes (1024 bytes) Kio - + MiB mebibytes (1024 kibibytes) Mio - + GiB gibibytes (1024 mibibytes) Gio - + TiB tebibytes (1024 gibibytes) Tio - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1j %2h - + Unknown Unknown (size) Inconnue - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent va maintenant éteindre l'ordinateur car tous les téléchargements sont terminés. - + < 1m < 1 minute < 1min - + %1m e.g: 10minutes %1min - + Working Fonctionne - + Updating... Mise à jour… - + Not working Ne fonctionne pas - + Not contacted yet Pas encore contacté diff --git a/src/lang/qbittorrent_gl.ts b/src/lang/qbittorrent_gl.ts index 35e1be2fb..3945adc2d 100644 --- a/src/lang/qbittorrent_gl.ts +++ b/src/lang/qbittorrent_gl.ts @@ -125,217 +125,222 @@ Saltar a comprobación hash - + + Set as default label + + + + Torrent Information Información do torrent - + Size: Tamaño: - + Comment: Comentario: - + Date: Data: - + Info Hash: Info Hash: - + Normal Normal - + High Alta - + Maximum Máxima - + Do not download Non descargar - - + + I/O Error Erro de E/S - + The torrent file does not exist. O ficheiro torrent non existe. - + Invalid torrent Torrent incorrecto - + Failed to load the torrent: %1 Produciuse un fallo ao cargar o torrent: %1 - - + + Already in download list Xa está na lista de descargas. - + Free disk space: %1 Espazo libre no disco: %1 - + Not Available This comment is unavailable Non dispoñíbel - + Not Available This date is unavailable Non dispoñíbel - + Not available Non dispoñíbel - + Invalid magnet link Ligazón magnet incorrecta - + Torrent is already in download list. Trackers were merged. O torrent xa está na lista de descargas. Mesturáronse os localizadores. - - + + Cannot add torrent Non é posíbel engadir o torrent - + Cannot add this torrent. Perhaps it is already in adding state. Non é posíbel engadir este torrent. Quizais xa está noutro estado de engadir. - + This magnet link was not recognized Non se recoñeceu esta ligazón magnet - + Magnet link is already in download list. Trackers were merged. A ligazón magnet xa está na lista de descargas. Mesturáronse os localizadores. - + Cannot add this torrent. Perhaps it is already in adding. Non foi posíbel engadir este torrent. Quizais xa se estea engadindo. - + Magnet link Ligazón magnet - + Retrieving metadata... Recuperando os metadatos... - + Not Available This size is unavailable. Non dispoñíbel - - - + + + Choose save path Seleccionar a ruta onde gardar - + Rename the file Cambiar o nome do ficheiro - + New name: Nome novo: - - + + The file could not be renamed Non foi posíbel cambiar o nome do ficheiro - + This file name contains forbidden characters, please choose a different one. Este nome de ficheiro contén caracteres prohibidos, escolla un nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome de ficheiro xa existe neste cartafol. Use un nome diferente. - + The folder could not be renamed Non foi posíbel cambiar o nome do cartafol - + Rename... Cambiar o nome... - + Priority Prioridade - + Invalid metadata Metadatos incorrectos - + Parsing metadata... Analizando os metadatos... - + Metadata retrieval complete Completouse a recuperación dos metadatos - + Download Error Erro de descarga @@ -427,9 +432,8 @@ Mostrar os servidores dos pares - Maximum number of half-open connections [0: Disabled] - Número máximo de conexións semi-abertas [0: Desactivado] + Número máximo de conexións semi-abertas [0: Desactivado] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Gardar o intervalo de datos para continuar + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID do par: - + HTTP User-Agent is '%1' O axente do usuario HTTP é %1 - + Anonymous mode [ON] Modo anómino [ACTIVADO] - + Anonymous mode [OFF] Modo anómino [APAGADO] - + PeX support [ON] Soporte PeX [ACTIVADO] - + PeX support [OFF] Soporte PeX [APAGADO] - + Restart is required to toggle PeX support É necesario reiniciar para cambiar o soporte PeX - + Local Peer Discovery support [ON] Soporte para busca de pares locais (LPD) [ACTIVADO] - + Local Peer Discovery support [OFF] Soporte para busca de pares locais (LPD) [APAGADO] - + Encryption support [ON] Soporte de cifrado [ACTIVADO] - + Encryption support [FORCED] Soporte de cifrado [FORZADO] - + Encryption support [OFF] Soporte de cifrado [APAGADO] - + Embedded Tracker [ON] Localizador integrado [ACTIVADO] - + Failed to start the embedded tracker! Produciuse un fallo ao iniciar o localizador integrado! - + Embedded Tracker [OFF] Localizador integrado [APAGADO] - + '%1' reached the maximum ratio you set. Removing... %1 alcanzou a taxa máxima estabelecida. Eliminando... - + '%1' reached the maximum ratio you set. Pausing... %1 alcanzou a taxa máxima estabelecida. Detendo... - Error: Could not create torrent export directory: '%1' - Erro: Non foi posíbel crear o cartafol de exportación de torrents: %1. + Erro: Non foi posíbel crear o cartafol de exportación de torrents: %1. - Error: could not export torrent '%1', maybe it has not metadata yet. - Erro: non foi posíbel exportar o torrent %1, quizais non ten aínda metadatos. + Erro: non foi posíbel exportar o torrent %1, quizais non ten aínda metadatos. - + System network status changed to %1 e.g: System network status changed to ONLINE O estado da rede do sistema cambiou a %1 - + ONLINE EN LIÑA - + OFFLINE FÓRA DE LIÑA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuración da rede de %1 cambiou, actualizando as vinculacións da sesión - + Unable to decode '%1' torrent file. Non foi posíbel decodificar o ficheiro torrent %1. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descarga recursiva do ficheiro %1 integrado no torrent %2 - + Couldn't save '%1.torrent' Non foi posíbel gardar %1.torrent - + because %1 is disabled. this peer was blocked because uTP is disabled. porque o %1 está desactivado. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque o %1 está desactivado. - + URL seed lookup failed for URL: '%1', message: %2 Fallou a busca da semente na URL: %1, mensaxe: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' eliminouse da lista de transferencias e do disco duro. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' eliminouse da lista de transferencias. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', espere... - Torrent Export: torrent is invalid, skipping... - Exportación de torrents: o torrent non é válido, saltándoo... + Exportación de torrents: o torrent non é válido, saltándoo... - + DHT support [ON] Compatibiliade DHT [ACTIVADA] - + DHT support [OFF]. Reason: %1 Compatibilidade DHT [DESACTIVADA]. Razón: %1 - + DHT support [OFF] Soporte DHT [APAGADO] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tentando escoitar en todos os portos da interface: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent fallou ao escoitar en todos os portos da interface: %1. Razón: %2 + qBittorrent fallou ao escoitar en todos os portos da interface: %1. Razón: %2 - + The network interface defined is invalid: %1 A interface indicada para a rede non é válida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent está tentando escoitar na interface %1 porto: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent non atopou un enderezo local %1 no que escoitar - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent fallou ao escoitar en todos os portos da interface: %1. Razón: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Engadiuse o localizador «%1» ao torrent «%2» - + Tracker '%1' was deleted from torrent '%2' Eliminouse o localizador «%1» do torrent «%2» - + URL seed '%1' was added to torrent '%2' A semente da URL «%1» engadiuse ao torrent «%2» - + URL seed '%1' was removed from torrent '%2' A semente da URL «%1» eliminouse do torrent «%2» - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Non é posíbel continuar o torrent «%1». - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analizouse correctamente o filtro IP indicado: aplicáronse %1 regras. - + Error: Failed to parse the provided IP filter. Erro: produciuse un fallo ao analizar o filtro IP indicado. - + Couldn't add torrent. Reason: %1 Non foi posíbel engadir o torrent. Razón: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) Retomouse '%1' (continuación rápida) - + '%1' added to download list. 'torrent name' was added to download list. Engadiuse %1 á lista de descargas. - + An I/O error occurred, '%1' paused. %2 Produciuse un erro de E/S, '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: produciuse un fallo no mapeado dos portos, mensaxe: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: o mapeado dos portos foi correcto, mensaxe: %1 - + due to IP filter. this peer was blocked due to ip filter. debido ao filtro IP. - + due to port filter. this peer was blocked due to port filter. debido ao filtro de portos. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. debido ás restricións do modo mixto i2P. - + because it has a low port. this peer was blocked because it has a low port. porque ten un porto baixo. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent escoita correctamente no porto da interface %1 porto: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4 + qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP externa: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Non foi posíbel mover o torrent: «%1». Razón: %2 - + File sizes mismatch for torrent '%1', pausing it. Os tamaños dos ficheiros non coinciden co torrent %1 , deténdoo. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Os datos para a continuación rápida do torrent %1 foron rexeitados. Razón: %2, Comprobando de novo... @@ -1307,20 +1323,20 @@ Debería obter esta información nas preferencias do navegador. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Erro de E/S: Non foi posíbel abrir o ficheiro de filtros de ip en modo lectura. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Erro de análise: o ficheiro de filtros non é un ficheiro Peer Guardian P2B correcto. @@ -1328,43 +1344,43 @@ Debería obter esta información nas preferencias do navegador. GeoIPDatabase - - + + Unsupported database file size. Tamaño do ficheiro da base de datos non aceptado - + Metadata error: '%1' entry not found. Erro nos metadatos: non se atopou a entrada «%1». - + Metadata error: '%1' entry has invalid type. Erro nos metadatos: a entrada «%1» ten un tipo incorrecto. - + Unsupported database version: %1.%2 Versión da base de datos non aceptada: %1.%2 - + Unsupported IP version: %1 Versión de IP non aceptada: %1 - + Unsupported record size: %1 Tamaño de rexistro no aceptado: %1 - + Invalid database type: %1 Tipo de base de datos incorrecta: %1 - + Database corrupted: no data section found. Base de datos corrompida: non se atopou a sección dos datos. @@ -1397,9 +1413,8 @@ Debería obter esta información nas preferencias do navegador. Só unha ligazón por liña - Download local torrent - Descargar un torrent local + Descargar un torrent local @@ -1572,7 +1587,22 @@ Debería obter esta información nas preferencias do navegador. Inactivos - + + Save files to location: + Gardar os ficheiros na localización: + + + + Label: + Etiqueta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Descargado @@ -1582,6 +1612,11 @@ Debería obter esta información nas preferencias do navegador. Logout Saír da sesión + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Debería obter esta información nas preferencias do navegador. LineEdit - + Clear the text Borrar o texto @@ -1743,37 +1778,37 @@ Debería obter esta información nas preferencias do navegador. MainWindow - + &Edit &Editar - + &Tools Ferramen&tas - + &File &Ficheiro - + &Help &Axuda - + On Downloads &Done Ao rematar as &descargas - + &View &Ver - + &Options... &Opcións... @@ -1783,153 +1818,153 @@ Debería obter esta información nas preferencias do navegador. Continua&r - + Torrent &Creator &Creador de torrents - + Set Upload Limit... Estabelecer o límite de envío... - + Set Download Limit... Estabelecer o límite de descarga... - + Set Global Download Limit... Estabelecer o límite global de descarga... - + Set Global Upload Limit... Estabelecer o límite global de envío... - + Minimum Priority Prioridade mínima - + Top Priority Prioridade máxima - + Decrease Priority Disminuír a prioridade - + Increase Priority Aumentar a prioridade - - + + Alternative Speed Limits Límites alternativos de velocidade - + &Top Toolbar Barra &superior - + Display Top Toolbar Mostrar a barra superior - + S&peed in Title Bar &Velocidade na barra do título - + Show Transfer Speed in Title Bar Mostrar a velocidade de transferencia na barra do título - + &RSS Reader Lector &RSS - + Search &Engine Motor de &busca - + L&ock qBittorrent Bl&oquear o qBittorrent - + &Import Existing Torrent... &Importar un torrent existente... - + Import Torrent... Importar un torrent... - + Do&nate! D&oar! - + R&esume All Co&ntinuar todo - + &Log &Rexistro - + &Exit qBittorrent Saír do qBittorr&ent - + &Suspend System &Suspender o sistema - + &Hibernate System &Hibernar o sistema - + S&hutdown System Pe&char o sistema - + &Disabled &Desactivado - + &Statistics E&stadísticas - + Check for Updates Buscar actualizacións - + Check for Program Updates Buscar actualizacións do programa @@ -1939,77 +1974,72 @@ Debería obter esta información nas preferencias do navegador. &Sobre - Exit - Saír + Saír - + &Pause &Pausar - + &Delete &Borrar - + P&ause All P&ausar todo - + &Add Torrent File... Eng&adir un ficheiro torrent... - + Open Abrir - + E&xit &Saír - Options - Opcións + Opcións - Resume - Continuar + Continuar - Pause - Pausar + Pausar - Delete - Eliminar + Eliminar - + Open URL Abrir a URL - + &Documentation &Documentación - + Lock Bloquear - + Show Mostrar @@ -2020,22 +2050,21 @@ Debería obter esta información nas preferencias do navegador. Buscar actualizacións do programa - Lock qBittorrent - Bloquear o qBittorrent + Bloquear o qBittorrent - + Add Torrent &Link... Engadir &ligazón torrent... - + If you like qBittorrent, please donate! Se lle gusta o qBittorrent, por favor faga unha doazón! - + Execution Log Rexistro de execución @@ -2414,52 +2443,52 @@ Está seguro que desexa saír do qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. O DNS dinámico actualizouse correctamente. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Erro de DNS dinámico: o servizo non está dispoñíbel temporalmente, intentarase de novo dentro de 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Erro de DNS dinámico: o nome do servidor indicado non existe nesta conta específica. - + Dynamic DNS error: Invalid username/password. Erro de DNS dinámico: nome do usuario/contrasinal incorrectos. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinámico: o qBittorrent está na lista negra deste servizo, por favor informe deste erro en http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinámico: o servizo devolveu %1 , por favor informe deste erro en http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Erro de DNS dinámico: o nome do usuario foi bloqueado por un abuso. - + Dynamic DNS error: supplied domain name is invalid. Erro de DNS dinámico: o nome do dominio indicado non é correcto. - + Dynamic DNS error: supplied username is too short. Erro de DNS dinámico: o nome do dominio indicado é curto de máis. - + Dynamic DNS error: supplied password is too short. Erro de DNS dinámico: o contrasinal indicado é curto de máis. @@ -2467,17 +2496,17 @@ Está seguro que desexa saír do qBittorrent? Net::DownloadHandler - + I/O Error Erro de E/S - + The file size is %1. It exceeds the download limit of %2. O tamaño do ficheiro é %1. Supera o límite de descarga de %2. - + Unexpected redirect to magnet URI. Redireccionamento inesperado a un URI magnet. @@ -2485,1300 +2514,1300 @@ Está seguro que desexa saír do qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Cargouse a base de datos de GeoIP. TIpo: %1. Tempo de construción: %2. - - + + Couldn't load GeoIP database. Reason: %1 Non foi posíbel cargar a base de datos de GeoIP. Razón: %1 - - + + N/A N/D - + Asia/Pacific Region Rexión Asia/Pacífico - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emiratos Árabes Unidos - + Afghanistan Afganistán - + Antigua and Barbuda Antigua e Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antillas Holandesas - + Angola Angola - + Antarctica Antártida - + Argentina Arxentina - + American Samoa Samoa Americana - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaidjan - + Bosnia and Herzegovina Bosnia-Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Bélxica - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei Darussalam - + Bolivia Bolivia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Illa Bouvet - + Botswana Botswana - + Belarus Bielorrusia - + Belize Belize - + Canada Canadá - + Cocos (Keeling) Islands Illas Cocos (Keelings) - + Congo, The Democratic Republic of the República Democrática do Congo - + Central African Republic República Centro Africana - + Congo Congo - + Switzerland Suíza - + Cote D'Ivoire Costa do Marfil - + Cook Islands Illas Cook - + Chile Chile - + Cameroon Camerún - + China China - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + Christmas Island Illa de Nadal - + Cyprus Chipre - + Czech Republic República Checa - + Germany Alemaña - + Djibouti Djibuti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Alxeria - + Ecuador Ecuador - + Estonia Estonia - + Egypt Exipto - + Western Sahara Sahara Occidental - + Eritrea Eritrea - + Spain Estado Español - + Ethiopia Etiopía - + Finland Finlandia - + Fiji Fixi - + Falkland Islands (Malvinas) Illas Malvinas (Falkland) - + Micronesia, Federated States of Micronesia - + Faroe Islands Illas Faroe - + France Francia - + France, Metropolitan Francia, Metopolitana - + Gabon Gabón - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Xeorxia - + French Guiana Güiana Francesa - + Ghana Ghana - + Gibraltar Xibraltar - + Greenland Groenlandia - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guinea Ecuatorial - + Greece Grecia - + South Georgia and the South Sandwich Islands Illas Xeorxia e Sandwich do Sur - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Güiana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Illa Heard e Illas McDonald - + Honduras Honduras - + Croatia Croacia - + Haiti Haití - + Hungary Hungría - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Territorio Oceánico das Indias Británicas - + Iraq Iraq - + Iran, Islamic Republic of Irán - + Iceland Islandia - + Italy Italia - + Jamaica Xamaica - + Jordan Xordania - + Japan Xapón - + Kenya Kenia - + Kyrgyzstan Kirguizstán - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comoros - + Saint Kitts and Nevis Saint Kitts e Nevis - + Korea, Democratic People's Republic of República Popular Democrática de Korea - + Korea, Republic of República de Korea - + Kuwait Kuwait - + Cayman Islands Illas Caimán - + Kazakhstan Kazakhstán - + Lao People's Democratic Republic República Democrática Popular de Laos - + Lebanon Líbano - + Saint Lucia Santa Lucía - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luxemburgo - + Latvia Letonia - + Libyan Arab Jamahiriya Libia - + Morocco Marrocos - + Monaco Mónaco - + Moldova, Republic of Moldavia - + Madagascar Madagascar - + Marshall Islands Illas Marshall - + Macedonia Macedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - + Macau Macau - + Northern Mariana Islands Illas Marianas do Norte - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauricio - + Maldives Maldivas - + Malawi Malawi - + Mexico México - + Malaysia Malasia - + Mozambique Mozambique - + Namibia Namibia - + New Caledonia Nova Caledonia - + Niger Níxer - + Norfolk Island Illa Norfolk - + Nigeria Nixeria - + Nicaragua Nicaragua - + Netherlands Países Baixos - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Siria - + Oman Omán - + Panama Panamá - + Peru Perú - + French Polynesia Polinesia Francesa - + Papua New Guinea Papúa Nova Guinea - + Philippines Filipinas - + Pakistan Paquistán - + Poland Polonia - + Saint Pierre and Miquelon Saint Pierre e Miquelon - + Pitcairn Islands Illas Pitcairn - + Puerto Rico Puerto Rico - + Palestinian Territory Territorios Palestinos - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunión - + Romania Rumanía - + Russian Federation Federación Rusa - + Rwanda Ruanda - + Saudi Arabia Arabia Saudí - + Solomon Islands Illas Salomón - + Seychelles Seychelles - + Sudan Sudán - + Sweden Suecia - + Singapore Singapur - + Saint Helena Santa Helena - + Slovenia Eslovenia - + Svalbard and Jan Mayen Illas Svalbard e Jan Mayen - + Slovakia Eslovaquia - + Sierra Leone Serra Leoa - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe San Tomé e Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Siria - + Swaziland Swazilandia - + Turks and Caicos Islands Illas Turks e Caicos - + Chad Chad - + French Southern Territories Territorios Franceses do Sur - + Togo Togo - + Thailand Tailandia - + Tajikistan Tadjikistán - + Tokelau Tokelau - + Turkmenistan Turkmenistán - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor-Leste - + Turkey Turquía - + Trinidad and Tobago Trinidad e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Ucraína - + Uganda Uganda - + United States Minor Outlying Islands Illas Exteriores Menores dos Estados Unidos - + United States Estados Unidos - + Uruguay Uruguai - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Estado do Vaticano - + Saint Vincent and the Grenadines San Vicente e as Granadinas - + Venezuela Venezuela - + Virgin Islands, British Illas Virxes, británicas - + Virgin Islands, U.S. Illas Virxes, U.S.A. - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Iemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Suráfrica - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Proxy anónimo - + Satellite Provider Provedor de satélite - + Other Outro - + Aland Islands Illas Alands - + Guernsey Guernsey - + Isle of Man Illa de Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthelemy - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. Non foi posíbel descomprimir o ficheiro da base de datos de GeoIP. - + Couldn't save downloaded GeoIP database file. Non foi posíbel gardar o ficheiro da base de datos de GeoIP. - + Successfully updated GeoIP database. A base de datos de GeoIP actualizouse correctamente. - + Couldn't download GeoIP database file. Reason: %1 Non foi posíbel descargar o ficheiro coa base de datos de GeoIP. Razón: %1 @@ -3786,12 +3815,12 @@ Está seguro que desexa saír do qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Soporte UPnP / NAT-PMP [ACTIVADO] - + UPnP / NAT-PMP support [OFF] Soporte UPnP / NAT-PMP [APAGADO] @@ -3799,206 +3828,265 @@ Está seguro que desexa saír do qBittorrent? Net::Smtp - + Email Notification Error: Erro na notificación por correo-e: + + PeerInfo + + + interested(local) and choked(peer) + interesado(local) e rexeitado(par) + + + + interested(local) and unchoked(peer) + interesado(local) e aceptado(par) + + + + interested(peer) and choked(local) + interesado(par) e rexeitado(local) + + + + interested(peer) and unchoked(local) + interesado(par) e aceptado(local) + + + + optimistic unchoke + aceptado optimista + + + + peer snubbed + par desbotado + + + + incoming connection + conexión entrante + + + + not interested(local) and unchoked(peer) + non interesado(local) e aceptado(par) + + + + not interested(peer) and unchoked(local) + non interesado(par) e aceptado(local) + + + + peer from PEX + par desde PEX + + + + peer from DHT + par de DHT + + + + encrypted traffic + tráfico cifrado + + + + encrypted handshake + handshake cifrado + + + + peer from LSD + par desde LSD + + PeerListWidget - + IP IP - + Port Porto - + Flags Etiquetas - + Connection Conexión - + Client i.e.: Client application Cliente - + Progress i.e: % downloaded Progreso - + Down Speed i.e: Download speed V. de descarga - + Up Speed i.e: Upload speed V. de envío - + Downloaded i.e: total data downloaded Descargado - + Uploaded i.e: total data uploaded Enviado - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevancia - + Add a new peer... Engadir un par novo... - + Copy selected Copiar selección - - + + Ban peer permanently Bloquear este par pemanentemente - + Manually adding peer '%1'... Engadindo manualmente o par %1... - + The peer '%1' could not be added to this torrent. Non foi posíbel engadir o par %1 a este torrent. - + Manually banning peer '%1'... Bloqueando manualmente o par %1... - + Peer addition Adición de pares - + Some peers could not be added. Check the Log for details. Non foi posíbel engadir algúns pares. Mira o rexistro para obter máis información. - + The peers were added to this torrent. Engadíronse os pares a este torrent. - + Are you sure you want to ban permanently the selected peers? Está seguro que desexa bloquear permantemente os pares seleccionados? - + &Yes &Si - + &No &Non - interested(local) and choked(peer) - interesado(local) e rexeitado(par) + interesado(local) e rexeitado(par) - interested(local) and unchoked(peer) - interesado(local) e aceptado(par) + interesado(local) e aceptado(par) - interested(peer) and choked(local) - interesado(par) e rexeitado(local) + interesado(par) e rexeitado(local) - interested(peer) and unchoked(local) - interesado(par) e aceptado(local) + interesado(par) e aceptado(local) - optimistic unchoke - aceptado optimista + aceptado optimista - peer snubbed - par desbotado + par desbotado - incoming connection - conexión entrante + conexión entrante - not interested(local) and unchoked(peer) - non interesado(local) e aceptado(par) + non interesado(local) e aceptado(par) - not interested(peer) and unchoked(local) - non interesado(par) e aceptado(local) + non interesado(par) e aceptado(local) - peer from PEX - par desde PEX + par desde PEX - peer from DHT - par de DHT + par de DHT - encrypted traffic - tráfico cifrado + tráfico cifrado - encrypted handshake - handshake cifrado + handshake cifrado - peer from LSD - par desde LSD + par desde LSD @@ -4772,17 +4860,17 @@ Está seguro que desexa saír do qBittorrent? Ruta do filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Detectouse unha saída incorrecta do programa. Usando os ficheiros de reserva para restabelecer os axustes. - + An access error occurred while trying to write the configuration file. Produciuse un erro de acceso cando se tentaba escribir o ficheiro de configuración. - + A format error occurred while trying to write the configuration file. Produciuse un erro de formato cando se tentaba escribir o ficheiro de configuración. @@ -4888,299 +4976,298 @@ Está seguro que desexa saír do qBittorrent? PropertiesWidget - + Downloaded: Descargado: - + Availability: Dispoñíbel: - + Progress: Progreso: - + Transfer Transferencia - + Time Active: Time (duration) the torrent is active (not paused) Tempo en activo: - + ETA: Tempo restante: - + Uploaded: Enviado: - + Seeds: Sementes: - + Download Speed: Velocidade de descarga: - + Upload Speed: Velocidade de envío: - + Peers: Pares: - + Download Limit: Límite da descarga: - + Upload Limit: Límite do envío: - + Wasted: Desbotado: - + Connections: Conexións: - + Information Información - + Comment: Comentario: - Torrent content: - Contido do torrent: + Contido do torrent: - + Select All Seleccionar todo - + Select None Non seleccionar nada - + Normal Normal - + High Alta - + Share Ratio: Taxa de compartición: - + Reannounce In: Anunciar de novo en: - + Last Seen Complete: Visto completo por última vez: - + Total Size: Tamaño total: - + Pieces: Anacos: - + Created By: Creado por: - + Added On: Engadido o: - + Completed On: Completado o: - + Created On: Creado o: - + Torrent Hash: Hash do torrent: - + Save Path: Ruta: - + Maximum Máxima - - + + Do not download Non descargar - + Never Nunca - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (ten %3) - + %1 (%2 this session) %1 (%2 esta sesión) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (sementou durante %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 máx.) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 media) - + Open Abrir - + Open Containing Folder Abrir o cartafol que o contén - + Rename... Cambiar o nome... - + Priority Prioridade - + New Web seed Nova semente web - + Remove Web seed Retirar semente web - + Copy Web seed URL Copiar URL da semente web - + Edit Web seed URL Editar URL da semente web - + Rename the file Cambiar o nome do ficheiro - + New name: Nome novo: - - + + The file could not be renamed Non foi posíbel cambiar o nome do ficheiro - + This file name contains forbidden characters, please choose a different one. Este nome de ficheiro contén caracteres prohibidos, escolla un nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome de ficheiro xa existe neste cartafol. Use un nome diferente. - + The folder could not be renamed Non foi posíbel cambiar o nome do cartafol - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Está seguro que desexa saír do qBittorrent? Ficheiros dos filtros... - + New URL seed New HTTP source Nova semente desde unha url - + New URL seed: Nova semente desde unha url: - - + + This URL seed is already in the list. Esta semente desde unha url xa está na lista. - + Web seed editing Edición da semente web - + Web seed URL: URL da semente web: @@ -5225,19 +5312,19 @@ Está seguro que desexa saír do qBittorrent? O seu enderezo IP bloqueouse despois de moitos intentos de autenticación. - + Error: '%1' is not a valid torrent file. Erro: «%1» non é un ficheiro torrent correcto. - + Error: Could not add torrent to session. Erro: Non foi posíbel engadir o torrent á sesión. - + I/O Error: Could not create temporary file. Erro de E/S: Non foi posíbel crear o ficheiro temporal. @@ -5390,138 +5477,138 @@ Non se mostrarán máis avisos. [qBittorrent] rematou a descarga de %1 - + The remote host name was not found (invalid hostname) Non se encontrou o nome do servidor remoto (nome incorrecto) - + The operation was canceled Cancelouse a operación - + The remote server closed the connection prematurely, before the entire reply was received and processed O servidor remoto pechou a conexión prematuramente, antes de que se recibise e procesase a resposta completa - + The connection to the remote server timed out Excedeuse o tempo para conectar co servidor remoto - + SSL/TLS handshake failed Produciuse un fallo no saúdo do SSL/TLS - + The remote server refused the connection O servidor remoto rexeitou a conexion - + The connection to the proxy server was refused O servidor proxy rexeitou a conexión - + The proxy server closed the connection prematurely O servidor proxy pechou a conexión prematuramente - + The proxy host name was not found Non se encontrou o nome do servidor proxy - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Excedeuse o tempo para conectar co proxy ou este non respondeu en tempo á solicitude enviada - + The proxy requires authentication in order to honor the request but did not accept any credentials offered O proxy require autenticación para satisfacer a solicitude pero non aceptou as credenciais ofrecidas - + The access to the remote content was denied (401) Denegouse o acceso ao contido remoto (401) - + The operation requested on the remote content is not permitted Non se permite a operación solicitada no contido remoto - + The remote content was not found at the server (404) Non se encontrou o contido remoto no servidor (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted O servidor remoto require autenticacion para servir o contido pero non aceptou as credenciais enviadas - + The Network Access API cannot honor the request because the protocol is not known A API de acceso á rede non pode responder á solicitude porque o protocolo é descoñecido - + The requested operation is invalid for this protocol A operación solicitada é incorrecta para este protocolo - + An unknown network-related error was detected Detectouse un erro descoñecido relacionado coa rede - + An unknown proxy-related error was detected Detectouse un erro descoñecido relacionado co proxy - + An unknown error related to the remote content was detected Detectouse un erro descoñecido relacionado co contido remoto - + A breakdown in protocol was detected Detectouse unha ruptura no protocolo - + Unknown error Erro descoñecido - - + + Upgrade Anovar - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Actualizou desde unha versión antiga que gardaba as cousas dun xeito distinto. Debe migrar ao novo sistema de gardado. Non lle será posíbel usar unha versión anterior á v3.3.0 de novo. Desexa continuar? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Actualizou desde unha versión antiga que gardaba as cousas dun xeito distinto. Debe migrar ao novo sistema de gardado. Se continúa, non lle será posíbel usar unha versión anterior á v3.3.0 de novo. - + Couldn't migrate torrent with hash: %1 Non foi posíbel migrar o torrent co hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Non foi posíbel mirgrar o torrent. O nome do ficheiro co resumo rápido é incorrecto: %1 @@ -5710,12 +5797,12 @@ Non se mostrarán máis avisos. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. - + Automatically downloading '%1' torrent from '%2' RSS feed... Descargando automaticamente %1 torrent(s) desde %2 fonte(s) RSS... @@ -5759,17 +5846,17 @@ Non se mostrarán máis avisos. ScanFoldersModel - + Watched Folder Cartafol explorado - + Download here Descargar aquí - + Download path Ruta de descarga @@ -7829,11 +7916,11 @@ Desactiváronse estes engadidos. fsutils - - - - - + + + + + Downloads Descargas @@ -7841,103 +7928,103 @@ Desactiváronse estes engadidos. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Non se detectou Python - + Python version: %1 Versión de Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Descoñecido - + qBittorrent will shutdown the computer now because all downloads are complete. O qBittorrent vai apagar o computador porque remataron todas as descargas. - + < 1m < 1 minute < 1 m - + %1m e.g: 10minutes %1 m - + Working Funcionando - + Updating... Actualizando... - + Not working Inactivo - + Not contacted yet Aínda sen contactar diff --git a/src/lang/qbittorrent_he.ts b/src/lang/qbittorrent_he.ts index f42388762..c69bcbc84 100644 --- a/src/lang/qbittorrent_he.ts +++ b/src/lang/qbittorrent_he.ts @@ -125,217 +125,222 @@ דילוג על בדיקת גיבוב - + + Set as default label + + + + Torrent Information מידע על טורנט - + Size: גודל: - + Comment: הערה: - + Date: תאריך: - + Info Hash: - + Normal רגיל - + High גבוה - + Maximum מקסימום - + Do not download לא להוריד - - + + I/O Error שגיאת I/O - + The torrent file does not exist. קובץ הטורנט אינו קיים. - + Invalid torrent טורנט לא זמין - + Failed to load the torrent: %1 טעינת הטורנט %1 נכשלה - - + + Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available לא זמין - + Invalid magnet link קישור מגנטי לא תקין - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized הקישור המגנטי לא זוהה - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link קישור מגנטי - + Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path בחירת נתיב שמירה - + Rename the file שינוי שם הקובץ - + New name: שם חדש: - - + + The file could not be renamed לא הייתה אפשרות לשנות את שם הקובץ - + This file name contains forbidden characters, please choose a different one. שם הקובץ מכיל תוים לא חוקיים, נא לבחור שם שונה. - - + + This name is already in use in this folder. Please use a different name. שם הקובץ כבר נמצא בשימוש בתיקייה זו. נא לבחור משהו אחר. - + The folder could not be renamed לא ניתן לשנות את שם התיקייה - + Rename... שינוי שם... - + Priority עדיפות - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -427,9 +432,8 @@ פתור שמות מקורות מארחים - Maximum number of half-open connections [0: Disabled] - מספר מרבי של חיבורים חצי פתוחים [0: לא זמין] + מספר מרבי של חיבורים חצי פתוחים [0: לא זמין] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number מסנן ה IP שסופק נותח בהצלחה: %1 כללים הוחלו. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. קישור אחד בלבד לכל שורה - Download local torrent - הורדת טורנט מקומי + הורדת טורנט מקומי @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + שמירת הקבצים למיקום: + + + + Label: + תוית: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? ירד @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text ניקוי טקסט @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit ע&ריכה - + &Tools &כלים - + &File &קובץ - + &Help &עזרה - + On Downloads &Done - + &View &תצוגה - + &Options... &אפשרויות... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &חידוש - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All חי&דוש הכל - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &אודות - Exit - יציאה + יציאה - + &Pause ה&שהיה - + &Delete &מחק - + P&ause All השהה ה&כל - + &Add Torrent File... - + Open - + E&xit - - Options - אפשרויות - - - - Resume - חידוש - - - - Pause - השהייה - - - - Delete - מחיקה - - - + Open URL - + &Documentation &מסמכים - + Lock - + Show הצגה @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. - Lock qBittorrent - נעילת qBittorrent + נעילת qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! אם אהבתם את qBittorrent, בבקשה לתרום! - + Execution Log דוח ביצוע @@ -2407,52 +2398,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2460,17 +2451,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error שגיאת I/O - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2478,1300 +2469,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France צרפת - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece יוון - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3779,12 +3770,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3792,207 +3783,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port - + Flags - + Connection חיבור - + Client i.e.: Client application לקוח - + Progress i.e: % downloaded תהליך - + Down Speed i.e: Download speed מהירות הורדה - + Up Speed i.e: Upload speed מהירות העלאה - + Downloaded i.e: total data downloaded הורד - + Uploaded i.e: total data uploaded הועלה - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... הוספת עמית חדש - + Copy selected - - + + Ban peer permanently חסימת עמית באופן קבוע - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition הוספת עמית - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? האם אתם בטוחים שברצונכם לחסום באופן קבוע את העמיתים הנבחרים? - + &Yes &כן - + &No &לא - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4765,17 +4759,17 @@ Are you sure you want to quit qBittorrent? סנן נתיב ( .dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4881,299 +4875,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: ירד: - + Availability: זמינות: - + Progress: תהליך: - + Transfer העברה - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: הועלה: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: בוזבז: - + Connections: חיבורים: - + Information מידע - + Comment: הערה: - Torrent content: - תוכן הטורנט: + תוכן הטורנט: - + Select All בחירת הכל - + Select None לא לבחור כלום - + Normal רגיל - + High גבוה - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum מקסימום - - + + Do not download לא להוריד - + Never אף פעם - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... שינוי שם... - + Priority עדיפות - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file שינוי שם הקובץ - + New name: שם חדש: - - + + The file could not be renamed לא היתה אפשרות לשנות את שם הקובץ - + This file name contains forbidden characters, please choose a different one. שם הקובץ מכיל תוים לא חוקיים, נא לבחור שם שונה. - - + + This name is already in use in this folder. Please use a different name. שם זה כבר נמצא בשימוש בתיקייה זו. נא לבחור שם שונה. - + The folder could not be renamed לא הייתה אפשרות לשנות את שם התיקייה - + qBittorrent qBittorrent @@ -5183,29 +5176,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5218,18 +5211,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5380,138 +5373,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5700,12 +5693,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5749,17 +5742,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder תיקייה במעקב - + Download here הורדה לכאן - + Download path @@ -7817,11 +7810,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads הורדות @@ -7829,103 +7822,103 @@ Those plugins were disabled. misc - + B bytes בייט - + KiB kibibytes (1024 bytes) קב - + MiB mebibytes (1024 kibibytes) מב - + GiB gibibytes (1024 mibibytes) גיגה בייט - + TiB tebibytes (1024 gibibytes) טרה בייט - + Python not detected - + Python version: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1 ש %2 ד - + %1d %2h e.g: 2days 10hours %1ימים %2 ש - + Unknown Unknown (size) לא ידוע - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent יכבה כעת את המחשב היות שכל ההורדות הסתיימו. - + < 1m < 1 minute פחות מדקה - + %1m e.g: 10minutes %1 דקות - + Working פועל - + Updating... מעדכן... - + Not working לא פועל - + Not contacted yet לא מחובר עדיין diff --git a/src/lang/qbittorrent_hi_IN.ts b/src/lang/qbittorrent_hi_IN.ts index 22b979a66..9a3e13168 100644 --- a/src/lang/qbittorrent_hi_IN.ts +++ b/src/lang/qbittorrent_hi_IN.ts @@ -125,217 +125,222 @@ हैश चेक छोड़ें - + + Set as default label + + + + Torrent Information टाॅरेंट विवरण - + Size: साईज: - + Comment: टिप्पणी: - + Date: तारीख: - + Info Hash: - + Normal साधारण - + High अधिक - + Maximum सर्वाधिक - + Do not download डाउनलोड नहीं करें - - + + I/O Error I/O त्रुटि - + The torrent file does not exist. यह टाॅरेंट फाइल मौजूद नहीं है. - + Invalid torrent अमान्य टाॅरेंट - + Failed to load the torrent: %1 टाॅरेंट :%1लोड होने में विफल है - - + + Already in download list डाउनलोड सूची में पहले से ही है - + Free disk space: %1 - + Not Available This comment is unavailable अनुपलब्ध - + Not Available This date is unavailable अनुपलब्ध - + Not available अनुपलब्ध - + Invalid magnet link अमान्य मैगनेट लिंक - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized यह मैगनेट लिंक अभिज्ञात नहीं हुआ - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link मैगनेट लिंक - + Retrieving metadata... मेटाडाटा प्राप्त हो रहा है... - + Not Available This size is unavailable. अनुपलब्ध - - - + + + Choose save path सहेजने हेतु पथ चुनें - + Rename the file फाइल का पुन:नामकरण करें - + New name: नया नाम: - - + + The file could not be renamed इस फाइल का पुन:नामकरण नहीं हो सकता - + This file name contains forbidden characters, please choose a different one. इस फाइल के नाम में वर्जित वर्ण हैं, कृपया दूसरा नाम चुनें. - - + + This name is already in use in this folder. Please use a different name. यह नाम पहले से ही इसी फोल्डर के प्रयोग मे है, कृपया दूसरा नाम चुनें. - + The folder could not be renamed इस फोल्डर का पुन:नामकरण नहीं हो सकता - + Rename... पुन:नामकरण... - + Priority प्राथमिकता - + Invalid metadata - + Parsing metadata... मेटाडाटा का पदभंजन हो रहा है... - + Metadata retrieval complete मेटाडाटा प्राप्ति पुर्ण - + Download Error @@ -427,9 +432,8 @@ सहकर्मी के होस्टनेम को दिखायें - Maximum number of half-open connections [0: Disabled] - हाॅफ-ओपॅन कनेक्शन्स की अधिकतम संख्या [0: निर्योग्य] + हाॅफ-ओपॅन कनेक्शन्स की अधिकतम संख्या [0: निर्योग्य] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. एक पंक्ति में केवल एक लिंक - Download local torrent - लोकल टाॅरेंट डाउनलोड करें + लोकल टाॅरेंट डाउनलोड करें @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + फाइलों को इस स्थान पर सहेंजे: + + + + Label: + चिप्पी: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? डाउनलोडेड @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text टेक्स्ट रद्द करें @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &संपादन - + &Tools &औजार - + &File &फाइल - + &Help &सहायता - + On Downloads &Done - + &View &देंखे - + &Options... &विकल्प... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &प्रारम्भ - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All प्रा&रम्भ - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &बारे मेॅ - Exit - निकास + निकास - + &Pause &रूकें - + &Delete &रद्द करें - + P&ause All सबको रो&कें - + &Add Torrent File... - + Open - + E&xit - - Options - - - - - Resume - पुन: आरंभ करें - - - - Pause - रोकें - - - - Delete - रद्द करें - - - + Open URL - + &Documentation &दस्तावेज़ीकरण - + Lock - + Show दिखायें @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. कार्यक्रम अद्यतन के लिए जाँच करें - Lock qBittorrent - qBittorrent पर ताला लगायें + qBittorrent पर ताला लगायें - + Add Torrent &Link... - + If you like qBittorrent, please donate! यदि आप qBittorrent पसंद करते हैं, तो कृपया दान करें! - + Execution Log क्रियान्वयन दैनिकी @@ -2406,52 +2397,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2459,17 +2450,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error I/O त्रुटि - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2477,1300 +2468,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France फ्रांस - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece ग्रीस - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3778,12 +3769,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3791,207 +3782,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP आई पी - + Port द्वार - + Flags निशानियाँ - + Connection संबंध - + Client i.e.: Client application उपभोक्ता - + Progress i.e: % downloaded प्रगति - + Down Speed i.e: Download speed डाउनलोड गति - + Up Speed i.e: Upload speed अपलोड गति - + Downloaded i.e: total data downloaded डाउनलोडेड - + Uploaded i.e: total data uploaded अपलोडेड - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. अनुकूलता - + Add a new peer... नया सहकर्मी जोड़े... - + Copy selected - - + + Ban peer permanently सहकर्मी को स्थायी रुप से प्रतिबंधित करें - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition सहकर्मी जोड़े - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? क्या आप निश्चित है कि आप चयनित सहकर्मी को स्थायी रुप से प्रतिबंधित करना चाहते हैं? - + &Yes &हाँ - + &No &नहीँ - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4764,17 +4758,17 @@ Are you sure you want to quit qBittorrent? - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4880,299 +4874,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: डाउनलोडेड: - + Availability: उपलब्धता: - + Progress: प्रगति: - + Transfer अंतरण - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: अपलोडेड: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: बर्बाद: - + Connections: कनेक्शन्स: - + Information सूचना - + Comment: टिप्पणी: - Torrent content: - टाॅरेंट सामग्री: + टाॅरेंट सामग्री: - + Select All सबको चुनें - + Select None किसी को न चुनें - + Normal साधारण - + High अधिक - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum सर्वाधिक - - + + Do not download डाउनलोड नहीं करें - + Never कभी नहीँ - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... पुन:नामकरण... - + Priority प्राथमिकता - + New Web seed नया वेब स्रोत - + Remove Web seed वेब स्रोत को रद्द करें - + Copy Web seed URL वेब स्रोत URL की प्रतिलिपि बनायें - + Edit Web seed URL वेब स्रोत URL का संपादन करें - + Rename the file फाइल का पुन:नामकरण करें - + New name: नया नाम: - - + + The file could not be renamed इस फाइल का पुन:नामकरण नहीं हो सकता - + This file name contains forbidden characters, please choose a different one. इस फाइल के नाम में वर्जित वर्ण हैं, कृपया दूसरा नाम चुनें. - - + + This name is already in use in this folder. Please use a different name. यह नाम पहले से ही इसी फोल्डर के प्रयोग मे है, कृपया दूसरा नाम चुनें. - + The folder could not be renamed इस फोल्डर का पुन:नामकरण नहीं हो सकता - + qBittorrent qBittorrent @@ -5182,29 +5175,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing वेब स्रोत का संपादन - + Web seed URL: वेब स्रोत URL: @@ -5217,18 +5210,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5379,138 +5372,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5699,12 +5692,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5748,17 +5741,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder देखे हुए फोल्डर - + Download here यहाँ डाउनलोड करें - + Download path @@ -7816,11 +7809,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads डाउनलोड्स @@ -7828,103 +7821,103 @@ Those plugins were disabled. misc - + B bytes बाइट्स - + KiB kibibytes (1024 bytes) किबिबाइट्स - + MiB mebibytes (1024 kibibytes) मेबिबाइट्स - + GiB gibibytes (1024 mibibytes) गिबिबाइट्स - + TiB tebibytes (1024 gibibytes) टेबिबाइट्स - + Python not detected - + Python version: %1 - + /s per second /सेकंड - + %1h %2m e.g: 3hours 5minutes %1घण्टा %2मिनट - + %1d %2h e.g: 2days 10hours %1दिन %2घण्टा - + Unknown Unknown (size) अज्ञात - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent अब कम्प्युटर बंद करेगा क्योंकि सारे डाउनलोड्स पुर्ण हो गये है. - + < 1m < 1 minute < 1 मिनट - + %1m e.g: 10minutes %1मिनट - + Working कार्यान्वित - + Updating... नवीनतम हो रहा हैं... - + Not working कार्यान्वित नहीँ है - + Not contacted yet अभी तक संपर्क नहीं हुआ diff --git a/src/lang/qbittorrent_hr.ts b/src/lang/qbittorrent_hr.ts index 95490bc75..06c5d565b 100644 --- a/src/lang/qbittorrent_hr.ts +++ b/src/lang/qbittorrent_hr.ts @@ -125,217 +125,222 @@ Preskoči provjeru smjese - + + Set as default label + + + + Torrent Information Informacije o torrentu - + Size: Veličina: - + Comment: Komentar: - + Date: Datum: - + Info Hash: Info o smjesi: - + Normal Uobičajen - + High Visok - + Maximum Najviši - + Do not download Ne preuzimaj - - + + I/O Error I/O greška - + The torrent file does not exist. Torrent datoteka ne postoji. - + Invalid torrent Neispravan torrent - + Failed to load the torrent: %1 Neuspješno učitavanje torrenta: %1 - - + + Already in download list Već je na popisu preuzimanja - + Free disk space: %1 - + Not Available This comment is unavailable Nije dostupno - + Not Available This date is unavailable Nije dostupno - + Not available Nije dostupan - + Invalid magnet link Nesispravan magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Ovaj magnet link nije prepoznat - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Preuzimaju se meta-podaci... - + Not Available This size is unavailable. Nije dostupno - - - + + + Choose save path Izaberite putanju spremanja - + Rename the file Preimenuj datoteku - + New name: Novo ime: - - + + The file could not be renamed Datoteku nije moguće preimenovati - + This file name contains forbidden characters, please choose a different one. Ovo ime datoteke sadrži zabranjene znakove. Izaberite druge. - - + + This name is already in use in this folder. Please use a different name. Ime se već koristi u toj mapi. Koristite drugo ime. - + The folder could not be renamed Mapu nije moguće preimenovati - + Rename... Preimenuj ... - + Priority Prioritet - + Invalid metadata - + Parsing metadata... Parsaju se meta podatci... - + Metadata retrieval complete Preuzimanje meta podataka dovršeno - + Download Error @@ -427,9 +432,8 @@ Razrješi imena peer hostova - Maximum number of half-open connections [0: Disabled] - Najveći broj poluotvorenih veza [0: Disabled] + Najveći broj poluotvorenih veza [0: Disabled] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Spremi sažetak intervala podataka + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspješno razrješen dani IP filter: Primjenjena su %1 pravila. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Samo jedan link po liniji - Download local torrent - Preuzmi lokalni torent + Preuzmi lokalni torent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Spremi datoteke ovdje: + + + + Label: + Oznaka: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Preuzeto @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Izbriši tekst @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit Ur&edi - + &Tools Ala&ti - + &File &Datoteka - + &Help &Pomoć - + On Downloads &Done - + &View Po&gled - + &Options... &Opcije ... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. Nastavi - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Nastavi sve - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,72 @@ You should get this information from your Web browser preferences. &O - Exit - Izlaz + Izlaz - + &Pause &Pauziraj - + &Delete Iz&briši - + P&ause All P&auziraj sve - + &Add Torrent File... - + Open Otvori - + E&xit - Options - Opcije + Opcije - Resume - Nastavi + Nastavi - Pause - Pauziraj + Pauziraj - Delete - Izbriši + Izbriši - + Open URL Otvori URL - + &Documentation &Dokumentacija - + Lock Zaključaj - + Show Prikaži @@ -2019,22 +2027,21 @@ You should get this information from your Web browser preferences. Provjeri ažuriranja - Lock qBittorrent - Zaključaj qBittorrent + Zaključaj qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Ako vam se sviđa qBittorrent donirajte! - + Execution Log Dnevnik izvršavanja @@ -2409,52 +2416,52 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2462,17 +2469,17 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::DownloadHandler - + I/O Error I/O greška - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2480,1300 +2487,1300 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Francuska - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grčka - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3781,12 +3788,12 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3794,206 +3801,265 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + zainteresiran(lokalno) i zagušen(peer) + + + + interested(local) and unchoked(peer) + zainteresiran(lokalno) i nezagušen(peer) + + + + interested(peer) and choked(local) + zainteresiran(peer) i zagušen(lokalno) + + + + interested(peer) and unchoked(local) + zainteresiran(peer) i nezagušen(lokalno) + + + + optimistic unchoke + optimistično nezagušen + + + + peer snubbed + prekoren peer + + + + incoming connection + dolazna veza + + + + not interested(local) and unchoked(peer) + nezainteresiran(lokalno) i nezagušen(peer) + + + + not interested(peer) and unchoked(local) + nezainteresiran(peer) i nezagušen(lokalno) + + + + peer from PEX + peer s PEX-a + + + + peer from DHT + peer s DHT-a + + + + encrypted traffic + kriptiran promet + + + + encrypted handshake + kriptirano usklađivanje + + + + peer from LSD + peer s LSD-a + + PeerListWidget - + IP IP - + Port Port - + Flags Zastave - + Connection Spajanje - + Client i.e.: Client application Klijent - + Progress i.e: % downloaded Napredak - + Down Speed i.e: Download speed Brzina preuzimanja - + Up Speed i.e: Upload speed Brzina slanja - + Downloaded i.e: total data downloaded Preuzeto - + Uploaded i.e: total data uploaded Poslano - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevantnost - + Add a new peer... Dodaj novi peer ... - + Copy selected Kopiraj odabrano - - + + Ban peer permanently Trajno isključi peer - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Dodavanje peerova - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Jeste li sigurni da želite trajno isključiti odabrane peerove? - + &Yes &Da - + &No &Ne - interested(local) and choked(peer) - zainteresiran(lokalno) i zagušen(peer) + zainteresiran(lokalno) i zagušen(peer) - interested(local) and unchoked(peer) - zainteresiran(lokalno) i nezagušen(peer) + zainteresiran(lokalno) i nezagušen(peer) - interested(peer) and choked(local) - zainteresiran(peer) i zagušen(lokalno) + zainteresiran(peer) i zagušen(lokalno) - interested(peer) and unchoked(local) - zainteresiran(peer) i nezagušen(lokalno) + zainteresiran(peer) i nezagušen(lokalno) - optimistic unchoke - optimistično nezagušen + optimistično nezagušen - peer snubbed - prekoren peer + prekoren peer - incoming connection - dolazna veza + dolazna veza - not interested(local) and unchoked(peer) - nezainteresiran(lokalno) i nezagušen(peer) + nezainteresiran(lokalno) i nezagušen(peer) - not interested(peer) and unchoked(local) - nezainteresiran(peer) i nezagušen(lokalno) + nezainteresiran(peer) i nezagušen(lokalno) - peer from PEX - peer s PEX-a + peer s PEX-a - peer from DHT - peer s DHT-a + peer s DHT-a - encrypted traffic - kriptiran promet + kriptiran promet - encrypted handshake - kriptirano usklađivanje + kriptirano usklađivanje - peer from LSD - peer s LSD-a + peer s LSD-a @@ -4767,17 +4833,17 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Putanja filtera (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4883,299 +4949,298 @@ Jeste li sigurni da želite zatvoriti qBittorrent? PropertiesWidget - + Downloaded: Preuzeto: - + Availability: Dostupnost: - + Progress: Napredak: - + Transfer Transfer - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Poslano: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Izgubljeno: - + Connections: Spajanja: - + Information Informacija - + Comment: Komentar: - Torrent content: - Sadržaj torrenta: + Sadržaj torrenta: - + Select All Odaberi sve - + Select None Ne odaberi ništa - + Normal Uobičajen - + High Visok - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Najviši - - + + Do not download Ne preuzimaj - + Never Nikad - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Otvori - + Open Containing Folder Otvori mapu u kojoj se nalazi - + Rename... Preimenuj ... - + Priority Prioritet - + New Web seed Novi web seed - + Remove Web seed Ukloni web seed - + Copy Web seed URL Kopiraj URL web seeda - + Edit Web seed URL Uredi URL web seeda - + Rename the file Preimenuj ovu datoteku - + New name: Novo ime: - - + + The file could not be renamed Datoteka se ne može preimenovati - + This file name contains forbidden characters, please choose a different one. Ovo ime datoteke sadrži zabranjene znakove. Izaberite druge. - - + + This name is already in use in this folder. Please use a different name. Ovo ime već se koristi u toj mapi. Koristite drugo. - + The folder could not be renamed Mapa se ne može preimenovati - + qBittorrent qBittorrent @@ -5185,29 +5250,29 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Filtriraj datoteke... - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Uređivanje web seeda - + Web seed URL: URL web seeda: @@ -5220,18 +5285,18 @@ Jeste li sigurni da želite zatvoriti qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5382,138 +5447,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5702,12 +5767,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5751,17 +5816,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Pregledana mapa - + Download here Preuzmi ovdje - + Download path @@ -7819,11 +7884,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Preuzimanja @@ -7831,103 +7896,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1s %2m - + %1d %2h e.g: 2days 10hours %1d %2s - + Unknown Unknown (size) Nije poznato - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent će sada isključiti računalo jer su sva preuzimanja završila. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Radi - + Updating... Ažuriranje ... - + Not working Ne radi - + Not contacted yet Još nije kontaktirano diff --git a/src/lang/qbittorrent_hu.ts b/src/lang/qbittorrent_hu.ts index a0f1e8a59..d7bb50120 100644 --- a/src/lang/qbittorrent_hu.ts +++ b/src/lang/qbittorrent_hu.ts @@ -125,217 +125,222 @@ Újraellenőrzés kihagyása - + + Set as default label + + + + Torrent Information Torrent Információ - + Size: Méret: - + Comment: Megjegyzés: - + Date: Dátum: - + Info Hash: Hash információ - + Normal Normál - + High Magas - + Maximum Maximum - + Do not download Mellőzés - - + + I/O Error I/O Hiba - + The torrent file does not exist. A torrent fájl nem létezik. - + Invalid torrent Érvénytelen torrent - + Failed to load the torrent: %1 Nem sikerült betölteni a torrentet: %1 - - + + Already in download list Már a letöltési listában van - + Free disk space: %1 Szabad lemezterület: %1 - + Not Available This comment is unavailable Nem elérhető - + Not Available This date is unavailable Nem elérhető - + Not available Nem elérhető - + Invalid magnet link Érvénytelen magnet link - + Torrent is already in download list. Trackers were merged. A torrent már szerepel a letöltések között. A trackerek egyesítésre kerültek. - - + + Cannot add torrent Torrentet nem lehet hozzáadni - + Cannot add this torrent. Perhaps it is already in adding state. Nem lehet hozzáadni ezt a torrentet. Talán már hozzáadási állapotban van. - + This magnet link was not recognized A magnet linket nem sikerült felismerni - + Magnet link is already in download list. Trackers were merged. A magnet link már szerepel a letöltések között. A trackerek egyesítésre kerültek. - + Cannot add this torrent. Perhaps it is already in adding. Nem lehet hozzáadni ezt a torrentet. Talán már hozzáadásban van. - + Magnet link Magnet link - + Retrieving metadata... Metadata letöltése... - + Not Available This size is unavailable. Nem elérhető - - - + + + Choose save path Mentési útvonal választása - + Rename the file Fájl átnevezése - + New name: Új név: - - + + The file could not be renamed Nem sikerült átnevezni a fájlt - + This file name contains forbidden characters, please choose a different one. Ez a fájlnév tiltott karaktereket tartalmaz, kérlek válassz egy másikat. - - + + This name is already in use in this folder. Please use a different name. Ez a név már használatban van ebben a mappában. Kérlek válassz másik nevet. - + The folder could not be renamed Nem sikerült átnevezni a mappát - + Rename... Átnevezés... - + Priority Priorítás - + Invalid metadata Érvénytelen metadata - + Parsing metadata... Metadata értelmezése... - + Metadata retrieval complete Metadata sikeresen letöltve - + Download Error Letöltési hiba @@ -427,9 +432,8 @@ Host nevek feloldása - Maximum number of half-open connections [0: Disabled] - A félig nyitott kapcsolatok maximális száma [0: Kikapcsolva] + A félig nyitott kapcsolatok maximális száma [0: Kikapcsolva] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Folytatási adatfájl mentésének intervalluma + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Peer ID: - + HTTP User-Agent is '%1' HTTP User-Agent is %1 - + Anonymous mode [ON] Anonim mód: [BE] - + Anonymous mode [OFF] Anonim mód: [KI] - + PeX support [ON] PeX támogatás [BE] - + PeX support [OFF] PeX támogatás [KI] - + Restart is required to toggle PeX support A PeX támogatás átkapcsolása újraindítást igényel - + Local Peer Discovery support [ON] Helyi Peerek Felkutatása (LPD) támogatás [BE] - + Local Peer Discovery support [OFF] Helyi Peerek Felkutatása (LPD) támogatás [KI] - + Encryption support [ON] Titkosítás támogatása [BE] - + Encryption support [FORCED] Titkosítás támogatása [KÉNYSZERÍTVE] - + Encryption support [OFF] Titkosítás támogatása [KI] - + Embedded Tracker [ON] Beágyazott tracker [BE] - + Failed to start the embedded tracker! Beágyazott tracker indítása sikertelen! - + Embedded Tracker [OFF] Beágyazott tracker [KI] - + '%1' reached the maximum ratio you set. Removing... %1 elérte a megengedett arányt. Eltávolítás... - + '%1' reached the maximum ratio you set. Pausing... '%1' elérte a megengedett arányt. Eltávolítás... - Error: Could not create torrent export directory: '%1' - Hiba: Nem lehet létrehozni torrent exportálás könyvtárat: '%1' + Hiba: Nem lehet létrehozni torrent exportálás könyvtárat: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Hiba: nem lehet exportálni a(z) '%1' torrentet, talán még nincs metaadata. + Hiba: nem lehet exportálni a(z) '%1' torrentet, talán még nincs metaadata. - + System network status changed to %1 e.g: System network status changed to ONLINE Rendszer hálózat állapot megváltozott erre: %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 hálózati konfigurációja megváltozott, munkamenet-kötés frissítése - + Unable to decode '%1' torrent file. Nem sikerült dekódolni a %1 torrent fájlt. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Fájl ismételt letöltése '%1' beágyazva a torrentbe '%2' - + Couldn't save '%1.torrent' '%1.torrent'-et nem lehet menteni - + because %1 is disabled. this peer was blocked because uTP is disabled. mert a %1 ki van kapcsolva. - + because %1 is disabled. this peer was blocked because TCP is disabled. mert a %1 ki van kapcsolva. - + URL seed lookup failed for URL: '%1', message: %2 URL forrás meghatározása sikertelen: '%1', hibaüzenet: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' eltávolítva az átviteli listáról és a merevlemezről. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' eltávolítva az átviteli listáról. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' letöltése, kérlek várj... - Torrent Export: torrent is invalid, skipping... - Torrent Exportálás: torrent érvénytelen, átugrás... + Torrent Exportálás: torrent érvénytelen, átugrás... - + DHT support [ON] DHT támogatás [BE] - + DHT support [OFF]. Reason: %1 DHT támogatás [KI]. Indok: %1 - + DHT support [OFF] DHT támogatás [KI] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 A qBittorrent próbálja a TCP/%1 portot használni - minden interfészen - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2 + Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2 - + The network interface defined is invalid: %1 A megadott hálózati csatoló hasznavehetetlen: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 A qBittorrent próbálja TCP/%2 portot használni a %1 interfészen - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on Nem található a %1 helyi cím a figyeléshez - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' '%1' tracker hozzá lett adva a(z) '%2' torrenthez - + Tracker '%1' was deleted from torrent '%2' '%1' URL seed törölve a(z) '%2' torrentből. - + URL seed '%1' was added to torrent '%2' '%1' URL seed hozzáadva a(z) '%2' torrenthez. - + URL seed '%1' was removed from torrent '%2' '%1' URL seed eltávolítva a(z) '%2' torrentből. - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nem lehet folytatni a(z) '%1' torrentet. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number A következő IP szűrő sikeresen feldolgozva: %1 szabály alkalmazva. - + Error: Failed to parse the provided IP filter. Hiba: az IP szűrő megnyitása sikertelen. - + Couldn't add torrent. Reason: %1 Nem lehet torrentet hozzáadni. Ok: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' visszaállítva. (folytatás) - + '%1' added to download list. 'torrent name' was added to download list. '%1' felvéve a letöltési listára. - + An I/O error occurred, '%1' paused. %2 I/O hiba történt, '%1' megállítva. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Port felderítése sikertelen, hibaüzenet: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Port felderítése sikeres, hibaüzenet: %1 - + due to IP filter. this peer was blocked due to ip filter. IP szűrő miatt. - + due to port filter. this peer was blocked due to port filter. port szűrő miatt. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p kevert mód korlátozás miatt. - + because it has a low port. this peer was blocked because it has a low port. mert alacsony porttal rendelkezik. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 A qBittorrent sikeresen használatba vette a %2/%3 portot - a %1 interfészen - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4 + Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Külső IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Nem sikerült áthelyezni a torrentet: '%1'. Indok: %2 - + File sizes mismatch for torrent '%1', pausing it. A fájl mérete nem megfelelő ennél a torrentnél: '%1', leállítva. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Hibás ellenőrző adat ennél a torrentnél: '%1'. Oka: '%2'. újraellenőrzés... @@ -1306,20 +1322,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. I/O Hiba: Nem sikerült létrehozni az ideiglenes fájlt. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Megnyitási hiba @@ -1327,43 +1343,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. Nem támogatott adatbázis fájl méret. - + Metadata error: '%1' entry not found. Metaadat hiba: '%1' bejegyzés nem található. - + Metadata error: '%1' entry has invalid type. Metaadat hiba: '%1' bejegyzésnek érvénytelen típusa van. - + Unsupported database version: %1.%2 Nem támogatott adatbázis verzió: %1.%2 - + Unsupported IP version: %1 Nem támogatott IP verzió: %1 - + Unsupported record size: %1 Nem támogatott rekord méret: %1 - + Invalid database type: %1 Érvénytelen adatbázis típus: %1 - + Database corrupted: no data section found. Adatbázis sérült: nem található adat szakasz. @@ -1396,9 +1412,8 @@ You should get this information from your Web browser preferences. Soronként csak egy linket - Download local torrent - Helyi torrent letöltése + Helyi torrent letöltése @@ -1571,7 +1586,22 @@ You should get this information from your Web browser preferences. Inaktív - + + Save files to location: + Fájlok mentése a következő helyre: + + + + Label: + Címke: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Letöltve @@ -1581,6 +1611,11 @@ You should get this information from your Web browser preferences. Logout Kijelentkezés + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1756,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Szöveg törlése @@ -1742,37 +1777,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit Sze&rkesztés - + &Tools &Eszközök - + &File &Fájl - + &Help &Súgó - + On Downloads &Done A letöltések &végeztével - + &View &Nézet - + &Options... Beállítás&ok... @@ -1782,153 +1817,153 @@ You should get this information from your Web browser preferences. &Folytatás - + Torrent &Creator Torrent &készítő - + Set Upload Limit... Feltöltési korlát megadása... - + Set Download Limit... Letöltési korlát megadása... - + Set Global Download Limit... Globális letöltési korlát megadása... - + Set Global Upload Limit... Globális feltöltési korlát megadása... - + Minimum Priority Minimum priorítás - + Top Priority Top priorítás - + Decrease Priority Prioritás csökkentése - + Increase Priority Prioritás növelése - - + + Alternative Speed Limits Alternatív sebességkorlátok - + &Top Toolbar Felső &eszköz panel - + Display Top Toolbar Felső eszköztár megjelenítése - + S&peed in Title Bar &Sebesség a címsoron - + Show Transfer Speed in Title Bar Átviteli sebesség mutatása a címsorban - + &RSS Reader &RSS olvasó - + Search &Engine Keresőmotor - + L&ock qBittorrent qBittorrent zárolása - + &Import Existing Torrent... &Létező torrent importálása... - + Import Torrent... Torrent importálása... - + Do&nate! Adomány! - + R&esume All Összes &folytatása - + &Log &log - + &Exit qBittorrent &qBittorrent bezárása - + &Suspend System &Számítógép felfüggesztése - + &Hibernate System &Rendszer hibernálása - + S&hutdown System Számítógép leállítása - + &Disabled &Kikapcsolva - + &Statistics &Statisztika - + Check for Updates Frissítések ellenőrzése - + Check for Program Updates Frissítések keresése indításkor @@ -1938,77 +1973,72 @@ You should get this information from your Web browser preferences. &Névjegy - Exit - Kilépés + Kilépés - + &Pause &Szünet - + &Delete &Törlés - + P&ause All Összes le&állítása - + &Add Torrent File... Torrent hozzá&adása... - + Open Megnyitás - + E&xit Kilépés - Options - Beállítások + Beállítások - Resume - Folytatás + Folytatás - Pause - Szünet + Szünet - Delete - Törlés + Törlés - + Open URL URL megnyitása - + &Documentation &Dokumentáció - + Lock Zárolás - + Show Mutat @@ -2019,22 +2049,21 @@ You should get this information from your Web browser preferences. Frissítések keresése indításkor - Lock qBittorrent - qBittorrent zárolása + qBittorrent zárolása - + Add Torrent &Link... Torrent &Link Hozzáadása... - + If you like qBittorrent, please donate! Ha kedveled a qBittorrentet, kélek támogasd! - + Execution Log Napló @@ -2409,52 +2438,52 @@ Biztos, hogy bezárod a qBittorrentet? Net::DNSUpdater - + Your dynamic DNS was successfully updated. A dinamikus DNS sikeresen frissítve. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dinamikus DNS hiba: A szolgáltatás jelenleg nem elérhető. Újbóli próbálkozás 30 perc múlva. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dinamikus DNS hiba: a hostnév nem található a megadott felhasználói fióknál. - + Dynamic DNS error: Invalid username/password. Dinamikus DNS hiba: Érvénytelen felhasználónév/jelszó. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dinamikus DNS hiba: a qBittorrent feketelistára került a szolgáltató által, kérem jelezze ezt a http://bugs.qbittorrent.org címen. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dinamikus DNS hiba: %1 választ küldött a kiszolgáló, kérem jelezze ezt a http://bugs.qbittorrent.org címen. - + Dynamic DNS error: Your username was blocked due to abuse. Dinamikus DNS hiba: A felhasználónév letiltásra került visszaélés miatt. - + Dynamic DNS error: supplied domain name is invalid. Dinamikus DNS hiba: a megadott kiszolgálónév érvénytelen. - + Dynamic DNS error: supplied username is too short. Dinamikus DNS hiba: a megadott felhasználónév túl rövid. - + Dynamic DNS error: supplied password is too short. Dinamikus DNS hiba: a megadott jelszó túl rövid. @@ -2462,17 +2491,17 @@ Biztos, hogy bezárod a qBittorrentet? Net::DownloadHandler - + I/O Error I/O Hiba - + The file size is %1. It exceeds the download limit of %2. A fájl mérete %1. Ez meghaladja a(z) %2 letöltési korlátját. - + Unexpected redirect to magnet URI. Váratlan átirányítás magnet URI-ra. @@ -2480,1300 +2509,1300 @@ Biztos, hogy bezárod a qBittorrentet? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP adatbázis betöltve. Típus: %1. Létrehozás ideje: %2. - - + + Couldn't load GeoIP database. Reason: %1 GeoIP adatbázist nem lehet betölteni. Ok: %1 - - + + N/A N/A - + Asia/Pacific Region Ázsia/Csendes-óceáni térség - + Europe Európa - + Andorra Andorra - + United Arab Emirates Egyesült Arab Emírségek - + Afghanistan Afganisztán - + Antigua and Barbuda Antigua és Barbuda - + Anguilla Anguilla - + Albania Albánia - + Armenia Örményország - + Netherlands Antilles Holland Antillák - + Angola Angola - + Antarctica Antarktisz - + Argentina Argentína - + American Samoa Amerikai Szamoa - + Austria Ausztria - + Australia Ausztrália - + Aruba Aruba - + Azerbaijan Azerbajdzsán - + Bosnia and Herzegovina Bosznia-Hercegovina - + Barbados Barbados - + Bangladesh Banglades - + Belgium Belgium - + Burkina Faso Burkina Faso - + Bulgaria Bulgária - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei Szultanátus - + Bolivia Bolívia - + Brazil Brazília - + Bahamas Bahama-szigetek - + Bhutan Bhután - + Bouvet Island Bouvet-sziget - + Botswana Botswana - + Belarus Belorusszia - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kókusz (Keeling)-szigetek - + Congo, The Democratic Republic of the Kongói Demokratikus Köztársaság - + Central African Republic Közép-Afrikai Köztársaság - + Congo Kongó - + Switzerland Svájc - + Cote D'Ivoire Elefántcsontpart - + Cook Islands Cook-szigetek - + Chile Chile - + Cameroon Kamerun - + China Kína - + Colombia Kolumbia - + Costa Rica Costa Rica - + Cuba Kuba - + Cape Verde Zöld-foki Köztársaság - + Christmas Island Karácsony-sziget - + Cyprus Ciprus - + Czech Republic Cseh Köztársaság - + Germany Németország - + Djibouti Dzsibuti - + Denmark Dánia - + Dominica Dominika - + Dominican Republic Dominikai Köztársaság - + Algeria Algéria - + Ecuador Ecuador - + Estonia Észtország - + Egypt Egyiptom - + Western Sahara Nyugat-Szahara - + Eritrea Eritrea - + Spain Spanyolország - + Ethiopia Etiópia - + Finland Finnország - + Fiji Fidzsi-szigetek - + Falkland Islands (Malvinas) Falkland-szigetek - + Micronesia, Federated States of Mikronéziai Szövetségi Államok - + Faroe Islands Feröer-szigetek - + France Franciaország - + France, Metropolitan Franciaország kontinentális területe - + Gabon Gabon - + United Kingdom Egyesült Királyság - + Grenada Grenada - + Georgia Grúzia - + French Guiana Francia Guyana - + Ghana Ghána - + Gibraltar Gibraltár - + Greenland Grönland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Egyenlítői-Guinea - + Greece Görögország - + South Georgia and the South Sandwich Islands Déli-Georgia és Déli-Sandwich-szigetek - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Bissau-Guinea - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heard-sziget és McDonald-szigetek - + Honduras Honduras - + Croatia Horvátország - + Haiti Haiti - + Hungary Magyarország - + Indonesia Indonézia - + Ireland Írország - + Israel Izrael - + India India - + British Indian Ocean Territory Brit Indiai-óceáni Terület - + Iraq Irak - + Iran, Islamic Republic of Iráni Iszlám Köztársaság - + Iceland Izland - + Italy Olaszország - + Jamaica Jamaica - + Jordan Jordánia - + Japan Japán - + Kenya Kenya - + Kyrgyzstan Kirgizisztán - + Cambodia Kambodzsa - + Kiribati Kiribati - + Comoros Comore-szigetek - + Saint Kitts and Nevis Saint Kitts és Nevis - + Korea, Democratic People's Republic of Koreai Népi Demokratikus Köztársaság - + Korea, Republic of Dél-Korea - + Kuwait Kuvait - + Cayman Islands Kajmán-szigetek - + Kazakhstan Kazahsztán - + Lao People's Democratic Republic Laoszi Népi Demokratikus Köztársaság - + Lebanon Libanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libéria - + Lesotho Lesotho - + Lithuania Litvánia - + Luxembourg Luxemburg - + Latvia Lettország - + Libyan Arab Jamahiriya Líbia - + Morocco Marokkó - + Monaco Monaco - + Moldova, Republic of Moldovai Köztársaság - + Madagascar Madagaszkár - + Marshall Islands Marshall-szigetek - + Macedonia Macedónia - + Mali Mali - + Myanmar Mianmar - + Mongolia Mongólia - + Macau Makaó - + Northern Mariana Islands Északi-Mariana-szigetek - + Martinique Martinique - + Mauritania Mauritánia - + Montserrat Montserrat - + Malta Málta - + Mauritius Mauritius - + Maldives Maldív-szigetek - + Malawi Malawi - + Mexico Mexikó - + Malaysia Malajzia - + Mozambique Mozambik - + Namibia Namíbia - + New Caledonia Új-Kaledónia - + Niger Niger - + Norfolk Island Norfolk-sziget - + Nigeria Nigéria - + Nicaragua Nicaragua - + Netherlands Hollandia - + Norway Norvégia - + Nepal Nepál - + Nauru Nauru - + Niue Niue - + New Zealand Új-Zéland - + Oman Omán - + Panama Panama - + Peru Peru - + French Polynesia Francia Polinézia - + Papua New Guinea Pápua Új-Guinea - + Philippines Fülöp-szigetek - + Pakistan Pakisztán - + Poland Lengyelország - + Saint Pierre and Miquelon Saint-Pierre és Miquelon - + Pitcairn Islands Pitcairn-szigetek - + Puerto Rico Puerto Rico - + Palestinian Territory Palesztína - + Portugal Portugália - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion Réunion - + Romania Románia - + Russian Federation Orosz Föderáció - + Rwanda Ruanda - + Saudi Arabia Szaud-Arábia - + Solomon Islands Salamon-szigetek - + Seychelles Seychelle-szigetek - + Sudan Szudán - + Sweden Svédország - + Singapore Szingapúr - + Saint Helena Szent Ilona - + Slovenia Szlovénia - + Svalbard and Jan Mayen Svalbard és Jan Mayen - + Slovakia Szlovákia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Szenegál - + Somalia Szomália - + Suriname Suriname - + Sao Tome and Principe São Tomé és Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Szíriai Arab Köztársaság - + Swaziland Szváziföld - + Turks and Caicos Islands Turks- és Caicos-szigetek - + Chad Csád - + French Southern Territories Francia déli és antarktiszi területek - + Togo Togo - + Thailand Thaiföld - + Tajikistan Tádzsikisztán - + Tokelau Tokelau-szigetek - + Turkmenistan Türkmenisztán - + Tunisia Tunézia - + Tonga Tonga - + Timor-Leste Kelet-Timor - + Turkey Törökország - + Trinidad and Tobago Trinidad és Tobago - + Tuvalu Tuvalu - + Taiwan Tajvan - + Tanzania, United Republic of Tanzániai Egyesült Köztársaság - + Ukraine Ukrajna - + Uganda Uganda - + United States Minor Outlying Islands Amerikai Csendes-óceáni-szigetek - + United States Egyesült Államok - + Uruguay Uruguay - + Uzbekistan Üzbegisztán - + Holy See (Vatican City State) Apostoli Szentszék - + Saint Vincent and the Grenadines Saint Vincent és a Grenadine-szigetek - + Venezuela Venezuela - + Virgin Islands, British Brit Virgin-szigetek - + Virgin Islands, U.S. Amerikai Virgin-szigetek - + Vietnam Vietnami Szocialista Köztársaság - + Vanuatu Vanuatu - + Wallis and Futuna Wallis és Futuna - + Samoa Szamoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Szerbia - + South Africa Dél-afrikai Köztársaság - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Anonim Proxy - + Satellite Provider Műholdas Szolgáltató - + Other Egyéb - + Aland Islands Åland-szigetek - + Guernsey Guernsey-sziget - + Isle of Man Man-sziget - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. Nem lehet kibontani GeoIP adatbázis fájlt. - + Couldn't save downloaded GeoIP database file. Nem lehet menteni a letöltött GeoIP adatbázis fájlt. - + Successfully updated GeoIP database. GeoIP adatbázis sikeresen frissítve. - + Couldn't download GeoIP database file. Reason: %1 Nem lehet letölteni GeoIP adatbázis fájlt. Ok: %1 @@ -3781,12 +3810,12 @@ Biztos, hogy bezárod a qBittorrentet? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP támogatás [ON] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP támogatás [OFF] @@ -3794,206 +3823,265 @@ Biztos, hogy bezárod a qBittorrentet? Net::Smtp - + Email Notification Error: Email értesítés hiba: + + PeerInfo + + + interested(local) and choked(peer) + érdekelt(helyi) és elfojtott(peer) + + + + interested(local) and unchoked(peer) + érdekelt(helyi) és nem elfojtott(peer) + + + + interested(peer) and choked(local) + érdekelt(peer) és elfojtott(helyi) + + + + interested(peer) and unchoked(local) + érdekelt(helyi) és nem elfojtott(helyi) + + + + optimistic unchoke + optimistic unchoke + + + + peer snubbed + peer félretéve + + + + incoming connection + bejövő kapcsolat + + + + not interested(local) and unchoked(peer) + nem érdekelt(helyi) és nem elfojtott(peer) + + + + not interested(peer) and unchoked(local) + nem érdekelt(peer) és nem elfojtott(helyi) + + + + peer from PEX + peer PEX hálózatból + + + + peer from DHT + peer DHT hálózatból + + + + encrypted traffic + titkosított forgalom + + + + encrypted handshake + titkosított kézfogás + + + + peer from LSD + peer LSD hálózatból + + PeerListWidget - + IP IP - + Port Port - + Flags Flags - + Connection Kapcsolat - + Client i.e.: Client application Kliens - + Progress i.e: % downloaded Folyamat - + Down Speed i.e: Download speed Letöltési sebesség - + Up Speed i.e: Upload speed Feltöltési sebesség - + Downloaded i.e: total data downloaded Letöltve - + Uploaded i.e: total data uploaded Feltöltve - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevancia - + Add a new peer... Új ügyfél hozzáadása... - + Copy selected Kiválasztott másolása - - + + Ban peer permanently Ügyfél kitiltása végleg - + Manually adding peer '%1'... Ügyfél kitiltva '%1'... - + The peer '%1' could not be added to this torrent. Az ügyfélt '%1' nem lehet hozzáadni ehhez a torenthez. - + Manually banning peer '%1'... Ügyfél kitiltva '%1'... - + Peer addition Ügyfél hozzáadása - + Some peers could not be added. Check the Log for details. Néhány peert nem lehet hozzáadni. Ellenőrizd a Naplót a részletekért. - + The peers were added to this torrent. Ügyfelek hozzáadva ehhez a torrenthez. - + Are you sure you want to ban permanently the selected peers? Biztos vagy benne, hogy végleg kitiltod a kiválaszott ügyfelet? - + &Yes &Igen - + &No &Nem - interested(local) and choked(peer) - érdekelt(helyi) és elfojtott(peer) + érdekelt(helyi) és elfojtott(peer) - interested(local) and unchoked(peer) - érdekelt(helyi) és nem elfojtott(peer) + érdekelt(helyi) és nem elfojtott(peer) - interested(peer) and choked(local) - érdekelt(peer) és elfojtott(helyi) + érdekelt(peer) és elfojtott(helyi) - interested(peer) and unchoked(local) - érdekelt(helyi) és nem elfojtott(helyi) + érdekelt(helyi) és nem elfojtott(helyi) - optimistic unchoke - optimistic unchoke + optimistic unchoke - peer snubbed - peer félretéve + peer félretéve - incoming connection - bejövő kapcsolat + bejövő kapcsolat - not interested(local) and unchoked(peer) - nem érdekelt(helyi) és nem elfojtott(peer) + nem érdekelt(helyi) és nem elfojtott(peer) - not interested(peer) and unchoked(local) - nem érdekelt(peer) és nem elfojtott(helyi) + nem érdekelt(peer) és nem elfojtott(helyi) - peer from PEX - peer PEX hálózatból + peer PEX hálózatból - peer from DHT - peer DHT hálózatból + peer DHT hálózatból - encrypted traffic - titkosított forgalom + titkosított forgalom - encrypted handshake - titkosított kézfogás + titkosított kézfogás - peer from LSD - peer LSD hálózatból + peer LSD hálózatból @@ -4767,17 +4855,17 @@ Biztos, hogy bezárod a qBittorrentet? Szűrő fájl helye (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Tisztátlan program kilépés észlelve. Visszalépési fájl használata a beállítások visszaállításához. - + An access error occurred while trying to write the configuration file. Egy hozzáférési hiba történt a konfigurációs fájl írásának megpróbálásakor. - + A format error occurred while trying to write the configuration file. Egy formátum hiba történt a konfigurációs fájl írásának megpróbálásakor. @@ -4883,299 +4971,298 @@ Biztos, hogy bezárod a qBittorrentet? PropertiesWidget - + Downloaded: Letöltve: - + Availability: Elérhetőség: - + Progress: Folyamat: - + Transfer Átvitel - + Time Active: Time (duration) the torrent is active (not paused) Aktív idő: - + ETA: Várható befejezési idő: - + Uploaded: Feltöltve: - + Seeds: Feltöltők - + Download Speed: Letöltési sebesség: - + Upload Speed: Feltöltési sebesség: - + Peers: Letöltők - + Download Limit: Letöltési korlát: - + Upload Limit: Feltöltési korlát: - + Wasted: Elpazarolva: - + Connections: Kapcsolatok: - + Information Információ - + Comment: Megjegyzés: - Torrent content: - Torrent tartalma: + Torrent tartalma: - + Select All Összes kiválasztása - + Select None Egyiket sem - + Normal Normál - + High Magas - + Share Ratio: Megosztási arány: - + Reannounce In: Újra kapcsolódás: - + Last Seen Complete: Legutóbb befejezettként látva: - + Total Size: Teljes méret: - + Pieces: Szeletek: - + Created By: Létrehozva általa: - + Added On: Hozáadva - + Completed On: Elkészült: - + Created On: Készítés ideje: - + Torrent Hash: Torrent hash: - + Save Path: Mentés útvonala: - + Maximum Maximális - - + + Do not download Mellőzés - + Never Soha - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (van %3) - + %1 (%2 this session) %1 (%2 ez a munkamenet) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedelve eddig: %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (maximum %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (összes %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (átlag %2) - + Open Megnyitás - + Open Containing Folder Tartalmazó mappa megnyitása - + Rename... Átnevezés... - + Priority Elsőbbség - + New Web seed Új Web seed - + Remove Web seed Web seed eltávolítása - + Copy Web seed URL Web seed URL másolása - + Edit Web seed URL Web seed URL szerkesztése - + Rename the file Fájl átnevezése - + New name: Új név: - - + + The file could not be renamed A fájlt nem lehet átnevezni - + This file name contains forbidden characters, please choose a different one. Ez a név tiltott karaktereket tartalmaz, kérlek válassz másik nevet. - - + + This name is already in use in this folder. Please use a different name. Ilyen nevű fájl már van a könyvtárban. Kérlek válassz másik nevet. - + The folder could not be renamed A könyvtárat nem lehet átnevezni - + qBittorrent qBittorrent @@ -5185,29 +5272,29 @@ Biztos, hogy bezárod a qBittorrentet? Fájlok szűrése... - + New URL seed New HTTP source Új URL seed: - + New URL seed: Új URL seed: - - + + This URL seed is already in the list. Ez az URL seed már a listában van. - + Web seed editing Web seed szerkesztés - + Web seed URL: Web seed URL: @@ -5220,19 +5307,19 @@ Biztos, hogy bezárod a qBittorrentet? Az IP címe tiltásra került a túl gyakori hibás hitelesítési kérelmek miatt. - + Error: '%1' is not a valid torrent file. Hiba: '%1' nem érvényes torrent fájl. - + Error: Could not add torrent to session. Hiba: Nem lehet hozzáadni torrentet a munkamenethez. - + I/O Error: Could not create temporary file. I/O Hiba: Nem sikerült létrehozni az ideiglenes fájlt. @@ -5385,138 +5472,138 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.[qBittorrent] %1 letöltése befejeződött - + The remote host name was not found (invalid hostname) A távoli kiszolgálónév nem található (érvénytelen hosztnév) - + The operation was canceled A művelet megszakítva - + The remote server closed the connection prematurely, before the entire reply was received and processed A távoli szerver lezárta a kapcsolatot a teljes válasz elküldése és feldolgozása előtt - + The connection to the remote server timed out Időtúllépés a szervehez való kapcsolódás közben - + SSL/TLS handshake failed SSL/TLS kapcsolódás sikertelen - + The remote server refused the connection A szerver visszautasította a kapcsolódást - + The connection to the proxy server was refused Kapcsolódás a proxy szerverhez sikertelen - + The proxy server closed the connection prematurely A proxy szerver idő előtt bontotta a kapcsolatot - + The proxy host name was not found Proxy szerver név ismeretlen - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Időtúllépés a proxy szerverhez való kapcsolódáskor, vagy a szerver nem továbbította a kérést időben - + The proxy requires authentication in order to honor the request but did not accept any credentials offered A proxy szerver hitelesítést kíván, de nem fogadta el a megadott belépési adatokat - + The access to the remote content was denied (401) Csatlakozás a távoli tartalomhoz megtagadva (401) - + The operation requested on the remote content is not permitted A kért művelet nem engedélyezett a távoli eszközön - + The remote content was not found at the server (404) A távoli tartalom nem található a szeveren (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted A szerver hitelesítést kíván, de nem fogadja el a megadott igazolást - + The Network Access API cannot honor the request because the protocol is not known A Network Access API nem teljesíti a kérést, mivel a protokoll ismeretlen - + The requested operation is invalid for this protocol A kért művelet ismeretlen ebben a protokollban - + An unknown network-related error was detected Ismeretlen hálózati hiba történt - + An unknown proxy-related error was detected Ismeretlen proxy hiba történt - + An unknown error related to the remote content was detected Ismeretlen hiba a távoli tartalomban - + A breakdown in protocol was detected Hiba a protokollban - + Unknown error Ismeretlen hiba - - + + Upgrade Frissítés - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Egy régebbi verzióról frissítettél, ami eltérően mentett dolgokat. Át kell térned az új mentési rendszerre. Nem fogsz tudni v3.3.0-nál régebbi verziót használni újra. Folytatod? [i/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Egy régebbi verzióról frissítettél, ami eltérően mentett dolgokat. Át kell térned az új mentési rendszerre. Ha folytatod, nem fogsz tudni v3.3.0-nál régebbi verziót használni újra. - + Couldn't migrate torrent with hash: %1 Nem lehet költöztetni torrentet ezzel a hashhel: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nem lehet költöztetni torrentet. Érvénytelen gyorsfolytatási fájl név: %1 @@ -5705,12 +5792,12 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Az automatikus letöltés '%1' a '%2' RSS csatornáról hibába ütközött mert nem tartalmaz torrentet, vagy mágneslinket... - + Automatically downloading '%1' torrent from '%2' RSS feed... A(z) '%1' torrent automatikus letöltése a(z) '%2' RSS csatornából... @@ -5754,17 +5841,17 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. ScanFoldersModel - + Watched Folder Megfigyelt könyvtár - + Download here Letöltés ide - + Download path Letöltési útvonal @@ -7822,11 +7909,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Letöltések @@ -7834,103 +7921,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python nem található - + Python version: %1 Python verzió: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1ó %2p - + %1d %2h e.g: 2days 10hours %1nap %2ó - + Unknown Unknown (size) Ismeretlen - + qBittorrent will shutdown the computer now because all downloads are complete. A qBittorrent most leállítja a számítógépet, mert az összes letöltés elkészült. - + < 1m < 1 minute < 1perc - + %1m e.g: 10minutes %1perc - + Working Kapcsolódva - + Updating... Frissítés... - + Not working Nincs kapcsolódva - + Not contacted yet Még nem kapcsolódott diff --git a/src/lang/qbittorrent_hy.ts b/src/lang/qbittorrent_hy.ts index fcc679325..1189a9697 100644 --- a/src/lang/qbittorrent_hy.ts +++ b/src/lang/qbittorrent_hy.ts @@ -125,217 +125,222 @@ Բաց թողնել hash ստուգումը - + + Set as default label + + + + Torrent Information Torrent-ի տեղեկությունը - + Size: Չափը. - + Comment: Մեկնաբանություն. - + Date: Ամսաթիվը. - + Info Hash: - + Normal Նորմալ - + High Բարձր - + Maximum Առավ. - + Do not download Չբեռնել - - + + I/O Error Սխալ - + The torrent file does not exist. Torrent ֆայլը գոյություն չունի - + Invalid torrent Սխալ torrent - + Failed to load the torrent: %1 %1 torrent ֆայլի բացման սխալ - - + + Already in download list Արդեն ներբեռնումների ցանկում է - + Free disk space: %1 - + Not Available This comment is unavailable Հասանելի չէ - + Not Available This date is unavailable Հասանելի չէ - + Not available Հասանելի չէ - + Invalid magnet link Սխալ magnet հղում - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized magnet հղումը չի վերականգնվել - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet հղում - + Retrieving metadata... - + Not Available This size is unavailable. Հասանելի չէ - - - + + + Choose save path Ընտրեք պահպանելու տեղը - + Rename the file Անվանափոխել - + New name: Նոր անուն. - - + + The file could not be renamed Ֆայլը չի կարող անվանփոխվել - + This file name contains forbidden characters, please choose a different one. Ֆայլի անունը պարունակում է արգելված նշաններ, ընտրեք այլ անուն։ - - + + This name is already in use in this folder. Please use a different name. Այս անունով արդեն առկա է։ Ընտրեք այլ անուն։ - + The folder could not be renamed Թղթապանակը չի կարող անվանափոխվել - + Rename... Անվանափոխել... - + Priority Առաջ-ը - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -427,9 +432,8 @@ Որոշել peer-երի հոսթերի անունները - Maximum number of half-open connections [0: Disabled] - Կիսաբաց միացումների առավ. քանակը [0. Անջատված] + Կիսաբաց միացումների առավ. քանակը [0. Անջատված] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Հաջողությամբ է ստուգվել IP ֆիլտրով. %1 կանոններ են կիրառվել։ - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Մեկ հղում տողի համար - Download local torrent - Ներբեռնել լոկալ torrent + Ներբեռնել լոկալ torrent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Պահպանել ֆայլերը՝ + + + + Label: + Նիշը. + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Ներբեռնվել է @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Մաքրել տեսքտ @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Խմբագրել - + &Tools &Գործիքներ - + &File &Ֆայլ - + &Help &Օգնություն - + On Downloads &Done - + &View &Տեսքը - + &Options... &Ընտրանքներ... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Վերսկսել - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Վ&երսկսել բոլորը - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,72 @@ You should get this information from your Web browser preferences. &Մասին - Exit - Ելք + Ելք - + &Pause &Դադար - + &Delete &Ջնջել - + P&ause All Դ&ադարեցնել բոլորը - + &Add Torrent File... - + Open Բացել - + E&xit - Options - Ընտրանքներ + Ընտրանքներ - Resume - Վերսկսել + Վերսկսել - Pause - Դադար + Դադար - Delete - Ջնջել + Ջնջել - + Open URL Բացել URL - + &Documentation &Թղթաբանություն - + Lock Կողպել - + Show Ցուցադրել՛ @@ -2019,22 +2027,21 @@ You should get this information from your Web browser preferences. Ստուգել ծրագրի թարմացումները - Lock qBittorrent - Կողփել qBittorrent-ը + Կողփել qBittorrent-ը - + Add Torrent &Link... - + If you like qBittorrent, please donate! Եթե qBittorrent-ը Ձեզ դուր եկավ, խնդրում ենք նվիրաբերել։ - + Execution Log Բացառության ցանկը @@ -2408,52 +2415,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2468,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2486,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Ֆրանսիա - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3787,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,207 +3800,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port Դարպաս - + Flags Դրոշակներ - + Connection Միացումը - + Client i.e.: Client application Ծրագիրը - + Progress i.e: % downloaded Ընթացքը - + Down Speed i.e: Download speed Ներբեռնելու արգ-ը - + Up Speed i.e: Upload speed Վերբ. արագ-ը - + Downloaded i.e: total data downloaded Ներբեռնվել է - + Uploaded i.e: total data uploaded Վերբեռնվել է - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Ավելացնել նոր peer… - + Copy selected - - + + Ban peer permanently Արգելել peer-ը մեկընդմիշտ - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Peer-ի լրացում - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Արգելե՞լ ընտրված peer-երը։ - + &Yes &Այո - + &No &Ոչ - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4766,17 +4776,17 @@ Are you sure you want to quit qBittorrent? Ֆիլտրերի ճանապարհը (.dat, .p2p, .p2b). - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4892,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Բեռնվել է. - + Availability: Հասանելի է. - + Progress: Ընթացքը. - + Transfer Փոխանցում - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Փոխանցվել է. - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Վնասված. - + Connections: Միացումներ. - + Information Տեղեկություն - + Comment: Մեկնաբանություն. - Torrent content: - Torrent-ի պարունակությունը. + Torrent-ի պարունակությունը. - + Select All Ընտրել բոլորը - + Select None Չընտրել ոչ մեկը - + Normal Նորմալ - + High Բարձր - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Առավելագույնը - - + + Do not download Չբեռնել - + Never Երբեք - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Բացել - + Open Containing Folder Բացել թղթապանակը - + Rename... Անվանափոխել... - + Priority Առաջնահերթություն - + New Web seed Նոր վեբ շղթա - + Remove Web seed Հեռացնել վեբ շղթան - + Copy Web seed URL Պատճենել վեբ շղթայի URL-ն - + Edit Web seed URL Խմբագրել վեբ շղթայի URL-ն - + Rename the file Անվանափոխել - + New name: Նոր անունը. - - + + The file could not be renamed Հնարավոր չէ անվանափոխել ֆայլը - + This file name contains forbidden characters, please choose a different one. Ֆայլի անունը պարունակում է արգելված նշաններ, ընտրեք այլ անուն։ - - + + This name is already in use in this folder. Please use a different name. Այս անունը արդեն առկա է տվյալ թղթապանակում։ Նշեք այլ անուն։ - + The folder could not be renamed Թղթապանակը հնարավոր չէ անվանափոխել - + qBittorrent qBittorrent @@ -5184,29 +5193,29 @@ Are you sure you want to quit qBittorrent? Զտիչի ֆայլեր... - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Վեբ շղթայի խմբագրում - + Web seed URL: Վեբ շղթայի URL. @@ -5219,18 +5228,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5381,138 +5390,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5701,12 +5710,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5750,17 +5759,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Հետևելու թղթապանակը - + Download here Բեռնել այստեղ - + Download path @@ -7818,11 +7827,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Բեռնումներ @@ -7830,103 +7839,103 @@ Those plugins were disabled. misc - + B bytes Բ - + KiB kibibytes (1024 bytes) ԿԲ - + MiB mebibytes (1024 kibibytes) ՄԲ - + GiB gibibytes (1024 mibibytes) ԳԲ - + TiB tebibytes (1024 gibibytes) ՏԲ - + Python not detected - + Python version: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1ժ %2ր - + %1d %2h e.g: 2days 10hours %1օր %2ժ - + Unknown Unknown (size) Անհայտ - + qBittorrent will shutdown the computer now because all downloads are complete. Բոլոր ներբեռնումները ավարտվել են։ Համակարգիչը անջատվում է։ - + < 1m < 1 minute « 1ր - + %1m e.g: 10minutes %1րոպե - + Working Աշխատում է - + Updating... Թարմացվում է... - + Not working Չի աշխատում - + Not contacted yet Դեռ չի միացնել diff --git a/src/lang/qbittorrent_id.ts b/src/lang/qbittorrent_id.ts index ed04c9b69..8e517f843 100644 --- a/src/lang/qbittorrent_id.ts +++ b/src/lang/qbittorrent_id.ts @@ -125,217 +125,222 @@ Lewati pengecekan hash - + + Set as default label + + + + Torrent Information Informasi Torrent - + Size: Ukuran: - + Comment: Komentar: - + Date: Tanggal: - + Info Hash: Info Hash: - + Normal Normal - + High Tinggi - + Maximum Maksimum - + Do not download Jangan unduh - - + + I/O Error Galat I/O - + The torrent file does not exist. Berkas torrent tidak ada. - + Invalid torrent Torrent tidak valid - + Failed to load the torrent: %1 Gagal memuat torrent: %1 - - + + Already in download list Telah ada di dalam daftar unduh - + Free disk space: %1 Ruang bebas diska: 1% - + Not Available This comment is unavailable Tidak Tersedia - + Not Available This date is unavailable Tidak Tersedia - + Not available Tidak tersedia - + Invalid magnet link Tautan magnet tidak valid - + Torrent is already in download list. Trackers were merged. Torrent telah ada di dalam daftar unduh. Pelacak digabungkan. - - + + Cannot add torrent Tidak bisa menambahkan torrent - + Cannot add this torrent. Perhaps it is already in adding state. Tidak bisa menambahkan torrent ini. Sepertinya sudah ditambahkan. - + This magnet link was not recognized Tautan magnet ini tidak dikenali - + Magnet link is already in download list. Trackers were merged. Tautan magnet telah ada di dalam daftar unduh. Pelacak digabungkan. - + Cannot add this torrent. Perhaps it is already in adding. Tidak bisa menambahkan torrent ini. Sepertinya sedang ditambahkan. - + Magnet link Tautan magnet - + Retrieving metadata... Mengambil metadata... - + Not Available This size is unavailable. Tidak Tersedia - - - + + + Choose save path Pilih jalur penyimpanan - + Rename the file Ubah nama berkas - + New name: Nama baru: - - + + The file could not be renamed Berkas tidak bisa diubah namanya - + This file name contains forbidden characters, please choose a different one. Nama berkas ini mengandung karakter yang dilarang, mohon pilih karakter yang berbeda. - - + + This name is already in use in this folder. Please use a different name. Nama ini telah digunakan dalam folder ini. Mohon gunakan nama yang berbeda. - + The folder could not be renamed Folder tidak bisa diubah namanya - + Rename... Ubah nama... - + Priority Prioritas - + Invalid metadata Metadata tidak valid - + Parsing metadata... Mengurai metadata... - + Metadata retrieval complete Pengambilan metadata komplet - + Download Error Galat Unduh @@ -427,9 +432,8 @@ Singkap nama hos rekanan - Maximum number of half-open connections [0: Disabled] - Jumlah maksimum koneksi terbuka-setengah [0: Nonaktif] + Jumlah maksimum koneksi terbuka-setengah [0: Nonaktif] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Selang penyimpanan data perlanjutan + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID Rekanan: - + HTTP User-Agent is '%1' User-Agent HTTP adalah '%1' - + Anonymous mode [ON] Mode anonim [NYALA] - + Anonymous mode [OFF] Mode anonim [MATI] - + PeX support [ON] Dukungan PeX [NYALA] - + PeX support [OFF] Dukungan PeX [MATI] - + Restart is required to toggle PeX support Wajib memulai ulang untuk menjungkit dukungan PeX - + Local Peer Discovery support [ON] Dukungan Penemuan Rekanan Lokal [NYALA] - + Local Peer Discovery support [OFF] Dukungan Penemuan Rekanan Lokal [MATI] - + Encryption support [ON] Dukungan enkripsi [NYALA] - + Encryption support [FORCED] Dukungan enkripsi [DIPAKSA] - + Encryption support [OFF] Dukungan enkripsi [MATI] - + Embedded Tracker [ON] Pelacak Tertanam [NYALA] - + Failed to start the embedded tracker! Gagal memulai pelacak tertanam! - + Embedded Tracker [OFF] Pelacak Tertanam [MATI] - + '%1' reached the maximum ratio you set. Removing... '%1' telah mencapai rasio maksimum yang Anda tetapkan. Membuang... - + '%1' reached the maximum ratio you set. Pausing... '%1' telah mencapai rasio maksimum yang Anda tetapkan. Menangguhkan... - Error: Could not create torrent export directory: '%1' - Galat: Tidak bisa membuat direktori ekspor torrent: '%1' + Galat: Tidak bisa membuat direktori ekspor torrent: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Galat: tidak bisa mengekspor torrent '%1', mungkin belum memiliki metadata. + Galat: tidak bisa mengekspor torrent '%1', mungkin belum memiliki metadata. - + System network status changed to %1 e.g: System network status changed to ONLINE Status jaringan sistem berubah menjadi %1 - + ONLINE DARING - + OFFLINE LURING - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfigurasi jaringan dari %1 telah berubah, menyegarkan jalinan sesi - + Unable to decode '%1' torrent file. Tidak bisa mengawakode '%1' berkas torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Mengunduh rekursif berkas '%1' yang tertanam di dalam torrent '%2' - + Couldn't save '%1.torrent' Tidak bisa menyimpan '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. karena %1 dinonaktifkan. - + because %1 is disabled. this peer was blocked because TCP is disabled. karena %1 dinonaktifkan. - + URL seed lookup failed for URL: '%1', message: %2 Pencarian bibit URL gagal untuk URL: '%1', pesan: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' telah dibuang dari daftar transfer dan diska. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' telah dibuang dari daftar transfer. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Mengunduh '%1', mohon tunggu... - Torrent Export: torrent is invalid, skipping... - Ekspor Torrent: torrent tidak valid, lewati... + Ekspor Torrent: torrent tidak valid, lewati... - + DHT support [ON] Dukungan DHT [NYALA] - + DHT support [OFF]. Reason: %1 Dukungan DHT [MATI]. Alasan: %1 - + DHT support [OFF] Dukungan DHT [MATI] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sedang mencoba mendengarkan semua port antarmuka: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent gagal mendengarkan semua port antarmuka: %1. Alasan: %2 + qBittorrent gagal mendengarkan semua port antarmuka: %1. Alasan: %2 - + The network interface defined is invalid: %1 Antarmuka jaringan yang dijabarkan tidak valid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sedang mencoba mendengarkan port antarmuka %1: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent tidak menemukan alamat lokal %1 untuk didengarkan - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent gagal mendengarkan semua port antarmuka: %1. Alasan: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Pelacak '%1' telah ditambahkan ke torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Pelacak '%1' telah dihapus dari torrent '%2' - + URL seed '%1' was added to torrent '%2' Bibit URL '%1' telah ditambahkan ke torrent '%2' - + URL seed '%1' was removed from torrent '%2' Bibit URL '%1' telah dihapus dari torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Tidak bisa melanjutkan torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berhasil mengurai penyaring IP yang diberikan: %1 aturan diterapkan. - + Error: Failed to parse the provided IP filter. Galat: Gagal mengurai penyaring IP yang diberikan. - + Couldn't add torrent. Reason: %1 Tidak bisa menambahkan torrent. Alasan: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' dilanjutkan. (lanjut cepat) - + '%1' added to download list. 'torrent name' was added to download list. '%1' ditambahkan ke daftar unduh. - + An I/O error occurred, '%1' paused. %2 Sebuah galat I/O telah terjadi, '%1' ditangguhkan. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Pemetaan port gagal, pesan: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Pemetaan port sukses, pesan: %1 - + due to IP filter. this peer was blocked due to ip filter. disebabkan oleh penyaring IP. - + due to port filter. this peer was blocked due to port filter. disebabkan oleh penyaring port. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. disebabkan oleh pembatasan mode campuran i2p. - + because it has a low port. this peer was blocked because it has a low port. karena memiliki port yang rendah. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent berhasil mendengarkan port antarmuka %1: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent gagal mendengarkan port antarmuka %1: %2/%3. Alasan: %4 + qBittorrent gagal mendengarkan port antarmuka %1: %2/%3. Alasan: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent gagal mendengarkan port antarmuka %1: %2/%3. Alasan: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP eksternal: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Tidak bisa memindahkan torrent: '%1'. Alasan: %2 - + File sizes mismatch for torrent '%1', pausing it. Ukuran berkas tidak sama untuk torrent '%1', torrent ditangguhkan. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Data lanjut cepat ditolak untuk torrent '%1'. Alasan: %2. Memeriksa lagi... @@ -1307,20 +1323,20 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Galat I/O: Tidak bisa membuka berkas penyaring ip dalam mode baca-saja. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Galat Mengurai: Berkas penyaring bukan berkas P2B PeerGuardian yang valid. @@ -1328,43 +1344,43 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. GeoIPDatabase - - + + Unsupported database file size. Ukuran berkas basis data tidak didukung. - + Metadata error: '%1' entry not found. Galat metadata: entri '%1' tidak ditemukan. - + Metadata error: '%1' entry has invalid type. Galat metadata: tipe entri '%1' tidak valid. - + Unsupported database version: %1.%2 Versi basis data tidak didukung: %1.%2 - + Unsupported IP version: %1 Versi IP tidak didukung: %1 - + Unsupported record size: %1 Ukuran perekaman tidak didukung: %1 - + Invalid database type: %1 Tipe basis data tidak valid: %1 - + Database corrupted: no data section found. Basis data rusak: bagian data tidak ditemukan. @@ -1397,9 +1413,8 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Hanya satu tautan per baris - Download local torrent - Unduh torrent lokal + Unduh torrent lokal @@ -1572,7 +1587,22 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Tidak aktif - + + Save files to location: + Simpan berkas ke lokasi: + + + + Label: + Label: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Terunduh @@ -1582,6 +1612,11 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Logout Keluar + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. LineEdit - + Clear the text Kosongkan teks @@ -1743,37 +1778,37 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. MainWindow - + &Edit &Sunting - + &Tools &Perkakas - + &File &Berkas - + &Help B&antuan - + On Downloads &Done Saat Unduhan &Selesai - + &View &Tampilan - + &Options... &Opsi... @@ -1783,153 +1818,153 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.&Lanjutkan - + Torrent &Creator Pem&buat Torrent - + Set Upload Limit... Tetapkan Batas Unggah... - + Set Download Limit... Tetapkan Batas Unduh... - + Set Global Download Limit... Tetapkan Batas Unduh Global... - + Set Global Upload Limit... Tetapkan Batas Unggah Global... - + Minimum Priority Prioritas Minimum - + Top Priority Prioritas Utama - + Decrease Priority Turunkan Prioritas - + Increase Priority Naikkan Prioritas - - + + Alternative Speed Limits Batas Kecepatan Alternatif - + &Top Toolbar Bilah Ala&t Atas - + Display Top Toolbar Tampilkan Bilah Alat Atas - + S&peed in Title Bar Ke&cepatan di Bilah Judul - + Show Transfer Speed in Title Bar Tampilkan Kecepatan Transfer di Bilah Judul - + &RSS Reader Pembaca &RSS - + Search &Engine M&esin Pencari - + L&ock qBittorrent K&unci qBittorrent - + &Import Existing Torrent... &Impor Torrent Yang Ada... - + Import Torrent... Impor Torrent... - + Do&nate! Do&nasi! - + R&esume All Lanjutkan S&emua - + &Log &Log - + &Exit qBittorrent &Keluar qBittorrent - + &Suspend System &Suspensi Sistem - + &Hibernate System &Hibernasi Sistem - + S&hutdown System &Matikan Sistem - + &Disabled &Nonaktif - + &Statistics &Statistik - + Check for Updates Periksa Pemutakhiran - + Check for Program Updates Periksa Pemutakhiran Program @@ -1939,77 +1974,72 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Tent&ang - Exit - Keluar + Keluar - + &Pause Tang&guhkan - + &Delete &Hapus - + P&ause All Jed&a Semua - + &Add Torrent File... T&ambah Berkas Torrent... - + Open Buka - + E&xit &Keluar - Options - Opsi + Opsi - Resume - Lanjutkan + Lanjutkan - Pause - Tangguhkan + Tangguhkan - Delete - Hapus + Hapus - + Open URL Buka URL - + &Documentation &Dokumentasi - + Lock Kunci - + Show Tampilkan @@ -2020,22 +2050,21 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Periksa pemutakhiran program - Lock qBittorrent - Kunci qBittorrent + Kunci qBittorrent - + Add Torrent &Link... Tambah &Tautan Torrent... - + If you like qBittorrent, please donate! Jika Anda suka qBittorrent, mohon menyumbang! - + Execution Log Log Eksekusi @@ -2414,52 +2443,52 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::DNSUpdater - + Your dynamic DNS was successfully updated. DNS dinamis Anda telah berhasil diperbarui. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Galat DNS Dinamis: Layanan ini sementara tidak tersedia, akan dicoba ulang dalam 30 menit. - + Dynamic DNS error: hostname supplied does not exist under specified account. Galat DNS Dinamis: nama hos yang diberikan tidak ada di dalam akun yang disebutkan. - + Dynamic DNS error: Invalid username/password. Galat DNS Dinamis: nama pengguna/sandi tidak valid. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Galat DNS Dinamis: qBittorrent terdaftar hitam oleh layanan, mohon laporkan kutu di http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Galat DNS Dinamis: %1 dikembalikan oleh layanan, mohon laporkan kutu di http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Galat DNS Dinamis: Nama pengguna Anda telah diblokir karena penyalahgunaan. - + Dynamic DNS error: supplied domain name is invalid. Galat DNS Dinamis: nama domain yang diberikan tidak valid. - + Dynamic DNS error: supplied username is too short. Galat DNS Dinamis: nama pengguna yang diberikan terlalu pendek. - + Dynamic DNS error: supplied password is too short. Galat DNS Dinamis: kata sandi yang diberikan terlalu pendek. @@ -2467,17 +2496,17 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::DownloadHandler - + I/O Error Galat I/O - + The file size is %1. It exceeds the download limit of %2. Ukuran berkas adalah %1. Melebihi batas unduh %2. - + Unexpected redirect to magnet URI. Pengalihan tidak terduga ke URI magnet. @@ -2485,1300 +2514,1300 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Basis data GeoIP dimuat. Tipe: %1. Durasi bangun: %2. - - + + Couldn't load GeoIP database. Reason: %1 Tidak bisa memuat basis data GeoIP. Alasan: %1 - - + + N/A T/A - + Asia/Pacific Region Kawasan Asia/Pasifik - + Europe Eropa - + Andorra Andora - + United Arab Emirates Uni Emirat Arab - + Afghanistan Afganistan - + Antigua and Barbuda Antigua dan Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antillen Belanda - + Angola Angola - + Antarctica Antartika - + Argentina Argentina - + American Samoa Samoa Amerika - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaijan - + Bosnia and Herzegovina Bosnia dan Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei Darussalam - + Bolivia Bolivia - + Brazil Brazil - + Bahamas Bahama - + Bhutan Bhutan - + Bouvet Island Pulau Bouvet - + Botswana Botswana - + Belarus Belarusia - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kepulauan Cocos (Keeling) - + Congo, The Democratic Republic of the Republik Demokratik Kongo - + Central African Republic Republik Afrika Tengah - + Congo Kongo - + Switzerland Swiss - + Cote D'Ivoire Pantai Gading - + Cook Islands Kepulauan Cook - + Chile Chili - + Cameroon Kamerun - + China Cina - + Colombia Kolombia - + Costa Rica Kosta Rika - + Cuba Kuba - + Cape Verde Tanjung Verde - + Christmas Island Pulau Natal - + Cyprus Siprus - + Czech Republic Republik Ceko - + Germany Jerman - + Djibouti Djibouti - + Denmark Denmark - + Dominica Dominika - + Dominican Republic Republik Dominika - + Algeria Aljazair - + Ecuador Ekuador - + Estonia Estonia - + Egypt Mesir - + Western Sahara Sahara Barat - + Eritrea Eritrea - + Spain Spanyol - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fiji - + Falkland Islands (Malvinas) Kepulauan Falkland (Malvina) - + Micronesia, Federated States of Federasi Mikronesia - + Faroe Islands Kepulauan Faroe - + France Perancis - + France, Metropolitan Perancis Metropolitan - + Gabon Gabon - + United Kingdom Britania Raya - + Grenada Granada - + Georgia Georgia - + French Guiana Guyana Perancis - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Greenland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Guinea Khatulistiwa - + Greece Yunani - + South Georgia and the South Sandwich Islands Georgia Selatan dan Kepulauan Sandwich Selatan - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Pulau Heard dan Kepulauan McDonald - + Honduras Honduras - + Croatia Kroasia - + Haiti Haiti - + Hungary Hongaria - + Indonesia Indonesia - + Ireland Irlandia - + Israel Israel - + India India - + British Indian Ocean Territory Wilayah Samudra Hindia Britania - + Iraq Irak - + Iran, Islamic Republic of Republik Islam Iran - + Iceland Islandia - + Italy Italia - + Jamaica Jamaika - + Jordan Yordania - + Japan Jepang - + Kenya Kenya - + Kyrgyzstan Kirgizstan - + Cambodia Kamboja - + Kiribati Kiribati - + Comoros Komoro - + Saint Kitts and Nevis Saint Kitts dan Nevis - + Korea, Democratic People's Republic of Korea Utara - + Korea, Republic of Korea Selatan - + Kuwait Kuwait - + Cayman Islands Kepulauan Cayman - + Kazakhstan Kazakhstan - + Lao People's Democratic Republic Republik Demokratik Rakyat Laos - + Lebanon Lebanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luksemburg - + Latvia Latvia - + Libyan Arab Jamahiriya Libya - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Moldova - + Madagascar Madagaskar - + Marshall Islands Kepulauan Marshall - + Macedonia Makedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - + Macau Makau - + Northern Mariana Islands Kepulauan Mariana Utara - + Martinique Martinik - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maladewa - + Malawi Malawi - + Mexico Meksiko - + Malaysia Malaysia - + Mozambique Mozambik - + Namibia Namibia - + New Caledonia Kaledonia Baru - + Niger Niger - + Norfolk Island Pulau Norfolk - + Nigeria Nigeria - + Nicaragua Nikaragua - + Netherlands Belanda - + Norway Norwegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Selandia Baru - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Polinesia Perancis - + Papua New Guinea Papua Nugini - + Philippines Filipina - + Pakistan Pakistan - + Poland Polandia - + Saint Pierre and Miquelon Saint Pierre dan Miquelon - + Pitcairn Islands Kepulauan Pitcairn - + Puerto Rico Puerto Riko - + Palestinian Territory Palestina - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Reunion - + Romania Rumania - + Russian Federation Rusia - + Rwanda Rwanda - + Saudi Arabia Arab Saudi - + Solomon Islands Kepulauan Solomon - + Seychelles Seiselensa - + Sudan Sudan - + Sweden Swedia - + Singapore Singapura - + Saint Helena Saint Helena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard dan Jan Mayen - + Slovakia Slowakia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe Sao Tome dan Principe - + El Salvador El Salvador - + Syrian Arab Republic Suriah - + Swaziland Swaziland - + Turks and Caicos Islands Kepulauan Turks dan Caicos - + Chad Chad - + French Southern Territories Daratan Selatan dan Antarktika Perancis - + Togo Togo - + Thailand Thailand - + Tajikistan Tajikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor-Leste - + Turkey Turki - + Trinidad and Tobago Trinidad dan Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands Kepulauan Terluar Kecil Amerika Serikat - + United States Amerika Serikat - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Vatikan - + Saint Vincent and the Grenadines Saint Vincent dan Grenadine - + Venezuela Venezuela - + Virgin Islands, British Kepulauan Virgin, Inggris - + Virgin Islands, U.S. Kepulauan Virgin, Amerika Serikat - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis dan Futuna - + Samoa Samoa - + Yemen Yaman - + Mayotte Mayotte - + Serbia Serbia - + South Africa Afrika Selatan - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Proksi Anonim - + Satellite Provider Penyedia Satelit - + Other Lainnya - + Aland Islands Kepulauan Aland - + Guernsey Guernsey - + Isle of Man Pulau Man - + Jersey Jersey - + Saint Barthelemy Saint Barthelemy - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. Tidak bisa mengurai berkas basis data GeoIP. - + Couldn't save downloaded GeoIP database file. Tidak bisa menyimpan berkas basis data GeoIP yang diunduh. - + Successfully updated GeoIP database. Berhasil memperbarui basis data GeoIP. - + Couldn't download GeoIP database file. Reason: %1 Tidak bisa mengunduh berkas basis data GeoIP. Alasan: %1 @@ -3786,12 +3815,12 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Dukungan UPnP / NAT-PMP [NYALA] - + UPnP / NAT-PMP support [OFF] Dukungan UPnP / NAT-PMP [MATI] @@ -3799,206 +3828,265 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::Smtp - + Email Notification Error: Galat Notifikasi Surel: + + PeerInfo + + + interested(local) and choked(peer) + tertarik(lokal) dan choked(rekanan) + + + + interested(local) and unchoked(peer) + tertarik(lokal) dan unchoked(rekanan) + + + + interested(peer) and choked(local) + tertarik(rekanan) dan choked(lokal) + + + + interested(peer) and unchoked(local) + tertarik(rekanan) dan unchoked(lokal) + + + + optimistic unchoke + unchoke optimistis + + + + peer snubbed + penolakan rekanan + + + + incoming connection + koneksi masuk + + + + not interested(local) and unchoked(peer) + tidak tertarik(lokal) dan unchoked(rekanan) + + + + not interested(peer) and unchoked(local) + tidak tertarik(rekanan) dan unchoked(lokal) + + + + peer from PEX + rekanan dari PEX + + + + peer from DHT + rekanan dari DHT + + + + encrypted traffic + lalu lintas terenkripsi + + + + encrypted handshake + handshake terenkripsi + + + + peer from LSD + rekanan dari LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Bendera - + Connection Koneksi - + Client i.e.: Client application Klien - + Progress i.e: % downloaded Kemajuan - + Down Speed i.e: Download speed Kecepatan Unduh - + Up Speed i.e: Upload speed Kecepatan Unggah - + Downloaded i.e: total data downloaded Terunduh - + Uploaded i.e: total data uploaded Terunggah - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevansi - + Add a new peer... Tambah rekanan baru... - + Copy selected Salin yang dipilih - - + + Ban peer permanently Cekal rekanan secara permanen - + Manually adding peer '%1'... Secara manual menambahkan rekanan '%1'... - + The peer '%1' could not be added to this torrent. Rekanan '%1' tidak bisa ditambahkan ke torrent ini. - + Manually banning peer '%1'... Secara manual mencekal rekanan '%1'... - + Peer addition Tambahan rekanan - + Some peers could not be added. Check the Log for details. Beberapa rekanan tidak bisa ditambahkan. Periksa Log untuk detail lebih lanjut. - + The peers were added to this torrent. Rekanan telah ditambahkan ke torrent ini. - + Are you sure you want to ban permanently the selected peers? Apakah Anda yakin ingin mencekal secara permanen rekanan yang dipilih? - + &Yes &Ya - + &No &Tidak - interested(local) and choked(peer) - tertarik(lokal) dan choked(rekanan) + tertarik(lokal) dan choked(rekanan) - interested(local) and unchoked(peer) - tertarik(lokal) dan unchoked(rekanan) + tertarik(lokal) dan unchoked(rekanan) - interested(peer) and choked(local) - tertarik(rekanan) dan choked(lokal) + tertarik(rekanan) dan choked(lokal) - interested(peer) and unchoked(local) - tertarik(rekanan) dan unchoked(lokal) + tertarik(rekanan) dan unchoked(lokal) - optimistic unchoke - unchoke optimistis + unchoke optimistis - peer snubbed - penolakan rekanan + penolakan rekanan - incoming connection - koneksi masuk + koneksi masuk - not interested(local) and unchoked(peer) - tidak tertarik(lokal) dan unchoked(rekanan) + tidak tertarik(lokal) dan unchoked(rekanan) - not interested(peer) and unchoked(local) - tidak tertarik(rekanan) dan unchoked(lokal) + tidak tertarik(rekanan) dan unchoked(lokal) - peer from PEX - rekanan dari PEX + rekanan dari PEX - peer from DHT - rekanan dari DHT + rekanan dari DHT - encrypted traffic - lalu lintas terenkripsi + lalu lintas terenkripsi - encrypted handshake - handshake terenkripsi + handshake terenkripsi - peer from LSD - rekanan dari LSD + rekanan dari LSD @@ -4772,17 +4860,17 @@ Apakah Anda yakin ingin qBittorrent keluar? Jalur penyaring (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Mendeteksi kerusakan berkas ketika program keluar. Menggunakan berkas cadangan untuk kembali ke pengaturan sebelumnya. - + An access error occurred while trying to write the configuration file. Sebuah galat akses terjadi ketika mencoba untuk menyimpan berkas konfigurasi. - + A format error occurred while trying to write the configuration file. Sebuah galat format terjadi ketika mencoba untuk menyimpan berkas konfigurasi. @@ -4888,299 +4976,298 @@ Apakah Anda yakin ingin qBittorrent keluar? PropertiesWidget - + Downloaded: Terunduh: - + Availability: Ketersediaan: - + Progress: Kemajuan: - + Transfer Transfer - + Time Active: Time (duration) the torrent is active (not paused) Lama Aktif: - + ETA: ETA: - + Uploaded: Terunggah: - + Seeds: Bibit: - + Download Speed: Kecepatan Unduh: - + Upload Speed: Kecepatan Unggah: - + Peers: Rekanan: - + Download Limit: Batas Unduh: - + Upload Limit: Batas Unggah: - + Wasted: Terbuang: - + Connections: Koneksi: - + Information Informasi - + Comment: Komentar: - Torrent content: - Isi torrent: + Isi torrent: - + Select All Pilih Semua - + Select None Pilih Nihil - + Normal Normal - + High Tinggi - + Share Ratio: Rasio Berbagi: - + Reannounce In: Umumkan Ulang Dalam: - + Last Seen Complete: Komplet Terlihat Terakhir: - + Total Size: Total Ukuran: - + Pieces: Bagian: - + Created By: Dibuat Oleh: - + Added On: Ditambahkan Pada: - + Completed On: Komplet Pada: - + Created On: Dibuat Pada: - + Torrent Hash: Hash Torrent: - + Save Path: Jalur Simpan: - + Maximum Maksimum - - + + Do not download Jangan mengunduh - + Never Jangan Pernah - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (memiliki %3) - + %1 (%2 this session) %1 (%2 sesi ini) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (dibibit selama %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 maks) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 rerata.) - + Open Buka - + Open Containing Folder Buka Folder yang Memuat - + Rename... Ubah nama... - + Priority Prioritas - + New Web seed Bibit Web baru - + Remove Web seed Buang bibit Web - + Copy Web seed URL Salin URL bibit Web - + Edit Web seed URL Sunting URL bibit Web - + Rename the file Ubah nama berkas - + New name: Nama baru: - - + + The file could not be renamed Berkas tidak bisa diubah namanya - + This file name contains forbidden characters, please choose a different one. Nama berkas ini mengandung karakter yang dilarang, mohon pilih karakter yang berbeda. - - + + This name is already in use in this folder. Please use a different name. Nama ini telah digunakan dalam folder ini. Mohon gunakan nama yang berbeda. - + The folder could not be renamed Folder tidak bisa diubah namanya - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Apakah Anda yakin ingin qBittorrent keluar? Saring berkas... - + New URL seed New HTTP source Bibit URL baru - + New URL seed: Bibit URL baru: - - + + This URL seed is already in the list. Bibit URL ini telah ada di dalam daftar. - + Web seed editing Penyuntingan bibit web - + Web seed URL: URL bibit web: @@ -5225,19 +5312,19 @@ Apakah Anda yakin ingin qBittorrent keluar? Alamat IP Anda telah dicekal setelah terlalu banyak percobaan otentikasi yang gagal. - + Error: '%1' is not a valid torrent file. Galat: '%1' bukan berkas torrent yang valid. - + Error: Could not add torrent to session. Galat: Tidak bisa menambahkan torrent ke sesi. - + I/O Error: Could not create temporary file. Galat I/O: Tidak bisa membuat berkas sementara. @@ -5390,138 +5477,138 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. [qBittorrent] '%1' telah selesai mengunduh - + The remote host name was not found (invalid hostname) Nama hos jauh tidak ditemukan (nama hos tidak valid) - + The operation was canceled Operasi telah dibatalkan - + The remote server closed the connection prematurely, before the entire reply was received and processed Server jauh menutup sambungan secara prematur, sebelum semua balasan diterima dan diproses - + The connection to the remote server timed out Sambungan ke server jauh kehabisan waktu - + SSL/TLS handshake failed Jabat-tangan SSL/TLS gagal - + The remote server refused the connection Server jauh menolak sambungan - + The connection to the proxy server was refused Sambungan ke server proksi telah ditolak - + The proxy server closed the connection prematurely Server proksi menutup sambungan secara prematur - + The proxy host name was not found Nama hos proksi tidak ditemukan - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Sambungan ke proksi kehabisan waktu atau proksi tidak membalas pada waktu permintaan dikirim - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Proksi membutuhkan otentikasi dalam rangka menghormati permintaan tetapi tidak menerima kredensial apapun yang ditawarkan - + The access to the remote content was denied (401) Akses ke konten jauh ditolak (401) - + The operation requested on the remote content is not permitted Permintaan operasi pada konten jauh tidak diizinkan - + The remote content was not found at the server (404) Konten jauh tidak ditemukan di server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Server jauh membutuhkan otentikasi untuk menyediakan konten tetapi kredensial yang diberikan tidak diterima - + The Network Access API cannot honor the request because the protocol is not known API Akses Jaringan tidak bisa menghormati permintaan karena protokol tidak dikenal - + The requested operation is invalid for this protocol Operasi yang diminta tidak valid untuk protokol ini - + An unknown network-related error was detected Sebuah galat tidak dikenal terkait jaringan telah terdeteksi - + An unknown proxy-related error was detected Sebuah galat tidak dikenal terkait proksi telah terdeteksi - + An unknown error related to the remote content was detected Sebuah galat tidak dikenal terkait konten jauh telah terdeteksi - + A breakdown in protocol was detected Sebuah gangguan dalam protokol telah terdeteksi - + Unknown error Galat tidak dikenal - - + + Upgrade Tingkatkan - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Anda memutakhirkan dari versi lama yang memiliki proses penyimpanan yang berbeda. Anda harus meningkatkannya ke sistem penyimpanan baru. Anda tidak akan bisa menggunakan versi yang lebih lama dari v3.3.0 lagi. Lanjutkan? [y/t] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Anda memutakhirkan dari versi lama yang memiliki proses penyimpanan yang berbeda. Anda harus meningkatkannya ke sistem penyimpanan baru. Jika Anda melanjutkan, Anda tidak akan bisa menggunakan versi yang lebih lama dari v3.3.0 lagi. - + Couldn't migrate torrent with hash: %1 Tidak bisa migrasi torrent dengan hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Tidak bisa migrasi torrent. Nama berkas lanjutcepat tidak valid: %1 @@ -5710,12 +5797,12 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... @@ -5759,17 +5846,17 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. ScanFoldersModel - + Watched Folder Folder Dimonitor - + Download here Unduh di sini - + Download path Jalur unduhan @@ -7828,11 +7915,11 @@ Pengaya tersebut dinonfungsikan. fsutils - - - - - + + + + + Downloads Unduhan @@ -7840,103 +7927,103 @@ Pengaya tersebut dinonfungsikan. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python tidak terdeteksi - + Python version: %1 Versi Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1j %2m - + %1d %2h e.g: 2days 10hours %1h %2j - + Unknown Unknown (size) Tidak diketahui - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent akan mematikan komputer sekarang karena semua unduhan telah komplet. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Bekerja - + Updating... Memperbarui... - + Not working Tidak bekerja - + Not contacted yet Belum dihubungi diff --git a/src/lang/qbittorrent_it.ts b/src/lang/qbittorrent_it.ts index 60c532735..fa2756927 100644 --- a/src/lang/qbittorrent_it.ts +++ b/src/lang/qbittorrent_it.ts @@ -125,217 +125,222 @@ Salta controllo hash - + + Set as default label + + + + Torrent Information Informazioni torrent - + Size: Dimensione: - + Comment: Commento: - + Date: Data: - + Info Hash: Info Hash: - + Normal Normale - + High Alta - + Maximum Massima - + Do not download Non scaricare - - + + I/O Error Errore I/O - + The torrent file does not exist. Il file torrent non esiste. - + Invalid torrent Torrent non valido - + Failed to load the torrent: %1 Impossibile caricare il torrent: %1 - - + + Already in download list Elemento già nell'elenco dei trasferimenti - + Free disk space: %1 Spazio disponibile sul disco: %1 - + Not Available This comment is unavailable Commento non disponibile - + Not Available This date is unavailable Non disponibile - + Not available Non disponibile - + Invalid magnet link Collegamento magnet non valido - + Torrent is already in download list. Trackers were merged. Il torrent è già nell'elenco dei trasferimenti. Aggiunti eventuali nuovi tracker. - - + + Cannot add torrent Impossibile aggiungere il torrent - + Cannot add this torrent. Perhaps it is already in adding state. Impossibile aggiungere questo torrent. Forse è già stato aggiunto. - + This magnet link was not recognized Collegamento magnet non riconosciuto - + Magnet link is already in download list. Trackers were merged. Il collegamento magnet è già nell'elenco dei trasferimenti. Aggiunti eventuali nuovi tracker. - + Cannot add this torrent. Perhaps it is already in adding. Impossibile aggiungere questo torrent. Forse è già stato aggiunto. - + Magnet link Collegamento magnet - + Retrieving metadata... Recupero metadati... - + Not Available This size is unavailable. Non disponibile - - - + + + Choose save path Scegli una cartella per il salvataggio - + Rename the file Rinomina file - + New name: Nuovo nome: - - + + The file could not be renamed Impossibile rinominare il file - + This file name contains forbidden characters, please choose a different one. Questo nome file contiene caratteri vietati, scegli un nome differente. - - + + This name is already in use in this folder. Please use a different name. Questo nome è già in uso in questa cartella, scegli un nome differente. - + The folder could not be renamed La cartella non può essere rinominata - + Rename... Rinomina... - + Priority Priorità - + Invalid metadata Metadati non validi - + Parsing metadata... Analisi metadati... - + Metadata retrieval complete Recupero metadati completato - + Download Error Errore di download @@ -427,9 +432,8 @@ Risolvi i nomi host dei peer - Maximum number of half-open connections [0: Disabled] - Massimo numero di connessioni semi aperte [0: disattivato] + Massimo numero di connessioni semi aperte [0: disattivato] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Intervallo di salvataggio dati recupero + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID peer: - + HTTP User-Agent is '%1' Lo user agent HTTP è %1 - + Anonymous mode [ON] Modalità anonima [ON] - + Anonymous mode [OFF] Modalità anonima [OFF] - + PeX support [ON] Supporto PeX [ON] - + PeX support [OFF] Supporto PeX [OFF] - + Restart is required to toggle PeX support È richiesto un riavvio per modificare il supporto PeX - + Local Peer Discovery support [ON] Supporto ricerca peer locali [ON] - + Local Peer Discovery support [OFF] Supporto ricerca peer locali [OFF] - + Encryption support [ON] Supporto cifratura [ON] - + Encryption support [FORCED] Supporto cifratura [FORZATO] - + Encryption support [OFF] Supporto cifratura [OFF] - + Embedded Tracker [ON] Tracker incorporato [ON] - + Failed to start the embedded tracker! Avvio del tracker integrato non riuscito! - + Embedded Tracker [OFF] Tracker integrato [OFF] - + '%1' reached the maximum ratio you set. Removing... '%1' ha raggiunto il massimo rapporto impostato. Lo sto rimuovendo... - + '%1' reached the maximum ratio you set. Pausing... '%1' ha raggiunto il massimo rapporto impostato. Metto in pausa... - Error: Could not create torrent export directory: '%1' - Errore: Non è stato possibile creare la cartella di esportazione: '%1' + Errore: Non è stato possibile creare la cartella di esportazione: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Errore: non è stato possibile esportare il torrent '%1', forse non ha ancora metadati. + Errore: non è stato possibile esportare il torrent '%1', forse non ha ancora metadati. - + System network status changed to %1 e.g: System network status changed to ONLINE Lo stato di rete di sistema è cambiato in %1 - + ONLINE IN LINEA - + OFFLINE NON IN LINEA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding La configurazione di rete di %1 è cambiata, aggiornamento associazione di sessione - + Unable to decode '%1' torrent file. Impossibile decifrare il file torrent %1. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Download ricorsivo del file '%1' incluso nel torrent '%2' - + Couldn't save '%1.torrent' Impossibile salvare %1.torrent - + because %1 is disabled. this peer was blocked because uTP is disabled. perché %1 è disattivato. - + because %1 is disabled. this peer was blocked because TCP is disabled. perché %1 è disattivato. - + URL seed lookup failed for URL: '%1', message: %2 Ricerca seed web non riuscita per l'URL: '%1', messaggio: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' è stato rimosso dall'elenco dei trasferimenti e dal disco fisso. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' è stato rimosso dall'elenco dei trasferimenti. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Download di '%1' in corso... - Torrent Export: torrent is invalid, skipping... - Esportazione del Torrent: il file torrent non è valido, lo sto saltando... + Esportazione del Torrent: il file torrent non è valido, lo sto saltando... - + DHT support [ON] Supporto DHT [ON] - + DHT support [OFF]. Reason: %1 Supporto DHT [OFF]. Motivo: %1 - + DHT support [OFF] Supporto DHT [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sta cercando di mettersi in ascolto su ogni interfaccia sulla porta: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent non è riuscito a mettersi in ascolto su nessuna interfaccia porta: %1. Motivo: %2 + qBittorrent non è riuscito a mettersi in ascolto su nessuna interfaccia porta: %1. Motivo: %2 - + The network interface defined is invalid: %1 L'interfaccia di rete definita non è valida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sta cercando di mettersi in ascolto sull'interfaccia %1 sulla porta: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent non ha trovato un indirizzo locale %1 su cui mettersi in ascolto - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent non è riuscito a mettersi in ascolto su nessuna interfaccia porta: %1. Motivo: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Il tracker '%1' è stato aggiunto al torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Il tracker '%1' è stato rimosso dal torrent '%2' - + URL seed '%1' was added to torrent '%2' Il seed URL '%1' è stato aggiunto al torrent '%2' - + URL seed '%1' was removed from torrent '%2' Il seed URL '%1' è stato rimosso dal torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossibile riprendere il download del torrent: '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analisi filtro IP completata: sono state applicate %1 regole. - + Error: Failed to parse the provided IP filter. Errore: Impossibile analizzare il filtro IP. - + Couldn't add torrent. Reason: %1 Impossibile aggiungere il torrent. Motivo: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' ripreso. (recupero veloce) - + '%1' added to download list. 'torrent name' was added to download list. '%1' aggiunto all'elenco dei trasferimenti. - + An I/O error occurred, '%1' paused. %2 Si è verificato un errore I/O, '%1' messo in pausa. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Mappatura porta non riuscita, messaggio: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mappatura porta riuscita, messaggio: %1 - + due to IP filter. this peer was blocked due to ip filter. per via del filtro IP. - + due to port filter. this peer was blocked due to port filter. per via del filtro porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. per via di limitazioni nella modalità mista i2p. - + because it has a low port. this peer was blocked because it has a low port. perché ha una porta troppo bassa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent è correttamente in ascolto sull'interfaccia %1 porta: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 porta: %2/%3. Motivo: %4 + qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 porta: %2/%3. Motivo: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 porta: %2/%3. Motivo: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP esterno: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Impossibile spostare il torrent: '%1'. Motivo: %2 - + File sizes mismatch for torrent '%1', pausing it. La dimensione del file discorda con il torrent "%1", metto in pausa. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Il recupero veloce del torrent %1 è stato rifiutato. Motivo: %2. Altro tentativo in corso... @@ -1307,20 +1323,20 @@ Puoi ottenere questa informazione dalle preferenze del browser web. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Errore I/O. Impossibile aprire il file filtro IP in lettura. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Errore di elaborazione. Il file filtro non è un file PeerGuardian P2B valido. @@ -1328,43 +1344,43 @@ Puoi ottenere questa informazione dalle preferenze del browser web. GeoIPDatabase - - + + Unsupported database file size. Dimensione file banca dati non supportata. - + Metadata error: '%1' entry not found. Errore nei metadati: voce '%1' non trovata. - + Metadata error: '%1' entry has invalid type. Errore nei metadati: la voce '%1' è di tipo non valido. - + Unsupported database version: %1.%2 Versione banca dati non supportata: %1.%2 - + Unsupported IP version: %1 Versione IP non supportata: %1 - + Unsupported record size: %1 Dimensione record non supportata: %1 - + Invalid database type: %1 Tipo banca dati non valido: %1 - + Database corrupted: no data section found. Banca dati corrotta: impossibile trovare sezione dati. @@ -1397,9 +1413,8 @@ Puoi ottenere questa informazione dalle preferenze del browser web.Solo un collegamento per riga - Download local torrent - Scarica torrent locale + Scarica torrent locale @@ -1572,7 +1587,22 @@ Puoi ottenere questa informazione dalle preferenze del browser web.Inattivi - + + Save files to location: + Salva file nel percorso: + + + + Label: + Etichetta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Scaricato @@ -1582,6 +1612,11 @@ Puoi ottenere questa informazione dalle preferenze del browser web.Logout Disconnessione + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Puoi ottenere questa informazione dalle preferenze del browser web. LineEdit - + Clear the text Pulisci il testo @@ -1743,37 +1778,37 @@ Puoi ottenere questa informazione dalle preferenze del browser web. MainWindow - + &Edit &Modifica - + &Tools &Strumenti - + &File &File - + &Help &Aiuto - + On Downloads &Done &Al termine dei download - + &View &Visualizza - + &Options... &Opzioni... @@ -1783,153 +1818,153 @@ Puoi ottenere questa informazione dalle preferenze del browser web.&Riprendi - + Torrent &Creator &Creazione di un torrent - + Set Upload Limit... Imposta limite upload... - + Set Download Limit... Imposta limite download... - + Set Global Download Limit... Imposta limite globale download... - + Set Global Upload Limit... Imposta limite globale upload... - + Minimum Priority Priorità minima - + Top Priority Priorità massima - + Decrease Priority Diminuisci priorità - + Increase Priority Aumenta priorità - - + + Alternative Speed Limits Limiti di velocità alternativi - + &Top Toolbar &Barra strumenti superiore - + Display Top Toolbar Mostra barra strumenti superiore - + S&peed in Title Bar &Velocità nella barra del titolo - + Show Transfer Speed in Title Bar Mostra velocità di trasferimento nella barra del titolo - + &RSS Reader &Lettore RSS - + Search &Engine &Motore di ricerca - + L&ock qBittorrent Blocca &qBittorrent - + &Import Existing Torrent... &Importa torrent esistente... - + Import Torrent... Importa torrent... - + Do&nate! Fai una do&nazione! - + R&esume All R&iprendi tutti - + &Log &Registro - + &Exit qBittorrent &Esci da qBittorrent - + &Suspend System &Sospendi - + &Hibernate System Sospendi su &disco - + S&hutdown System Spe&gni - + &Disabled &Disattivato - + &Statistics &Statistiche - + Check for Updates Controlla gli aggiornamenti - + Check for Program Updates Controlla gli aggiornamenti del programma @@ -1939,77 +1974,72 @@ Puoi ottenere questa informazione dalle preferenze del browser web.&Informazioni - Exit - Esci + Esci - + &Pause Metti in &pausa - + &Delete &Elimina - + P&ause All Metti in p&ausa tutti - + &Add Torrent File... &Aggiungi file torrent... - + Open Apri - + E&xit &Esci - Options - Opzioni + Opzioni - Resume - Riprendi + Riprendi - Pause - Metti in pausa + Metti in pausa - Delete - Elimina + Elimina - + Open URL Apri URL - + &Documentation Gui&da in linea - + Lock Blocca - + Show Visualizza @@ -2020,22 +2050,21 @@ Puoi ottenere questa informazione dalle preferenze del browser web.Controlla gli aggiornamenti del programma - Lock qBittorrent - Blocca qBittorrent + Blocca qBittorrent - + Add Torrent &Link... Aggiungi colle&gamento torrent... - + If you like qBittorrent, please donate! Se ti piace qBittorrent, per favore fai una donazione! - + Execution Log Registro attività @@ -2414,52 +2443,52 @@ Chiudere qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Il tuo DNS dinamico è stato aggiornato con successo. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Errore DNS dinamico: Il servizio è momentaneamente indisponibile, nuovo tentativo fra 30 minuti. - + Dynamic DNS error: hostname supplied does not exist under specified account. Errore DNS dinamico: il nome host fornito non esiste per l'account indicato. - + Dynamic DNS error: Invalid username/password. Errore DNS dinamico: Nome utente/password non validi. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Errore DNS dinamico: qBittorrent è stato messo al bando dal servizio, per favore segnala un bug su http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Errore DNS dinamico: Il servizio ha risposto %1, per favore segnala un bug su http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Errore DNS dinamico: Il tuo nome utente è stato bloccato per abuso. - + Dynamic DNS error: supplied domain name is invalid. Errore DNS dinamico: il dominio indicato non è valido. - + Dynamic DNS error: supplied username is too short. Errore DNS dinamico: il nome utente specificato è troppo corto. - + Dynamic DNS error: supplied password is too short. Errore DNS dinamico: la password specificata è troppo corta. @@ -2467,17 +2496,17 @@ Chiudere qBittorrent? Net::DownloadHandler - + I/O Error Errore I/O - + The file size is %1. It exceeds the download limit of %2. La dimensione del file è %1. Oltrepassa il limite download di %2. - + Unexpected redirect to magnet URI. Redirezione imprevista all'URI magnet. @@ -2485,1300 +2514,1300 @@ Chiudere qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Banca dati GeoIP caricata. Tipo: %1. Data di creazione: %2. - - + + Couldn't load GeoIP database. Reason: %1 Impossibile caricare la banca dati GeoIP. Motivo: %1 - - + + N/A N/D - + Asia/Pacific Region Regione Asia/Pacifico - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emirati Arabi Uniti - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua e Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antille Olandesi - + Angola Angola - + Antarctica Antartide - + Argentina Argentina - + American Samoa Samoa Americane - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaijan - + Bosnia and Herzegovina Bosnia ed Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgio - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Sultanato del Brunei - + Bolivia Bolivia - + Brazil Brasile - + Bahamas Bahamas - + Bhutan Butan - + Bouvet Island Isola Bouvet - + Botswana Botswana - + Belarus Bielorussia - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Isole Cocos (Keeling) - + Congo, The Democratic Republic of the Repubblica Democratica del Congo - + Central African Republic Repubblica Centrafricana - + Congo Congo - + Switzerland Svizzera - + Cote D'Ivoire Costa d'Avorio - + Cook Islands Isole Cook - + Chile Cile - + Cameroon Camerun - + China Cina - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Capo Verde - + Christmas Island Isola di Natale - + Cyprus Cipro - + Czech Republic Repubblica Ceca - + Germany Germania - + Djibouti Gibuti - + Denmark Danimarca - + Dominica Dominica - + Dominican Republic Repubblica Dominicana - + Algeria Algeria - + Ecuador Ecuador - + Estonia Estonia - + Egypt Egitto - + Western Sahara Sahara Occidentale - + Eritrea Eritrea - + Spain Spagna - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fiji - + Falkland Islands (Malvinas) Isole Falkland (Malvinas) - + Micronesia, Federated States of Stati Federati di Micronesia - + Faroe Islands Isole Faroe - + France Francia - + France, Metropolitan Francia Metropolitana - + Gabon Gabon - + United Kingdom Regno Unito - + Grenada Grenada - + Georgia Georgia - + French Guiana Guyana Francese - + Ghana Ghana - + Gibraltar Gibilterra - + Greenland Groenlandia - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guinea Equatoriale - + Greece Grecia - + South Georgia and the South Sandwich Islands Georgia del Sud e Isole Sandwich Meridionali - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Isole Heard e McDonald - + Honduras Honduras - + Croatia Croazia - + Haiti Haiti - + Hungary Ungheria - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israele - + India India - + British Indian Ocean Territory Territorio britannico dell'Oceano Indiano - + Iraq Iraq - + Iran, Islamic Republic of Iran - + Iceland Islanda - + Italy Italia - + Jamaica Giamaica - + Jordan Giordania - + Japan Giappone - + Kenya Kenya - + Kyrgyzstan Kirgyzistan - + Cambodia Cambogia - + Kiribati Kiribati - + Comoros Comore - + Saint Kitts and Nevis Saint Kitts e Nevis - + Korea, Democratic People's Republic of Repubblica Democratica Popolare di Corea - + Korea, Republic of Repubblica di Corea - + Kuwait Kuwait - + Cayman Islands Isole Cayman - + Kazakhstan Kazakistan - + Lao People's Democratic Republic Repubblica Popolare Democratica del Laos - + Lebanon Libano - + Saint Lucia Santa Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Lussemburgo - + Latvia Lettonia - + Libyan Arab Jamahiriya Repubblica Araba di Libia - + Morocco Marocco - + Monaco Monaco - + Moldova, Republic of Moldova - + Madagascar Madagascar - + Marshall Islands Isole Marshall - + Macedonia Macedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - + Macau Macau - + Northern Mariana Islands Isole Marianne Settentrionali - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldive - + Malawi Malawi - + Mexico Messico - + Malaysia Malesia - + Mozambique Mozambico - + Namibia Namibia - + New Caledonia Nuova Caledonia - + Niger Niger - + Norfolk Island Isola Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Paesi Bassi - + Norway Norvegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nuova Zelanda - + Oman Oman - + Panama Panama - + Peru Perù - + French Polynesia Polinesia Francese - + Papua New Guinea Papua Nuova Guinea - + Philippines Filippine - + Pakistan Pakistan - + Poland Polonia - + Saint Pierre and Miquelon Saint-Pierre e Miquelon - + Pitcairn Islands Isole Pitcairn - + Puerto Rico Porto Rico - + Palestinian Territory Territori Palestinesi - + Portugal Portogallo - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Riunione - + Romania Romania - + Russian Federation Russia - + Rwanda Rwanda - + Saudi Arabia Arabia Saudita - + Solomon Islands Isole Solomon - + Seychelles Seychelles - + Sudan Sudan - + Sweden Svezia - + Singapore Singapore - + Saint Helena Sant'Elena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard e Jan Mayen - + Slovakia Slovacchia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe São Tomé e Principe - + El Salvador El Salvador - + Syrian Arab Republic Repubblica Araba di Siria - + Swaziland Swaziland - + Turks and Caicos Islands Turks e Caicos - + Chad Chad - + French Southern Territories Territori Francesi del Sud - + Togo Togo - + Thailand Thailandia - + Tajikistan Tajikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor Est - + Turkey Turchia - + Trinidad and Tobago Trinidad e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Repubblica Unita di Tanzania - + Ukraine Ucraina - + Uganda Uganda - + United States Minor Outlying Islands Isole Minori Esterne degli Stati Uniti - + United States Stati Uniti - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Santa Sede (Stato della Città del Vaticano) - + Saint Vincent and the Grenadines Saint Vincent e Grenadine - + Venezuela Venezuela - + Virgin Islands, British Isole Vergini britanniche - + Virgin Islands, U.S. Isole Vergini americane. - + Vietnam Vietnam - + Vanuatu Vanatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Sud Africa - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Proxy anonimo - + Satellite Provider Provider satellitare - + Other Altro - + Aland Islands Isole Aland - + Guernsey Guernsey - + Isle of Man Isola di Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. Impossibile estrarre il file banca dati GeoIP. - + Couldn't save downloaded GeoIP database file. Impossibile salvare il file banca dati GeoIP scaricato. - + Successfully updated GeoIP database. Banca dati GeoIP aggiornata correttamente. - + Couldn't download GeoIP database file. Reason: %1 Impossibile scaricare il file banca dati GeoIP. Motivo: %1 @@ -3786,12 +3815,12 @@ Chiudere qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Supporto UPnP / NAT-PMP [ON] - + UPnP / NAT-PMP support [OFF] Supporto UPnP / NAT-PMP [OFF] @@ -3799,206 +3828,265 @@ Chiudere qBittorrent? Net::Smtp - + Email Notification Error: Errore nella notifica email: + + PeerInfo + + + interested(local) and choked(peer) + interessato (locale) e congestionato (peer) + + + + interested(local) and unchoked(peer) + interessante (locale) e non segmentato (peer) + + + + interested(peer) and choked(local) + interessato (peer) e congestionato (locale) + + + + interested(peer) and unchoked(local) + interessato (peer) e non congestionato (locale) + + + + optimistic unchoke + optimistico non segmentato + + + + peer snubbed + peer ignorato + + + + incoming connection + connessione in entrata + + + + not interested(local) and unchoked(peer) + non interessato (locale) e non congestionato (peer) + + + + not interested(peer) and unchoked(local) + non interessato (peer) e non congestionato (peer) + + + + peer from PEX + peer da PEX + + + + peer from DHT + peer da DHT + + + + encrypted traffic + traffico cifrato + + + + encrypted handshake + negoziazione cifrata + + + + peer from LSD + peer da LSD + + PeerListWidget - + IP IP - + Port Porta - + Flags Flag - + Connection Connessione - + Client i.e.: Client application Client - + Progress i.e: % downloaded Avanzamento - + Down Speed i.e: Download speed Velocità download - + Up Speed i.e: Upload speed Velocità upload - + Downloaded i.e: total data downloaded Scaricati - + Uploaded i.e: total data uploaded Caricati - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Rilevanza - + Add a new peer... Aggiungi un nuovo peer... - + Copy selected Copia selezionati - - + + Ban peer permanently Metti peer permanentemente al bando - + Manually adding peer '%1'... Aggiunta manuale del peer %1... - + The peer '%1' could not be added to this torrent. Non è stato possibile aggiungere il peer '%1' a questo torrent. - + Manually banning peer '%1'... Banno manualmente il peer %1... - + Peer addition Aggiunta di peer - + Some peers could not be added. Check the Log for details. Impossibile aggiungere alcuni peer. Controlla il registro per i dettagli. - + The peers were added to this torrent. I peer sono stati aggiunti a questo torrent. - + Are you sure you want to ban permanently the selected peers? Vuoi mettere permanentemente al bando il peer selezionato? - + &Yes &Sì - + &No &No - interested(local) and choked(peer) - interessato (locale) e congestionato (peer) + interessato (locale) e congestionato (peer) - interested(local) and unchoked(peer) - interessante (locale) e non segmentato (peer) + interessante (locale) e non segmentato (peer) - interested(peer) and choked(local) - interessato (peer) e congestionato (locale) + interessato (peer) e congestionato (locale) - interested(peer) and unchoked(local) - interessato (peer) e non congestionato (locale) + interessato (peer) e non congestionato (locale) - optimistic unchoke - optimistico non segmentato + optimistico non segmentato - peer snubbed - peer ignorato + peer ignorato - incoming connection - connessione in entrata + connessione in entrata - not interested(local) and unchoked(peer) - non interessato (locale) e non congestionato (peer) + non interessato (locale) e non congestionato (peer) - not interested(peer) and unchoked(local) - non interessato (peer) e non congestionato (peer) + non interessato (peer) e non congestionato (peer) - peer from PEX - peer da PEX + peer da PEX - peer from DHT - peer da DHT + peer da DHT - encrypted traffic - traffico cifrato + traffico cifrato - encrypted handshake - negoziazione cifrata + negoziazione cifrata - peer from LSD - peer da LSD + peer da LSD @@ -4772,17 +4860,17 @@ Chiudere qBittorrent? Percorso filtro (.dat, .p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. Rilevata uscita irregolare dal programma. Uso il file di ripiego per ripristinare le impostazioni. - + An access error occurred while trying to write the configuration file. Si è verificato un errore di accesso durante la scrittura del file di configurazione. - + A format error occurred while trying to write the configuration file. Si è verificato un errore di formato durante la scrittura del file di configurazione. @@ -4888,299 +4976,298 @@ Chiudere qBittorrent? PropertiesWidget - + Downloaded: Scaricati: - + Availability: Disponibilità: - + Progress: Avanzamento: - + Transfer Trasferimento - + Time Active: Time (duration) the torrent is active (not paused) Durata attività: - + ETA: Tempo stimato: - + Uploaded: Caricati: - + Seeds: Seed: - + Download Speed: Velocità download: - + Upload Speed: Velocità upload: - + Peers: Peer: - + Download Limit: Limite download: - + Upload Limit: Limite upload: - + Wasted: Sprecati: - + Connections: Connessioni: - + Information Informazioni - + Comment: Commento: - Torrent content: - Contenuto del torrent: + Contenuto del torrent: - + Select All Seleziona tutti - + Select None Deseleziona tutti - + Normal Normale - + High Alta - + Share Ratio: Rapporto di condivisione: - + Reannounce In: Riannuncio tra: - + Last Seen Complete: Visto completo l'ultima volta: - + Total Size: Dimensione totale: - + Pieces: Parti: - + Created By: Creato da: - + Added On: Aggiunto il: - + Completed On: Completato il: - + Created On: Creato il: - + Torrent Hash: Hash torrent: - + Save Path: Percorso salvataggio: - + Maximum Massima - - + + Do not download Non scaricati - + Never Mai - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (ne hai %3) - + %1 (%2 this session) %1 (%2 in questa sessione) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (condiviso per %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (max %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 in totale) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 in media) - + Open Apri - + Open Containing Folder Apri cartella - + Rename... Rinomina... - + Priority Priorità - + New Web seed Nuovo seed web - + Remove Web seed Rimuovi seed web - + Copy Web seed URL Copia URL seed web - + Edit Web seed URL Modifica URL seed web - + Rename the file Rinomina file - + New name: Nuovo nome: - - + + The file could not be renamed Impossibile rinominare il file - + This file name contains forbidden characters, please choose a different one. Il nome di questo file contiene caratteri vietati, scegli un nome differente. - - + + This name is already in use in this folder. Please use a different name. Questo nome è già in uso in questa cartella, scegli un nome differente. - + The folder could not be renamed Impossibile rinominare cartella - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Chiudere qBittorrent? Filtra elenco file... - + New URL seed New HTTP source Nuovo seed URL - + New URL seed: Nuovo seed URL: - - + + This URL seed is already in the list. Questo seed URL è già nell'elenco. - + Web seed editing Modifica seed web - + Web seed URL: URL seed web: @@ -5225,18 +5312,18 @@ Chiudere qBittorrent? Il tuo indirizzo IP è stato messo al bando a causa dei troppi tentativi di autenticazione non riusciti. - + Error: '%1' is not a valid torrent file. Errore: "%1" non è un file torrent valido. - + Error: Could not add torrent to session. Errore: impossibile aggiungere il torrent alla sessione. - + I/O Error: Could not create temporary file. Errore I/O: Non è stato possibile creare il file temporaneo. @@ -5389,138 +5476,138 @@ Non verranno emessi avvisi. [qBittorrent] %1 è stato scaricato - + The remote host name was not found (invalid hostname) L'host remoto non è stato trovato (nome host non valido) - + The operation was canceled L'operazione è stata annullata - + The remote server closed the connection prematurely, before the entire reply was received and processed Il server remoto ha chiuso la connessione prematuramente, prima che l'intera risposta fosse ricevuta e processata - + The connection to the remote server timed out La connessione al server remoto è scaduta - + SSL/TLS handshake failed Negoziazione SSL/TLS non riuscita - + The remote server refused the connection Il server remoto ha rifiutato la connessione - + The connection to the proxy server was refused La connessione al server proxy è stata rifiutata - + The proxy server closed the connection prematurely Il server proxy ha chiuso la connessione prematuramente - + The proxy host name was not found Il nome host del proxy non è stato trovato - + The connection to the proxy timed out or the proxy did not reply in time to the request sent La connessione al proxy è scaduta oppure il proxy non ha risposto in tempo alla richiesta - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Il proxy richiede l'autenticazione per onorare la richiesta ma non ha accettato le credenziali fornite - + The access to the remote content was denied (401) È stato negato l'accesso ai contenuti remoti (401) - + The operation requested on the remote content is not permitted L'operazione richiesta sui contenuti remoti non è permessa - + The remote content was not found at the server (404) I contenuti remoti non sono stati trovati sul server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Il server remoto richiede autenticazione per accedere ai contenuti, ma le credenziali fornite non sono state accettate - + The Network Access API cannot honor the request because the protocol is not known L'API di accesso alla rete non può completare la richiesta perché il protocollo è sconosciuto - + The requested operation is invalid for this protocol L'operazione richiesta non è valida per questo protocollo - + An unknown network-related error was detected È stato rilevato un errore sconosciuto sulla rete - + An unknown proxy-related error was detected È stato rilevato un errore sconosciuto sul proxy - + An unknown error related to the remote content was detected È stato rilevato un errore sconosciuto sui contenuti remoti - + A breakdown in protocol was detected È stato rilevato un malfunzionamento sul protocollo - + Unknown error Errore sconosciuto - - + + Upgrade Aggiorna - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Hai aggiornato da una versione più vecchia che salvava i dati in maniera differente. Devi passare al nuovo sistema di salvataggio. Non ti sarà più possibile usare una versione più vecchia di v3.3.0. Continuare? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Hai aggiornato da una versione più vecchia che salvava i dati in maniera differente. Devi passare al nuovo sistema di salvataggio. Se continui, non ti sarà più possibile usare una versione più vecchia di v3.3.0. - + Couldn't migrate torrent with hash: %1 Impossibile trasferire il torrent con hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Impossibile trasferire il torrent. Nome del file per il recupero veloce non valido: %1 @@ -5709,12 +5796,12 @@ Non verranno emessi avvisi. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Scaricamento automatico di %1 dal feed RSS %2 non riuscito perché non contiene un collegamento torrent o magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... Download automatico del torrent %1 dal feed RSS %2... @@ -5758,17 +5845,17 @@ Non verranno emessi avvisi. ScanFoldersModel - + Watched Folder Cartella controllata - + Download here Scarica qui - + Download path Percorso di salvataggio @@ -7827,11 +7914,11 @@ I plugin in questione sono stati invece disattivati. fsutils - - - - - + + + + + Downloads Download @@ -7839,103 +7926,103 @@ I plugin in questione sono stati invece disattivati. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python non rilevato - + Python version: %1 Versione Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1g %2h - + Unknown Unknown (size) Sconosciuta - + qBittorrent will shutdown the computer now because all downloads are complete. Tutti i download sono stati completati, qBittorrent procederà ora con l'arresto del sistema. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working In funzione - + Updating... In aggiornamento... - + Not working Non in funzione - + Not contacted yet Non ancora contattato diff --git a/src/lang/qbittorrent_ja.ts b/src/lang/qbittorrent_ja.ts index 29abce3d3..c594714f7 100644 --- a/src/lang/qbittorrent_ja.ts +++ b/src/lang/qbittorrent_ja.ts @@ -125,219 +125,224 @@ ハッシュチェックを省略する - + + Set as default label + + + + Torrent Information Torrent 情報 - + Size: サイズ: - + Comment: コメント: - + Date: 作成日時: - + Info Hash: ハッシュ情報: - + Normal 通常 - + High 高い - + Maximum 最高 - + Do not download ダウンロードしない - - + + I/O Error I/O エラー - + The torrent file does not exist. Torrent ファイルが存在しません。 - + Invalid torrent 無効な Torrent - + Failed to load the torrent: %1 Torrent: %1 の読み込みに失敗しました - - + + Already in download list 既存の Torrent - + Free disk space: %1 ディスクの空き容量: %1 - + Not Available This comment is unavailable 利用できません - + Not Available This date is unavailable 利用できません - + Not available 不明 - + Invalid magnet link 無効なマグネットリンク - + Torrent is already in download list. Trackers were merged. - + Torrent はすでにダウンロードリストにあります。トラッカーをマージします。 - - + + Cannot add torrent - + Torrent を追加できません - + Cannot add this torrent. Perhaps it is already in adding state. - + Torrent を追加できません。おそらくこれは現在追加中のものです。 - + This magnet link was not recognized このマグネットリンクは認識されませんでした - + Magnet link is already in download list. Trackers were merged. - + マグネットリストはすでにダウンロードリストにあります。トラッカーをマージします。 - + Cannot add this torrent. Perhaps it is already in adding. - + この Torrent は追加できません。おそらくこれはすでに追加中です。 - + Magnet link マグネットリンク - + Retrieving metadata... メタデータを回収しています... - + Not Available This size is unavailable. 利用できません - - - + + + Choose save path 保存先の選択 - + Rename the file ファイル名の変更 - + New name: 新しい名前: - - + + The file could not be renamed ファイル名を変更できませんでした - + This file name contains forbidden characters, please choose a different one. ファイル名に使用できない文字が含まれています。別の文字を選択してください。 - - + + This name is already in use in this folder. Please use a different name. 同じ名前のファイルがこのフォルダー内に存在します。別の名前を指定してください。 - + The folder could not be renamed フォルダー名を変更できませんでした - + Rename... 名前の変更... - + Priority 優先度 - + Invalid metadata - + 不正なメタデータ - + Parsing metadata... メタデータを解析しています... - + Metadata retrieval complete メタデータの回収が完了しました - + Download Error - + ダウンロードエラー @@ -427,9 +432,8 @@ ピアのホスト名を解決する - Maximum number of half-open connections [0: Disabled] - 最大半開接続数 [0 無効] + 最大半開接続数 [0 無効] @@ -473,6 +477,11 @@ How often the fastresume file is saved. 再開データ保存間隔 + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -510,7 +519,7 @@ qBittorrent %1 started qBittorrent v3.2.0alpha started - + qBittorrent %1 を起動しました @@ -553,58 +562,58 @@ RSS Downloader - + RSS ダウンローダー Enable Automated RSS Downloader - + 自動 RSS ダウンローダーを有効にする Download Rules - + ダウンロードルール Rule Definition - + ルール定義 Use Regular Expressions - + 正規表現を使用する Must Contain: - + マッチする文字列: Must Not Contain: - + 除外する文字列: Episode Filter: - + エピソードフィルター: Assign Label: - + 割り当てレベル: Save to a Different Directory - + 別のディレクトリへ保存する Ignore Subsequent Matches for (0 to Disable) ... X days - + 以後の一致は無視する (0 で無効) @@ -619,37 +628,37 @@ Use global settings - + 全体設定を利用 Always - + 常に開始 Never - + 開始しない Apply Rule to Feeds: - + フィードに適用するルール: Matching RSS Articles - + マッチする RSS 記事 &Import... - + &インポート... &Export... - + &エクスポート... @@ -710,12 +719,12 @@ Last Match: %1 days ago - + 最後のマッチ: %1 日前 Last Match: Unknown - + 最後のマッチ: 不明 @@ -742,7 +751,7 @@ Are you sure you want to remove the download rule named '%1'? - + ダウンロードルール '%1' を削除してよろしいですか? @@ -858,352 +867,359 @@ BitTorrent::Session - + Peer ID: - + ピア ID: - + HTTP User-Agent is '%1' - + HTTP User-Agent: '%1' - + Anonymous mode [ON] - + 匿名モード [ON] - + Anonymous mode [OFF] - + 匿名モード [OFF] - + PeX support [ON] - + PeX サポート [ON] - + PeX support [OFF] - + PeX サポート [OFF] - + Restart is required to toggle PeX support - + PeX サポートを切り替えるには再起動が必要です - + Local Peer Discovery support [ON] - + ローカルピア交換 [ON] - + Local Peer Discovery support [OFF] - + ローカルピア交換 [OFF] - + Encryption support [ON] - + 暗号化サポート [ON] - + Encryption support [FORCED] - + 暗号化サポート [強制] - + Encryption support [OFF] - + 暗号化サポート [OFF] - + Embedded Tracker [ON] - + 埋め込みトラッカー [ON] - + Failed to start the embedded tracker! - + 埋め込みトラッカーの起動に失敗しました! - + Embedded Tracker [OFF] - + 埋め込みトラッカー [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' は共有比の上限に達しました。削除します... - + '%1' reached the maximum ratio you set. Pausing... - + '%1' は共有比の上限に達しました。停止します... - Error: Could not create torrent export directory: '%1' - + エラー: Torrent をエクスポートディレクトリ '%1' に作成できませんでした - Error: could not export torrent '%1', maybe it has not metadata yet. - + エラー: Torrent '%1' をエクスポートできませんでした。これにはまだメタデータがないのかもしれません。 - + System network status changed to %1 e.g: System network status changed to ONLINE - + システムのネットワーク状態を %1 に変更しました - + ONLINE - + オンライン - + OFFLINE - + オフライン - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + %1 のネットワーク構成が変更されました。セッションバインディングをリフレッシュします - + Unable to decode '%1' torrent file. - + Torrent ファイル '%1' をデコードできません。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Torrent '%2' に埋め込まれたファイル '%1' の再帰ダウンロード - + Couldn't save '%1.torrent' - + '%1.torrent' を保存できませんでした - + because %1 is disabled. this peer was blocked because uTP is disabled. - + %1 が無効になっています。 - + because %1 is disabled. this peer was blocked because TCP is disabled. - + %1 が無効になっています。 - + URL seed lookup failed for URL: '%1', message: %2 - + URL シードのルックアップに失敗しました ― URL: '%1', メッセージ: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' を転送リストおよびストレージから削除しました。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + '%1' を転送リストから削除しました。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + '%1' をダウンロードしています。お待ちください... - Torrent Export: torrent is invalid, skipping... - + Torrent のエクスポート: 不正な Torrent です。スキップします... - + DHT support [ON] - + DHT サポート [ON] - + DHT support [OFF]. Reason: %1 - + DHT サポート [OFF]. 理由: %1 - + DHT support [OFF] - + DHT サポート [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + qBittorrent はいずれかのインターフェースでの待ち受けを試みています。ポート: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + qBittorrent はすべてのインターフェースでの待ち受けに失敗しました。ポート: %1. 理由: %2 - + The network interface defined is invalid: %1 - + 定義されたネットワークインターフェースは無効です: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent はインターフェース %1 ポート %2 での待ち受けを試みています - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent は待ち受ける %1 ローカルアドレスを検出できませんでした - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent はすべてのインターフェースでの待ち受けに失敗しました。ポート: %1. 理由: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' - + Torrent '%2' にトラッカー '%1' が追加されました - + Tracker '%1' was deleted from torrent '%2' - + Torrent '%2' からトラッカー '%1' が削除されました - + URL seed '%1' was added to torrent '%2' - + Torrent '%2' に URL シード '%1' が追加されました - + URL seed '%1' was removed from torrent '%2' - + Torrent '%2' から URL シード '%1' が削除されました - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Torrent '%1' の再開に失敗しました。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - IP フィルターの解析に成功しました: %1 ルールが適用されました。 + IP フィルターは正常に解析されました: %1 個のルールが適用されました。 - + Error: Failed to parse the provided IP filter. - + エラー: IP フィルターの解析に失敗しました。 - + Couldn't add torrent. Reason: %1 - + Torrent を追加できませんでした: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' を再開しました. (高速再開) - + '%1' added to download list. 'torrent name' was added to download list. - + '%1' をダウンロードリストに追加しました。 - + An I/O error occurred, '%1' paused. %2 - + I/O エラーが発生しました。'%1' を停止しました。 %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: ポートマッピングに失敗しました。メッセージ: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + UPnP/NAT-PMP: ポートマッピングに成功しました。メッセージ: %1 - + due to IP filter. this peer was blocked due to ip filter. - + IP フィルターによる。 - + due to port filter. this peer was blocked due to port filter. - + ポートフィルターによる。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + i2p 混在モード制限による。 - + because it has a low port. this peer was blocked because it has a low port. - + 低いポート番号による。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent はインターフェース %1, ポート: %2/%3 での待ち受けを正常に開始しました + + + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent はインターフェース %1 ポート: %2/%3 での待ち受けに失敗しました。理由: %4. {1 ?} {2/%3.?} - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent はインターフェース %1 ポート: %2/%3 での待ち受けに失敗しました。理由: %4 - + External IP: %1 e.g. External IP: 192.168.0.1 - + 外部 IP: %1 BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + Torrent '%1' を移動できませんでした。理由: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Torrent '%1' のファイルサイズにミスマッチがあります。停止します。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - + Torrent '%1' 高速再開データはリジェクトされました (理由: %2)。再チェックしています... @@ -1239,7 +1255,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + '%1' を転送リストから削除してよろしいですか? @@ -1253,17 +1269,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + 白: 不足のピース Green: Partial pieces - + 緑: 不完全なピース Blue: Completed pieces - + 青: 完了したピース @@ -1307,66 +1323,66 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - + I/O エラー: IP フィルターを読み込みモードで開けませんでした。 - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. - + 解析エラー: フィルターファイルは正しい PeerGuardian P2B ファイルではありません。 GeoIPDatabase - - + + Unsupported database file size. - + 未サポートのデータベースファイルサイズです。 - + Metadata error: '%1' entry not found. - + メタデータエラー: '%1' エントリが見つかりません。 - + Metadata error: '%1' entry has invalid type. - + メタデータエラー: '%1' エントリは不正なタイプです。 - + Unsupported database version: %1.%2 - + 未サポートのデータベースバージョン: %1.%2 - + Unsupported IP version: %1 - + 未サポートの IP バージョン: %1 - + Unsupported record size: %1 - + 未サポートのレコードサイズ: %1 - + Invalid database type: %1 - + 不正なデータベースタイプ: %1 - + Database corrupted: no data section found. - + 破損したデータベース: データセクションが見つかりません。 @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. 1 行に 1 リンクを入力してください - Download local torrent - ローカルの Torrent ファイルでダウンロード + ローカルの Torrent ファイルでダウンロード @@ -1549,7 +1564,7 @@ You should get this information from your Web browser preferences. Completed - 完了済み + 完了 @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. 非動作 - + + Save files to location: + ファイルの保存場所: + + + + Label: + ラベル: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? ダウンロード @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout ログアウト + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text テキストをクリア @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit 編集(&E) - + &Tools ツール(&T) - + &File ファイル(&F) - + &Help ヘルプ(&H) - + On Downloads &Done ダウンロード完了時(&D) - + &View 表示(&V) - + &Options... オプション(&O)... @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. 再開(&R) - + Torrent &Creator Torrent クリエーター(&C) - + Set Upload Limit... アップロード速度制限の設定... - + Set Download Limit... ダウンロード速度制限の設定... - + Set Global Download Limit... 全体のダウンロード速度制限の設定... - + Set Global Upload Limit... 全体のアップロード速度制限の設定... - + Minimum Priority 最低優先度 - + Top Priority 最高優先度 - + Decrease Priority 優先度を下げる - + Increase Priority 優先度を上げる - - + + Alternative Speed Limits 代替速度制限 - + &Top Toolbar トップツールバー(&T) - + Display Top Toolbar トップツールバーを表示します - + S&peed in Title Bar タイトルバーに速度を表示(&P) - + Show Transfer Speed in Title Bar タイトルバーに転送速度を表示します - + &RSS Reader RSS リーダー(&R) - + Search &Engine 検索エンジン(&E) - + L&ock qBittorrent qBittorrent をロック(&O) - + &Import Existing Torrent... 既存の Torrent のインポート(&I)... - + Import Torrent... Torrent のインポート... - + Do&nate! 寄付(&N)! - + R&esume All すべて再開(&E) - + &Log ログ(&L) - + &Exit qBittorrent qBittorrent を終了(&E) - + &Suspend System システムをサスペンド(&S) - + &Hibernate System システムをハイバーネート(&H) - + S&hutdown System システムをシャットダウン(&H) - + &Disabled なにもしない(&D) - + &Statistics 統計情報(&S) - + Check for Updates 更新をチェック - + Check for Program Updates プログラムの更新情報をチェックします @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. qBittorrent について(&A) - Exit - 終了 + 終了 - + &Pause 停止(&P) - + &Delete 削除(&D) - + P&ause All すべて停止(&A) - + &Add Torrent File... Torrent ファイルの追加(&A)... - + Open 開く - + E&xit 終了(&X) - Options - オプション + オプション - Resume - 再開 + 再開 - Pause - 停止 + 停止 - Delete - 削除 + 削除 - + Open URL URL を開く - + &Documentation ドキュメント(&D) - + Lock ロック - + Show 表示 @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. プログラムの更新情報をチェックします - Lock qBittorrent - qBittorrent をロック + qBittorrent をロック - + Add Torrent &Link... Torrent リンクの追加(&L)... - + If you like qBittorrent, please donate! qBittorrent を気に入っていただけましたか? でしたら寄付をお願いします! - + Execution Log 実行ログ @@ -2149,12 +2178,12 @@ qBittorrent を Torrent ファイルおよびマグネットリンクに関連 Error - + エラー Failed to add torrent: %1 - + Torrent の追加に失敗しました: %1 @@ -2225,12 +2254,12 @@ qBittorrent を Torrent ファイルおよびマグネットリンクに関連 qBittorrent Update Available - + 新しいバージョンの qBittorrent が利用できます Already Using the Latest qBittorrent Version - + すでに最新の qBittorrent を使用しています @@ -2241,7 +2270,7 @@ qBittorrent を Torrent ファイルおよびマグネットリンクに関連 '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + '%1' のダウンロードが完了しました。 @@ -2249,17 +2278,18 @@ qBittorrent を Torrent ファイルおよびマグネットリンクに関連 Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + Torrent '%1' で I/O エラーが発生しました。 + 理由: %2 The torrent '%1' contains torrent files, do you want to proceed with their download? - + Torrent '%1' は Torrent ファイルを含んでいます。これらのダウンロードを行いますか? Couldn't download file at URL '%1', reason: %2. - + URL '%1' のファイルをダウンロードできませんでした (理由: %2)。 @@ -2321,7 +2351,7 @@ You are already using the latest version. Python found in '%1' - + Python が '%1' に見つかりました @@ -2413,1591 +2443,1651 @@ qBittorrent を終了しますか? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + ダイナミック DNS は正常に更新されました。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + ダイナミック DNS エラー: サービスが一時的に利用できない状態です。30分後にリトライします。 - + Dynamic DNS error: hostname supplied does not exist under specified account. - + ダイナミック DNS エラー: 与えられたホスト名が指定されたアカウント下に存在しません。 - + Dynamic DNS error: Invalid username/password. - + ダイナミック DNS エラー: 不正なユーザー名/パスワードです。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + ダイナミック DNS エラー: qBittorrent はサービスのブラックリストに入っています。, バグとして http://bugs.qbittorrent.org に報告してください。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + ダイナミック DNS エラー: サービスから %1 が返されました。バグとして http://bugs.qbittorrent.org に報告してください。 - + Dynamic DNS error: Your username was blocked due to abuse. - + ダイナミック DNS エラー: あなたのユーザー名は不正利用を理由にブロックされました。 - + Dynamic DNS error: supplied domain name is invalid. - + ダイナミック DNS エラー: 与えられたドメイン名は無効です。 - + Dynamic DNS error: supplied username is too short. - + ダイナミック DNS エラー: 与えられたユーザー名は短すぎます。 - + Dynamic DNS error: supplied password is too short. - + ダイナミック DNS エラー: 与えられたパスワードは短すぎます。 Net::DownloadHandler - + I/O Error - I/O エラー + I/O エラー - + The file size is %1. It exceeds the download limit of %2. - + ファイルサイズは %1 です。これは %2 のダウンロード制限を超えます。 - + Unexpected redirect to magnet URI. - + 予期しないマグネット URL へのリダイレクトです。 Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - + GeoIP データベースを読み込みました。タイプ: %1. ビルド日時: %2. - - + + Couldn't load GeoIP database. Reason: %1 - + GeoIP データベースを読み込めませんでした。理由: %1 - - + + N/A - + N/A - + Asia/Pacific Region - + アジア/太平洋地域 - + Europe - + ヨーロッパ - + Andorra - + アンドラ - + United Arab Emirates - + アラブ首長国連邦 - + Afghanistan - + アフガニスタン - + Antigua and Barbuda - + アンティグア・バーブーダ - + Anguilla - + アンギラ - + Albania - + アルバニア - + Armenia - + アルメニア - + Netherlands Antilles - + オランダ領アンティル - + Angola - + アンゴラ - + Antarctica - + 南極大陸 - + Argentina - + アルゼンチン - + American Samoa - + アメリカ領サモア - + Austria - + オーストリア - + Australia - + オーストラリア - + Aruba - + アルバ - + Azerbaijan - + アゼルバイジャン - + Bosnia and Herzegovina - + ボスニア・ヘルツェゴビナ - + Barbados - + バルバドス - + Bangladesh - + バングラデシュ - + Belgium - + ベルギー - + Burkina Faso - + ブルキナ・ファソ - + Bulgaria - + ブルガリア - + Bahrain - + バーレーン - + Burundi - + ブルンジ - + Benin - + ベナン - + Bermuda - + バーミューダ諸島 - + Brunei Darussalam - + ブルネイ・ダルサラーム - + Bolivia - + ボリビア - + Brazil - + ブラジル - + Bahamas - + バハマ - + Bhutan - + ブータン - + Bouvet Island - + ブーベ島 - + Botswana - + ボツワナ - + Belarus - + ベラルーシ - + Belize - + ベリーズ - + Canada - + カナダ - + Cocos (Keeling) Islands - + ココス (キーリング) 諸島 - + Congo, The Democratic Republic of the - + コンゴ民主共和国 - + Central African Republic - + 中央アフリカ - + Congo - + コンゴ - + Switzerland - + スイス - + Cote D'Ivoire - + コートジボワール - + Cook Islands - + クック諸島 - + Chile - + チリ - + Cameroon - + カメルーン - + China - + 中国 - + Colombia - + コロンビア - + Costa Rica - + コスタリカ - + Cuba - + キューバ - + Cape Verde - + カーボベルデ - + Christmas Island - + クリスマス島 - + Cyprus - + キプロス - + Czech Republic - + チェコ - + Germany - + ドイツ - + Djibouti - + ジブチ - + Denmark - + デンマーク - + Dominica - + ドミニカ国 - + Dominican Republic - + ドミニカ共和国 - + Algeria - + アルジェリア - + Ecuador - + エクアドル - + Estonia - + エストニア - + Egypt - + エジプト - + Western Sahara - + 西サハラ - + Eritrea - + エリトリア - + Spain - + スペイン - + Ethiopia - + エチオピア - + Finland - + フィンランド - + Fiji - + フィジー - + Falkland Islands (Malvinas) - + フォークランド (マルビナス) 諸島 - + Micronesia, Federated States of - + ミクロネシア連邦 - + Faroe Islands - + フェロー諸島 - + France - フランス + フランス - + France, Metropolitan - + フランス・メトロポリテーヌ - + Gabon - + ガボン - + United Kingdom - + イギリス - + Grenada - + グレナダ - + Georgia - + ジョージア (グルジア) - + French Guiana - + フランス領ギアナ - + Ghana - + ガーナ - + Gibraltar - + ジブラルタル - + Greenland - + グリーンランド - + Gambia - + ガンビア - + Guinea - + ギニア - + Guadeloupe - + グアドループ - + Equatorial Guinea - + 赤道ギニア - + Greece - ギリシャ + ギリシャ - + South Georgia and the South Sandwich Islands - + サウスジョージア・サウスサンドウィッチ諸島 - + Guatemala - + グアテマラ - + Guam - + グアム - + Guinea-Bissau - + ギニアビサウ - + Guyana - + ガイアナ - + Hong Kong - + 香港 - + Heard Island and McDonald Islands - + ハード島とマクドナルド諸島 - + Honduras - + ホンジュラス - + Croatia - + クロアチア - + Haiti - + ハイチ - + Hungary - + ハンガリー - + Indonesia - + インドネシア - + Ireland - + アイルランド - + Israel - + イスラエル - + India - + インド - + British Indian Ocean Territory - + イギリス領インド洋地域 - + Iraq - + イラク - + Iran, Islamic Republic of - + イラン - + Iceland - + アイスランド - + Italy - + イタリア - + Jamaica - + ジャマイカ - + Jordan - + ヨルダン - + Japan - + 日本 - + Kenya - + ケニア - + Kyrgyzstan - + キルギスタン - + Cambodia - + カンボジア - + Kiribati - + キリバス - + Comoros - + コモロ - + Saint Kitts and Nevis - + セントクリストファー・ネイビス - + Korea, Democratic People's Republic of - + 北朝鮮 - + Korea, Republic of - + 韓国 - + Kuwait - + クウェート - + Cayman Islands - + ケイマン諸島 - + Kazakhstan - + カザフスタン - + Lao People's Democratic Republic - + ラオス - + Lebanon - + レバノン - + Saint Lucia - + セントルシア - + Liechtenstein - + リヒテンシュタイン - + Sri Lanka - + スリランカ - + Liberia - + リベリア - + Lesotho - + レソト - + Lithuania - + リトアニア - + Luxembourg - + ルクセンブルク - + Latvia - + ラトビア - + Libyan Arab Jamahiriya - + リビア - + Morocco - + モロッコ - + Monaco - + モナコ - + Moldova, Republic of - + モルドバ - + Madagascar - + マダガスカル - + Marshall Islands - + マーシャル諸島 - + Macedonia - + マケドニア - + Mali - + マリ - + Myanmar - + ミャンマー - + Mongolia - + モンゴル - + Macau - + マカウ - + Northern Mariana Islands - + 北マリアナ諸島 - + Martinique - + マルティニーク - + Mauritania - + モーリタニア - + Montserrat - + モントセラト - + Malta - + マルタ - + Mauritius - + モーリシャス - + Maldives - + モルディブ - + Malawi - + マワリ - + Mexico - + メキシコ - + Malaysia - + マレーシア - + Mozambique - + モザンビーク - + Namibia - + ナミビア - + New Caledonia - + ニューカレドニア - + Niger - + ニジェール - + Norfolk Island - + ノーフォーク島 - + Nigeria - + ナイジェリア - + Nicaragua - + ニカラグア - + Netherlands - + オランダ - + Norway - + ノルウェイ - + Nepal - + ネパール - + Nauru - + ナウル - + Niue - + ニウエ - + New Zealand - + ニュージーランド - + Oman - + オマーン - + Panama - + パナマ - + Peru - + ペルー - + French Polynesia - + フランス領ポリネシア - + Papua New Guinea - + パプアニューギニア - + Philippines - + フィリピン - + Pakistan - + パキスタン - + Poland - + ポーランド - + Saint Pierre and Miquelon - + サンピエール島・ミクロン島 - + Pitcairn Islands - + ピトケアン諸島 - + Puerto Rico - + プエルトリコ - + Palestinian Territory - + パレスチナ地域 - + Portugal - + ポルトガル - + Palau - + パラウ - + Paraguay - + パラグアイ - + Qatar - + カタール - + Reunion - + レユニオン - + Romania - + ルーマニア - + Russian Federation - + ロシア - + Rwanda - + ルワンダ - + Saudi Arabia - + サウジアラビア - + Solomon Islands - + ソロモン諸島 - + Seychelles - + セーシェル - + Sudan - + スーダン - + Sweden - + スウェーデン - + Singapore - + シンガポール - + Saint Helena - + セントヘレナ - + Slovenia - + スロベニア - + Svalbard and Jan Mayen - + スヴァールバル諸島およびヤンマイエン島 - + Slovakia - + スロバキア - + Sierra Leone - + シエラレオネ - + San Marino - + サンマリノ - + Senegal - + セネガル + - + Somalia - + ソマリア - + Suriname - + スリナム - + Sao Tome and Principe - + サントメ・プリンシペ - + El Salvador - + エルサルバドル - + Syrian Arab Republic - + シリア - + Swaziland - + スワジランド - + Turks and Caicos Islands - + タークス・カイコス諸島 - + Chad - + チャド - + French Southern Territories - + フランス領南方・南極地域 - + Togo - + トーゴ - + Thailand - + タイ - + Tajikistan - + タジキスタン - + Tokelau - + トケラウ - + Turkmenistan - + トルクメニスタン - + Tunisia - + チュニジア - + Tonga - + トンガ - + Timor-Leste - + 東ティモール - + Turkey - + トルコ - + Trinidad and Tobago - + トリニダード・トバゴ - + Tuvalu - + ツバル - + Taiwan - + 台湾 - + Tanzania, United Republic of - + タンザニア - + Ukraine - + ウクライナ - + Uganda - + ウガンダ - + United States Minor Outlying Islands - + 合衆国領有小離島 - + United States - + アメリカ - + Uruguay - + ウルグアイ - + Uzbekistan - + ウズベキスタン - + Holy See (Vatican City State) - + バチカン - + Saint Vincent and the Grenadines - + セントビンセント・グレナディーン - + Venezuela - + ベネズエラ - + Virgin Islands, British - + イギリス領ヴァージン諸島 - + Virgin Islands, U.S. - + アメリカ領ヴァージン諸島. - + Vietnam - + ベトナム - + Vanuatu - + バヌアツ - + Wallis and Futuna - + ウォリス・フツナ - + Samoa - + サモア - + Yemen - + イエメン - + Mayotte - + マヨット - + Serbia - + セルビア - + South Africa - + 南アフリカ - + Zambia - + ザンビア - + Montenegro - + モンテネグロ - + Zimbabwe - + ジンバブエ - + Anonymous Proxy - + 匿名プロキシ - + Satellite Provider - + 衛星プロバイダー - + Other - + その他 - + Aland Islands - + オーランド諸島 - + Guernsey - + ガーンジー - + Isle of Man - + マン島 - + Jersey - + ジャージー - + Saint Barthelemy - + サン・バルテルミー島 - + Saint Martin - + セント・マーチン島 - + Could not uncompress GeoIP database file. - + GeoIP データベースファイルを展開できませんでした。 - + Couldn't save downloaded GeoIP database file. - + ダウンロードした GeoIP データベースファイルを保存できませんでした。 - + Successfully updated GeoIP database. - + GeoIP データベースは正常に更新されました。 - + Couldn't download GeoIP database file. Reason: %1 - + GeoIP データベースファイルをダウンロードできませんでした。理由: %1 Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP サポート [ON] - + UPnP / NAT-PMP support [OFF] - + UPnP / NAT-PMP サポート [OFF] Net::Smtp - + Email Notification Error: - + メール通知エラー: + + + + PeerInfo + + + interested(local) and choked(peer) + d = ローカルがインタレスト/ピアがチョーク + + + + interested(local) and unchoked(peer) + D = ローカルがインタレスト/ピアが非チョーク + + + + interested(peer) and choked(local) + u = ピアがインタレスト/ローカルがチョーク + + + + interested(peer) and unchoked(local) + U = ピアがインタレスト/ローカルが非チョーク + + + + optimistic unchoke + O = 楽観的非チョーク + + + + peer snubbed + S = ピアがスナッブ状態 + + + + incoming connection + I = ピアが着信接続 + + + + not interested(local) and unchoked(peer) + K = ローカルが非インタレスト/ピアが非チョーク + + + + not interested(peer) and unchoked(local) + ? = ピアが非インタレスト/ローカルが非チョーク + + + + peer from PEX + X = PEX から取得したピア + + + + peer from DHT + H = DHT から取得したピア + + + + encrypted traffic + E = 暗号化 (トラフィック) + + + + encrypted handshake + e = 暗号化 (ハンドシェイク) + + + + peer from LSD + L = LSD から取得したピア PeerListWidget - + IP IP - + Port ポート - + Flags フラグ - + Connection 接続 - + Client i.e.: Client application クライアント - + Progress i.e: % downloaded 進行状況 - + Down Speed i.e: Download speed DL 速度 - + Up Speed i.e: Upload speed UP 速度 - + Downloaded i.e: total data downloaded DL 量 - + Uploaded i.e: total data uploaded UP 量 - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. 関連性 - + Add a new peer... 新しいピアの追加... - + Copy selected 選択したものをコピー - - + + Ban peer permanently ピアを永久にアクセス禁止にする - + Manually adding peer '%1'... - + ピア '%1' を手動で追加しています... - + The peer '%1' could not be added to this torrent. - + ピア '%1'をこの Torrent に追加できませんでした。 - + Manually banning peer '%1'... - + ピア '%1' をアクセス禁止にしています... - + Peer addition ピアの追加 - - - Some peers could not be added. Check the Log for details. - - - The peers were added to this torrent. - + Some peers could not be added. Check the Log for details. + 一部のピアは追加できませんでした。詳細はログを参照してください。 - + + The peers were added to this torrent. + ピアをこの Torrent に追加しました。 + + + Are you sure you want to ban permanently the selected peers? 選択したピアを永久にアク禁にしてよろしいですか? - + &Yes はい(&Y) - + &No いいえ(&N) - interested(local) and choked(peer) - d = ローカルがインタレスト/ピアがチョーク + d = ローカルがインタレスト/ピアがチョーク - interested(local) and unchoked(peer) - D = ローカルがインタレスト/ピアが非チョーク + D = ローカルがインタレスト/ピアが非チョーク - interested(peer) and choked(local) - u = ピアがインタレスト/ローカルがチョーク + u = ピアがインタレスト/ローカルがチョーク - interested(peer) and unchoked(local) - U = ピアがインタレスト/ローカルが非チョーク + U = ピアがインタレスト/ローカルが非チョーク - optimistic unchoke - O = 楽観的非チョーク + O = 楽観的非チョーク - peer snubbed - S = ピアがスナッブ状態 + S = ピアがスナッブ状態 - incoming connection - I = ピアが着信接続 + I = ピアが着信接続 - not interested(local) and unchoked(peer) - K = ローカルが非インタレスト/ピアが非チョーク + K = ローカルが非インタレスト/ピアが非チョーク - not interested(peer) and unchoked(local) - ? = ピアが非インタレスト/ローカルが非チョーク + ? = ピアが非インタレスト/ローカルが非チョーク - peer from PEX - X = PEX から取得したピア + X = PEX から取得したピア - peer from DHT - H = DHT から取得したピア + H = DHT から取得したピア - encrypted traffic - E = 暗号化 (トラフィック) + E = 暗号化 (トラフィック) - encrypted handshake - e = 暗号化 (ハンドシェイク) + e = 暗号化 (ハンドシェイク) - peer from LSD - L = LSD から取得したピア + L = LSD から取得したピア @@ -4005,22 +4095,22 @@ qBittorrent を終了しますか? No peer entered - + ピアが入力されていません Please type at least one peer. - + 1 個以上のピアを入力してください。 Invalid peer - + 不正なピア The peer '%1' is invalid. - + ピア '%1' は正しくありません。 @@ -4028,12 +4118,12 @@ qBittorrent を終了しますか? White: Unavailable pieces - + 白: 利用できないピース Blue: Available pieces - + 青: 利用可能なピース @@ -4125,13 +4215,13 @@ qBittorrent を終了しますか? From: from (time1 to time2) - + 開始: To: time1 to time2 - + 終了: @@ -4201,7 +4291,7 @@ qBittorrent を終了しますか? Run external program on torrent completion - + Torrent の完了時に外部プログラムを実行する @@ -4514,12 +4604,12 @@ qBittorrent を終了しますか? Use proxy only for torrents - + Torrent に対してのみプロキシを利用する RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + RSS フィード、検索エンジン、ソフトウェアアップデートやその他 Torrent の転送および関連処理 (ピア交換など) に関係しない通信ではプロキシを使用しません @@ -4554,27 +4644,27 @@ qBittorrent を終了しますか? Weekdays - + 平日 Weekends - + 週末 Rate Limits Settings - + 速度制限設定 Enable µTP protocol - + µTP プロトコルを有効にする Apply rate limit to µTP protocol - + 速度制限を µTP プロトコルにも適用する @@ -4634,7 +4724,7 @@ qBittorrent を終了しますか? Automatically add these trackers to new downloads: - + 新しいダウンロードに以下のトラッカーを自動で追加する: @@ -4664,7 +4754,7 @@ qBittorrent を終了しますか? Alternative Rate Limits - + 代替速度制限 @@ -4771,19 +4861,19 @@ qBittorrent を終了しますか? フィルターパス (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + プログラムの異常終了を検知しました。設定の復元にフォールバックファイルを使用します。 - + An access error occurred while trying to write the configuration file. - + 設定ファイルの書き込み中にアクセスエラーが発生しました。 - + A format error occurred while trying to write the configuration file. - + 設定ファイルの書き込み中にフォーマットエラーが発生しました。 @@ -4881,305 +4971,304 @@ qBittorrent を終了しますか? Speed - 速度 + 速度 PropertiesWidget - + Downloaded: ダウンロード量: - + Availability: 可用性: - + Progress: 進行状況: - + Transfer 転送 - + Time Active: Time (duration) the torrent is active (not paused) 動作時間: - + ETA: 予想残り時間: - + Uploaded: アップロード量: - + Seeds: シード数: - + Download Speed: ダウンロード速度: - + Upload Speed: アップロード速度: - + Peers: ピア数: - + Download Limit: ダウンロード速度制限: - + Upload Limit: アップロード速度制限: - + Wasted: 破棄: - + Connections: 接続数: - + Information 情報 - + Comment: コメント: - Torrent content: - Torrent の内容: + Torrent の内容: - + Select All すべて選択 - + Select None すべて解除 - + Normal 通常 - + High 高い - + Share Ratio: 共有比: - + Reannounce In: 次のアナウンスまで: - + Last Seen Complete: 最後に完了ファイルを確認した日時: - + Total Size: 全体サイズ: - + Pieces: ピース数: - + Created By: 作成: - + Added On: 追加日時: - + Completed On: 完了日時: - + Created On: 作成日時: - + Torrent Hash: Torrent ハッシュ: - + Save Path: 保存パス: - + Maximum 最高 - - + + Do not download ダウンロードしない - + Never なし - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (保有 %3) - + %1 (%2 this session) - + %1 (%2 このセッション) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (シード時間 %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (最大 %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - + %1 (合計 %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (平均 %2) - + Open 開く - + Open Containing Folder 含まれているフォルダーを開く - + Rename... 名前の変更... - + Priority 優先度 - + New Web seed 新規ウェブシード - + Remove Web seed ウェブシードの削除 - + Copy Web seed URL ウェブシード URL のコピー - + Edit Web seed URL ウェブシード URL の編集 - + Rename the file ファイル名の変更 - + New name: 新しい名前: - - + + The file could not be renamed ファイル名は変更できませんでした - + This file name contains forbidden characters, please choose a different one. ファイル名に利用できない文字が含まれています。他の文字を使用してください。 - - + + This name is already in use in this folder. Please use a different name. この名前はこのフォルダー内ですでに使われています。別の名前をつけてください。 - + The folder could not be renamed フォルダー名を変更できませんでした - + qBittorrent qBittorrent @@ -5189,29 +5278,29 @@ qBittorrent を終了しますか? ファイルをフィルター... - + New URL seed New HTTP source 新規 URL シード - + New URL seed: 新規 URL シード: - - + + This URL seed is already in the list. この URL シードはすでにリストにあります。 - + Web seed editing ウェブシードの編集 - + Web seed URL: ウェブシード URL: @@ -5224,18 +5313,18 @@ qBittorrent を終了しますか? あなたの IP アドレスはあまりに多くの回数認証に失敗したためアクセス禁止になりました。 - + Error: '%1' is not a valid torrent file. エラー: '%1' は正常な Torrent ファイルではありません。 - + Error: Could not add torrent to session. - + エラー: Torrent をセッションに追加できませんでした。 - + I/O Error: Could not create temporary file. I/O エラー: テンポラリファイルを作成できません。 @@ -5359,169 +5448,169 @@ No further notices will be issued. Torrent name: %1 - + Torrent 名: %1 Torrent size: %1 - + Torrent サイズ: %1 Save path: %1 - + 保存先: %1 The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + この Torrent は %1 でダウンロードされました。 Thank you for using qBittorrent. - + qBittorrent をお使いいただきありがとうございます。 [qBittorrent] '%1' has finished downloading - + [qBittorrent] '%1' のダウンロードが完了しました - + The remote host name was not found (invalid hostname) - + リモートホスト名が見つかりませんでした (不正なホスト名) - + The operation was canceled - + 操作はキャンセルされました - + The remote server closed the connection prematurely, before the entire reply was received and processed - + リモートサーバーは応答全体を受信および処理する前に接続をクローズしました - + The connection to the remote server timed out - + リモートサーバーへの接続がタイムアウトになりました - + SSL/TLS handshake failed - + SSL/TLS ハンドシェークに失敗しました - + The remote server refused the connection - + リモートサーバーは接続を拒否しました - + The connection to the proxy server was refused - + プロキシサーバーへの接続が拒否されました - + The proxy server closed the connection prematurely - + プロキシサーバーは接続を早々にクローズしました - + The proxy host name was not found - + プロキシホスト名が見つかりませんでした - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + プロキシへの接続がタイムアウトになったかプロキシが送信要求の時間内に応答しませんでした - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + プロキシがリクエストを履行するためには認証が必要ですがどの証明書も受け付けられませんでした - + The access to the remote content was denied (401) - + リモートコンテンツへのアクセスが拒否されました (401) - + The operation requested on the remote content is not permitted - + リモートコンテンツに要求した操作は許可されていません - + The remote content was not found at the server (404) - + リモートコンテンツがサーバー上に見つかりませんでした (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + リモートサーバーがコンテンツを供給するための認証を要求しましたが提示した証明書は受け付けられませんでした - + The Network Access API cannot honor the request because the protocol is not known - + プロトコルが不明なため Network Access API は要求を履行できません - + The requested operation is invalid for this protocol - + 要求された操作はこのプロトコルでは無効です - + An unknown network-related error was detected - + 未知のネットワーク関連エラーが検出されました - + An unknown proxy-related error was detected - + 未知のプロキシ関連エラーが検出されました - + An unknown error related to the remote content was detected - + リモートコンテンツに関連する未知のエラーが検出されました - + A breakdown in protocol was detected - + プロトコルの遮断が検出されました - + Unknown error - + 未知のエラー - - + + Upgrade - + アップグレード - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + このアップデートでは、過去のバージョンで保存された情報をこのバージョン用に移行する必要があります。変換を行うと v3.3.0 より古いバージョンで使用することはできなくなります。アップデートしますか? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + このアップデートでは、過去のバージョンで保存された情報をこのバージョン用に移行する必要があります。変換を行うと v3.3.0 より古いバージョンで使用することはできなくなります。 - + Couldn't migrate torrent with hash: %1 - + Torrent を移行できませんでした。ハッシュ: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 - + Torrent を移行できませんでした。高速再開ファイル名が正しくありません: %1 @@ -5541,7 +5630,7 @@ No further notices will be issued. Mark items read - 既読にマークする + 既読にする @@ -5708,14 +5797,14 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + RSS フィード '%2' からの '%1' の自動ダウンロードが失敗しました。これには Torrent やマグネットリンクが含まれていません... - + Automatically downloading '%1' torrent from '%2' RSS feed... - + RSS フィード '%2' からの Torrent '%1' を自動ダウンロードしています... @@ -5728,7 +5817,7 @@ No further notices will be issued. Invalid RSS feed at '%1'. - + 不正な RSS フィード '%1'. @@ -5757,19 +5846,19 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder 監視フォルダー - + Download here そこにダウンロードする - + Download path - + ダウンロードパス @@ -6008,52 +6097,52 @@ No further notices will be issued. Total Upload - + 総アップロード Total Download - + 総ダウンロード Payload Upload - + アップロードのペイロード Payload Download - + ダウンロードのペイロード Overhead Upload - + アップロードのオーバーヘッド Overhead Download - + ダウンロードのオーバーヘッド DHT Upload - + DHT でのアップロード DHT Download - + DHT でのダウンロード Tracker Upload - + トラッカーのアップロード Tracker Download - + トラッカーのダウンロード @@ -6061,82 +6150,82 @@ No further notices will be issued. Period: - + 期間: 1 Minute - + 1 分 5 Minutes - + 5 分 30 Minutes - + 30 分 6 Hours - + 6 時間 Select Graphs - + グラフの選択 Total Upload - + 総アップロード Total Download - + 総ダウンロード Payload Upload - + アップロードのペイロード Payload Download - + ダウンロードのペイロード Overhead Upload - + アップロードのオーバーヘッド Overhead Download - + ダウンロードのオーバーヘッド DHT Upload - + DHT でのアップロード DHT Download - + DHT でのダウンロード Tracker Upload - + トラッカーのアップロード Tracker Download - + トラッカーのダウンロード @@ -6320,7 +6409,7 @@ No further notices will be issued. Completed (0) - 完了済み (0) + 完了 (0) @@ -6340,12 +6429,12 @@ No further notices will be issued. Inactive (0) - 非アクティブ (0) + 非動作中 (0) Errored (0) - + エラー (0) @@ -6365,7 +6454,7 @@ No further notices will be issued. Completed (%1) - 完了済み (%1) + 完了 (%1) @@ -6385,12 +6474,12 @@ No further notices will be issued. Inactive (%1) - 非アクティブ (%1) + 非動作中 (%1) Errored (%1) - + エラー (%1) @@ -6446,13 +6535,13 @@ No further notices will be issued. Torrent Files (*.torrent) - + Torrent ファイル (*.torrent) Torrent was created successfully: %1 %1 is the path of the torrent - + Torrent は正常に作成されました: %1 @@ -6523,13 +6612,13 @@ No further notices will be issued. '%1' Files %1 is a file extension (e.g. PDF) - + '%1' ファイル Please provide the location of '%1' %1 is a file name - + '%1' の場所を指定してください @@ -6689,7 +6778,7 @@ No further notices will be issued. Completed Amount of data completed (e.g. in MB) - 完了済み + 完了 @@ -6767,17 +6856,17 @@ No further notices will be issued. Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + URL '%1' のファビコンをデコードできませんでした。 PNG フォーマットのダウンロードを試みています。 Couldn't decode favicon for URL '%1'. - + URL '%1' のファビコンをデコードできませんでした。 Couldn't download favicon for URL '%1'. Reason: %2 - + URL '%1' のファビコンをダウンロードできませんでした。理由: %2 @@ -7035,7 +7124,7 @@ No further notices will be issued. Completed - 完了済み + 完了 @@ -7046,13 +7135,13 @@ No further notices will be issued. Errored torrent status, the torrent has an error - + エラー %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (シード時間 %2) @@ -7242,7 +7331,7 @@ No further notices will be issued. Copy magnet link - マグネットリンクのコピー + マグネットリンクをコピー @@ -7358,17 +7447,17 @@ No further notices will be issued. Add Peers - + ピアの追加 List of peers to add (one per line): - + 追加ピアのリスト (1行に1ピア): Format: IPv4:port / [IPv6]:port - + フォーマット: IPv4:ポート / [IPv6]:ポート @@ -7684,42 +7773,42 @@ No further notices will be issued. Invalid plugin - + 不正なプラグイン The search engine plugin is invalid, please contact the author. - + 不正な検索エンジンプラグインです。作者に連絡してください。 A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - + より新しいバージョンの '%1' 検索エンジンプラグインがインストール済みです。 '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - + '%1' 検索エンジンプラグインをアップデートできませんでした。古いバージョンを維持します。 '%1' search engine plugin could not be installed. %1 is the name of the search engine - + '%1' 検索エンジンプラグインをインストールできませんでした。 '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + '%1' 検索エンジンプラグインは正常にアップデートされました。 '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + '%1' 検索エンジンプラグインは正常にインストールされました。 @@ -7735,7 +7824,7 @@ No further notices will be issued. Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - + すみません、'%1' 検索エンジンプラグインのインストールに失敗しました。 @@ -7825,11 +7914,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads ダウンロード @@ -7837,103 +7926,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python が見つかりませんでした - + Python version: %1 Python バージョン: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1時間 %2分 - + %1d %2h e.g: 2days 10hours %1日 %2時間 - + Unknown Unknown (size) 不明 - + qBittorrent will shutdown the computer now because all downloads are complete. すべてのダウンロードが完了したので qBittorrent はコンピューターをシャットダウンします。 - + < 1m < 1 minute < 1 分 - + %1m e.g: 10minutes %1 分 - + Working 動作中 - + Updating... 更新しています... - + Not working 非動作中 - + Not contacted yet 未接触 @@ -7962,52 +8051,52 @@ Those plugins were disabled. Supported parameters (case sensitive): - + サポートパラメーター (大文字小文字を区別): %N: Torrent name - + %N: Torrent 名 %L: Label - + %L: ラベル %F: Content path (same as root path for multifile torrent) - + %F: コンテンツパス (Torrent 内ファイルのルート) %R: Root path (first torrent subdirectory path) - + %R: ルートパス (最初の Torrent のパス) %D: Save path - + %D: 保存パス %C: Number of files - + %C: ファイル数 %Z: Torrent size (bytes) - + %Z: Torrent サイズ (バイト) %T: Current tracker - + %T: 現在のトラッカー %I: Info hash - + %I: 情報ハッシュ @@ -8185,7 +8274,7 @@ Those plugins were disabled. Copy description page URL - + 説明ページ URL をコピー diff --git a/src/lang/qbittorrent_ka.ts b/src/lang/qbittorrent_ka.ts index 64c7d5fa5..4d00bb28a 100755 --- a/src/lang/qbittorrent_ka.ts +++ b/src/lang/qbittorrent_ka.ts @@ -125,217 +125,222 @@ ჰეშის შემოწმების გამოტოვება - + + Set as default label + + + + Torrent Information ტორენტის შესახებ - + Size: ზომა: - + Comment: კომენტარი: - + Date: თარიღი: - + Info Hash: ინფო ჰეში: - + Normal ჩვეულებრივი - + High მაღალი - + Maximum უმაღლესი - + Do not download არ გადმოტვირთვა - - + + I/O Error I/O შეცდომა - + The torrent file does not exist. ტორენტ ფაილი არ არსებობს. - + Invalid torrent უმართებულო ტორენტი - + Failed to load the torrent: %1 ტორენტის ჩატვირთვა ჩაიშალა: %1 - - + + Already in download list უკვე ჩამოტვირთვების სიაშია - + Free disk space: %1 თავისუფალი ადგილი დისკზე: %1 - + Not Available This comment is unavailable ხელმიუწვდომელი - + Not Available This date is unavailable ხელმიუწვდომელი - + Not available მიუწვდომელი - + Invalid magnet link უმართებულო მაგნიტური ბმული - + Torrent is already in download list. Trackers were merged. ტორენტი უკვე ჩამოტვირთვების სიაშია. ტრეკერები შეერთდნენ.. - - + + Cannot add torrent ტორენტის დამატება ვერ მოხერხდა - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized მოცემული მაგნიტური ბმულის ამოცნობა ვერ მოხერხდა - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link მაგნიტური ბმული - + Retrieving metadata... - + Not Available This size is unavailable. ხელმიუწვდომელი - - - + + + Choose save path აირჩიეთ შენახვის ადგილი - + Rename the file ფაილის გადარქმევა - + New name: ახალი სახელი: - - + + The file could not be renamed ფაილის გადარქმევა ვერ მოხერხდა - + This file name contains forbidden characters, please choose a different one. ფაილის სახელი შეიცავს აკრძალულ სიმბოლოებს, გთხოვთ აირჩიეთ სხვა სახელი. - - + + This name is already in use in this folder. Please use a different name. ამ საქაღალდეში ეს სახელი უკვე გამოიყენება. გთხოვთ აირჩიეთ სხვა სახელი. - + The folder could not be renamed საქაღალდის გადარქმევა ვერ მოხერხდა - + Rename... გადარქმევა... - + Priority პრიორიტეტი - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -427,9 +432,8 @@ პირების ჰოსტის სახელის დადგენა - Maximum number of half-open connections [0: Disabled] - ნახევრად-გახსნილი კავშირების მაქსიმალური რაოდენობა [0: გამორთული] + ნახევრად-გახსნილი კავშირების მაქსიმალური რაოდენობა [0: გამორთული] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. მხოლოდ ერთი ბმული თითო ხაზზე - Download local torrent - ლოკალური ტორენტის ჩამოტვირთვა + ლოკალური ტორენტის ჩამოტვირთვა @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + ფაილების შენახვა მდებარეობაში: + + + + Label: + + + + + Cookie: + + + + Downloaded Is the file downloaded or not? ჩამოტვირთული @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text ტექსტის წაშლა @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &რედაქტირება - + &Tools &ხელსაწყოები - + &File &ფაილი - + &Help &დახმარება - + On Downloads &Done - + &View &ხედი - + &Options... &პარამეტრები... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &გაგრძელება - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All &ყველას გაგრძელება - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &შესახებ - Exit - გამოსვლა + გამოსვლა - + &Pause &პაუზა - + &Delete &წაშლა - + P&ause All &ყველას დაპაუ&ზება - + &Add Torrent File... - + Open - + E&xit - - Options - პარამეტრები - - - - Resume - გაგრძელება - - - - Pause - დაპაუზება - - - - Delete - წაშლა - - - + Open URL - + &Documentation &დოკუმენტაცია - + Lock - + Show ჩვენება @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. - Lock qBittorrent - qBittorrent-ის ჩაკეტვა + qBittorrent-ის ჩაკეტვა - + Add Torrent &Link... - + If you like qBittorrent, please donate! თუ qBittorrent მოგწონთ, გთხოვთ გააკეთეთ ფულადი შემოწირულობა! - + Execution Log გაშვების ჟურნალი @@ -2408,52 +2399,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2452,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error I/O შეცდომა - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2470,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France საფრანგეთი - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece საბერძნეთი - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3771,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,207 +3784,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port - + Flags - + Connection კავშირი - + Client i.e.: Client application კლიენტი - + Progress i.e: % downloaded პროგრესი - + Down Speed i.e: Download speed ჩამოტვირთვის სიჩქარე - + Up Speed i.e: Upload speed ატვირთვის სიჩქარე - + Downloaded i.e: total data downloaded ჩამოტვირთული - + Uploaded i.e: total data uploaded ატვირთული - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... ახალი პირის დამატება... - + Copy selected - - + + Ban peer permanently პირის დაბლოკვა სამუდამოდ - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition პირის დამატება - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? დარწმუნებული ხართ რომ არჩეული პირების სამუდამოდ წაშლა გსურთ? - + &Yes &დიახ - + &No &არა - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4766,17 +4760,17 @@ Are you sure you want to quit qBittorrent? ფილტრის მდებარეობა (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4876,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: ჩამოტვირთული: - + Availability: ხელმისაწვდომობა: - + Progress: პროგრესი: - + Transfer ტრანსფერი - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: ატვირთული: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: დაკარგული: - + Connections: კავშირები: - + Information ინფორმაცია - + Comment: კომენტარი: - Torrent content: - ტორენტის შიგთავსი: + ტორენტის შიგთავსი: - + Select All ყველას არჩევა - + Select None არჩევის მოხსნა - + Normal ჩვეულებრივი - + High მაღალი - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum მაქსიმალური - - + + Do not download არ ჩამოიტვირთოს - + Never არასოდეს - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... გადარქმევა... - + Priority პრიორიტეტი - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file ფაილის გადარქმევა - + New name: ახალი სახელი: - - + + The file could not be renamed ფაილის გადარქმევა ვერ მოხერხდა - + This file name contains forbidden characters, please choose a different one. ფაილის სახელი შეიცავს აკრძალულ სიმბოლოებს, გთხოვთ აირჩიეთ სხვა სახელი. - - + + This name is already in use in this folder. Please use a different name. ამ საქაღალდეში ეს სახელი უკვე გამოიყენება. გთხოვთ აირჩიეთ სხვა სახელი. - + The folder could not be renamed საქაღალდის გადარქმევა ვერ მოხერხდა - + qBittorrent qBittorrent @@ -5184,29 +5177,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5219,18 +5212,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5381,138 +5374,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5701,12 +5694,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5750,17 +5743,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder მეთვალყურეობის ქვეშ მყოფი საქაღალდე - + Download here ჩამოიტვირთოს აქ - + Download path @@ -7818,11 +7811,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads ჩამოტვირთვები @@ -7830,103 +7823,103 @@ Those plugins were disabled. misc - + B bytes - + KiB kibibytes (1024 bytes) კბ - + MiB mebibytes (1024 kibibytes) მბ - + GiB gibibytes (1024 mibibytes) გბ - + TiB tebibytes (1024 gibibytes) ტბ - + Python not detected - + Python version: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1ს %2წთ - + %1d %2h e.g: 2days 10hours %1დ %2ს - + Unknown Unknown (size) უცნობია - + qBittorrent will shutdown the computer now because all downloads are complete. იმის გამო რომ ყველა ჩამოტვირთვა დასრულდა, ახლა qBittorrent გამორთავს კომპიტერს. - + < 1m < 1 minute < 1წთ - + %1m e.g: 10minutes %1წთ - + Working მუშაობს - + Updating... ნახლდება... - + Not working არ მუშაობს - + Not contacted yet ჯერ არ დაკავშირებულა diff --git a/src/lang/qbittorrent_ko.ts b/src/lang/qbittorrent_ko.ts index 288cad578..14febf3d2 100644 --- a/src/lang/qbittorrent_ko.ts +++ b/src/lang/qbittorrent_ko.ts @@ -125,217 +125,222 @@ 해시 검사 건너뛰기 - + + Set as default label + + + + Torrent Information 토렌트 정보 - + Size: 크기: - + Comment: 설명: - + Date: 날짜: - + Info Hash: 해쉬값 정보: - + Normal 보통 - + High 높음 - + Maximum 최대 - + Do not download 받지 않음 - - + + I/O Error 입출력 오류 - + The torrent file does not exist. 토렌트 파일이 없습니다. - + Invalid torrent 잘못된 토렌트 - + Failed to load the torrent: %1 토렌트 불러오기 실패: %1 - - + + Already in download list 이미 내려받기 목록에 있습니다 - + Free disk space: %1 사용 가능한 디스크 공간: %1 - + Not Available This comment is unavailable 이 의견은 사용할 수 없습니다 - + Not Available This date is unavailable 이 날짜는 사용할 수 없습니다 - + Not available 사용할 수 없습니다 - + Invalid magnet link 잘못된 자석망 고리 - + Torrent is already in download list. Trackers were merged. 내려받기 목록에 이미 토렌트가 있습니다. 트래커는 합병되었습니다. - - + + Cannot add torrent 토렌트를 추가할 수 없습니다 - + Cannot add this torrent. Perhaps it is already in adding state. 이 토렌트를 추가 할 수 없습니다. 상태를 이미 추가한것 같습니다. - + This magnet link was not recognized 이 자석망 고리는 인식할 수 없습니다 - + Magnet link is already in download list. Trackers were merged. 내려받기 목록에 마그넷 고리가 이미 존재합니다. 트래커는 합병됩니다. - + Cannot add this torrent. Perhaps it is already in adding. 이 토렌트를 추가 할 수 없습니다. 아마도 이미 추가 되었을 것입니다. - + Magnet link 자석망 고리 - + Retrieving metadata... 메타 정보 검색하는 중... - + Not Available This size is unavailable. 사용할 수 없습니다 - - - + + + Choose save path 저장 경로를 선택 - + Rename the file 파일 이름 바꾸기 - + New name: 새로운 이름: - - + + The file could not be renamed 파일 이름을 바꿀 수 없습니다 - + This file name contains forbidden characters, please choose a different one. 이 파일 이름은 금지된 문자를 포함하고 있습니다. 다른 이름을 사용하시길 바랍니다. - - + + This name is already in use in this folder. Please use a different name. 이 이름은 이미 이 폴더 안에 있습니다. 다른 이름을 사용해주세요. - + The folder could not be renamed 폴더 이름을 바꿀 수 없습니다 - + Rename... 이름 바꾸기... - + Priority 우선순위 - + Invalid metadata 잘못된 메타데이터 - + Parsing metadata... 메타 정보를 구문 분석하는 중... - + Metadata retrieval complete 메타 정보 검색을 완료 - + Download Error 내려받기 오류 @@ -427,9 +432,8 @@ 공유자 호스트 이름 분석 - Maximum number of half-open connections [0: Disabled] - 최대 하프 오픈(Half-open) 연결 수 [0: 비활성화] + 최대 하프 오픈(Half-open) 연결 수 [0: 비활성화] @@ -473,6 +477,11 @@ How often the fastresume file is saved. 데이터 구간을 다시 저장하기?? + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: 공유자 ID: - + HTTP User-Agent is '%1' HTTP 사용자 에이전트 는 '%1' - + Anonymous mode [ON] PeX 지원 [켜짐] - + Anonymous mode [OFF] 익명 모드 [꺼짐] - + PeX support [ON] PeX 지원 [켜짐] - + PeX support [OFF] PeX 지원 [꺼짐] - + Restart is required to toggle PeX support PeX 지원을 전환하려면 재시작이 필요합니다 - + Local Peer Discovery support [ON] 지역 피어 발견 지원 [켜짐] - + Local Peer Discovery support [OFF] 지역 피어 발견 지원 [꺼짐] - + Encryption support [ON] 암호화 지원 [켜짐] - + Encryption support [FORCED] 암호화 지원 [강제됨] - + Encryption support [OFF] 암호화 지원 [꺼짐] - + Embedded Tracker [ON] 내장된 트래커 [켜짐] - + Failed to start the embedded tracker! 내장된 트래커를 시작하는데 실패했습니다! - + Embedded Tracker [OFF] 내장된 트래커 [꺼짐] - + '%1' reached the maximum ratio you set. Removing... '%1' 이 당신이 설정한 최대 비율에 도달 했습니다. 제거중... - + '%1' reached the maximum ratio you set. Pausing... '%1' 이 당신이 설정한 최대 비율에 도달 했습니다. 중지 중... - Error: Could not create torrent export directory: '%1' - 오류: 토렌트 내보내기 폴더를 생성할수 없습니다: '%1' + 오류: 토렌트 내보내기 폴더를 생성할수 없습니다: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - 오류: '%1' 토렌트를 내보낼 수 없습니다, 아마 메타데이터가 아직 없습니다. + 오류: '%1' 토렌트를 내보낼 수 없습니다, 아마 메타데이터가 아직 없습니다. - + System network status changed to %1 e.g: System network status changed to ONLINE 시스템 네트워크 상태가 %1 로 변경되었습니다. - + ONLINE 온라인 - + OFFLINE 오프라인 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 네트워크 설정이 변경 되었습니다, 활동 기간 묶음 갱신중 - + Unable to decode '%1' torrent file. '%1' 토렌트 파일을 해독할 수 없습니다. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 중복 다운 '%2' 의 토렌트 에는 '%1' 의 파일이 포함되어 있습니다. - + Couldn't save '%1.torrent' '%1.torrent' 를 저장할 수 없습니다. - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 이 비활성화 되었기때문입니다. - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 이 비활성화 되었기때문입니다. - + URL seed lookup failed for URL: '%1', message: %2 URL 배포를 찾을 수 없습니다; '%1', 메시지: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' 이 전송 목록과 하드 디스크에서 제거되었습니다. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1'이(가) 전송 목록에서 제거되었습니다. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1'을(를) 받는중입니다. 기다려주세요... - Torrent Export: torrent is invalid, skipping... - 토렌트 내보내기 : 토렌트 인식 불가능, 건너뛰는중... + 토렌트 내보내기 : 토렌트 인식 불가능, 건너뛰는중... - + DHT support [ON] DHT 지원[켜짐] - + DHT support [OFF]. Reason: %1 DHT 지원[꺼짐]. 원인: %1 - + DHT support [OFF] DHT 지원 [꺼짐] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 큐빗 토렌트가 모든 인터페이스 포트에서 수신을 시도합니다: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - 큐빗 토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2 + 큐빗 토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2 - + The network interface defined is invalid: %1 정의된 네트워크 인터페이스가 잘못되었습니다: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 큐빗 토렌트가 인터페이스 %1 포트: %2 에서 수신을 시도합니다 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on 큐빗 토렌트가 수신할 지역주소 %1 을 찾지 못했습니다 - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + 큐빗 토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' '%2' 토렌트에 추적기 '%1' 이추가되었습니다 - + Tracker '%1' was deleted from torrent '%2' 트래커 '%1' 이(가) '%2' 토렌트 에서 삭제되었습니다. - + URL seed '%1' was added to torrent '%2' '%2' 토렌트에 '%1' URL 배포가 추가되었습니다 - + URL seed '%1' was removed from torrent '%2' 토렌트 '%2' 에서 URL 배포 '%1' 이 삭제되었습니다 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 토렌트 재개 불가 '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 제공된 IP 필터에 의해 성공적으로 분석되었습니다: %1 규칙들이 적용 되었습니다. - + Error: Failed to parse the provided IP filter. 오류: 제공된 IP 필터에 의한 분석이 실패했습니다. - + Couldn't add torrent. Reason: %1 토렌트를 추가할 수 없습니다. 이유: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' 를 받습니다. (빠른 받기) - + '%1' added to download list. 'torrent name' was added to download list. '%1' 이 내려받기 목록에 추가되었습니다. - + An I/O error occurred, '%1' paused. %2 입출력 오류가 발생해서 '%1'이 정지되었습니다. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: 포트 제작 실패, 메시지: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: 포트 제작 성공, 메시지: %1 - + due to IP filter. this peer was blocked due to ip filter. IP 거름망 때문. - + due to port filter. this peer was blocked due to port filter. 포트 필터에 의해 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p 혼합 모드 제한에 의해 - + because it has a low port. this peer was blocked because it has a low port. 하위 포트를 가지고 있기 때문에 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 큐빗토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 성공했습니다 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - 큐빗 토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 실패했습니다. 이유: %4 + 큐빗 토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 실패했습니다. 이유: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + 큐빗 토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 실패했습니다. 이유: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 외부 IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 토렌트 '%1' 를 이동할수 없습니다. 이유: %2 - + File sizes mismatch for torrent '%1', pausing it. 토렌트 '%1' 의 파일 크기가 불일치 하여, 정지되었습니다. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... 토렌트 '%1' 의 빠른 재개 결정이 거절되었습니다. 이유: %2. 다시 검사 하는 중... @@ -1229,7 +1245,8 @@ Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - + 쿠키의 공통 키는 다음과 같습니다: '%1', '%2'. +이 정보를 웹 브라우저의 설정에서 확인 하십시오. @@ -1238,7 +1255,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + '%1' 을 전송목록에서 삭제하시겠습니까? @@ -1306,66 +1323,66 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - + I/O 오류: IP 거름기를 읽기모드로 열 수 없습니다. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. - + 분석 오류: PeerGuardian P2B 파일은 올바른 거름기 파일이 아닙니다. GeoIPDatabase - - + + Unsupported database file size. 지원하지않는 데이터베이스 파일 크기입니다. - + Metadata error: '%1' entry not found. - + 메타 데이터 오류: '%1' 항목을 찾을 수 없습니다. - + Metadata error: '%1' entry has invalid type. - + 메타 데이터 오류: '%1' 항목이 잘못된 형식입니다. - + Unsupported database version: %1.%2 - + 지원되지 않은 데이터 베이스 버전: %1.%2 - + Unsupported IP version: %1 - + 지원되지 않은 IP 버전: %1 - + Unsupported record size: %1 - + 지원되지 않는 레코드 크기: %1 - + Invalid database type: %1 - + 잘못된 데이터 베이스 유형: %1 - + Database corrupted: no data section found. - + 손상된 데이터 베이스: 데이터 섹션이 없습니다. @@ -1396,9 +1413,8 @@ You should get this information from your Web browser preferences. 한 줄에 고리 한개씩 - Download local torrent - 지역 토렌트 받기 + 지역 토렌트 받기 @@ -1433,12 +1449,12 @@ You should get this information from your Web browser preferences. Maximum active uploads must be greater than -1. - + 최대 활성화 업로드는 -1보다 커야합니다. Maximum active torrents must be greater than -1. - + 최대 활성화 토렌트는 -1보다 커야합니다. @@ -1468,12 +1484,12 @@ You should get this information from your Web browser preferences. The port used for incoming connections must be between 1 and 65535. - + 들어오는 연결 에 사용되는 포트는 1 ~ 65535 사이에서 사용되어야 합니다. The port used for the Web UI must be between 1 and 65535. - + 웹 UI に使用するポートは 1 から 65535 の間でなくてはなりません。 @@ -1553,25 +1569,40 @@ You should get this information from your Web browser preferences. Resumed - + 재개됨 Paused - 정지됨 + 정지됨 Active - + 활성 Inactive + 비활성 + + + + Save files to location: + 파일 저장 위치: + + + + Label: + 라벨: + + + + Cookie: - + Downloaded Is the file downloaded or not? 받기 완료됨 @@ -1579,12 +1610,17 @@ You should get this information from your Web browser preferences. Logout + 로그아웃 + + + + Upload local torrent Are you sure you want to delete the selected torrents from the transfer list? - + 선택한 토렌트를 전송목록에서 삭제하시겠습니까? @@ -1721,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text 텍스트 지우기 @@ -1742,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit 편집(&E) - + &Tools 도구(&T) - + &File 파일(&F) - + &Help 도움말(&H) - + On Downloads &Done - + 내려받기 완료후 (&D) - + &View 보기(&V) - + &Options... 옵션...(&O) @@ -1782,153 +1818,153 @@ You should get this information from your Web browser preferences. 시작(&R) - + Torrent &Creator 토렌트 생성자(&C) - + Set Upload Limit... 올리기 제한 설정... - + Set Download Limit... 내려받기 제한 설정... - + Set Global Download Limit... 전역 내려받기 제한 설정... - + Set Global Upload Limit... 전역 올리기 제한 설정... - + Minimum Priority 최소 우선 순위 - + Top Priority 최고 우선 순위 - + Decrease Priority 우선 순위 낮추기 - + Increase Priority 우선 순위 올리기 - - + + Alternative Speed Limits 대체 속도 제한 - + &Top Toolbar 상단 도구 막대(&T) - + Display Top Toolbar 상단에 도구 막대 표시 - + S&peed in Title Bar 제목 표시 줄의 속도 - + Show Transfer Speed in Title Bar 제목 표시 줄에 전송 속도 표시 - + &RSS Reader RSS 리더(&R) - + Search &Engine 검색 엔진(&E) - + L&ock qBittorrent 큐빗 토렌트 잠금(&O) - + &Import Existing Torrent... 기존 토렌트 가져오기(&I)... - + Import Torrent... 토렌트 가져오기... - + Do&nate! 기부하기(&N)! - + R&esume All 모두 시작(&E) - + &Log 로그(&L) - + &Exit qBittorrent 큐빗 토렌트 종료(&E) - + &Suspend System 시스템 일시 중단(&S) - + &Hibernate System 시스템 최대 절전 모드(&H) - + S&hutdown System 시스템 종료(&H) - + &Disabled 사용안함(&D) - + &Statistics 통계(&S) - + Check for Updates 새로운 버전 확인 - + Check for Program Updates 새로운 프로그램 버전 확인 @@ -1938,77 +1974,72 @@ You should get this information from your Web browser preferences. 정보(&A) - Exit - 종료 + 종료 - + &Pause 정지(&P) - + &Delete 삭제(&D) - + P&ause All 모두 정지(&A) - + &Add Torrent File... 토렌트 파일 추가...(&A) - + Open 열기 - + E&xit 끝내기(&X) - Options - 옵션 + 옵션 - Resume - 재개 + 재개 - Pause - 일시정지 + 일시정지 - Delete - 삭제 + 삭제 - + Open URL URL 열기 - + &Documentation 문서(&D) - + Lock 잠금 - + Show 표시 @@ -2019,22 +2050,21 @@ You should get this information from your Web browser preferences. 프로그램 새로 고침 확인 - Lock qBittorrent - 큐빗 토렌트 잠금 + 큐빗 토렌트 잠금 - + Add Torrent &Link... 토렌트 고리 추가...(&L) - + If you like qBittorrent, please donate! 큐빗 토렌트가 좋다면 기부해주세요! - + Execution Log 실행 기록 @@ -2153,7 +2183,7 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Failed to add torrent: %1 - + 토렌트 추가 실패: %1 @@ -2214,33 +2244,33 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Python found in %1 - + %1 에서 파이선이 발견됨 Old Python Interpreter - + 오래된 파이썬 해석기 qBittorrent Update Available - + 큐토렌트의 새로운 버전을 사용 가능함 Already Using the Latest qBittorrent Version - + 이미 큐빗토렌트의 최신 버전을 사용중입니다 Undetermined Python version - + 알 수 없는 파이썬 버전 '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + '%1' 의 내려받기가 완료되었습니다. @@ -2248,27 +2278,28 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + 토렌트 '%1' 에서 입출력 오류가 발생했습니다. + 이유: %2 The torrent '%1' contains torrent files, do you want to proceed with their download? - + 토렌트 '%1' 가 .torrent 파일을 포함하고 있습니다. 이 파일로 내려받기를 진행하시겠습니까? Couldn't download file at URL '%1', reason: %2. - + 파일을 다운로드 할 수 없습니다. URL: %1, 원인: %2 Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + 파이썬 버전 %1 은 오래되었습니다. 검색 엔진이 작동하려면 최신 버전으로 판올림 하십시오. 최소 요구 사항 : 2.7.0 / 3.3.0. Couldn't determine your Python version (%1). Search engine disabled. - + 파이썬 버전 (% 1)을 확인할 수 없습니다. 검색 엔진을 사용할 수 없습니다. @@ -2280,12 +2311,13 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + 파이썬은 검색 엔진을 사용하는 데 필요하지만 설치가 안된것 같습니다. +지금 설치 하시겠습니까? Python is required to use the search engine but it does not seem to be installed. - + 파이썬은 검색 엔진을 사용하는 데 필요하지만 설치가 안된것 같습니다. @@ -2319,7 +2351,7 @@ You are already using the latest version. Python found in '%1' - + '%1' 에서 파이썬이 발견됨 @@ -2343,7 +2375,7 @@ Please install it manually. RSS (%1) - + RSS (%1) @@ -2411,70 +2443,70 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + 당신의 동적 DNS가 성공적으로 업데이트 되었습니다. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + 동적 DNS 오류: 서비스가 잠시 불가능합니다. 30분후에 재시도할것입니다. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + 동적 DNS 오류: 제공받은 호스트명이 특정 계정에 존재하지 않습니다. - + Dynamic DNS error: Invalid username/password. - + 동적 DNS 오류: 잘못된 사용자명/암호입니다. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + 동적 DNS 오류 : 큐빗토렌트는 이 서비스를 블랙리스트에 올렸습니다. http://bugs.qbittorrent.org에 버그를 신고 해주세요. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + 동적 DNS 오류: %1이 서비스에서 반송되었습니다. http://bugs.qbittorrent.org에 버그를 신고해주세요. - + Dynamic DNS error: Your username was blocked due to abuse. - + 동적 DNS 오류: 당신의 사용자명이 악용되어 차단되었습니다. - + Dynamic DNS error: supplied domain name is invalid. - + 동적 DNS 오류: 제공받는 도메인 이름이 잘못되었습니다. - + Dynamic DNS error: supplied username is too short. - + 동적 DNS 오류: 제공받은 사용자명은 너무 짧습니다. - + Dynamic DNS error: supplied password is too short. - + 동적 DNS 오류: 제공받은 암호가 너무 짧습니다. Net::DownloadHandler - + I/O Error 입출력 오류 - + The file size is %1. It exceeds the download limit of %2. - + 파일 크기는 %1 입니다. 2% 의 다운로드 한도가 초과하였습니다. - + Unexpected redirect to magnet URI. @@ -2482,1300 +2514,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - + GeoIP 데이터베이스를 불러올 수 없습니다. 이유: %1 - - + + N/A - + 해당 없음 - + Asia/Pacific Region - + 아시아/태평양 지역 - + Europe - + 유럽 - + Andorra - + 안도라 - + United Arab Emirates - + 아랍에미리트 - + Afghanistan - + 아프가니스탄 - + Antigua and Barbuda - + 앤티가 바부다 - + Anguilla - + 앵귈라 - + Albania - + 알바니아 - + Armenia - + 아르메니아 - + Netherlands Antilles - + 네덜란드령 안틸리스 제도 - + Angola - + 앙고라 - + Antarctica - + 남극 - + Argentina - + 아르헨티나 - + American Samoa - + 아메리칸사모아 - + Austria - + 오스트리아 - + Australia - + 오스트레일리아 - + Aruba - + 아루바 - + Azerbaijan - + 아제르바이잔 - + Bosnia and Herzegovina - + 보스니아 헤르체고비나 - + Barbados - + 바베이도스 - + Bangladesh - + 방글라데시 - + Belgium - + 벨기에 - + Burkina Faso - + 부르키나파소 - + Bulgaria - + 불가리아 - + Bahrain - + 바레인 - + Burundi - + 부룬디 - + Benin - + 베냉 - + Bermuda - + 버뮤다 - + Brunei Darussalam - + 브루나이 - + Bolivia - + 볼리비아 - + Brazil - + 브라질 - + Bahamas - + 바하마 - + Bhutan - + 부탄 - + Bouvet Island - + 부베 섬 - + Botswana - + 보츠와나 - + Belarus - + 벨라루스 - + Belize - + 벨리즈 - + Canada - + 캐나다 - + Cocos (Keeling) Islands - + 코코스 제도 - + Congo, The Democratic Republic of the - + 콩고 민주 공화국 - + Central African Republic - + 중앙아프리카 공화국 - + Congo - + 콩고 - + Switzerland - + 스위스 - + Cote D'Ivoire - + 코트디부아르 - + Cook Islands - + 쿡 제도 - + Chile - + 칠레 - + Cameroon - + 카메룬 - + China - + 중국 - + Colombia - + 콜롬비아 - + Costa Rica - + 코스타리카 - + Cuba - + 쿠바 - + Cape Verde - + 카보베르데 - + Christmas Island - + 크리스마스 섬 - + Cyprus - + 키프로스 - + Czech Republic - + 체코 - + Germany - + 독일 - + Djibouti - + 지부티 - + Denmark - + 덴마크 - + Dominica - + 도미니카 연방 - + Dominican Republic - + 도미니카 공화국 - + Algeria - + 알제리 - + Ecuador - + 에콰도르 - + Estonia - + 에스토니아 - + Egypt - + 이집트 - + Western Sahara - + 서사하라 - + Eritrea - + 에리트레아 - + Spain - + 스페인 - + Ethiopia - + 에티오피아 - + Finland - + 핀란드 - + Fiji - + 피지 - + Falkland Islands (Malvinas) - + 포클랜드 제도(말비나스 군도) - + Micronesia, Federated States of - + 미크로네시아 연방 - + Faroe Islands - + 페로 제도 - + France - 프랑스 + 프랑스 - + France, Metropolitan - + 프랑스 본토 - + Gabon - + 가봉 - + United Kingdom - + 영국 - + Grenada - + 그레나다 - + Georgia - + 조지아 - + French Guiana - + 프랑스령 기아나 - + Ghana - + 가나 - + Gibraltar - + 지브롤터 - + Greenland - + 그린란드 - + Gambia - + 감비아 - + Guinea - + 기니 - + Guadeloupe - + 과들루프 - + Equatorial Guinea - + 적도 기니 - + Greece - 그리스 + 그리스 - + South Georgia and the South Sandwich Islands - + 사우스조지아 사우스샌드위치 제도 - + Guatemala - + 과테말라 - + Guam - + - + Guinea-Bissau - + 기니비사우 - + Guyana - + 가이아나 - + Hong Kong - + 홍콩 - + Heard Island and McDonald Islands - + 허드 맥도널드 제도 - + Honduras - + 온두라스 - + Croatia - + 크로아티아 - + Haiti - + 아이티 - + Hungary - + 헝가리 - + Indonesia - + 인도네시아 - + Ireland - + 아일랜드 섬 - + Israel - + 이스라엘 - + India - + 인도 - + British Indian Ocean Territory - + 영국령 인도양 지역 - + Iraq - + 이라크 - + Iran, Islamic Republic of - + 이란 - + Iceland - + 아이슬란드 - + Italy - + 이탈리아 - + Jamaica - + 자메이카 - + Jordan - + 요르단 - + Japan - + 일본 - + Kenya - + 케냐 - + Kyrgyzstan - + 키르기스스탄 - + Cambodia - + 캄보디아 - + Kiribati - + 키리바시 - + Comoros - + 코모로 - + Saint Kitts and Nevis - + 세인트키츠 네비스 - + Korea, Democratic People's Republic of - + 북한 - + Korea, Republic of - + 대한민국 - + Kuwait - + 쿠웨이트 - + Cayman Islands - + 케이맨 제도 - + Kazakhstan - + 카자흐스탄 - + Lao People's Democratic Republic - + 라오스 - + Lebanon - + 레바논 - + Saint Lucia - + 세인트루시아 - + Liechtenstein - + 리히텐슈타인 - + Sri Lanka - + 스리랑카 - + Liberia - + 라이베리아 - + Lesotho - + 레소토 - + Lithuania - + 리투아니아 - + Luxembourg - + 룩셈부르크 - + Latvia - + 라트비아 - + Libyan Arab Jamahiriya - + 리비아 - + Morocco - + 모로코 - + Monaco - + 모나코 - + Moldova, Republic of - + 몰도바 - + Madagascar - + 마다가스카르 - + Marshall Islands - + 마셜 제도 - + Macedonia - + 마케도니아 공화국 - + Mali - + 말리 - + Myanmar - + 미얀마 - + Mongolia - + 몽골 - + Macau - + 마카오 - + Northern Mariana Islands - + 북마리아나 제도 - + Martinique - + 마르티니크 - + Mauritania - + 모리타니 - + Montserrat - + 몬세라트 - + Malta - + 몰타 - + Mauritius - + 모리셔스 - + Maldives - + 몰디브 - + Malawi - + 말라위 - + Mexico - + 멕시코 - + Malaysia - + 말레이시아 - + Mozambique - + 모잠비크 - + Namibia - + 나미비아 - + New Caledonia - + 누벨칼레도니 - + Niger - + 니제르 - + Norfolk Island - + 노퍽 섬 - + Nigeria - + 나이지리아 - + Nicaragua - + 니카라과 - + Netherlands - + 네덜란드 - + Norway - + 노르웨이 - + Nepal - + 네팔 - + Nauru - + 나우루 - + Niue - + 니우에 - + New Zealand - + 뉴질랜드 - + Oman - + 오만 - + Panama - + 파나마 - + Peru - + 페루 - + French Polynesia - + 프랑스령 폴리네시아 - + Papua New Guinea - + 파푸아 뉴기니 - + Philippines - + 필리핀 - + Pakistan - + 파키스탄 - + Poland - + 폴란드 - + Saint Pierre and Miquelon - + 생피에르 미클롱 - + Pitcairn Islands - + 핏케언 제도 - + Puerto Rico - + 푸에르토리코 - + Palestinian Territory 팔레스타인 영토 - + Portugal - + 포르투갈 - + Palau - + 팔라우 - + Paraguay - + 파라과이 - + Qatar - + 카타르 - + Reunion - + 레위니옹 - + Romania - + 루마니아 - + Russian Federation - + 러시아 - + Rwanda - + 르완다 - + Saudi Arabia - + 사우디아라비아 - + Solomon Islands - + 솔로몬 제도 - + Seychelles - + 세이셸 - + Sudan - + 수단 - + Sweden - + 스웨덴 - + Singapore - + 싱가포르 - + Saint Helena - + 세인트헬레나 - + Slovenia - + 슬로베니아 - + Svalbard and Jan Mayen - + 스발바르 얀마옌 제도 - + Slovakia - + 슬로바키아 - + Sierra Leone - + 시에라리온 - + San Marino - + 산마리노 - + Senegal - + 세네갈 - + Somalia - + 소말리아 - + Suriname - + 수리남 - + Sao Tome and Principe - + 상투메 프린시페 - + El Salvador - + 엘살바도르 - + Syrian Arab Republic - + 시리아 - + Swaziland - + 스와질란드 - + Turks and Caicos Islands - + 터크스 케이커스 제도 - + Chad - + 차드 - + French Southern Territories - + 프랑스령 남방 및 남극 - + Togo - + 토고 - + Thailand - + 태국 - + Tajikistan - + 타지키스탄 - + Tokelau - + 토켈라우 - + Turkmenistan - + 투르크메니스탄 - + Tunisia - + 튀니지 - + Tonga - + 통가 - + Timor-Leste - + 동티모르 - + Turkey - + 터키 - + Trinidad and Tobago - + 트리니다드 토바고 - + Tuvalu - + 투발루 - + Taiwan - + 대만 - + Tanzania, United Republic of - + 탄자니아 - + Ukraine - + 우크라이나 - + Uganda - + 우간다 - + United States Minor Outlying Islands - + 미국령 군소 제도 - + United States - + 미국 - + Uruguay - + 우루과이 - + Uzbekistan - + 우즈베키스탄 - + Holy See (Vatican City State) - + 교황청 (바티칸) - + Saint Vincent and the Grenadines - + 세인트빈센트 그레나딘 - + Venezuela - + 베네수엘라 - + Virgin Islands, British - + 영국령 버진아일랜드 - + Virgin Islands, U.S. - + 미국령 버진아일랜드 - + Vietnam - + 베트남 - + Vanuatu - + 바누아투 - + Wallis and Futuna - + 왈리스 퓌튀나 - + Samoa - + 사모아 - + Yemen - + 예멘 - + Mayotte - + 마요트 - + Serbia - + 세르비아 - + South Africa - + 남아프리카 공화국 - + Zambia - + 잠비아 - + Montenegro - + 몬테네그로 - + Zimbabwe - + 짐바브웨 - + Anonymous Proxy - + 익명 프록시 - + Satellite Provider - + 위성 공급자 - + Other - + 기타 - + Aland Islands - + 올란드 제도 - + Guernsey - + 건지 섬 - + Isle of Man - + 맨 섬 - + Jersey - + 저지 섬 - + Saint Barthelemy - + 생바르텔레미 - + Saint Martin - + 세인트 마틴 - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3783,219 +3815,278 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP 지원 [켜짐] - + UPnP / NAT-PMP support [OFF] - + UPnP / NAT-PMP 지원 [꺼짐] Net::Smtp - + Email Notification Error: 전자메일 알림 오류: + + PeerInfo + + + interested(local) and choked(peer) + 관심있음(지역), 혼잡함(공유자) + + + + interested(local) and unchoked(peer) + 관심있음(지역), 혼잡하지 않음(공유자) + + + + interested(peer) and choked(local) + 관심있음(공유자), 혼잡함(지역) + + + + interested(peer) and unchoked(local) + 관심있음(공유자), 혼잡하지 않음(지역) + + + + optimistic unchoke + 낙관적으로 혼잡하지 않음 + + + + peer snubbed + 공유자가 거절함 + + + + incoming connection + 수신 연결 + + + + not interested(local) and unchoked(peer) + 관심없음(지역), 혼잡하지 않음(공유자) + + + + not interested(peer) and unchoked(local) + 관심없음(공유자), 혼잡하지 않음(지역) + + + + peer from PEX + PEX 공유자 + + + + peer from DHT + DHT 공유자 + + + + encrypted traffic + 암호화된 트래픽 + + + + encrypted handshake + 암호화된 핸드쉐이크 + + + + peer from LSD + LSD 공유자 + + PeerListWidget - + IP IP - + Port 포트 - + Flags 플래그 - + Connection 연결 - + Client i.e.: Client application 사용자 - + Progress i.e: % downloaded 진행률 - + Down Speed i.e: Download speed 받기 속도 - + Up Speed i.e: Upload speed 올리기 속도 - + Downloaded i.e: total data downloaded 내려받기됨 - + Uploaded i.e: total data uploaded 올리기됨 - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. 관련성 - + Add a new peer... 새로운 공유자 추가... - + Copy selected 선택 항목 복사 - - + + Ban peer permanently 공유자 영구 추방 - + Manually adding peer '%1'... - + 공유자 '%1' 을(를) 직접 추가하기... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + 공유자 '%1' 을(를) 직접 추방하기... - + Peer addition 공유자 추가 - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. 이 공유자는 이 토렌트에 추가 되었습니다. - + Are you sure you want to ban permanently the selected peers? 선택된 공유자를 영구적으로 추방하시겠습니까? - + &Yes 예(&Y) - + &No 아니오(&N) - interested(local) and choked(peer) - 관심있음(지역), 혼잡함(공유자) + 관심있음(지역), 혼잡함(공유자) - interested(local) and unchoked(peer) - 관심있음(지역), 혼잡하지 않음(공유자) + 관심있음(지역), 혼잡하지 않음(공유자) - interested(peer) and choked(local) - 관심있음(공유자), 혼잡함(지역) + 관심있음(공유자), 혼잡함(지역) - interested(peer) and unchoked(local) - 관심있음(공유자), 혼잡하지 않음(지역) + 관심있음(공유자), 혼잡하지 않음(지역) - optimistic unchoke - 낙관적으로 혼잡하지 않음 + 낙관적으로 혼잡하지 않음 - peer snubbed - 공유자가 거절함 + 공유자가 거절함 - incoming connection - 수신 연결 + 수신 연결 - not interested(local) and unchoked(peer) - 관심없음(지역), 혼잡하지 않음(공유자) + 관심없음(지역), 혼잡하지 않음(공유자) - not interested(peer) and unchoked(local) - 관심없음(공유자), 혼잡하지 않음(지역) + 관심없음(공유자), 혼잡하지 않음(지역) - peer from PEX - PEX 공유자 + PEX 공유자 - peer from DHT - DHT 공유자 + DHT 공유자 - encrypted traffic - 암호화된 트래픽 + 암호화된 트래픽 - encrypted handshake - 암호화된 핸드쉐이크 + 암호화된 핸드쉐이크 - peer from LSD - LSD 공유자 + LSD 공유자 @@ -4018,7 +4109,7 @@ Are you sure you want to quit qBittorrent? The peer '%1' is invalid. - + '%1' 은 잘못된 공유자입니다. @@ -4026,12 +4117,12 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + 흰색: 사용 할 수 없는 부분 Blue: Available pieces - + 파란색: 사용할 수 있는 부분 @@ -4769,17 +4860,17 @@ Are you sure you want to quit qBittorrent? 거름기 경로(.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4885,299 +4976,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: 내려받기됨: - + Availability: 유효성: - + Progress: 진행률: - + Transfer 전송 - + Time Active: Time (duration) the torrent is active (not paused) 활동 시간: - + ETA: ETA: - + Uploaded: 올리기됨: - + Seeds: 배포자: - + Download Speed: 내려받기 속도: - + Upload Speed: 올리기 속도: - + Peers: 공유자: - + Download Limit: 내려받기 제한: - + Upload Limit: 올리기 제한: - + Wasted: 낭비됨: - + Connections: 연결: - + Information 정보 - + Comment: 설명: - Torrent content: - 토렌트 내용: + 토렌트 내용: - + Select All 전체 선택 - + Select None 선택 안함 - + Normal 보통 - + High 높음 - + Share Ratio: 공유 비율: - + Reannounce In: 다시 알림 시간: - + Last Seen Complete: - + 최근 본 완료: - + Total Size: 전체 크기: - + Pieces: 조각: - + Created By: - + 만든 날: - + Added On: 추가일: - + Completed On: 완료일자: - + Created On: 만든 날: - + Torrent Hash: 토렌트 해시: - + Save Path: 저장 경로 - + Maximum 최고 - - + + Do not download 받지 않음 - + Never 절대 안함 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (%3 개 있음) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (최대 %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - + %1 (전체 %2 개) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (평균 %2) - + Open 열기 - + Open Containing Folder 포함된 폴더 열기 - + Rename... 이름 바꾸기... - + Priority 우선 순위 - + New Web seed 새로운 웹 배포 - + Remove Web seed 웹 배포 제거 - + Copy Web seed URL 웹 배포 URL 복사 - + Edit Web seed URL 웹 배포 URL 편집 - + Rename the file 파일 이름 바꾸기 - + New name: 새로운 이름: - - + + The file could not be renamed 이 파일의 이름을 변경할 수 없습니다 - + This file name contains forbidden characters, please choose a different one. 파일명에 특수문자가 들어가 있습니다. 다른 이름을 입력해주십시오. - - + + This name is already in use in this folder. Please use a different name. 이 이름은 이 폴더에서 이미 사용중에 있습니다. 다른 이름을 입력해 주십시오. - + The folder could not be renamed 이 폴더의 이름을 변경할 수 없습니다 - + qBittorrent 큐빗 토렌트 @@ -5187,29 +5277,29 @@ Are you sure you want to quit qBittorrent? 거름기 파일... - + New URL seed New HTTP source 새로운 URL 배포 - + New URL seed: 새로운 URL 배포: - - + + This URL seed is already in the list. 이 URL 배포는 목록에 이미 있습니다. - + Web seed editing 웹 배포 편집 - + Web seed URL: 웹 배포 URL: @@ -5222,19 +5312,19 @@ Are you sure you want to quit qBittorrent? 인증 과정을 여러차례 실패했으므로 당신의 현재 IP 주소는 추방되었습니다. - + Error: '%1' is not a valid torrent file. 오류: '%1'은 올바른 토렌트 파일이 아닙니다. - + Error: Could not add torrent to session. 오류: 세션에 토렌트를 추가할 수 없습니다. - + I/O Error: Could not create temporary file. 입출력 오류: 임시 파일을 생성할 수 없습니다. @@ -5374,152 +5464,152 @@ No further notices will be issued. The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + 토렌트가 %1 에 받아졌습니다. Thank you for using qBittorrent. - + 큐빗토렌트를 사용해 주셔서 감사합니다. [qBittorrent] '%1' has finished downloading - + [큐빗토렌트] '%1' 의 받기가 완료되었습니다 - + The remote host name was not found (invalid hostname) - + The operation was canceled 작업 취소됨 - + The remote server closed the connection prematurely, before the entire reply was received and processed 원격 서버로부터 회신을 다 받기 전에 연결이 닫혔습니다 - + The connection to the remote server timed out 원격 서버 연결 시간 초과 - + SSL/TLS handshake failed SSL/TLS 신호 변경 실패 - + The remote server refused the connection 원격 서버가 연결을 거부하였음 - + The connection to the proxy server was refused 프록시 서버가 연결을 거부하였음 - + The proxy server closed the connection prematurely 프록시 서버 연결을 영구적으로 제한하였음 - + The proxy host name was not found 프록시 호스트 이름을 찾을 수 없음 - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + 원격 자료 접속이 거부됨 (401) - + The operation requested on the remote content is not permitted - 원격 자료에 요청하신 작업은 허용되지 않습니다 + 원격 자료에 요청한 작업은 허용되지 않습니다 - + The remote content was not found at the server (404) 원격 자료를 서버에서 찾을 수 없습니다 (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - 자료에 접근하기 위해선 원격 서버의 인증과정을 거쳐합니다. 하지만 입력하신 인증은 인정되지 않았습니다 + 자료에 접근하기 위해선 원격 서버의 인증과정을 거쳐합니다. 하지만 입력한 인증은 인정되지 않았습니다 - + The Network Access API cannot honor the request because the protocol is not known 알려지지 않은 프로토콜 사용으로 인해 네트워크 접근 API를 사용하실 수 없습니다 - + The requested operation is invalid for this protocol - 요청하신 작업은 현재 사용중인 프로토콜에 적당하지 않습니다 + 요청한 작업은 현재 사용중인 프로토콜에 적당하지 않습니다 - + An unknown network-related error was detected 알 수 없는 네트워크 관련 오류가 감지 되었습니다 - + An unknown proxy-related error was detected 알 수 없는 프록시 관련 오류가 감지되었습니다 - + An unknown error related to the remote content was detected 원격 자료 관련하여 알 수 없는 오류가 감지되었습니다 - + A breakdown in protocol was detected - + 프로토콜 파손이 감지 되었습니다 - + Unknown error 알 수 없는 오류 - - + + Upgrade 판 올림 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5708,12 +5798,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5757,17 +5847,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder 주시할 폴더 - + Download here 여기에 내려받기 - + Download path @@ -6345,7 +6435,7 @@ No further notices will be issued. Errored (0) - + 오류남 (0) @@ -7368,7 +7458,7 @@ No further notices will be issued. Format: IPv4:port / [IPv6]:port - + 형식: IPv4:포트 / [IPv6]:포트 @@ -7479,7 +7569,7 @@ No further notices will be issued. You can separate tracker tiers / groups with an empty line. A tracker tier is a group of trackers, consisting of a main tracker and its mirrors. - 추적기 티어 / 그룹을 빈 줄로 분리할 수 있습니다. + 추적기 계층 / 그룹을 빈 줄로 분리할 수 있습니다. @@ -7504,7 +7594,7 @@ No further notices will be issued. 128 KiB - 128 KB + 128 KiB @@ -7582,7 +7672,7 @@ No further notices will be issued. One per line (HTTP links, Magnet links and info-hashes are supported) - 한 줄에 하나의 고리 (HTTP 고리, 자석망 고리, Info-hash를 지원합니다) + 한 줄에 한개 (HTTP 고리, 자석망 고리, Info-hash를 지원합니다) @@ -7656,7 +7746,7 @@ No further notices will be issued. Check for updates - 새로운 버전 확인 + 판올림 확인 @@ -7684,42 +7774,42 @@ No further notices will be issued. Invalid plugin - + 잘못된 플러그인 The search engine plugin is invalid, please contact the author. - + 잘못된 검색 엔진 플러그인입니다. 저자에게 문의 하십시오 A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - + '%1' 검색 엔진 플러그인 의 최신 버전이 이미 설치되어 있습니다. '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - + '%1' 검색 엔진 플러그인이 판올림 되지 않았습니다. 예전 버전을 유지합니다. '%1' search engine plugin could not be installed. %1 is the name of the search engine - + '%1' 검색 엔진 플러그인이 설치되지 않았습니다. '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + '%1' 검색 엔진 플러그인이 판올림 되었습니다. '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + '%1' 검색 엔진 플러그인이 설치 되었습니다. @@ -7729,13 +7819,13 @@ No further notices will be issued. Select search plugins - 검색 플러그인을 선택하십시오 + 검색 플러그인을 선택하십시오 Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - + 죄송합니다, '%1' 검색 플러그인 설치에 실패 했습니다. @@ -7826,11 +7916,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads 내려받기 @@ -7838,103 +7928,103 @@ Those plugins were disabled. misc - + B bytes - 바이트 + B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python 이 별견되지 않았습니다 - + Python version: %1 파이썬 버전: %1 - + /s per second /초 - + %1h %2m e.g: 3hours 5minutes %1시 %2분 - + %1d %2h e.g: 2days 10hours %1일 %2시 - + Unknown Unknown (size) 알 수 없음 - + qBittorrent will shutdown the computer now because all downloads are complete. 큐빗 토렌트가 모든 내려받기를 완료했으므로 이제 시스템을 종료하겠습니다. - + < 1m < 1 minute < 1분 - + %1m e.g: 10minutes %1분 - + Working 동작중 - + Updating... 갱신중... - + Not working 작동 안됨 - + Not contacted yet 아직 접속되지 않음 @@ -7953,7 +8043,7 @@ Those plugins were disabled. Choose a save directory - 파일을 저장할 경로를 선택해주세요 + 파일을 저장할 경로를 선택 @@ -7963,67 +8053,67 @@ Those plugins were disabled. Supported parameters (case sensitive): - + 지원되는 인자 (대소문자 구분): %N: Torrent name - + %N: 토렌트 이름 %L: Label - + %L: 라벨 %F: Content path (same as root path for multifile torrent) - + %F: 내용 경로 (여러 토렌트 파일의 같은 루트 경로) %R: Root path (first torrent subdirectory path) - + %R: 루트 경로 (토렌트의 처음 하위 디렉토리 경로) %D: Save path - + %D: 저장 경로 %C: Number of files - + %C: 파일 개수 %Z: Torrent size (bytes) - + %Z: 토렌트 크기 (바이트) %T: Current tracker - + %T: 현재 추적기 %I: Info hash - + %I: 정보 해쉬 Folder is already being watched. - 선택하신 폴더는 이미 스캔 목록에 포함되어 있습니다. + 선택한 폴더는 이미 스캔 목록에 포함되어 있습니다. Folder does not exist. - 선택하신 폴더는 존재하지 않습니다. + 선택한 폴더는 존재하지 않습니다. Folder is not readable. - 선택하신 폴더를 읽을 수 없습니다. + 선택한 폴더를 읽을 수 없습니다. @@ -8186,7 +8276,7 @@ Those plugins were disabled. Copy description page URL - + 설명 페이지 URL 을 복사 diff --git a/src/lang/qbittorrent_lt.ts b/src/lang/qbittorrent_lt.ts index bbf8dfe66..e4d0551e6 100644 --- a/src/lang/qbittorrent_lt.ts +++ b/src/lang/qbittorrent_lt.ts @@ -125,217 +125,222 @@ Praleisti maišos rakto tikrinimą - + + Set as default label + + + + Torrent Information Torento informacija - + Size: Dydis: - + Comment: Komentaras: - + Date: Data: - + Info Hash: Informacijos Maiša: - + Normal Įprasta - + High Aukšta - + Maximum Aukščiausia - + Do not download Nesiųsti - - + + I/O Error I/O klaida - + The torrent file does not exist. Torento failas neegzistuoja. - + Invalid torrent Netaisyklingas torentas - + Failed to load the torrent: %1 Nepavyko įkelti torento: %1 - - + + Already in download list Jau yra siuntimų sąraše - + Free disk space: %1 Laisva vieta diske: %1 - + Not Available This comment is unavailable Neprieinama - + Not Available This date is unavailable Neprieinama - + Not available Neprieinama - + Invalid magnet link Netaisyklinga magnet nuoroda - + Torrent is already in download list. Trackers were merged. Torentas jau yra siuntimų sąraše. Seklių sąrašai buvo sulieti. - - + + Cannot add torrent Nepavyko pridėti torento - + Cannot add this torrent. Perhaps it is already in adding state. Nepavyko pridėti šio torento. Galbūt, jis jau yra pridėjimo būsenoje. - + This magnet link was not recognized Ši magnet nuoroda neatpažinta - + Magnet link is already in download list. Trackers were merged. Magnet nuoroda jau yra siuntimų sąraše. Seklių sąrašai buvo sulieti. - + Cannot add this torrent. Perhaps it is already in adding. Nepavyko pridėti šio torento. Galbūt, jis jau yra pridedamas. - + Magnet link Magnet nuoroda - + Retrieving metadata... Atsiunčiami metaduomenys... - + Not Available This size is unavailable. Neprieinama - - - + + + Choose save path Pasirinkite išsaugojimo vietą - + Rename the file Pervadinti failą - + New name: Naujas vardas: - - + + The file could not be renamed Failo pervadinti nepavyko - + This file name contains forbidden characters, please choose a different one. Šiame failo varde yra neleistinų simbolių, pasirinkite kitokį. - - + + This name is already in use in this folder. Please use a different name. Šis vardas šiame aplanke jau naudojamas. Pasirinkite kitokį vardą. - + The folder could not be renamed Aplanko pervadinti nepavyko - + Rename... Pervadinti... - + Priority Svarba - + Invalid metadata Netaisyklingi metaduomenys - + Parsing metadata... Analizuojami metaduomenys... - + Metadata retrieval complete Metaduomenų atsiuntimas baigtas - + Download Error Atsiuntimo Klaida @@ -427,9 +432,8 @@ Gauti siuntėjų stočių vardus - Maximum number of half-open connections [0: Disabled] - Didžiausias pusiau atvirų prisijungimų kiekis[0: Išjungta] + Didžiausias pusiau atvirų prisijungimų kiekis[0: Išjungta] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Pratęstų duomenų išsaugojimo intervalas + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -568,43 +577,43 @@ Rule Definition - + Taisyklės apibrėžimas Use Regular Expressions - + Naudoti reguliariąsias išraiškas Must Contain: - + Privalo turėti žodį: Must Not Contain: - + Privalo neturėti žodžio: Episode Filter: - + Epizodų filtras: Assign Label: - + Priskirti etiketę: Save to a Different Directory - + Išsaugoti kitame kataloge Ignore Subsequent Matches for (0 to Disable) ... X days - + Nepaisyti paeilinių atitikimų (0, kad būtų išjungta) @@ -619,7 +628,7 @@ Use global settings - + Naudoti globalius nustatymus @@ -644,12 +653,12 @@ &Import... - + &Importuoti... &Export... - + &Eksportuoti... @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Siuntėjo ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] Anoniminis režimas [ĮJUNGTAS] - + Anonymous mode [OFF] Anoniminis režimas [IŠJUNGTAS] - + PeX support [ON] PeX palaikymas [ĮJUNGTAS] - + PeX support [OFF] PeX palaikymas [IŠJUNGTAS] - + Restart is required to toggle PeX support Būtina paleisti programą iš naujo norint pakeisti PeX palaikymą - + Local Peer Discovery support [ON] Vietinių siuntėjų aptikimo palaikymas [ĮJUNGTAS] - + Local Peer Discovery support [OFF] Vietinių siuntėjų aptikimo palaikymas [IŠJUNGTAS] - + Encryption support [ON] Šifravimo palaikymas [ĮJUNGTAS] - + Encryption support [FORCED] Šifravimo palaikymas [PRIVERSTINIS] - + Encryption support [OFF] Šifravimo palaikymas [IŠJUNGTAS] - + Embedded Tracker [ON] Įtaisytas seklys [ĮJUNGTAS] - + Failed to start the embedded tracker! Nepavyko paleisti įtaisytojo seklio! - + Embedded Tracker [OFF] Įtaisytasis seklys [IŠJUNGTAS] - + '%1' reached the maximum ratio you set. Removing... "%1" pasiekė didžiausią jūsų nustatytą dalinimosi santykį. Šalinama... - + '%1' reached the maximum ratio you set. Pausing... "%1" pasiekė didžiausią jūsų nustatytą dalinimosi santykį. Pristabdoma... - Error: Could not create torrent export directory: '%1' - Klaida: Nepavyko sukurti torento eksportavimo katalogo: "%1" + Klaida: Nepavyko sukurti torento eksportavimo katalogo: "%1" - Error: could not export torrent '%1', maybe it has not metadata yet. - + Klaida: nepavyko eksportuoti torento "%1", galbūt, jis dar neturi metaduomenų. - + System network status changed to %1 e.g: System network status changed to ONLINE - + Sistemos tinklo būsena pasikeitė į %1 - + ONLINE - + PRISIJUNGTA - + OFFLINE - + ATSIJUNGTA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Nepavyko iškoduoti "%1" torento failo. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursyvus failo "%1", įdėto į torentą "%2", atsiuntimas - + Couldn't save '%1.torrent' Nepavyko išsaugoti "%1.torrent" - + because %1 is disabled. this peer was blocked because uTP is disabled. nes %1 yra išjungta. - + because %1 is disabled. this peer was blocked because TCP is disabled. nes %1 yra išjungta. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' buvo pašalintas iš siuntimų sąrašo bei kietojo disko. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' buvo pašalintas iš siuntimų sąrašo. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Atsiunčiamas '%1', luktelkite... - Torrent Export: torrent is invalid, skipping... - Torento Eksportavimas: netaisyklingas torentas, praleidžiama... + Torento Eksportavimas: netaisyklingas torentas, praleidžiama... - + DHT support [ON] DHT palaikymas [ĮJUNGTAS] - + DHT support [OFF]. Reason: %1 DHT palaikymas [IŠJUNGTAS]. Priežastis: %1 - + DHT support [OFF] DHT palaikymas [IŠJUNGTAS] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent bando klausytis ties visų įrenginių prievadu: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2 + qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2 - + The network interface defined is invalid: %1 Ši tinklo sąsaja yra netinkama: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent bando klausytis ties įrenginio %1 prievadu: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorent nepavyko rasti %1 vietinio adreso klausymuisi - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Seklys '%1' buvo pridėtas prie torento '%2' - + Tracker '%1' was deleted from torrent '%2' Seklys '%1' buvo ištrintas iš torento '%2' - + URL seed '%1' was added to torrent '%2' URL šaltinis '%1' buvo pridėtas prie torento '%2' - + URL seed '%1' was removed from torrent '%2' URL šaltinis '%1' buvo pašalintas iš torento '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Nepavyko pratęsti torento "%1". - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Nurodytas IP filtras sėkmingai įkeltas. %1 taisyklės pritaikytos. - + Error: Failed to parse the provided IP filter. Klaida: Nepavyko įkelti nurodyto IP filtro. - + Couldn't add torrent. Reason: %1 Nepavyko pridėti torento. Priežastis: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - '%1' buvo pratęstas (spartusis pratęsimas) + '%1' buvo pratęstas (spartus pratęsimas) - + '%1' added to download list. 'torrent name' was added to download list. '%1' buvo pridėtas į siuntimų sąrašą. - + An I/O error occurred, '%1' paused. %2 Įvyko I/O klaida, '%1' pristabdytas. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Prievadų išdėstymas nesėkmingas, žinutė: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Prievadų išdėstymas sėkmingas, žinutė: %1 - + due to IP filter. this peer was blocked due to ip filter. dėl IP filtro. - + due to port filter. this peer was blocked due to port filter. dėl prievadų filtro. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. dėl i2p maišytos veiksenos apribojimų. - + because it has a low port. this peer was blocked because it has a low port. nes jo žemas prievadas. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent sėkmingai klausosi ties įrenginio %1 prievadu: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4 + qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Išorinis IP: %1 @@ -1191,19 +1207,19 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Nepavyko perkelti torento: '%1'. Priežastis: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - + Spartaus pratęsimo duomenys torentui "%1" buvo atmesti. Priežastis: %2. Tikrinama iš naujo... @@ -1307,20 +1323,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. I/O Klaida: Nepavyko atverti ip filtrų failo skaitymo veiksenoje. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1328,43 +1344,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. Nepalaikomas duomenų bazės failo dydis. - + Metadata error: '%1' entry not found. Metaduomenų klaida: "%1" įrašas nerastas. - + Metadata error: '%1' entry has invalid type. Metaduomenų klaida: "%1" įrašas turi netaisyklingą tipą. - + Unsupported database version: %1.%2 Nepalaikoma duomenų bazės versija: %1.%2 - + Unsupported IP version: %1 Nepalaikoma IP versija: %1 - + Unsupported record size: %1 Nepalaikomas įrašo dydis: %1 - + Invalid database type: %1 Neteisingas duomenų bazės tipas: %1 - + Database corrupted: no data section found. Duomenų bazė sugadinta: nerasta duomenų sekcija. @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. Po vieną nuorodą eilutėje - Download local torrent - Atsiųsti vietinį torentą + Atsiųsti vietinį torentą @@ -1554,7 +1569,7 @@ You should get this information from your Web browser preferences. Resumed - + Pratęsta @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Failus išsaugoti į: + + + + Label: + Etiketė: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Atsiųstas @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout Atsijungti + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Išvalyti tekstą @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit R&edaguoti - + &Tools Priem&onės - + &File &Failas - + &Help &Žinynas - + On Downloads &Done Už&baigus atsiuntimus - + &View Rod&ymas - + &Options... &Parinktys... @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. &Tęsti - + Torrent &Creator Su&kurti torentą - + Set Upload Limit... Nustatyti išsiuntimo greičio ribą... - + Set Download Limit... Nustatyti atsiuntimo greičio ribą... - + Set Global Download Limit... Nustatyti globalią atsiuntimo greičio ribą... - + Set Global Upload Limit... Nustatyti globalią išsiuntimo greičio ribą... - + Minimum Priority Žemiausia svarba - + Top Priority Aukščiausia svarba - + Decrease Priority Sumažinti svarbą - + Increase Priority Padidinti svarbą - - + + Alternative Speed Limits Alternatyvūs greičio apribojimai - + &Top Toolbar Viršutinė įrankių juos&ta - + Display Top Toolbar Rodyti viršutinę įrankių juostą - + S&peed in Title Bar &Greitis pavadinimo juostoje - + Show Transfer Speed in Title Bar Rodyti siuntimų greitį pavadinimo juostoje - + &RSS Reader &RSS skaitytuvas - + Search &Engine Paieškos &Sistema - + L&ock qBittorrent Užra&kinti qBittorrent - + &Import Existing Torrent... &Importuoti esamą torentą... - + Import Torrent... Importuoti torentą... - + Do&nate! &Paaukoti! - + R&esume All T&ęsti visus - + &Log Ž&urnalas - + &Exit qBittorrent Iš&eiti iš qBittorrent - + &Suspend System Pri&stabdyti sistemą - + &Hibernate System &Užmigdyti sistemą - + S&hutdown System Iš&jungti kompiuterį - + &Disabled &Išjungta - + &Statistics &Statistika - + Check for Updates Tikrinti, ar yra atnaujinimų - + Check for Program Updates Tikrinti, ar yra programos atnaujinimų @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. &Apie - Exit - Išeiti + Išeiti - + &Pause &Pristabdyti - + &Delete Ištrin&ti - + P&ause All Prist&abdyti visus - + &Add Torrent File... &Pridėti torento failą... - + Open Atverti - + E&xit Iš&eiti - Options - Parinktys + Parinktys - Resume - Tęsti + Tęsti - Pause - Pristabdyti + Pristabdyti - Delete - Ištrinti + Ištrinti - + Open URL Atverti URL - + &Documentation &Žinynas - + Lock Užrakinti - + Show Rodyti @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. Tikrinti, ar yra programos atnaujinimų - Lock qBittorrent - Užrakinti qBittorrent + Užrakinti qBittorrent - + Add Torrent &Link... Pridėti torento &nuorodą... - + If you like qBittorrent, please donate! Jei Jums patinka qBittorrent, paaukokite! - + Execution Log Vykdymo žurnalas @@ -2241,7 +2270,7 @@ Ar norite susieti .torrent failus bei Magnet nuorodas su qBittorrent? '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + "%1" atsiuntimas užbaigtas. @@ -2249,12 +2278,13 @@ Ar norite susieti .torrent failus bei Magnet nuorodas su qBittorrent? e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + Įvyko įvesties/išvesties klaida torentui "%1". + Priežastis: %2 The torrent '%1' contains torrent files, do you want to proceed with their download? - + Torente "%1" yra torentų failų. Ar norite atsisiųsti ir juos? @@ -2413,52 +2443,52 @@ Ar tikrai norite uždaryti qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Jūsų dinamis DNS buvo sėkmingai atnaujintas. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dinaminio DNS klaida: Paslauga laikinai neprieinama, bus bandoma iš naujo po 30 minučių. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dinaminio DNS klaida: pateikto stoties vardo nurodytoje paskyroje nėra. - + Dynamic DNS error: Invalid username/password. Dinaminio DNS klaida: Neteisingas vartotojo vardas/slaptažodis. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dinaminio DNS klaida: qBittorrent buvo uždraustas šioje paslaugoje, prašome apie klaidą pranešti adresu http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dinaminio DNS klaida: paslauga grąžino %1, prašome pranešti apie klaidą adresu http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Dinaminio DNS klaida: Jūsų vartotojo vardas buvo užblokuotas dėl netinkamo naudojimo. - + Dynamic DNS error: supplied domain name is invalid. Dinaminio DNS klaida: pateiktas domeno vardas yra netaisyklingas. - + Dynamic DNS error: supplied username is too short. Dinaminio DNS klaida: pateiktas vartotojo vardas yra per trumpas. - + Dynamic DNS error: supplied password is too short. Dinaminio DNS klaida: pateiktas slaptažodis yra per trumpas. @@ -2466,1318 +2496,1318 @@ Ar tikrai norite uždaryti qBittorrent? Net::DownloadHandler - + I/O Error I/O Klaida - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. - + Netikėtas peradresavimas į magnet URI. Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP duomenų bazė įkelta. Tipas: %1. Sukūrimo laikas: %2. - - + + Couldn't load GeoIP database. Reason: %1 Nepavyko įkelti GeoIP duomenų bazės. Priežastis: %1 - - + + N/A - + Nėra - + Asia/Pacific Region Azija/Ramiojo vandenyno regionas - + Europe Europa - + Andorra Andora - + United Arab Emirates Jungtiniai Arabų Emyratai - + Afghanistan Afganistanas - + Antigua and Barbuda Antigva ir Barbuda - + Anguilla Angilija - + Albania Albanija - + Armenia Armėnija - + Netherlands Antilles Nyderlandų Antilai - + Angola Angola - + Antarctica Antarktida - + Argentina Argentina - + American Samoa Amerikos Samoa - + Austria Austrija - + Australia Australija - + Aruba Aruba - + Azerbaijan Azerbaidžanas - + Bosnia and Herzegovina Bosnija ir Hercegovina - + Barbados Barbadosas - + Bangladesh Bangladešas - + Belgium Belgija - + Burkina Faso Burkina Fasas - + Bulgaria Bulgarija - + Bahrain Bahreinas - + Burundi Burundis - + Benin Beninas - + Bermuda Bermuda - + Brunei Darussalam Brunėjaus Darusalamas - + Bolivia Bolivija - + Brazil Brazilija - + Bahamas Bahamos - + Bhutan Butanas - + Bouvet Island Buvė sala - + Botswana Botsvana - + Belarus Baltarusija - + Belize Belizas - + Canada Kanada - + Cocos (Keeling) Islands Kokosų (Kilingo) salos - + Congo, The Democratic Republic of the Kongo Respublika - + Central African Republic Centrinės Afrikos Respublika - + Congo Kongas - + Switzerland Šveicarija - + Cote D'Ivoire Dramblio Kaulo Krantas - + Cook Islands Kuko salos - + Chile Čilė - + Cameroon Kamerūnas - + China Kinija - + Colombia Kolumbija - + Costa Rica Kosta Rika - + Cuba Kuba - + Cape Verde Žaliasis Kyšulys - + Christmas Island Kalėdų sala - + Cyprus Kipras - + Czech Republic Čekija - + Germany Vokietija - + Djibouti Džibutis - + Denmark Danija - + Dominica Dominika - + Dominican Republic Dominikos Respublika - + Algeria Alžyras - + Ecuador Ekvadoras - + Estonia Estija - + Egypt Egiptas - + Western Sahara Vakarų Sachara - + Eritrea Eritrėja - + Spain Ispanija - + Ethiopia Etiopija - + Finland Suomija - + Fiji Fidžis - + Falkland Islands (Malvinas) Folklando (Malvinų) salos - + Micronesia, Federated States of Mikronezijos Federacinės Valstijos - + Faroe Islands Farerų salos - + France Prancūzija - + France, Metropolitan Prancūzija, Metropolija - + Gabon Gabonas - + United Kingdom Jungtinė Karalystė - + Grenada Grenada - + Georgia Gruzija - + French Guiana Prancūzijos Gviana - + Ghana Gana - + Gibraltar Gibraltaras - + Greenland Grenlandija - + Gambia Gambija - + Guinea Gvinėja - + Guadeloupe - + Equatorial Guinea - + Greece Graikija - + South Georgia and the South Sandwich Islands - + Guatemala Gvatemala - + Guam - + Guinea-Bissau Bisau Gvinėja - + Guyana Gajana - + Hong Kong Honkongas - + Heard Island and McDonald Islands - + Honduras Hondūras - + Croatia Kroatija - + Haiti Haitis - + Hungary Vengrija - + Indonesia Indonezija - + Ireland Airija - + Israel Izraelis - + India Indija - + British Indian Ocean Territory - + Iraq Irakas - + Iran, Islamic Republic of Irano Islamo Respublika - + Iceland Islandija - + Italy Italija - + Jamaica Jamaika - + Jordan Jordanija - + Japan Japonija - + Kenya Kenija - + Kyrgyzstan Kirgizija - + Cambodia Kambodža - + Kiribati Kiribatis - + Comoros Komorai - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of Korėjos Respublika - + Kuwait Kuveitas - + Cayman Islands - + Kazakhstan Kazachstanas - + Lao People's Democratic Republic - + Lebanon Libanas - + Saint Lucia - + Liechtenstein Lichtenšteinas - + Sri Lanka Šri Lanka - + Liberia Liberija - + Lesotho Lesotas - + Lithuania Lietuva - + Luxembourg Liuksemburgas - + Latvia Latvija - + Libyan Arab Jamahiriya - + Morocco Marokas - + Monaco Monakas - + Moldova, Republic of Moldovos Respublika - + Madagascar Madagaskaras - + Marshall Islands Maršalo Salos - + Macedonia Makedonija - + Mali Malis - + Myanmar Mianmaras - + Mongolia Mongolija - + Macau Makao - + Northern Mariana Islands - + Martinique Martinika - + Mauritania Mauritanija - + Montserrat Montseratas - + Malta Malta - + Mauritius Mauricijus - + Maldives Maldyvai - + Malawi Malavis - + Mexico Meksika - + Malaysia Malaizija - + Mozambique Mozambikas - + Namibia Namibija - + New Caledonia Naujoji Kaledonija - + Niger Nigeris - + Norfolk Island Norfolko sala - + Nigeria Nigerija - + Nicaragua Nikaragva - + Netherlands Olandija - + Norway Norvegija - + Nepal Nepalas - + Nauru Nauru - + Niue Niujė - + New Zealand Naujoji Zelandija - + Oman Omanas - + Panama Panama - + Peru Peru - + French Polynesia Prancūzijos Polinezija - + Papua New Guinea Papua Naujoji Gvinėja - + Philippines Filipinai - + Pakistan Pakistanas - + Poland Lenkija - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico Puerto Rikas - + Palestinian Territory - + Portugal Portugalija - + Palau Palau - + Paraguay Paragvajus - + Qatar Kataras - + Reunion Reunionas - + Romania Rumunija - + Russian Federation Rusijos Federacija - + Rwanda Ruanda - + Saudi Arabia Saudo Arabija - + Solomon Islands Saliamono salos - + Seychelles Seišeliai - + Sudan Sudanas - + Sweden Švedija - + Singapore Singapūras - + Saint Helena - + Slovenia Slovėnija - + Svalbard and Jan Mayen - + Slovakia Slovakija - + Sierra Leone Siera Leonė - + San Marino San Marinas - + Senegal Senegalas - + Somalia Somalis - + Suriname Surinamas - + Sao Tome and Principe San Tomė ir Prinsipė - + El Salvador Salvadoras - + Syrian Arab Republic - + Swaziland Svazilandas - + Turks and Caicos Islands - + Chad Čadas - + French Southern Territories - + Togo Togas - + Thailand Tailandas - + Tajikistan Tadžikija - + Tokelau Tokelau - + Turkmenistan Turkmėnija - + Tunisia Tunisas - + Tonga Tonga - + Timor-Leste Rytų Timoras - + Turkey Turkija - + Trinidad and Tobago Trinidadas ir Tobagas - + Tuvalu Tuvalu - + Taiwan Taivanas - + Tanzania, United Republic of Tanzanijos Jungtinė Respublika - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands - + United States Jungtinės Valstijos - + Uruguay Urugvajus - + Uzbekistan Uzbekija - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela Venesuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam Vietnamas - + Vanuatu Vanuatu - + Wallis and Futuna - + Samoa Samoa - + Yemen Jemenas - + Mayotte Majotas - + Serbia Serbija - + South Africa Pietų Afrika - + Zambia Zambija - + Montenegro Juodkalnija - + Zimbabwe Zimbabvė - + Anonymous Proxy - + Satellite Provider - + Other Kita - + Aland Islands - + Guernsey - + Isle of Man - + Meno sala - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. Nepavyko įrašyti atsiųsto GeoIP duomenų bazės failo. - + Successfully updated GeoIP database. GeoIP duomenų bazė sėkmingai atnaujinta. - + Couldn't download GeoIP database file. Reason: %1 Nepavyko atsisiųsti GeoIP duomenų bazės failo. Priežastis: %1 @@ -3785,12 +3815,12 @@ Ar tikrai norite uždaryti qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP palaikymas [ĮJUNGTAS] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP palaikymas [IŠJUNGTAS] @@ -3798,206 +3828,265 @@ Ar tikrai norite uždaryti qBittorrent? Net::Smtp - + Email Notification Error: El. pašto Pranešimo Klaida: + + PeerInfo + + + interested(local) and choked(peer) + susidomėjęs(vietinis) ir prismaugtas(siuntėjas) + + + + interested(local) and unchoked(peer) + susidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) + + + + interested(peer) and choked(local) + susidomėjęs(siuntėjas) ir prismaugtas(vietinis) + + + + interested(peer) and unchoked(local) + susidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) + + + + optimistic unchoke + optimistiškai nebesmaugiamas + + + + peer snubbed + siuntėjas ignoruojamas + + + + incoming connection + įeinantis prisijungimas + + + + not interested(local) and unchoked(peer) + nesusidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) + + + + not interested(peer) and unchoked(local) + nesusidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) + + + + peer from PEX + siuntėjas iš PEX + + + + peer from DHT + siuntėjas iš DHT + + + + encrypted traffic + šifruotas srautas + + + + encrypted handshake + užšifruotas pasisveikinimas + + + + peer from LSD + siuntėjas iš LSD + + PeerListWidget - + IP IP - + Port Prievadas - + Flags Vėliavos - + Connection Jungiamumas - + Client i.e.: Client application Klientas - + Progress i.e: % downloaded Baigta - + Down Speed i.e: Download speed Atsiuntimo greitis - + Up Speed i.e: Upload speed Išsiuntimo greitis - + Downloaded i.e: total data downloaded Atsiųsta - + Uploaded i.e: total data uploaded Išsiųsta - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Tinkamumas - + Add a new peer... Pridėti siuntėją... - + Copy selected Kopijuoti pasirinktą - - + + Ban peer permanently Uždrausti siuntėją visam laikui - + Manually adding peer '%1'... - + Rankiniu būdu pridedamas siuntėjas "%1"... - + The peer '%1' could not be added to this torrent. - + Siuntėjo "%1" nepavyko pridėti prie šio torento. - + Manually banning peer '%1'... - + Rankiniu būdu uždraudžiamas siuntėjas "%1"... - + Peer addition Siuntėjo pridėjimas - - - Some peers could not be added. Check the Log for details. - - - The peers were added to this torrent. - + Some peers could not be added. Check the Log for details. + Nepavyko pridėti kai kurių siuntėjų. Išsamesnei informacijai žiūrėkite žurnalą. - + + The peers were added to this torrent. + Siuntėjai buvo pridėti prie šio torento. + + + Are you sure you want to ban permanently the selected peers? Ar tikrai norite visam laikui uždrausti pasirinktus siuntėjus? - + &Yes &Taip - + &No &Ne - interested(local) and choked(peer) - susidomėjęs(vietinis) ir prismaugtas(siuntėjas) + susidomėjęs(vietinis) ir prismaugtas(siuntėjas) - interested(local) and unchoked(peer) - susidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) + susidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) - interested(peer) and choked(local) - susidomėjęs(siuntėjas) ir prismaugtas(vietinis) + susidomėjęs(siuntėjas) ir prismaugtas(vietinis) - interested(peer) and unchoked(local) - susidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) + susidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) - optimistic unchoke - optimistiškai nebesmaugiamas + optimistiškai nebesmaugiamas - peer snubbed - siuntėjas ignoruojamas + siuntėjas ignoruojamas - incoming connection - įeinantis prisijungimas + įeinantis prisijungimas - not interested(local) and unchoked(peer) - nesusidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) + nesusidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) - not interested(peer) and unchoked(local) - nesusidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) + nesusidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) - peer from PEX - siuntėjas iš PEX + siuntėjas iš PEX - peer from DHT - siuntėjas iš DHT + siuntėjas iš DHT - encrypted traffic - šifruotas srautas + šifruotas srautas - encrypted handshake - užšifruotas pasisveikinimas + užšifruotas pasisveikinimas - peer from LSD - siuntėjas iš LSD + siuntėjas iš LSD @@ -4005,22 +4094,22 @@ Ar tikrai norite uždaryti qBittorrent? No peer entered - + Neįvestas siuntėjas Please type at least one peer. - + Įveskite bent vieną siuntėją. Invalid peer - + Netaisyklingas siuntėjas The peer '%1' is invalid. - + Siuntėjas "%1" yra netaisyklingas. @@ -4771,17 +4860,17 @@ Ar tikrai norite uždaryti qBittorrent? Kelias iki filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4887,299 +4976,298 @@ Ar tikrai norite uždaryti qBittorrent? PropertiesWidget - + Downloaded: Atsisiųsta: - + Availability: Pasiekiamumas: - + Progress: Baigta: - + Transfer Siuntimas - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Išsiųsta: - + Seeds: - + Download Speed: Atsiuntimo greitis: - + Upload Speed: Išsiuntimo greitis: - + Peers: - + Siuntėjai: - + Download Limit: Atsiuntimo riba: - + Upload Limit: Išsiuntimo riba: - + Wasted: Iššvaistyta: - + Connections: Prisijungimai: - + Information Informacija - + Comment: Komentaras: - Torrent content: - Torento turinys: + Torento turinys: - + Select All Pažymėti viską - + Select None Nieko nežymėti - + Normal Normali - + High Aukšta - + Share Ratio: Dalinimosi santykis: - + Reannounce In: - + Last Seen Complete: Paskutinį kartą matytas užbaigtu - + Total Size: Bendras Dydis: - + Pieces: Dalys: - + Created By: Sukūrė: - + Added On: Pridėta: - + Completed On: Užbaigta: - + Created On: Sukurtas: - + Torrent Hash: Torento maišos raktas: - + Save Path: Atsiuntimo vieta: - + Maximum Aukščiausia - - + + Do not download Nesiųsti - + Never Niekada - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) %1 (%2 šiame seanse) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (viso %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Atverti - + Open Containing Folder Atverti Aplanką - + Rename... Pervadinti... - + Priority Svarba - + New Web seed Naujas žiniatinklio šaltinis - + Remove Web seed Pašalinti žiniatinklio šaltinį - + Copy Web seed URL Kopijuoti žiniatinklio šaltinio URL - + Edit Web seed URL Redaguoti žiniatinklio šaltinio URL - + Rename the file Pervadinti failą - + New name: Naujas vardas: - - + + The file could not be renamed Failo pervadinti nepavyko - + This file name contains forbidden characters, please choose a different one. Šiame failo varde yra neleistinų simbolių, pasirinkite kitokį. - - + + This name is already in use in this folder. Please use a different name. Šis vardas šiame aplanke jau naudojamas. Pasirinkite kitokį vardą. - + The folder could not be renamed Šio aplanko pervadinti nepavyko - + qBittorrent qBittorrent @@ -5189,29 +5277,29 @@ Ar tikrai norite uždaryti qBittorrent? Filtruoti failus... - + New URL seed New HTTP source Naujo šaltinio adresas - + New URL seed: Naujo šaltinio adresas: - - + + This URL seed is already in the list. Šis adresas jau yra sąraše. - + Web seed editing Žiniatinklio šaltinio redagavimas - + Web seed URL: Žiniatinklio šaltinio URL: @@ -5224,19 +5312,19 @@ Ar tikrai norite uždaryti qBittorrent? Jūsų IP adresas buvo užblokuotas po per didelio kiekio nepavykusių atpažinimo bandymų. - + Error: '%1' is not a valid torrent file. Klaida: '%1' nėra taisyklingas torento failas. - + Error: Could not add torrent to session. Klaida: Nepavyko pridėti torento į seansą. - + I/O Error: Could not create temporary file. I/O Klaida: Nepavyko sukurti laikinojo failo. @@ -5386,141 +5474,141 @@ Daugiau nebus rodoma pranešimų apie tai. [qBittorrent] '%1' has finished downloading - + [qBittorrent] "%1" atsiuntimas užbaigtas - + The remote host name was not found (invalid hostname) Nuotolinio serverio vardas nerastas (negaliojantis serverio vardas) - + The operation was canceled Operacija buvo atšaukta - + The remote server closed the connection prematurely, before the entire reply was received and processed Serveris netinkamai nutraukė prisijungimą, nespėjus gauti bei apdoroti pilno atsakymo - + The connection to the remote server timed out Baigėsi prisijungimui skirtas laikas - + SSL/TLS handshake failed SSL/TLS pasisveikinimas nepavyko - + The remote server refused the connection Serveris atmetė prisijungimą - + The connection to the proxy server was refused Proxy serveris atmetė prisijungimą - + The proxy server closed the connection prematurely Proxy serveris netinkamai nutraukė prisijungimą - + The proxy host name was not found Proxy stoties vardas nerastas - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Baigėsi prisijungimui prie proxy serverio skirtas laikas arba proxy serveris laiku neatsakė į užklausą - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) Priėjimas prie turinio buvo uždraustas (401) - + The operation requested on the remote content is not permitted Užklaustas veiksmas yra neleistinas serveryje - + The remote content was not found at the server (404) Turinys serveryje nerastas (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Serveris reikalauja atpažinimo norint įvykdyti užklausą, tačiau nepriėmė jokių siūlytų duomenų - + The Network Access API cannot honor the request because the protocol is not known Tinklo priėjimo API negali įvykdyti užklausos, nes užklausos protokolas nežinomas - + The requested operation is invalid for this protocol Šis veiksmas yra negalimas šiam protokolui - + An unknown network-related error was detected Įvyko nežinoma tinklo klaida - + An unknown proxy-related error was detected Įvyko nežinoma proxy klaida - + An unknown error related to the remote content was detected Įvyko nežinoma, su nuotoliniu turiniu susijusi, klaida - + A breakdown in protocol was detected Protokole aptiktas gedimas - + Unknown error Nežinoma klaida - - + + Upgrade - + Atnaujinti - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + Jūs atsinaujinote iš senesnės versijos, kuri kitaip išsaugodavo duomenis. Privalote persikelti į naują išsaugojimo sistemą. Jūs daugiau nebegalėsite naudoti senesnės nei v3.3.0 versijos. Tęsti? [t/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Jūs atsinaujinote iš senesnės versijos, kuri kitaip išsaugodavo duomenis. Privalote persikelti į naują išsaugojimo sistemą. Jeigu tęsite, jūs daugiau nebegalėsite naudoti senesnės nei v3.3.0 versijos. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5709,12 +5797,12 @@ Daugiau nebus rodoma pranešimų apie tai. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5758,17 +5846,17 @@ Daugiau nebus rodoma pranešimų apie tai. ScanFoldersModel - + Watched Folder Stebimas aplankas - + Download here Atsiųsti čia - + Download path @@ -7359,12 +7447,12 @@ Daugiau nebus rodoma pranešimų apie tai. Add Peers - + Pridėti siuntėjus List of peers to add (one per line): - + Norimų pridėti siuntėjų sąrašas (po vieną eilutėje): @@ -7685,7 +7773,7 @@ Daugiau nebus rodoma pranešimų apie tai. Invalid plugin - + Netaisyklingas priedas @@ -7828,11 +7916,11 @@ Tie priedai buvo išjungti. fsutils - - - - - + + + + + Downloads Atsiuntimai @@ -7840,103 +7928,103 @@ Tie priedai buvo išjungti. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python neaptikta - + Python version: %1 Python versija: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1 val. %2 min. - + %1d %2h e.g: 2days 10hours %1 d. %2 val. - + Unknown Unknown (size) Nežinoma - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent dabar išjungs kompiuterį, kadangi visi siuntimai baigti. - + < 1m < 1 minute < 1 min. - + %1m e.g: 10minutes %1 min. - + Working Veikia - + Updating... Atnaujinama... - + Not working Neveikia - + Not contacted yet Dar nesusisiekta diff --git a/src/lang/qbittorrent_nb.ts b/src/lang/qbittorrent_nb.ts index 6ffbd222d..e5bf45f6f 100644 --- a/src/lang/qbittorrent_nb.ts +++ b/src/lang/qbittorrent_nb.ts @@ -125,217 +125,222 @@ Hopp over verifiseringssjekk - + + Set as default label + + + + Torrent Information Torrentinformasjon - + Size: Størrelse: - + Comment: Kommentar: - + Date: Dato: - + Info Hash: Informativ Verifiseringsnøkkel: - + Normal Normal - + High Høy - + Maximum Maksimal - + Do not download Ikke last ned - - + + I/O Error Inn/ut-operasjonsfeil - + The torrent file does not exist. Torrentfilen eksisterer ikke. - + Invalid torrent Ugyldig torrent - + Failed to load the torrent: %1 Mislyktes med å laste inn torrenten: %1 - - + + Already in download list Allerede i nedlastingsliste - + Free disk space: %1 Ledig diskplass: %1 - + Not Available This comment is unavailable Ikke Tilgjengelig - + Not Available This date is unavailable Ikke Tilgjengelig - + Not available Ikke tilgjengelig - + Invalid magnet link Ugyldig magnetlenke - + Torrent is already in download list. Trackers were merged. Torrenten er allerede i nedlastingsliste. Sporere ble sammenslått. - - + + Cannot add torrent Kan ikke legge til torrent - + Cannot add this torrent. Perhaps it is already in adding state. Kan ikke legge til denne torrenten. Kanskje den allerede er i tilleggingstilstand. - + This magnet link was not recognized Denne magnetlenken ble ikke gjenkjent - + Magnet link is already in download list. Trackers were merged. Magnetlenken er allerede i nedlastingsliste. Sporere ble sammenslått. - + Cannot add this torrent. Perhaps it is already in adding. Kan ikke legge til denne torrenten. Kanskje den allerede er i tillegging. - + Magnet link Magnetlenke - + Retrieving metadata... Henter metadata... - + Not Available This size is unavailable. Ikke Tilgjengelig - - - + + + Choose save path Velg lagringssti - + Rename the file Omdøp filen - + New name: Nytt navn: - - + + The file could not be renamed Filen kunne ikke omdøpes - + This file name contains forbidden characters, please choose a different one. Dette filnavnet inneholder forbudte tegn, vennligst velg et annet et. - - + + This name is already in use in this folder. Please use a different name. Dette navnet er allerede i bruk i denne mappen. Vennligst bruk et annet navn. - + The folder could not be renamed Mappen kunne ikke omdøpes - + Rename... Omdøp... - + Priority Prioritet - + Invalid metadata Ugyldig metadata - + Parsing metadata... Analyserer metadata... - + Metadata retrieval complete Henting av metadata fullført - + Download Error Nedlastingsfeil @@ -427,9 +432,8 @@ Løs deltaker-vertsnavn - Maximum number of half-open connections [0: Disabled] - Maksimalt antall halvåpne tilkoblinger [0: Deaktivert] + Maksimalt antall halvåpne tilkoblinger [0: Deaktivert] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Intervall for lagring av gjenopptakelsesdata + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Deltaker ID: - + HTTP User-Agent is '%1' HTTP Brukeragent er '%1' - + Anonymous mode [ON] Anonymitetsmodus [PÅ] - + Anonymous mode [OFF] Anonymitetsmodus [AV] - + PeX support [ON] PeX støtte [PÅ] - + PeX support [OFF] PeX støtte [AV] - + Restart is required to toggle PeX support Omstart kreves for å omkoble PeX støtte - + Local Peer Discovery support [ON] Lokal Deltaker-oppdagelsesstøtte [PÅ] - + Local Peer Discovery support [OFF] Lokal Deltaker-oppdagelsesstøtte [AV] - + Encryption support [ON] Krypteringsstøtte [PÅ] - + Encryption support [FORCED] Krypteringsstøtte [TVUNGET] - + Encryption support [OFF] Krypteringsstøtte [AV] - + Embedded Tracker [ON] Innebygd Sporer [PÅ] - + Failed to start the embedded tracker! Mislyktes med å starte den innebygde sporeren! - + Embedded Tracker [OFF] Innebygd Sporer [AV] - + '%1' reached the maximum ratio you set. Removing... '%1' nådde det maksimale forholdet du satte. Fjerner... - + '%1' reached the maximum ratio you set. Pausing... '%1' nådde det maksimale forholdet du satte. Setter på pause... - Error: Could not create torrent export directory: '%1' - Feil: Kunne ikke opprette torrent-eksporteringskatalog: '%1' + Feil: Kunne ikke opprette torrent-eksporteringskatalog: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Feil: kunne ikke eksportere torrent '%1, kanskje den ikke har noe metadata ennå. + Feil: kunne ikke eksportere torrent '%1, kanskje den ikke har noe metadata ennå. - + System network status changed to %1 e.g: System network status changed to ONLINE System-nettverkstatus forandret til %1 - + ONLINE TILKOBLET - + OFFLINE FRAKOBLET - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Nettverkskonfigurasjon av %1 har blitt forandret, oppdaterer sesjonsbinding - + Unable to decode '%1' torrent file. Ikke i stand til å dekode '%1' torrentfil. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursiv nedlasting av fil '%1' innebygd i torrent '%2' - + Couldn't save '%1.torrent' Kunne ikke lagre '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. fordi %1 er deaktivert. - + because %1 is disabled. this peer was blocked because TCP is disabled. fordi %1 er deaktivert. - + URL seed lookup failed for URL: '%1', message: %2 Nettadressegivningsoppsøking mislyktes for nettadresse: '%1', melding: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' ble fjernet fra overføringsliste og harddisk. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' ble fjernet fra overføringsliste. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Laster ned '%1', vennligst vent... - Torrent Export: torrent is invalid, skipping... - Torrent-eksportering: torrent er ugyldig, hopper over... + Torrent-eksportering: torrent er ugyldig, hopper over... - + DHT support [ON] DHT støtte [PÅ] - + DHT support [OFF]. Reason: %1 DHT støtte [AV]. Grunn: %1 - + DHT support [OFF] DHT støtte [AV] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent forsøker å lytte på hvilket som helst grensesnitts-port: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2 + qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2 - + The network interface defined is invalid: %1 Det definerte nettverksgrensesnittet er ugyldig: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent forsøker å lytte på grensesnitt %1 port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent fant ikke en %1 lokal adresse å lytte på - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Sporer '%1' ble lagt til torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Sporer '%1' ble slettet fra torrent '%2' - + URL seed '%1' was added to torrent '%2' Nettadressegivning '%1' ble lagt til torrent '%2' - + URL seed '%1' was removed from torrent '%2' Nettadressegivning '%1' ble fjernet fra torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ikke i stand til å gjenoppta torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Det oppgitte IP filteret ble vellykket analysert: %1 regler ble lagt til. - + Error: Failed to parse the provided IP filter. Feil: Mislyktes i å analysere det oppgitte IP filteret. - + Couldn't add torrent. Reason: %1 Kunne ikke legge til torrent. Grunn: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' ble gjenopptatt (hurtig gjenopptaking) - + '%1' added to download list. 'torrent name' was added to download list. '%1' lagt til nedlastingsliste. - + An I/O error occurred, '%1' paused. %2 En inn/ut-operasjonsfeil oppstod, '%1' satt på pause. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Port-tildelingssvikt, melding: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Port-tildeling vellykket, melding: %1 - + due to IP filter. this peer was blocked due to ip filter. pga. IP filter. - + due to port filter. this peer was blocked due to port filter. pga. port-filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. pga. i2p blandingsmodus-restriksjoner. - + because it has a low port. this peer was blocked because it has a low port. fordi den har en lav port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent lytter vellykket på grensesnitt %1 port: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4 + qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Ekstern IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Kunne ikke flytte torrent: '%1'. Grunn: %2 - + File sizes mismatch for torrent '%1', pausing it. Misforhold i filstørrelser for torrent '%1', setter den på pause. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Rask gjenopptakelsesdata ble avvist for torrent '%1'. Grunn: %2. Sjekker igjen... @@ -1307,20 +1323,20 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Inn/ut-operasjonsfeil: Kunne ikke åpne ip filterfil i lesemodus. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Analyseringsfeil: Filterfilen er ikke en gyldig PeerGuardian P2B fil. @@ -1328,43 +1344,43 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. GeoIPDatabase - - + + Unsupported database file size. Ustøttet størrelse på database-fil. - + Metadata error: '%1' entry not found. Metadata feil: '%1' innføring ikke funnet. - + Metadata error: '%1' entry has invalid type. Metadata feil: '%1' innføring har ugyldig type. - + Unsupported database version: %1.%2 Ustøttet database versjon: %1.%2 - + Unsupported IP version: %1 Ustøttet IP versjon: %1 - + Unsupported record size: %1 Ustøttet oppføringsstørrelse: %1 - + Invalid database type: %1 Ugyldig database-type: %1 - + Database corrupted: no data section found. Ødelagt database: ingen dataseksjon funnet. @@ -1397,9 +1413,8 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.Kun en lenke per linje - Download local torrent - Last ned lokal torrent + Last ned lokal torrent @@ -1572,7 +1587,22 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.Inaktive - + + Save files to location: + Lagre filer til plassering: + + + + Label: + Etikett: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Nedlastet @@ -1582,6 +1612,11 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.Logout Logg ut + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. LineEdit - + Clear the text Fjern teksten @@ -1743,37 +1778,37 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. MainWindow - + &Edit R&ediger - + &Tools Verk&tøy - + &File &Fil - + &Help &Hjelp - + On Downloads &Done Når Nedlastinger er Fer&dige - + &View &Vis - + &Options... &Alternativer... @@ -1783,153 +1818,153 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.&Gjenoppta - + Torrent &Creator Torrent&oppretter - + Set Upload Limit... Sett Opplastingsgrense... - + Set Download Limit... Sett Nedlastingsgrense... - + Set Global Download Limit... Sett Global Nedlastingsgrense... - + Set Global Upload Limit... Sett Global Opplastingsgrense... - + Minimum Priority Minimum Prioritet - + Top Priority Topp Prioritet - + Decrease Priority Minsk Prioritet - + Increase Priority Øk Prioritet - - + + Alternative Speed Limits Alternative Hastighetsgrenser - + &Top Toolbar &Topp-Verktøylinje - + Display Top Toolbar Vis Topp-Verktøylinje - + S&peed in Title Bar &Hastighet i Tittellinjen - + Show Transfer Speed in Title Bar Vis Overføringshastighet i Tittellinjen - + &RSS Reader Nyhetsmatingsleser (&RSS) - + Search &Engine Søk&emotor - + L&ock qBittorrent Lås qBitt&orrent - + &Import Existing Torrent... &Importer Eksisterende Torrent... - + Import Torrent... Importer Torrent... - + Do&nate! Do&ner! - + R&esume All Gj&enoppta Alle - + &Log &Logg - + &Exit qBittorrent Avslutt qBittorr&ent - + &Suspend System &Sett System i Hvilemodus - + &Hibernate System Sett System i &Dvalemodus - + S&hutdown System Sl&å Av System - + &Disabled &Deaktivert - + &Statistics &Statistikk - + Check for Updates Sjekk for Oppdateringer - + Check for Program Updates Sjekk for Programoppdateringer @@ -1939,77 +1974,72 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.&Om - Exit - Avslutt + Avslutt - + &Pause Sett på &pause - + &Delete &Slett - + P&ause All Sett Alle på P&ause - + &Add Torrent File... &Legg til Torrentfil... - + Open Åpne - + E&xit &Avslutt - Options - Alternativer + Alternativer - Resume - Gjenoppta + Gjenoppta - Pause - Sett på pause + Sett på pause - Delete - Slett + Slett - + Open URL Åpne nettadresse - + &Documentation &Dokumentasjon - + Lock Lås - + Show Vis @@ -2020,22 +2050,21 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.Sjekk for programoppdateringer - Lock qBittorrent - Lås qBittorrent + Lås qBittorrent - + Add Torrent &Link... Legg til Torrent&lenke... - + If you like qBittorrent, please donate! Hvis du liker qBittorrent, vennligst doner! - + Execution Log Utførelseslogg @@ -2414,52 +2443,52 @@ Er du sikker på at du vil avslutte qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Din dynamiske DNS ble vellykket oppdatert. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dynamisk DNS-feil: Tjenesten er midlertidlig utilgjengelig. Det vil bli prøvd på nytt om 30 minutter. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dynamisk DNS-feil: oppgitt vertsnavn eksisterer ikke under spesifisert konto. - + Dynamic DNS error: Invalid username/password. Dynamisk DNS-feil: Ugyldig brukernavn/passord. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dynamisk DNS-feil: qBittorrent ble svartelistet av tjenesten. Vennligst rapporter en feil hos http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dynamisk DNS-feil: %1 ble returnert av tjenesten. Vennligst rapporter en feil hos http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Dynamisk DNS-feil: Brukernavnet ditt ble blokert på grunn av misbruk. - + Dynamic DNS error: supplied domain name is invalid. Dynamisk DNS-feil: oppgitt domenenavn er ugyldig. - + Dynamic DNS error: supplied username is too short. Dynamisk DNS-feil: oppgitt brukernavn er for kort. - + Dynamic DNS error: supplied password is too short. Dynamisk DNS-feil: oppgitt passord er for kort. @@ -2467,17 +2496,17 @@ Er du sikker på at du vil avslutte qBittorrent? Net::DownloadHandler - + I/O Error Inn/ut-operasjonsfeil - + The file size is %1. It exceeds the download limit of %2. Filstørrelsen er %1. Det overskrider nedlastingsbegrensningen på %2. - + Unexpected redirect to magnet URI. Uforventet omadressering til Magnet-oppsettsadresse. @@ -2485,1300 +2514,1300 @@ Er du sikker på at du vil avslutte qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP database innlastet. Type: %1. Byggetid: %2. - - + + Couldn't load GeoIP database. Reason: %1 Kunne ikke laste inn GeoIP database. Grunn: %1 - - + + N/A Ikke tilgjengelig - + Asia/Pacific Region Asia/Stillehavsområdet - + Europe Europa - + Andorra Andorra - + United Arab Emirates Forente Arabiske Emirater, De - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua og Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Nederlandske Antillene, De - + Angola Angola - + Antarctica Antarktis - + Argentina Argentina - + American Samoa Amerikansk Samoa - + Austria Østerrike - + Australia Australia - + Aruba Aruba - + Azerbaijan Aserbajdsjan - + Bosnia and Herzegovina Bosnia og Hercegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei Darussalam - + Bolivia Bolivia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Bouvetøya - + Botswana Botswana - + Belarus Hviterussland - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Kokosøyene - + Congo, The Democratic Republic of the Kongo, Den Demokratiske Republikken - + Central African Republic Sentralafrikanske Republikk, Den - + Congo Kongo - + Switzerland Sveits - + Cote D'Ivoire Elfenbenskysten - + Cook Islands Cookøyene - + Chile Chile - + Cameroon Kamerun - + China Kina - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Kapp Verde - + Christmas Island Christmasøya - + Cyprus Kypros - + Czech Republic Tsjekkia - + Germany Tyskland - + Djibouti Djibouti - + Denmark Danmark - + Dominica Dominica - + Dominican Republic Dominikanske Republikk, Den - + Algeria Algerie - + Ecuador Ecuador - + Estonia Estland - + Egypt Egypt - + Western Sahara Vest-Sahara - + Eritrea Eritrea - + Spain Spania - + Ethiopia Etiopia - + Finland Finland - + Fiji Fiji - + Falkland Islands (Malvinas) Falklandsøyene - + Micronesia, Federated States of Mikronesia - + Faroe Islands Færøyene - + France Frankrike - + France, Metropolitan Fastlands-Frankrike og Øyen Korsika - + Gabon Gabon - + United Kingdom Storbritannia - + Grenada Grenada - + Georgia Georgia - + French Guiana Fransk Guyana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Grønland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Ekvatorial-Guinea - + Greece Hellas - + South Georgia and the South Sandwich Islands Sør-Georgia og Sør-Sandwichøyene - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Heard- og McDonaldøyene - + Honduras Honduras - + Croatia Kroatia - + Haiti Haiti - + Hungary Ungarn - + Indonesia Indonesia - + Ireland Irland - + Israel Israel - + India India - + British Indian Ocean Territory Britiske Territoriet i Indiahavet, Det - + Iraq Irak - + Iran, Islamic Republic of Iran, Den Islamske Republikken - + Iceland Island - + Italy Italia - + Jamaica Jamaica - + Jordan Jordan - + Japan Japan - + Kenya Kenya - + Kyrgyzstan Kirgisistan - + Cambodia Kambodsja - + Kiribati Kiribati - + Comoros Komorene - + Saint Kitts and Nevis Saint Kitts og Nevis - + Korea, Democratic People's Republic of Nord-Korea - + Korea, Republic of Sør-Korea - + Kuwait Kuwait - + Cayman Islands Caymanøyene - + Kazakhstan Kasakhstan - + Lao People's Democratic Republic Laofolkets Demokratiske Folkerepublikk - + Lebanon Libanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litauen - + Luxembourg Luxembourg - + Latvia Latvia - + Libyan Arab Jamahiriya Libya - + Morocco Marokko - + Monaco Monaco - + Moldova, Republic of Moldova - + Madagascar Madagaskar - + Marshall Islands Marshalløyene - + Macedonia Makedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - + Macau Macao - + Northern Mariana Islands Nord-Marianene - + Martinique Martinique - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldivene - + Malawi Malawi - + Mexico Mexico - + Malaysia Malaysia - + Mozambique Mosambik - + Namibia Namibia - + New Caledonia Ny-Caledonia - + Niger Niger - + Norfolk Island Norfolkøya - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Nederland - + Norway Norge - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand New Zealand - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Fransk Polynesia - + Papua New Guinea Papua Ny-Guinea - + Philippines Filippinene - + Pakistan Pakistan - + Poland Polen - + Saint Pierre and Miquelon Saint-Pierre og Miquelon - + Pitcairn Islands Pitcairnøyene - + Puerto Rico Puerto Rico - + Palestinian Territory Palestinske Territoriene, De - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Réunion - + Romania Romania - + Russian Federation Russiske Føderasjon, Den - + Rwanda Rwanda - + Saudi Arabia Saudi-Arabia - + Solomon Islands Salomonøyene - + Seychelles Seychellene - + Sudan Sudan - + Sweden Sverige - + Singapore Singapore - + Saint Helena Saint Helena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard og Jan Mayen - + Slovakia Slovakia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe São Tomé og Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Syria, Den Arabiske Republikk - + Swaziland Swaziland - + Turks and Caicos Islands Turks- og Caicosøyene - + Chad Tsjad - + French Southern Territories Franske Sørterritorier, De - + Togo Togo - + Thailand Thailand - + Tajikistan Tadsjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Øst-Timor - + Turkey Tyrkia - + Trinidad and Tobago Trinidad og Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania, Den Forente Republikken - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands USAs Ytre Småøyer - + United States USA - + Uruguay Uruguay - + Uzbekistan Usbekistan - + Holy See (Vatican City State) Hellige Stol, Den (Vatikanstaten) - + Saint Vincent and the Grenadines Saint Vincent og Grenadinene - + Venezuela Venezuela - + Virgin Islands, British Jomfruøyene, De Britiske - + Virgin Islands, U.S. Jomfruøyene, De Amerikanske. - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis og Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Sør-Afrika - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Anonym Mellomtjener - + Satellite Provider Satellitt-leverandør - + Other Annet - + Aland Islands Åland - + Guernsey Guernsey - + Isle of Man Isle of Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. Kunne ikke dekomprimere GeoIP database-fil. - + Couldn't save downloaded GeoIP database file. Kunne ikke lagre nedlastet GeoIP database-fil. - + Successfully updated GeoIP database. GeoIP database ble vellykket oppdatert. - + Couldn't download GeoIP database file. Reason: %1 Kunne ikke laste ned GeoIP database-fil. Grunn: %1 @@ -3786,12 +3815,12 @@ Er du sikker på at du vil avslutte qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP støtte [PÅ] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP støtte [AV] @@ -3799,206 +3828,265 @@ Er du sikker på at du vil avslutte qBittorrent? Net::Smtp - + Email Notification Error: Epost-varslingsfeil: + + PeerInfo + + + interested(local) and choked(peer) + interessert(lokal) og kvalt(delktaker) + + + + interested(local) and unchoked(peer) + interessert(lokal) og ukvalt(delktaker) + + + + interested(peer) and choked(local) + interessert(deltaker) og kvalt(lokal) + + + + interested(peer) and unchoked(local) + interessert(deltaker) og ukvalt(lokal) + + + + optimistic unchoke + optimistisk avkvelning + + + + peer snubbed + deltaker avbrutt + + + + incoming connection + innkommende tilkobling + + + + not interested(local) and unchoked(peer) + ikke interessert(lokal) og ukvalt(delktaker) + + + + not interested(peer) and unchoked(local) + ikke interessert(deltaker) og ukvalt(lokal) + + + + peer from PEX + deltaker fra PEX + + + + peer from DHT + deltaker fra DHT + + + + encrypted traffic + kryptert trafikk + + + + encrypted handshake + kryptert håndtrykk + + + + peer from LSD + deltaker fra LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Flagg - + Connection Tilkobling - + Client i.e.: Client application Klient - + Progress i.e: % downloaded Fremdrift - + Down Speed i.e: Download speed Ned-hastighet - + Up Speed i.e: Upload speed Opp-hastighet - + Downloaded i.e: total data downloaded Nedlastet - + Uploaded i.e: total data uploaded Opplastet - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevans - + Add a new peer... Legg til ny deltaker... - + Copy selected Kopier valgte - - + + Ban peer permanently Bannlys deltaker permanent - + Manually adding peer '%1'... Legger manuelt til deltaker '%1'... - + The peer '%1' could not be added to this torrent. Deltakeren '%1 kunne ikke bli lagt til denne torrenten. - + Manually banning peer '%1'... Bannlyser manuelt deltaker '%1'... - + Peer addition Deltaker tillegging - + Some peers could not be added. Check the Log for details. Noen deltakere kunne ikke legges til. Sjekk loggen for detaljer. - + The peers were added to this torrent. Deltakerne ble lagt til denne torrenten. - + Are you sure you want to ban permanently the selected peers? Er du sikker på at du vil bannlyse de valgte deltakerne permanent? - + &Yes &Ja - + &No &Nei - interested(local) and choked(peer) - interessert(lokal) og kvalt(delktaker) + interessert(lokal) og kvalt(delktaker) - interested(local) and unchoked(peer) - interessert(lokal) og ukvalt(delktaker) + interessert(lokal) og ukvalt(delktaker) - interested(peer) and choked(local) - interessert(deltaker) og kvalt(lokal) + interessert(deltaker) og kvalt(lokal) - interested(peer) and unchoked(local) - interessert(deltaker) og ukvalt(lokal) + interessert(deltaker) og ukvalt(lokal) - optimistic unchoke - optimistisk avkvelning + optimistisk avkvelning - peer snubbed - deltaker avbrutt + deltaker avbrutt - incoming connection - innkommende tilkobling + innkommende tilkobling - not interested(local) and unchoked(peer) - ikke interessert(lokal) og ukvalt(delktaker) + ikke interessert(lokal) og ukvalt(delktaker) - not interested(peer) and unchoked(local) - ikke interessert(deltaker) og ukvalt(lokal) + ikke interessert(deltaker) og ukvalt(lokal) - peer from PEX - deltaker fra PEX + deltaker fra PEX - peer from DHT - deltaker fra DHT + deltaker fra DHT - encrypted traffic - kryptert trafikk + kryptert trafikk - encrypted handshake - kryptert håndtrykk + kryptert håndtrykk - peer from LSD - deltaker fra LSD + deltaker fra LSD @@ -4772,17 +4860,17 @@ Er du sikker på at du vil avslutte qBittorrent? Filtersti (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Oppdaget uren programavsluttning. Bruker reservefil for å gjenopprette innstillinger. - + An access error occurred while trying to write the configuration file. En tilgangsfeil oppstod ved forsøk på å skrive konfigurasjonsfilen. - + A format error occurred while trying to write the configuration file. En formatfeil oppstod ved forsøk på å skrive konfigurasjonsfilen. @@ -4888,299 +4976,298 @@ Er du sikker på at du vil avslutte qBittorrent? PropertiesWidget - + Downloaded: Nedlastet: - + Availability: Tilgjengelighet: - + Progress: Fremdrift: - + Transfer Overføring - + Time Active: Time (duration) the torrent is active (not paused) Aktivitetstid: - + ETA: Gjenværende tid: - + Uploaded: Opplastet: - + Seeds: Givninger: - + Download Speed: Nedlastingshastighet: - + Upload Speed: Opplastingshastighet: - + Peers: Deltakere: - + Download Limit: Nedlastingsgrense: - + Upload Limit: Opplastingsgrense: - + Wasted: Ødslet: - + Connections: Tilkoblinger: - + Information Informasjon - + Comment: Kommentar: - Torrent content: - Torrentinnhold: + Torrentinnhold: - + Select All Velg Alle - + Select None Velg Ingen - + Normal Normal - + High Høy - + Share Ratio: Delingsforhold: - + Reannounce In: Annonser På Nytt Om: - + Last Seen Complete: Sist Sett Fullført: - + Total Size: Total Størrelse: - + Pieces: Deler: - + Created By: Opprettet Av: - + Added On: Lagt Til: - + Completed On: Fullført: - + Created On: Opprettet: - + Torrent Hash: Torrent-verifiseringsnøkkel: - + Save Path: Lagringssti: - + Maximum Maksimal - - + + Do not download Ikke last ned - + Never Aldri - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (har %3) - + %1 (%2 this session) %1 (%2 denne sesjonen) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (gitt ut i %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 maks) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 totalt) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 gj.sn.) - + Open Åpne - + Open Containing Folder Åpne Innholdende Mappe - + Rename... Omdøp... - + Priority Prioritet - + New Web seed Ny Nettgiver - + Remove Web seed Fjern Nettgiver - + Copy Web seed URL Kopier Nettgiver-nettadresse - + Edit Web seed URL Rediger Nettgiver-nettadresse - + Rename the file Omdøp filen - + New name: Nytt navn: - - + + The file could not be renamed Filen kunne ikke omdøpes - + This file name contains forbidden characters, please choose a different one. Dette filnavnet inneholder forbudte tegn, vennligst velg et annet et. - - + + This name is already in use in this folder. Please use a different name. Dette navnet er allerede i bruk i denne mappen. Vennligst velg et annet navn. - + The folder could not be renamed Mappen kunne ikke omdøpes - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Er du sikker på at du vil avslutte qBittorrent? Filtrer filer... - + New URL seed New HTTP source Ny nyhetsmatingsgivning - + New URL seed: Ny nyhetsmatingsgivning: - - + + This URL seed is already in the list. Denne nyhetsmatingsgivningen er allerede i listen. - + Web seed editing Nettgiver-redigering - + Web seed URL: Nettgiver-nettadresse: @@ -5225,19 +5312,19 @@ Er du sikker på at du vil avslutte qBittorrent? IP adressen din har blitt bannlyst etter for mange mislykkede autentiseringsforsøk. - + Error: '%1' is not a valid torrent file. Feil: '%1' er ikke en gyldig torrentfil. - + Error: Could not add torrent to session. Feil: Kunne ikke legge til torrent til sesjon. - + I/O Error: Could not create temporary file. Inn/ut-operasjonsfeil: Kunne ikke opprette midlertidig fil. @@ -5390,138 +5477,138 @@ Ingen flere notiser vil bli gitt. [qBittorrent] '%1' er ferdig nedlastet - + The remote host name was not found (invalid hostname) Fjernvertsnavnet ble ikke funnet (ugyldig vertsnavn) - + The operation was canceled Operasjonen ble avbrutt - + The remote server closed the connection prematurely, before the entire reply was received and processed Fjerntjeneren stengte forbindelsen for tidlig, før hele svaret ble mottatt og behandlet - + The connection to the remote server timed out Forbindelsen til fjerntjeneren ble utsatt for et tidsavbrudd - + SSL/TLS handshake failed SSL/TLS håndtrykk mislyktes - + The remote server refused the connection Fjerntjeneren avslo forbindelsen - + The connection to the proxy server was refused Forbindelsen til mellomtjeneren ble avslått - + The proxy server closed the connection prematurely Mellomtjeneren stengte forbindelsen for tidlig - + The proxy host name was not found Mellomtjenernavnet ble ikke funnet - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Forbindelsen til mellomtjeneren ble utsatt for et tidsabrudd, eller mellomtjeneren svarte ikke i tide på forespørselen som ble sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Mellomtjeneren krever autentisering for å hedre forespørselen, men aksepterte ikke noen av de oppgitte referansene - + The access to the remote content was denied (401) Tilgangen til fjerninnholdet ble nektet (401) - + The operation requested on the remote content is not permitted Operasjonen som ble forespurt på fjerninnholdet er ikke tillatt - + The remote content was not found at the server (404) Fjerninnholdet ble ikke funnet hos tjeneren (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Fjerntjeneren krever autentisering for å servere innholdet, men de oppgitte referansene ble ikke akseptert - + The Network Access API cannot honor the request because the protocol is not known Nettverktilgangens applikasjonsprogrammeringsgrensesnitt kan ikke hedre forespørselen, fordi protokollen ikke er kjent - + The requested operation is invalid for this protocol Den forespurte operasjonen er ugyldig for denne protokollen - + An unknown network-related error was detected En ukjent nettverk-relatert feil ble oppdaget - + An unknown proxy-related error was detected En ukjent mellomtjener-relatert feil ble oppdaget - + An unknown error related to the remote content was detected En ukjent feil relatert til fjerninnholdet ble oppdaget - + A breakdown in protocol was detected Et sammenbrudd i protokollen ble oppdaget - + Unknown error Ukjent feil - - + + Upgrade Oppgrader - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Du oppdaterte fra en eldre versjon som lagret ting annerledes. Du må migrere til det nye lagringssystemet. Du vil ikke kunne bruke en eldre versjon enn v3.3.0 igjen. Fortsett? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Du oppdaterte fra en eldre versjon som lagret ting annerledes. Du må migrere til det nye lagringssystemet. Hvis du fortsetter, så vil du ikke kunne bruke en eldre versjon enn v3.3.0 igjen. - + Couldn't migrate torrent with hash: %1 Kunne ikke migrere torrent med verifiseringsnøkkel: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Kunne ikke migrere torrent. Ugyldig rask gjenopptakelse-filnavn: %1 @@ -5710,12 +5797,12 @@ Ingen flere notiser vil bli gitt. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... - + Automatically downloading '%1' torrent from '%2' RSS feed... Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... @@ -5759,17 +5846,17 @@ Ingen flere notiser vil bli gitt. ScanFoldersModel - + Watched Folder Overvåket Mappe - + Download here Last ned her - + Download path Nedlastingssti @@ -7828,11 +7915,11 @@ Disse programtilleggene ble deaktivert. fsutils - - - - - + + + + + Downloads Nedlastinger @@ -7840,103 +7927,103 @@ Disse programtilleggene ble deaktivert. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python ikke oppdaget - + Python version: %1 Python versjon: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1t %2m - + %1d %2h e.g: 2days 10hours %1d %2t - + Unknown Unknown (size) Ukjent - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent vil nå slå av datamaskinen fordi alle nedlastinger er fullførte. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Virker - + Updating... Oppdaterer... - + Not working Virker ikke - + Not contacted yet Ikke kontaktet ennå diff --git a/src/lang/qbittorrent_nl.ts b/src/lang/qbittorrent_nl.ts index 16c8bb122..0406172d6 100644 --- a/src/lang/qbittorrent_nl.ts +++ b/src/lang/qbittorrent_nl.ts @@ -125,217 +125,222 @@ Hash-check overslaan - + + Set as default label + + + + Torrent Information Torrent-informatie - + Size: Grootte: - + Comment: Opmerkingen: - + Date: Datum: - + Info Hash: Info-hash: - + Normal Normaal - + High Hoog - + Maximum Maximum - + Do not download Niet downloaden - - + + I/O Error I/O-fout - + The torrent file does not exist. Het torrentbestand bestaat niet. - + Invalid torrent Ongeldige torrent - + Failed to load the torrent: %1 Laden van torrent mislukt: %1 - - + + Already in download list Reeds in downloadlijst - + Free disk space: %1 Vrije schijfruimte: %1 - + Not Available This comment is unavailable Niet beschikbaar - + Not Available This date is unavailable Niet beschikbaar - + Not available Niet beschikbaar - + Invalid magnet link Ongeldige magneetlink - + Torrent is already in download list. Trackers were merged. Torrent staat reeds in downloadlijst. Trackers werden samengevoegd. - - + + Cannot add torrent Kan torrent niet toevoegen - + Cannot add this torrent. Perhaps it is already in adding state. Kan deze torrent niet toevoegen. Misschien wordt hij reeds toegevoegd. - + This magnet link was not recognized Deze magneetlink werd niet herkend - + Magnet link is already in download list. Trackers were merged. Magneetlink staat al in downloadlijst. Trackers werden samengevoegd. - + Cannot add this torrent. Perhaps it is already in adding. Kan deze torrent niet toevoegen. Misschien wordt hij reeds toegevoegd. - + Magnet link Magneetlink - + Retrieving metadata... Metadata ophalen... - + Not Available This size is unavailable. Niet beschikbaar - - - + + + Choose save path Opslagpad kiezen - + Rename the file Bestandsnaam wijzigen - + New name: Nieuwe naam: - - + + The file could not be renamed De bestandsnaam kon niet gewijzigd worden - + This file name contains forbidden characters, please choose a different one. Deze bestandsnaam bevat verboden tekens, gelieve een andere te kiezen. - - + + This name is already in use in this folder. Please use a different name. Deze naam bestaat al in deze map. Gelieve een andere naam te gebruiken. - + The folder could not be renamed De mapnaam kon niet gewijzigd worden - + Rename... Naam wijzigen... - + Priority Prioriteit - + Invalid metadata Ongeldige metadata - + Parsing metadata... Metadata verwerken... - + Metadata retrieval complete Metadata ophalen voltooid - + Download Error Downloadfout @@ -427,9 +432,8 @@ Hostnamen van peers oplossen - Maximum number of half-open connections [0: Disabled] - Maximaal aantal halfopen verbindingen [0 Uitgeschakeld] + Maximaal aantal halfopen verbindingen [0 Uitgeschakeld] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Interval voor opslaan van hervattingsdata + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Peer-id: - + HTTP User-Agent is '%1' HTTP user-agent is '%1' - + Anonymous mode [ON] Anonieme modus [AAN] - + Anonymous mode [OFF] Anonieme modus [UIT] - + PeX support [ON] PeX-ondersteuning [AAN] - + PeX support [OFF] PeX-ondersteuning [UIT] - + Restart is required to toggle PeX support Opnieuw starten is vereist om PeX-ondersteuning in/uit te schakelen - + Local Peer Discovery support [ON] Local Peer Discovery ondersteuning [AAN] - + Local Peer Discovery support [OFF] Local Peer Discovery ondersteuning [UIT] - + Encryption support [ON] Encryptie-ondersteuning [AAN] - + Encryption support [FORCED] Encryptie-ondersteuning [GEFORCEERD] - + Encryption support [OFF] Encryptie-ondersteuning [UIT] - + Embedded Tracker [ON] Ingebedde tracker [AAN] - + Failed to start the embedded tracker! Ingebedde tracker starten mislukt! - + Embedded Tracker [OFF] Ingebedde tracker [UIT] - + '%1' reached the maximum ratio you set. Removing... '%1' heeft de maximum ingestelde verhouding bereikt. Verwijderen... - + '%1' reached the maximum ratio you set. Pausing... '%1' heeft de maximum ingestelde verhouding bereikt. Pauzeren... - Error: Could not create torrent export directory: '%1' - Fout: kon map voor exporteren van torrent niet aanmaken: '%1' + Fout: kon map voor exporteren van torrent niet aanmaken: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Fout: kon torrent '%1' niet exporteren; misschien heeft hij nog geen metadata. + Fout: kon torrent '%1' niet exporteren; misschien heeft hij nog geen metadata. - + System network status changed to %1 e.g: System network status changed to ONLINE Systeem-netwerkstatus gewijzigd in %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Netwerkconfiguratie van %1 is gewijzigd, sessie-koppeling vernieuwen - + Unable to decode '%1' torrent file. Kon torrentbestand '%1' niet decoderen. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Recursieve download van bestand '%1' in torrent '%2' - + Couldn't save '%1.torrent' Kon '%1.torrent' niet opslaan - + because %1 is disabled. this peer was blocked because uTP is disabled. omdat %1 uitgeschakeld is. - + because %1 is disabled. this peer was blocked because TCP is disabled. omdat %1 uitgeschakeld is. - + URL seed lookup failed for URL: '%1', message: %2 URL-seed raadpleging mislukt voor url: '%1', bericht: '%2' - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' werd verwijderd van de overdrachtlijst en harde schijf. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' werd verwijderd van de overdrachtlijst. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Bezig met downloaden van '%1', even geduld... - Torrent Export: torrent is invalid, skipping... - Torrent exporteren: torrent is ongeldig, overslaan... + Torrent exporteren: torrent is ongeldig, overslaan... - + DHT support [ON] DHT-ondersteuning [AAN] - + DHT support [OFF]. Reason: %1 DHT-ondersteuning [UIT]. Reden: %1 - + DHT support [OFF] DHT-ondersteuning [UIT] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent probeert te luisteren op om het even welke interface-poort: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2 + qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2 - + The network interface defined is invalid: %1 De opgegeven netwerkinterface is ongeldig: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent probeert te luisteren op interface %1 poort: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorent vond geen lokaal %1 adres om op te luisteren - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Tracker '%1' werd toegevoegd aan torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' werd verwijderd uit torrent '%2' - + URL seed '%1' was added to torrent '%2' URL-seed '%1' werd toegevoegd aan torrent '%2' - + URL seed '%1' was removed from torrent '%2' URL-seed '%1' werd verwijderd uit torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Kon torrent '%1' niet hervatten. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verwerken van opgegeven IP-filter gelukt: er werden %1 regels toegepast. - + Error: Failed to parse the provided IP filter. Fout: verwerken van de opgegeven IP-filter mislukt - + Couldn't add torrent. Reason: %1 Kon torrent niet toevoegen. Reden: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' hervat. (snel hervatten) - + '%1' added to download list. 'torrent name' was added to download list. '%1' toegevoegd aan downloadlijst. - + An I/O error occurred, '%1' paused. %2 Er trad een I/O-fout op, '%1' gepauzeerd. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: port mapping mislukt, bericht: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: port mapping succesvol, bericht: %1 - + due to IP filter. this peer was blocked due to ip filter. veroorzaakt door IP-filter. - + due to port filter. this peer was blocked due to port filter. veroorzaakt door poortfilter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. veroorzaakt door i2p mixed mode restricties. - + because it has a low port. this peer was blocked because it has a low port. omdat het een lage poort heeft. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent luistert met succes naar interface %1 poort: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4 + qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Externe IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Torrent '%1' kon niet verplaatst worden. Reden: %2 - + File sizes mismatch for torrent '%1', pausing it. Bestandgroottes komen niet overeen voor torrent '%1', wordt gepauzeerd. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Data voor snel hervatten werd afgewezen voor torrent '%1'. Reden: %2. Opnieuw controleren... @@ -1307,20 +1323,20 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. I/O-fout: kon ip-filterbestand niet openen in leesmodus. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Fout bij verwerken: het filterbestand is geen geldig PeerGuardian P2B-bestand. @@ -1328,43 +1344,43 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. GeoIPDatabase - - + + Unsupported database file size. Database-bestandsgrootte niet ondersteund. - + Metadata error: '%1' entry not found. Metadata-fout: '%1' item niet gevonden. - + Metadata error: '%1' entry has invalid type. Metadata-fout: '%1' item heeft een ongeldig type. - + Unsupported database version: %1.%2 Database-versie niet ondersteund: %1.%2 - + Unsupported IP version: %1 IP-versie niet ondersteund: %1 - + Unsupported record size: %1 Opnamegrootte niet ondersteund: %1 - + Invalid database type: %1 Ongeldig database-type: %1 - + Database corrupted: no data section found. Database beschadigd: geen datasectie teruggevonden. @@ -1397,9 +1413,8 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Slechts één link per regel - Download local torrent - Lokale torrent downloaden + Lokale torrent downloaden @@ -1572,7 +1587,22 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Inactief - + + Save files to location: + Bestanden opslaan in: + + + + Label: + Label: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Gedownload @@ -1582,6 +1612,11 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Logout Afmelden + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. LineEdit - + Clear the text Tekst wissen @@ -1743,37 +1778,37 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. MainWindow - + &Edit &Bewerken - + &Tools &Extra - + &File &Bestand - + &Help &Help - + On Downloads &Done Wanneer &downloads voltooid zijn - + &View &Beeld - + &Options... &Opties... @@ -1783,153 +1818,153 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. &Hervatten - + Torrent &Creator Torrent &aanmaken - + Set Upload Limit... Uploadlimiet instellen... - + Set Download Limit... Downloadlimiet instellen... - + Set Global Download Limit... Algemene downloadlimiet instellen... - + Set Global Upload Limit... Algemene uploadlimiet instellen... - + Minimum Priority Laagste prioriteit - + Top Priority Hoogste prioriteit - + Decrease Priority Prioriteit verlagen - + Increase Priority Prioriteit verhogen - - + + Alternative Speed Limits Alternatieve snelheidslimieten - + &Top Toolbar Bovenste &werkbalk - + Display Top Toolbar Bovenste werkbalk weergeven - + S&peed in Title Bar &Snelheid in titelbalk - + Show Transfer Speed in Title Bar Overdrachtsnelheid weergeven in titelbalk - + &RSS Reader &RSS-reader - + Search &Engine Zoek&machine - + L&ock qBittorrent qBittorrent vergrendelen - + &Import Existing Torrent... Bestaande torrent &importeren... - + Import Torrent... Torrent importeren... - + Do&nate! Do&neren! - + R&esume All All&es hervatten - + &Log &Log - + &Exit qBittorrent qBittorrent afsluit&en - + &Suspend System &Slaapstand - + &Hibernate System &Sluimerstand - + S&hutdown System &Afsluiten - + &Disabled Uitgeschakel&d - + &Statistics &Statistieken - + Check for Updates Controleren op updates - + Check for Program Updates Op programma-updates controleren @@ -1939,77 +1974,72 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. &Over - Exit - Afsluiten + Afsluiten - + &Pause &Pauzeren - + &Delete &Verwijderen - + P&ause All Alles p&auzeren - + &Add Torrent File... Torrentbest&and toevoegen... - + Open Openen - + E&xit Slu&iten - Options - Opties + Opties - Resume - Hervatten + Hervatten - Pause - Pauzeren + Pauzeren - Delete - Verwijderen + Verwijderen - + Open URL URL openen - + &Documentation &Documentatie - + Lock Vergrendelen - + Show Weergeven @@ -2020,22 +2050,21 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Op programma-updates controleren - Lock qBittorrent - qBittorrent vergrendelen + qBittorrent vergrendelen - + Add Torrent &Link... Torrent-link toevoegen - + If you like qBittorrent, please donate! Als u qBittorrent goed vindt, gelieve te doneren! - + Execution Log Uitvoeringslog @@ -2414,52 +2443,52 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Uw dynamische DNS werd succesvol bijgewerkt. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dynamische DNS fout: de dienst is tijdelijk niet beschikbaar, er wordt opnieuw geprobeerd binnen 30 minuten. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dynamische DNS fout: opgegeven hostnaam bestaat niet bij de opgegeven account. - + Dynamic DNS error: Invalid username/password. Dynamische DNS fout: ongeldige gebruikersnaam/wachtwoord. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dynamische DNS fout: qBittorrent werd geblacklist door deze dienst, gelieve de bug te rapporteren op http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dynamische DNS fout: %1 werd teruggegeven door de dienst, gelieve de bug te rapporteren op http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Dynamische DNS fout: uw gebruikersnaam werd geblokkeerd door misbruik. - + Dynamic DNS error: supplied domain name is invalid. Dynamische DNS fout: opgegeven domeinnaam is ongeldig. - + Dynamic DNS error: supplied username is too short. Dynamische DNS fout: opgegeven gebruikersnaam is te kort. - + Dynamic DNS error: supplied password is too short. Dynamische DNS fout: opgegeven wachtwoord is te kort. @@ -2467,17 +2496,17 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::DownloadHandler - + I/O Error I/O-fout - + The file size is %1. It exceeds the download limit of %2. De bestandsgrootte is %1. Ze overschrijdt de downloadlimiet van %2. - + Unexpected redirect to magnet URI. Onverwachte omleiding naar magneetlink. @@ -2485,1300 +2514,1300 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP-database geladen. Type: %1. Build-tijd: %2. - - + + Couldn't load GeoIP database. Reason: %1 Kon GeoIP-database niet laden. Reden: %1 - - + + N/A N/B - + Asia/Pacific Region Azië/Stille Oceaan - + Europe Europa - + Andorra Andorra - + United Arab Emirates Verenigde Arabische Emiraten - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua en Barbuda - + Anguilla Anguilla - + Albania Albanië - + Armenia Armenië - + Netherlands Antilles Nederlandse Antillen - + Angola Angola - + Antarctica Antarctica - + Argentina Argentinië - + American Samoa Amerikaans-Samoa - + Austria Oostenrijk - + Australia Australië - + Aruba Aruba - + Azerbaijan Azerbeidzjan - + Bosnia and Herzegovina Bosnië en Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium België - + Burkina Faso Burkina Faso - + Bulgaria Bulgarije - + Bahrain Bahrein - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei - + Bolivia Bolivia - + Brazil Brazilië - + Bahamas Bahama's - + Bhutan Bhutan - + Bouvet Island Bouvet Island - + Botswana Botswana - + Belarus Wit-Rusland - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Cocoseilanden - + Congo, The Democratic Republic of the Congo-Kinshasa - + Central African Republic Centraal-Afrikaanse Republiek - + Congo Congo - + Switzerland Zwitserland - + Cote D'Ivoire Ivoorkust - + Cook Islands Cookeilanden - + Chile Chili - + Cameroon Kameroen - + China China - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Kaapverdië - + Christmas Island Christmaseiland - + Cyprus Cyprus - + Czech Republic Tsjechië - + Germany Duitsland - + Djibouti Djibouti - + Denmark Denemarken - + Dominica Dominica - + Dominican Republic Dominicaanse republiek - + Algeria Algerije - + Ecuador Ecuador - + Estonia Estland - + Egypt Egypte - + Western Sahara Westelijke Sahara - + Eritrea Eritrea - + Spain Spanje - + Ethiopia Ethiopië - + Finland Finland - + Fiji Fiji - + Falkland Islands (Malvinas) Falklandeilanden (Malvinas) - + Micronesia, Federated States of Micronesia - + Faroe Islands Faeröer - + France Frankrijk - + France, Metropolitan Frankrijk, Metropool - + Gabon Gabon - + United Kingdom Verenigd Koninkrijk - + Grenada Grenada - + Georgia Georgië - + French Guiana Frans-Guyana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenland - + Gambia Gambia - + Guinea Guinee - + Guadeloupe Guadeloupe - + Equatorial Guinea Equatoriaal-Guinea - + Greece Griekenland - + South Georgia and the South Sandwich Islands Zuid-Georgia en de Zuidelijke Sandwicheilanden - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinee-Bissau - + Guyana Guyana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Heard en McDonaldeilanden - + Honduras Honduras - + Croatia Kroatië - + Haiti Haïti - + Hungary Hongarije - + Indonesia Indonesië - + Ireland Ierland - + Israel Israël - + India India - + British Indian Ocean Territory Brits Indische Oceaanterritorium - + Iraq Irak - + Iran, Islamic Republic of Iran - + Iceland Ijsland - + Italy Italië - + Jamaica Jamaica - + Jordan Jordanië - + Japan Japan - + Kenya Kenia - + Kyrgyzstan Kirgizië - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comoren - + Saint Kitts and Nevis Saint Kitts en Nevis - + Korea, Democratic People's Republic of Noord-Korea - + Korea, Republic of Zuid-Korea - + Kuwait Koeweit - + Cayman Islands Kaaimaneilanden - + Kazakhstan Kazachstan - + Lao People's Democratic Republic Laos - + Lebanon Libanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litouwen - + Luxembourg Luxemburg - + Latvia Letland - + Libyan Arab Jamahiriya Libië - + Morocco Marokko - + Monaco Monaco - + Moldova, Republic of Moldavië - + Madagascar Madagaskar - + Marshall Islands Marshalleilanden - + Macedonia Macedonië - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolië - + Macau Macau - + Northern Mariana Islands Noordelijke Marianen - + Martinique Martinique - + Mauritania Mauritanië - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldiven - + Malawi Malawi - + Mexico Mexico - + Malaysia Maleisië - + Mozambique Mozambique - + Namibia Namibië - + New Caledonia Nieuw-Caledonië - + Niger Niger - + Norfolk Island Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Nederland - + Norway Noorwegen - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nieuw-Zeeland - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Frans-Polynesië - + Papua New Guinea Papoea-Nieuw-Guinea - + Philippines Filipijnen - + Pakistan Pakistan - + Poland Polen - + Saint Pierre and Miquelon Saint-Pierre en Miquelon - + Pitcairn Islands Pitcairneilanden - + Puerto Rico Puerto Rico - + Palestinian Territory Palestina - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Réunion - + Romania Roemenië - + Russian Federation Rusland - + Rwanda Rwanda - + Saudi Arabia Saoedi-Arabië - + Solomon Islands Salomonseilanden - + Seychelles Seychellen - + Sudan Soedan - + Sweden Zweden - + Singapore Singapore - + Saint Helena  Sint-Helena, Ascension en Tristan da Cunha - + Slovenia Slovenië - + Svalbard and Jan Mayen  Spitsbergen en Jan Mayen - + Slovakia Slowakije - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalië - + Suriname Suriname - + Sao Tome and Principe Sao Tomé en Principe - + El Salvador El Salvador - + Syrian Arab Republic Syrië - + Swaziland Swaziland - + Turks and Caicos Islands Turks- en Caicoseilanden - + Chad Tsjaad - + French Southern Territories Franse Zuidelijke en Antarctische Gebieden - + Togo Togo - + Thailand Thailand - + Tajikistan Tadzjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunesië - + Tonga Tonga - + Timor-Leste Oost-Timor - + Turkey Turkije - + Trinidad and Tobago Trinidad en Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Oekraïne - + Uganda Oeganda - + United States Minor Outlying Islands Kleine Pacifische eilanden van de Verenigde Staten - + United States Verenigde Staten - + Uruguay Uruguay - + Uzbekistan Oezbekistan - + Holy See (Vatican City State) Vaticaanstad - + Saint Vincent and the Grenadines Saint Vincent en de Grenadines - + Venezuela Venezuela - + Virgin Islands, British Britse Maagdeneilanden - + Virgin Islands, U.S. Amerikaanse Maagdeneilanden - + Vietnam Viëtnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis en Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Servië - + South Africa Zuid-Afrika - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - + Anonymous Proxy Anonieme proxy - + Satellite Provider Satelliet-provider - + Other Andere - + Aland Islands Åland - + Guernsey Guernsey - + Isle of Man Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin Sint-Maarten - + Could not uncompress GeoIP database file. Kon GeoIP-databasebestand niet uitpakken. - + Couldn't save downloaded GeoIP database file. Kon gedownload GeoIP-databasebestand niet opslaan. - + Successfully updated GeoIP database. GeoIP-database succesvol bijgewerkt. - + Couldn't download GeoIP database file. Reason: %1 Kon GeoIP-database niet downloaden. Reden: %1 @@ -3786,12 +3815,12 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP/NAT-PMP-ondersteuning [AAN] - + UPnP / NAT-PMP support [OFF] UPnP/NAT-PMP-ondersteuning [UIT] @@ -3799,206 +3828,265 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::Smtp - + Email Notification Error: E-mail meldingsfout: + + PeerInfo + + + interested(local) and choked(peer) + geïnteresseerd (lokaal) en gestopt (peer) + + + + interested(local) and unchoked(peer) + geïnteresseerd (lokaal) en voortgezet (peer) + + + + interested(peer) and choked(local) + geïnteresseerd (peer) en gestopt (lokaal) + + + + interested(peer) and unchoked(local) + geïnteresseerd (peer) en voortgezet (lokaal) + + + + optimistic unchoke + optimistisch voortzetten + + + + peer snubbed + peer gestopt met uploaden + + + + incoming connection + inkomende verbinding + + + + not interested(local) and unchoked(peer) + niet geïnteresseerd (lokaal) en voortgezet (peer) + + + + not interested(peer) and unchoked(local) + niet geïnteresseerd (peer) en voortgezet (lokaal) + + + + peer from PEX + peer van PEX + + + + peer from DHT + peer van DHT + + + + encrypted traffic + versleuteld verkeer + + + + encrypted handshake + versleutelde handdruk + + + + peer from LSD + peer van LSD + + PeerListWidget - + IP IP - + Port Poort - + Flags Vlaggen - + Connection Verbinding - + Client i.e.: Client application Cliënt - + Progress i.e: % downloaded Voortgang - + Down Speed i.e: Download speed Downloadsnelheid - + Up Speed i.e: Upload speed Uploadsnelheid - + Downloaded i.e: total data downloaded Gedownload - + Uploaded i.e: total data uploaded Geüpload - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevantie - + Add a new peer... Nieuwe peer toevoegen... - + Copy selected Geselecteerde kopiëren - - + + Ban peer permanently Peer permanent bannen - + Manually adding peer '%1'... Peer '%1' manueel toevoegen... - + The peer '%1' could not be added to this torrent. Peer '%1' kon niet toegevoegd worden aan deze torrent. - + Manually banning peer '%1'... Peer '%1' manueel bannen... - + Peer addition Peer toevoegen - + Some peers could not be added. Check the Log for details. Een aantal peers konden niet toegevoegd worden. Controleer het logbestand voor details. - + The peers were added to this torrent. De peers werden toegevoegd aan deze torrent. - + Are you sure you want to ban permanently the selected peers? Bent u zeker dat u de geselecteerde peer permanent wilt bannen? - + &Yes &Ja - + &No &Nee - interested(local) and choked(peer) - geïnteresseerd (lokaal) en gestopt (peer) + geïnteresseerd (lokaal) en gestopt (peer) - interested(local) and unchoked(peer) - geïnteresseerd (lokaal) en voortgezet (peer) + geïnteresseerd (lokaal) en voortgezet (peer) - interested(peer) and choked(local) - geïnteresseerd (peer) en gestopt (lokaal) + geïnteresseerd (peer) en gestopt (lokaal) - interested(peer) and unchoked(local) - geïnteresseerd (peer) en voortgezet (lokaal) + geïnteresseerd (peer) en voortgezet (lokaal) - optimistic unchoke - optimistisch voortzetten + optimistisch voortzetten - peer snubbed - peer gestopt met uploaden + peer gestopt met uploaden - incoming connection - inkomende verbinding + inkomende verbinding - not interested(local) and unchoked(peer) - niet geïnteresseerd (lokaal) en voortgezet (peer) + niet geïnteresseerd (lokaal) en voortgezet (peer) - not interested(peer) and unchoked(local) - niet geïnteresseerd (peer) en voortgezet (lokaal) + niet geïnteresseerd (peer) en voortgezet (lokaal) - peer from PEX - peer van PEX + peer van PEX - peer from DHT - peer van DHT + peer van DHT - encrypted traffic - versleuteld verkeer + versleuteld verkeer - encrypted handshake - versleutelde handdruk + versleutelde handdruk - peer from LSD - peer van LSD + peer van LSD @@ -4772,17 +4860,17 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Filterpad (.dat, p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. Programma is foutief beëindigd. Fallback-bestand wordt gebruikt om instellingen te herstellen. - + An access error occurred while trying to write the configuration file. Er is een toegangsfout voorgekomen tijdens het schrijven van het configuratiebestand. - + A format error occurred while trying to write the configuration file. Er is een formatteringsfout voorgekomen tijdens het schrijven van het configuratiebestand @@ -4888,299 +4976,298 @@ Weet u zeker dat u qBittorrent wilt afsluiten? PropertiesWidget - + Downloaded: Gedownload: - + Availability: Beschikbaarheid: - + Progress: Voortgang: - + Transfer Overdracht - + Time Active: Time (duration) the torrent is active (not paused) Tijd actief: - + ETA: Geschatte resterende tijd: - + Uploaded: Geüpload: - + Seeds: Seeds: - + Download Speed: Downloadsnelheid: - + Upload Speed: Uploadsnelheid: - + Peers: Peers: - + Download Limit: Downloadlimiet: - + Upload Limit: Uploadlimiet: - + Wasted: Verloren: - + Connections: Verbindingen: - + Information Informatie - + Comment: Opmerkingen: - Torrent content: - Torrent-inhoud: + Torrent-inhoud: - + Select All Alles selecteren - + Select None Niets selecteren - + Normal Normaal - + High Hoog - + Share Ratio: Deelverhouding: - + Reannounce In: Opnieuw aankondigen binnen: - + Last Seen Complete: Laatst volledig gezien: - + Total Size: Totale grootte: - + Pieces: Deeltjes: - + Created By: Aangemaakt door: - + Added On: Toegevoegd op: - + Completed On: Voltooid op: - + Created On: Aangemaakt op: - + Torrent Hash: Torrent-hash: - + Save Path: Opslagpad: - + Maximum Maximum - - + + Do not download Niet downloaden - + Never Nooit - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (%3 in bezit) - + %1 (%2 this session) %1 (%2 deze sessie) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (geseed voor %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 totaal) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 gem.) - + Open Openen - + Open Containing Folder Bijbehorende map openen - + Rename... Naam wijzigen... - + Priority Prioriteit - + New Web seed Nieuwe webseed - + Remove Web seed Webseed verwijderen - + Copy Web seed URL Webseed-url kopiëren - + Edit Web seed URL Webseed-url bewerken - + Rename the file Bestandsnaam wijzigen - + New name: Nieuwe naam: - - + + The file could not be renamed De bestandsnaam kon niet gewijzigd worden - + This file name contains forbidden characters, please choose a different one. Deze bestandsnaam bevat verboden tekens, gelieve een andere te kiezen. - - + + This name is already in use in this folder. Please use a different name. Deze naam bestaat al in deze map. Gelieve een andere naam te gebruiken. - + The folder could not be renamed De mapnaam kon niet gewijzigd worden - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Bestanden filteren... - + New URL seed New HTTP source Nieuwe URL-seed - + New URL seed: Nieuwe URL-seed: - - + + This URL seed is already in the list. Deze URL-seed staat al in de lijst. - + Web seed editing Webseed bewerken - + Web seed URL: Webseed-url: @@ -5225,19 +5312,19 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Uw IP-adres is geblokkeerd na te veel mislukte authenticatie-pogingen. - + Error: '%1' is not a valid torrent file. Fout: '%1' is geen geldig torrentbestand. - + Error: Could not add torrent to session. Fout: kon torrent niet aan sessie toevoegen. - + I/O Error: Could not create temporary file. I/O-fout: kon geen tijdelijk bestand aanmaken. @@ -5390,138 +5477,138 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. [qBittorrent] '%1' is klaar met downloaden - + The remote host name was not found (invalid hostname) De externe hostnaam werd niet teruggevonden (ongeldige hostnaam) - + The operation was canceled De handeling werd geannuleerd - + The remote server closed the connection prematurely, before the entire reply was received and processed De externe server heeft de verbinding vroegtijdig afgesloten, voordat het volledige antwoord ontvangen en verwerkt werd - + The connection to the remote server timed out De verbinding met de externe server is verlopen - + SSL/TLS handshake failed SSL/TLS handshake mislukt - + The remote server refused the connection De externe server heeft de verbinding geweigerd - + The connection to the proxy server was refused De verbinding naar de proxyserver werd geweigerd - + The proxy server closed the connection prematurely De proxyserver heeft de verbinding vroegtijdig afgesloten - + The proxy host name was not found De proxy-hostnaam werd niet gevonden - + The connection to the proxy timed out or the proxy did not reply in time to the request sent De verbinding naar de proxy is verlopen of de proxy reageerde niet op tijd op het verzonden verzoek - + The proxy requires authentication in order to honor the request but did not accept any credentials offered De proxy vereist authenticatie om in te kunnen gaan op het verzoek maar accepteerde geen van de aangeboden aanmeldingsgegevens - + The access to the remote content was denied (401) De toegang tot de externe inhoud werd geweigerd (401) - + The operation requested on the remote content is not permitted De gevraagde handeling op de externe inhoud is niet toegestaan - + The remote content was not found at the server (404) De externe inhoud werd niet teruggevonden op de server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted De externe server vereist authenticatie om de inhoud aan te bieden maar de gegeven aanmeldingsgegevens werden niet geaccepteerd - + The Network Access API cannot honor the request because the protocol is not known De netwerktoegang-API kon niet ingaan op het verzoek omdat het protocol niet bekend is - + The requested operation is invalid for this protocol De gevraagde handeling is niet geldig voor dit protocol - + An unknown network-related error was detected Er werd een onbekende netwerkgerelateerde fout gevonden - + An unknown proxy-related error was detected Er werd een onbekende proxy-gerelateerde fout gevonden - + An unknown error related to the remote content was detected Er werd een onbekende fout, gerelateerd aan de externe inhoud, gevonden - + A breakdown in protocol was detected Er werd een storing in het protocol gedetecteerd - + Unknown error Onbekende fout - - + + Upgrade Upgraden - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] U heeft bijgewerkt vanaf een oudere versie die dingen op een andere manier opsloeg. U moet migreren naar het nieuwe opslagsysteem. U zult een oudere versie dan v3.3.0 niet meer opnieuw kunnen gebruiken. Doorgaan? [j/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. U heeft bijgewerkt vanaf een oudere versie die dingen op een andere manier opsloeg. U moet migreren naar het nieuwe opslagsysteem. Als u verdergaat, zult u een oudere versie dan v3.3.0 niet meer opnieuw kunnen gebruiken. - + Couldn't migrate torrent with hash: %1 Kon torrent met hash %1 niet migreren - + Couldn't migrate torrent. Invalid fastresume file name: %1 Kon torrent niet migreren. Ongeldige bestandsnaam voor snel hervatten: %1 @@ -5710,12 +5797,12 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... - + Automatically downloading '%1' torrent from '%2' RSS feed... Automatisch downloaden van '%1' torrent van '%2' RSS-feed... @@ -5759,17 +5846,17 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. ScanFoldersModel - + Watched Folder Bekeken map - + Download here Hier downloaden - + Download path Downloadpad @@ -7828,11 +7915,11 @@ Deze plugins zijn uitgeschakeld. fsutils - - - - - + + + + + Downloads Downloads @@ -7840,103 +7927,103 @@ Deze plugins zijn uitgeschakeld. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python niet gedetecteerd - + Python version: %1 Python versie: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1 u %2 m - + %1d %2h e.g: 2days 10hours %1 d %2 u - + Unknown Unknown (size) Onbekend - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent zal de computer afsluiten omdat alle downloads voltooid zijn. - + < 1m < 1 minute < 1 m - + %1m e.g: 10minutes %1 m - + Working Werkend - + Updating... Bijwerken... - + Not working Niet werkend - + Not contacted yet Nog niet gecontacteerd diff --git a/src/lang/qbittorrent_pl.ts b/src/lang/qbittorrent_pl.ts index 39155c0a4..42896992f 100644 --- a/src/lang/qbittorrent_pl.ts +++ b/src/lang/qbittorrent_pl.ts @@ -125,217 +125,222 @@ Pomiń sprawdzanie danych - + + Set as default label + + + + Torrent Information Informacje o torrencie - + Size: Rozmiar: - + Comment: Komentarz: - + Date: Data: - + Info Hash: Info Hash: - + Normal Normalny - + High Wysoki - + Maximum Maksymalny - + Do not download Nie pobieraj - - + + I/O Error Błąd We/Wy - + The torrent file does not exist. Plik torrent nie istnieje. - + Invalid torrent Nieprawidłowy torrent - + Failed to load the torrent: %1 Nie można wczytać torrenta: %1 - - + + Already in download list Już jest na liście pobierania - + Free disk space: %1 Wolne miejsce na dysku: %1 - + Not Available This comment is unavailable Niedostępne - + Not Available This date is unavailable Niedostępne - + Not available Niedostępne - + Invalid magnet link Nieprawidłowy odnośnik magnet - + Torrent is already in download list. Trackers were merged. Torrent jest już na liście pobierania. Trackery zostały połączone. - - + + Cannot add torrent Nie można dodać pliku torrent - + Cannot add this torrent. Perhaps it is already in adding state. Nie można dodać tego pliku torrent. Możliwe, że jest już w stanie dodawania. - + This magnet link was not recognized Odnośnik magnet nie został rozpoznany - + Magnet link is already in download list. Trackers were merged. Odnośnik magnet jest już na liście pobierania. Trackery zostały połączone. - + Cannot add this torrent. Perhaps it is already in adding. Nie można dodać tego pliku torrent. Możliwe, że jest już dodawany. - + Magnet link Odnośnik magnet - + Retrieving metadata... Pobieranie metadanych... - + Not Available This size is unavailable. Niedostępne - - - + + + Choose save path Wybierz ścieżkę zapisu - + Rename the file Zmień nazwę pliku - + New name: Nowa nazwa: - - + + The file could not be renamed Nie można zmienić nazwy pliku - + This file name contains forbidden characters, please choose a different one. Nazwa pliku zawiera zabronione znaki, proszę wybrać inną nazwę. - - + + This name is already in use in this folder. Please use a different name. Wybrana nazwa jest już używana w tym katalogu. Proszę wybrać inną nazwę. - + The folder could not be renamed Nie można zmienić nazwy katalogu - + Rename... Zmień nazwę... - + Priority Priorytet - + Invalid metadata Nieprawidłowe metadane - + Parsing metadata... Przetwarzanie metadanych... - + Metadata retrieval complete Pobieranie metadanych zakończone - + Download Error Błąd pobierania @@ -427,9 +432,8 @@ Odczytuj nazwy hostów partnerów - Maximum number of half-open connections [0: Disabled] - Limit pół-otwartych połączeń [0: Bez limitu] + Limit pół-otwartych połączeń [0: Bez limitu] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Interwał zapisu danych wznowienia + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Identyfikator partnera: - + HTTP User-Agent is '%1' Klient użytkownika HTTP to '%1' - + Anonymous mode [ON] Tryb anonimowy [WŁ] - + Anonymous mode [OFF] Tryb anonimowy [WYŁ] - + PeX support [ON] Wsparcie PeX [WŁ] - + PeX support [OFF] Wsparcie PeX [WYŁ] - + Restart is required to toggle PeX support Zmiana statusu PeX wymaga ponownego uruchomienia - + Local Peer Discovery support [ON] Wykrywanie partnerów w sieci lokalnej [WŁ] - + Local Peer Discovery support [OFF] Wykrywanie partnerów w sieci lokalnej [WYŁ] - + Encryption support [ON] Wsparcie szyfrowania [WŁ] - + Encryption support [FORCED] Wsparcie szyfrowania [WYMUSZONE] - + Encryption support [OFF] Wsparcie szyfrowania [WYŁ] - + Embedded Tracker [ON] Wbudowany tracker [WŁ] - + Failed to start the embedded tracker! Nie udało się uruchomić wbudowanego trackera! - + Embedded Tracker [OFF] Wbudowany tracker [WYŁ] - + '%1' reached the maximum ratio you set. Removing... %1' osiagnął ustawiony przez ciebie współczynnik udziału. Usuwanie... - + '%1' reached the maximum ratio you set. Pausing... %1' osiagnął ustawiony przez ciebie współczynnik udziału. Wstrzymywanie... - Error: Could not create torrent export directory: '%1' - Błąd: Nie można utworzyć katalogu eksportowania pliku torrent: '%1' + Błąd: Nie można utworzyć katalogu eksportowania pliku torrent: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Błąd: nie można wyeksportować pliku torrent '%1', może jeszcze nie ma metadanych. + Błąd: nie można wyeksportować pliku torrent '%1', może jeszcze nie ma metadanych. - + System network status changed to %1 e.g: System network status changed to ONLINE Stan sieci systemu zmieniono na %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfiguracja sieci %1 uległa zmianie, odświeżam wiązanie sesji - + Unable to decode '%1' torrent file. Nie można odszyfrować pliku torrent: '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurencyjne pobieranie pliku '%1' osadzonego w pliku torrent '%2' - + Couldn't save '%1.torrent' Nie można zapisać '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. ponieważ %1 jest wyłączone. - + because %1 is disabled. this peer was blocked because TCP is disabled. ponieważ %1 jest wyłączone. - + URL seed lookup failed for URL: '%1', message: %2 Błąd wyszukiwania URL partnera dla adresu '%1', komunikat: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... %1' usunięto z listy transferów i twardego dysku. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' usunięto z listy transferów. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Pobieranie '%1', proszę czekać... - Torrent Export: torrent is invalid, skipping... - Eksportowanie torrenta: Plik torrent jest nieprawidłowy, pomijanie... + Eksportowanie torrenta: Plik torrent jest nieprawidłowy, pomijanie... - + DHT support [ON] Wsparcie DHT [WŁ]. - + DHT support [OFF]. Reason: %1 Wsparcie DHT [WYŁ]. Powód: %1 - + DHT support [OFF] Wsparcie DHT [WYŁ] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent próbuje nasłuchiwać dowolnego portu interfejsu: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2 + qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2 - + The network interface defined is invalid: %1 Podany interfejs sieciowy jest nieprawidłowy: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent próbuje nasłuchiwać interfejsu %1 port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nie znalazł żadnego %1 lokalnego adresu, na którym można nasłuchiwać - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Tracker '%1' został dodany do torrenta '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' został usunięty z torrenta '%2' - + URL seed '%1' was added to torrent '%2' URL seeda '%1' został dodany do torrenta '%2' - + URL seed '%1' was removed from torrent '%2' URL seeda '%1' został usunięty z torrenta '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nie można wznowić torrenta: '%1' - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Pomyślnie przetworzono podany filtr IP: zastosowano %1 reguł. - + Error: Failed to parse the provided IP filter. Błąd: Nie udało się przetworzyć podanego filtra IP. - + Couldn't add torrent. Reason: %1 Nie można dodać torrenta. Powód: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' wznowiony. (szybkie wznawianie) - + '%1' added to download list. 'torrent name' was added to download list. '%1' dodano do listy pobierania. - + An I/O error occurred, '%1' paused. %2 Wystąpił błąd We/Wy, '%1' wstrzymany. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Błąd mapowania portu, komunikat %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Udane mapowanie portu, komunikat %1 - + due to IP filter. this peer was blocked due to ip filter. z powodu filtru IP. - + due to port filter. this peer was blocked due to port filter. z powodu filtru portu. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. z powodu ograniczeń trybu mieszanego i2p. - + because it has a low port. this peer was blocked because it has a low port. ponieważ ma niski port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent skutecznie nasłuchuje interfejs sieciowy %1 port: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4 + qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Zewnętrzne IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Nie można przenieść: '%1'. Powód: %2 - + File sizes mismatch for torrent '%1', pausing it. Błędny rozmiar pliku z torrenta '%1', wstrzymuję pobieranie. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Szybkie wznowienie pobierania zostało odrzucone dla torrenta '%1'. Powód: %2. Ponowne sprawdzanie... @@ -1307,20 +1323,20 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Błąd We/Wy: Nie można otworzyć pliku filtra IP w trybie odczytu. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Błąd parsowania: Plik filtru nie jest prawidłowym plikiem PeerGuardian P2B. @@ -1328,43 +1344,43 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. GeoIPDatabase - - + + Unsupported database file size. Nieobsługiwany rozmiar pliku bazy danych. - + Metadata error: '%1' entry not found. Błąd metadanych: wpis '%1' nieodnaleziony. - + Metadata error: '%1' entry has invalid type. Błąd metadanych: wpis '%1' jest nieprawidłowy. - + Unsupported database version: %1.%2 Nieobsługiwana wersja bazy danych: %1.%2 - + Unsupported IP version: %1 Nieobsługiwana wersja IP: %1 - + Unsupported record size: %1 Nieobsługiwany rozmiar rekordu: %1 - + Invalid database type: %1 Nieprawidłowy typ bazy danych: %1 - + Database corrupted: no data section found. Uszkodzona baza danych: nie odnaleziono sekcji danych. @@ -1397,9 +1413,8 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.Można podać tylko jeden adres www w jednej linii - Download local torrent - Pobierz pliki torrent z dysku twardego + Pobierz pliki torrent z dysku twardego @@ -1572,7 +1587,22 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.Nieaktywne - + + Save files to location: + Domyślny katalog zapisywanych plików: + + + + Label: + Etykieta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Pobrany @@ -1582,6 +1612,11 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.Logout Wyloguj + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. LineEdit - + Clear the text Wyczyść tekst @@ -1743,37 +1778,37 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. MainWindow - + &Edit &Edycja - + &Tools &Narzędzia - + &File P&lik - + &Help &Pomoc - + On Downloads &Done Na ukończonych &pobraniach - + &View &Widok - + &Options... &Opcje... @@ -1783,153 +1818,153 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.W&znów - + Torrent &Creator Kreator plików torre&nt - + Set Upload Limit... Ustaw limit wysyłania... - + Set Download Limit... Ustaw limit pobierania... - + Set Global Download Limit... Ustaw ogólny limit pobierania... - + Set Global Upload Limit... Ustaw ogólny limit wysyłania... - + Minimum Priority Minimalny priorytet - + Top Priority Najwyższy priorytet - + Decrease Priority Zmniejsz priorytet - + Increase Priority Zwiększ priorytet - - + + Alternative Speed Limits Alternatywne limity prędkości - + &Top Toolbar &Górny pasek narzędziowy - + Display Top Toolbar Wyświetlaj górny pasek narzędziowy - + S&peed in Title Bar &Prędkość na pasku tytułu - + Show Transfer Speed in Title Bar Pokaż szybkość transferu na pasku tytułu - + &RSS Reader Czytnik &RSS - + Search &Engine &Wyszukiwarka - + L&ock qBittorrent Zablo&kuj qBittorrent - + &Import Existing Torrent... &Importuj istniejący plik torrent... - + Import Torrent... Importuj plik torrent... - + Do&nate! W&spomóż! - + R&esume All Wznów wszystki&e - + &Log &Dziennik - + &Exit qBittorrent Zakończ &qBittorrent - + &Suspend System Wst&rzymaj system - + &Hibernate System &Hibernuj system - + S&hutdown System Zamknij syst&em - + &Disabled Wyłąc&zone - + &Statistics S&tatystyki - + Check for Updates Sprawdź aktualizacje - + Check for Program Updates Sprawdź aktualizacje programu @@ -1939,77 +1974,72 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.&O programie - Exit - Zakończ + Zakończ - + &Pause &Wstrzymaj - + &Delete U&suń - + P&ause All Ws&trzymaj wszystkie - + &Add Torrent File... &Dodaj plik torrent... - + Open Otwórz - + E&xit Zak&ończ - Options - Opcje + Opcje - Resume - Wznów + Wznów - Pause - Wstrzymaj + Wstrzymaj - Delete - Usuń + Usuń - + Open URL Otwórz URL - + &Documentation &Dokumentacja - + Lock Zablokuj - + Show Pokaż @@ -2020,22 +2050,21 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.Sprawdź aktualizacje programu - Lock qBittorrent - Zablokuj qBittorrent + Zablokuj qBittorrent - + Add Torrent &Link... D&odaj łąc&ze torrenta... - + If you like qBittorrent, please donate! Jeśli lubisz qBittorrent, przekaż pieniądze! - + Execution Log Dziennik programu @@ -2414,52 +2443,52 @@ Czy na pewno zamknąć qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Pomyślnie zaktualizowano twój dynamiczny DNS. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Błąd dynamicznego DNS: Usługa tymczasowo niedostępna, ponowienie za 30 minut. - + Dynamic DNS error: hostname supplied does not exist under specified account. Błąd dynamicznego DNS: Wskazane konto nie zawiera podanej nazwy hosta. - + Dynamic DNS error: Invalid username/password. Błąd dynamicznego DNS: Nieprawidłowa nazwa użytkownika i/lub hasło. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Błąd dynamicznego DNS: Usługa dodała program qBittorrent do czarnej listy, proszę zgłosić błąd na stronie http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Błąd dynamicznego DNS: Usługa zwróciła: %1, proszę zgłosić błąd na stronie http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Błąd dynamicznego DNS: Z powodu nadużycia nazwa użytkownika została zablokowana. - + Dynamic DNS error: supplied domain name is invalid. Błąd dynamicznego DNS: Podana nazwa domeny jest nieprawidłowa. - + Dynamic DNS error: supplied username is too short. Błąd dynamicznego DNS: Podana nazwa użytkownika jest zbyt krótka. - + Dynamic DNS error: supplied password is too short. Błąd dynamicznego DNS: Podane hasło jest zbyt krótkie. @@ -2467,17 +2496,17 @@ Czy na pewno zamknąć qBittorrent? Net::DownloadHandler - + I/O Error Błąd we/wy - + The file size is %1. It exceeds the download limit of %2. Rozmiar pliku to %1. Przekracza to ograniczenie pobierania %2. - + Unexpected redirect to magnet URI. Nieoczekiwane przekierowanie do magnet URI. @@ -2485,1300 +2514,1300 @@ Czy na pewno zamknąć qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Załadowano bazę danych GeoIP. Typ: %1. Czas budowy: %2. - - + + Couldn't load GeoIP database. Reason: %1 Nie można załadować bazy danych GeoIP. Powód: %1 - - + + N/A Nie dotyczy - + Asia/Pacific Region Azja/Region Pacyfiku - + Europe Europa - + Andorra Andora - + United Arab Emirates Zjednoczone Emiraty Arabskie - + Afghanistan Afganistan - + Antigua and Barbuda Antigua i Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antyle Holenderskie - + Angola Angola - + Antarctica Antarktyda - + Argentina Argentyna - + American Samoa Samoa Amerykańskie - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbejdżan - + Bosnia and Herzegovina Bośnia i Hercegowina - + Barbados Barbados - + Bangladesh Bangladesz - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bułgaria - + Bahrain Bahrajn - + Burundi Burundi - + Benin Benin - + Bermuda Bermudy - + Brunei Darussalam Brunei - + Bolivia Boliwia - + Brazil Brazylia - + Bahamas Bahamy - + Bhutan Bhutan - + Bouvet Island Wyspa Bouveta - + Botswana Botswana - + Belarus Białoruś - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Wyspy Kokosowe (Keelinga) - + Congo, The Democratic Republic of the Demokratyczna Republika Konga - + Central African Republic Republika Środkowoafrykańska - + Congo Kongo - + Switzerland Szwajcaria - + Cote D'Ivoire Wybrzeże Kości Słoniowej - + Cook Islands Wyspy Cooka - + Chile Chile - + Cameroon Kamerun - + China Chiny - + Colombia Kolumbia - + Costa Rica Kostaryka - + Cuba Kuba - + Cape Verde Republika Zielonego Przylądka - + Christmas Island Wyspa Bożego Narodzenia - + Cyprus Cypr - + Czech Republic Czechy - + Germany Niemcy - + Djibouti Dżibuti - + Denmark Dania - + Dominica Dominika - + Dominican Republic Dominikana - + Algeria Algieria - + Ecuador Ekwador - + Estonia Estonia - + Egypt Egipt - + Western Sahara Sahara Zachodnia - + Eritrea Erytrea - + Spain Hiszpania - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fidżi - + Falkland Islands (Malvinas) Falklandy (Malwiny) - + Micronesia, Federated States of Mikronezja - + Faroe Islands Wyspy Owcze - + France Francja - + France, Metropolitan Francja metropolitarna - + Gabon Gabon - + United Kingdom Wielka Brytania - + Grenada Grenada - + Georgia Gruzja - + French Guiana Gujana Francuska - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Grenlandia - + Gambia Gambia - + Guinea Gwinea - + Guadeloupe Gwadelupa - + Equatorial Guinea Gwinea Równikowa - + Greece Grecja - + South Georgia and the South Sandwich Islands Georgia Południowa i Sandwich Południowy - + Guatemala Gwatemala - + Guam Guam - + Guinea-Bissau Gwinea Bissau - + Guyana Gujana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Wyspy Heard i McDonalda - + Honduras Honduras - + Croatia Chorwacja - + Haiti Haiti - + Hungary Węgry - + Indonesia Indonezja - + Ireland Irlandia - + Israel Izrael - + India Indie - + British Indian Ocean Territory Brytyjskie Terytorium Oceanu Indyjskiego - + Iraq Irak - + Iran, Islamic Republic of Iran - + Iceland Islandia - + Italy Włochy - + Jamaica Jamajka - + Jordan Jordania - + Japan Japonia - + Kenya Kenia - + Kyrgyzstan Kirgistan - + Cambodia Kambodża - + Kiribati Kiribati - + Comoros Komory - + Saint Kitts and Nevis Saint Kitts i Nevis - + Korea, Democratic People's Republic of Korea Północna - + Korea, Republic of Korea Południowa - + Kuwait Kuwejt - + Cayman Islands Kajmany - + Kazakhstan Kazachstan - + Lao People's Democratic Republic Laos - + Lebanon Liban - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litwa - + Luxembourg Luksemburg - + Latvia Łotwa - + Libyan Arab Jamahiriya Libia - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Mołdawia - + Madagascar Madagaskar - + Marshall Islands Wyspy Marshalla - + Macedonia Macedonia - + Mali Mali - + Myanmar Mjanma - + Mongolia Mongolia - + Macau Macau - + Northern Mariana Islands Mariany Północne - + Martinique Martynika - + Mauritania Mauretania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Malediwy - + Malawi Malawi - + Mexico Meksyk - + Malaysia Malezja - + Mozambique Mozambik - + Namibia Namibia - + New Caledonia Nowa Kaledonia - + Niger Niger - + Norfolk Island Norfolk - + Nigeria Nigeria - + Nicaragua Nikaragua - + Netherlands Holandia - + Norway Norwegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nowa Zelandia - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Polinezja Francuska - + Papua New Guinea Papua-Nowa Gwinea - + Philippines Filipiny - + Pakistan Pakistan - + Poland Polska - + Saint Pierre and Miquelon Saint-Pierre i Miquelon - + Pitcairn Islands Pitcairn - + Puerto Rico Portoryko - + Palestinian Territory Palestyna - + Portugal Portugalia - + Palau Palau - + Paraguay Paragwaj - + Qatar Katar - + Reunion Reunion - + Romania Rumunia - + Russian Federation Rosja - + Rwanda Rwanda - + Saudi Arabia Arabia Saudyjska - + Solomon Islands Wyspy Salomona - + Seychelles Seszele - + Sudan Sudan - + Sweden Szwecja - + Singapore Singapur - + Saint Helena Wyspa Świętej Heleny - + Slovenia Słowenia - + Svalbard and Jan Mayen Svalbard i Jan Mayen - + Slovakia Słowacja - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe Wyspy Świętego Tomasza i Książęca - + El Salvador Salwador - + Syrian Arab Republic Syria - + Swaziland Suazi - + Turks and Caicos Islands Turks i Caicos - + Chad Czad - + French Southern Territories Francuskie Terytoria Południowe i Antarktyczne - + Togo Togo - + Thailand Tajlandia - + Tajikistan Tadżykistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunezja - + Tonga Tonga - + Timor-Leste Timor Wschodni - + Turkey Turcja - + Trinidad and Tobago Trynidad i Tobago - + Tuvalu Tuvalu - + Taiwan Tajwan - + Tanzania, United Republic of Tanzania - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands Dalekie Wyspy Mniejsze Stanów Zjednoczonych - + United States Stany Zjednoczone - + Uruguay Urugwaj - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Stolica Apostolska (Watykan) - + Saint Vincent and the Grenadines Saint Vincent i Grenadyny - + Venezuela Wenezuela - + Virgin Islands, British Brytyjskie Wyspy Dziewicze - + Virgin Islands, U.S. Wyspy Dziewicze Stanów Zjednoczonych - + Vietnam Wietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis i Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Majotta - + Serbia Serbia - + South Africa Republika Południowej Afryki - + Zambia Zambia - + Montenegro Czarnogóra - + Zimbabwe Zimbabwe - + Anonymous Proxy Anonimowe proxy - + Satellite Provider Dostawca satelitarny - + Other Inne - + Aland Islands Wyspy Alandzkie - + Guernsey Guernsey - + Isle of Man Wyspa Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - + Saint Martin Saint-Martin - + Could not uncompress GeoIP database file. Nie mozna rozpakować pliku bazy danych GeoIP. - + Couldn't save downloaded GeoIP database file. Nie można zapisać pobranego pliku bazy danych GeoIP. - + Successfully updated GeoIP database. Pomyślnie uaktualniono bazę danych GeoIP. - + Couldn't download GeoIP database file. Reason: %1 Nie można pobrać pliku bazy danych GeoIP. Powód: %1 @@ -3786,12 +3815,12 @@ Czy na pewno zamknąć qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Wsparcie UPnP / NAT-PMP [WŁ] - + UPnP / NAT-PMP support [OFF] Wsparcie UPnP / NAT-PMP [WYŁ] @@ -3799,206 +3828,265 @@ Czy na pewno zamknąć qBittorrent? Net::Smtp - + Email Notification Error: Błąd powiadomienia e-mail: + + PeerInfo + + + interested(local) and choked(peer) + zainteresowany(lokalny) i stłumiony(partner) + + + + interested(local) and unchoked(peer) + zainteresowany(lokalny) i niestłumiony(partner) + + + + interested(peer) and choked(local) + zainteresowany(partner) i stłumiony(lokalny) + + + + interested(peer) and unchoked(local) + zainteresowany(partner) i niestłumiony(lokalny) + + + + optimistic unchoke + niestłumienie optymistyczne + + + + peer snubbed + ignorowany partner + + + + incoming connection + nadchodzące połączenie + + + + not interested(local) and unchoked(peer) + niezainteresowany(lokalny) i niestłumiony(partner) + + + + not interested(peer) and unchoked(local) + niezainteresowany(partner) i niestłumiony(lokalny) + + + + peer from PEX + peer z PEX + + + + peer from DHT + peer z DHT + + + + encrypted traffic + zaszyfrowany ruch + + + + encrypted handshake + zaszyfrowane połączenie + + + + peer from LSD + peer z LSD + + PeerListWidget - + IP Adres IP - + Port Port - + Flags Flagi - + Connection Połączenie - + Client i.e.: Client application Klient - + Progress i.e: % downloaded Postęp - + Down Speed i.e: Download speed Pobieranie - + Up Speed i.e: Upload speed Wysyłanie - + Downloaded i.e: total data downloaded Pobrano - + Uploaded i.e: total data uploaded Wysłano - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Trafność - + Add a new peer... Dodaj partnera... - + Copy selected Kopiuj wybrane - - + + Ban peer permanently Blokuj parnera na stałe - + Manually adding peer '%1'... Ręczne dodawanie partnera '%1'... - + The peer '%1' could not be added to this torrent. Partner '%1' nie może zostać dodany do tego torrenta. - + Manually banning peer '%1'... Ręczne blokowanie partnera '%1'... - + Peer addition Dodawanie partnera - + Some peers could not be added. Check the Log for details. Niektórzy partnerzy nie mogą zostać dodani. Sprawdź szczegóły w Dzienniku. - + The peers were added to this torrent. Partnerzy zostali dodani do tego torrenta. - + Are you sure you want to ban permanently the selected peers? Czy na pewno zablokować na stałe wybranych partnerów? - + &Yes &Tak - + &No &Nie - interested(local) and choked(peer) - zainteresowany(lokalny) i stłumiony(partner) + zainteresowany(lokalny) i stłumiony(partner) - interested(local) and unchoked(peer) - zainteresowany(lokalny) i niestłumiony(partner) + zainteresowany(lokalny) i niestłumiony(partner) - interested(peer) and choked(local) - zainteresowany(partner) i stłumiony(lokalny) + zainteresowany(partner) i stłumiony(lokalny) - interested(peer) and unchoked(local) - zainteresowany(partner) i niestłumiony(lokalny) + zainteresowany(partner) i niestłumiony(lokalny) - optimistic unchoke - niestłumienie optymistyczne + niestłumienie optymistyczne - peer snubbed - ignorowany partner + ignorowany partner - incoming connection - nadchodzące połączenie + nadchodzące połączenie - not interested(local) and unchoked(peer) - niezainteresowany(lokalny) i niestłumiony(partner) + niezainteresowany(lokalny) i niestłumiony(partner) - not interested(peer) and unchoked(local) - niezainteresowany(partner) i niestłumiony(lokalny) + niezainteresowany(partner) i niestłumiony(lokalny) - peer from PEX - peer z PEX + peer z PEX - peer from DHT - peer z DHT + peer z DHT - encrypted traffic - zaszyfrowany ruch + zaszyfrowany ruch - encrypted handshake - zaszyfrowane połączenie + zaszyfrowane połączenie - peer from LSD - peer z LSD + peer z LSD @@ -4772,17 +4860,17 @@ Czy na pewno zamknąć qBittorrent? Ścieżka do pliku filtra (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Wykryto nieczyste zakończenie programu. Korzystam z pliku awaryjnego, aby przywrócić ustawienia. - + An access error occurred while trying to write the configuration file. Wystąpił błąd dostępu podczas próby zapisania pliku konfiguracji. - + A format error occurred while trying to write the configuration file. Wystąpił błąd formatu podczas próby zapisania pliku konfiguracji. @@ -4888,299 +4976,298 @@ Czy na pewno zamknąć qBittorrent? PropertiesWidget - + Downloaded: Pobrano: - + Availability: Dostępność: - + Progress: Postęp: - + Transfer Transfer - + Time Active: Time (duration) the torrent is active (not paused) Aktywny przez: - + ETA: ETA: - + Uploaded: Wysłano: - + Seeds: Seedy: - + Download Speed: Prędkość pobierania: - + Upload Speed: Prędkość wysyłania: - + Peers: Partnerzy: - + Download Limit: Ograniczanie pobierania: - + Upload Limit: Ograniczenie wysyłania: - + Wasted: Odrzucono: - + Connections: Połączeń: - + Information Informacje - + Comment: Komentarz: - Torrent content: - Zawartość torrenta: + Zawartość torrenta: - + Select All Zaznacz wszystko - + Select None Odznacz wszystko - + Normal Normalny - + High Wysoki - + Share Ratio: Współczynnik udziału: - + Reannounce In: Sprawdzanie trackera za: - + Last Seen Complete: Ostatni raz widziany kompletny: - + Total Size: Całkowity rozmiar: - + Pieces: Części: - + Created By: Utworzony przez: - + Added On: Dodano: - + Completed On: Ukończono: - + Created On: Utworzono: - + Torrent Hash: Hash torrenta: - + Save Path: Ścieżka zapisu: - + Maximum Maksymalny - - + + Do not download Nie pobieraj - + Never Nigdy - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (ma %3) - + %1 (%2 this session) %1 (w tej sesji %2) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (wysyłany przez %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (maksymalnie %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (całkowicie %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (średnio %2) - + Open Otwórz - + Open Containing Folder Otwórz katalog pobierań - + Rename... Zmień nazwę... - + Priority Priorytet - + New Web seed Nowe źródło www - + Remove Web seed Usuń źródło www - + Copy Web seed URL Kopiuj adres źródła www - + Edit Web seed URL Edytuj adres źródła www - + Rename the file Zmień nazwę pliku - + New name: Nowa nazwa: - - + + The file could not be renamed Nie można zmienić nazwy pliku - + This file name contains forbidden characters, please choose a different one. Nazwa pliku zawiera zabronione znaki, proszę wybrać inną nazwę. - - + + This name is already in use in this folder. Please use a different name. Wybrana nazwa jest już używana w tym katalogu. Proszę wybrać inną nazwę. - + The folder could not be renamed Nie można zmienić nazwy katalogu - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Czy na pewno zamknąć qBittorrent? Filtrowane pliki... - + New URL seed New HTTP source Nowy URL seeda - + New URL seed: Nowy URL seeda: - - + + This URL seed is already in the list. Ten URL seeda już jest na liście. - + Web seed editing Edycja źródła www - + Web seed URL: Adres źródła www: @@ -5225,19 +5312,19 @@ Czy na pewno zamknąć qBittorrent? Twój adres IP został zbanowany po zbyt wielu nieudanych próbach uwierzytelnienia. - + Error: '%1' is not a valid torrent file. Błąd: '%1' nie jest prawidłowym plikiem torrent. - + Error: Could not add torrent to session. Błąd: Nie można dodać torrenta do sesji. - + I/O Error: Could not create temporary file. Błąd I/O: Nie można utworzyć pliku tymczasowego. @@ -5390,138 +5477,138 @@ W przyszłości powiadomienie nie będzie wyświetlane. [qBittorrent] '%1' skończył pobieranie - + The remote host name was not found (invalid hostname) Nie odnaleziono nazwy zdalnego hosta (nieprawidłowa nazwa hosta) - + The operation was canceled Operacja została anulowana - + The remote server closed the connection prematurely, before the entire reply was received and processed Zdalny serwer przedwcześnie zakończył połączenie, zanim otrzymano i przetworzono odpowiedź - + The connection to the remote server timed out Przekroczono czas oczekiwania na połącznie ze zdalnym serwerem - + SSL/TLS handshake failed Próba negocjacji połączenia SSL/TLS nie powiodła się - + The remote server refused the connection Zdalny serwer odrzucił połączenie - + The connection to the proxy server was refused Połączenie z serwerem proxy zostało odrzucone - + The proxy server closed the connection prematurely Serwer proxy przedwcześnie zakończył połączenie - + The proxy host name was not found Nie znaleziono nazwy hosta serwera proxy - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Przekroczono czas oczekiwania na połączenie z serwerem proxy lub serwer nie odpowiedział na czas - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Serwer proxy wymaga uwierzytelnienia, aby zaakceptować żądanie, lecz oferowane dane uwierzytelnienia zostały odrzucone - + The access to the remote content was denied (401) Odmówiono dostępu do zdalnego zasobu (401) - + The operation requested on the remote content is not permitted Żądana operacja na zdalnym zasobie nie jest dozwolona - + The remote content was not found at the server (404) Nie znaleziono zdalnego zasobu na serwerze (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Zdalny serwer wymaga uwierzytelnienia w celu dostępu do zasobu, lecz dane uwierzytelniające nie zostały zaakceptowane - + The Network Access API cannot honor the request because the protocol is not known API dostępu do sieci nie może zaakceptować żądania, ponieważ protokół jest nieznany - + The requested operation is invalid for this protocol Żądana operacja jest nieprawidłowa dla tego protokołu - + An unknown network-related error was detected Wykryto nieznany błąd związany z siecią - + An unknown proxy-related error was detected Wykryto nieznany błąd związany z proxy - + An unknown error related to the remote content was detected Wykryto nieznany błąd związany ze zdalną zawartością - + A breakdown in protocol was detected Wykryto błąd w protokole - + Unknown error Nieznany błąd - - + + Upgrade Zaktualizuj - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Zaktualizowałeś starszą wersję, która zapisywała inaczej. Musisz przeprowadzić migrację do nowego systemu zapisywania. Wtedy nie będziesz już mógł używać wersji starszej niż v3.3.0. Kontynuować? [t/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Zaktualizowałeś starszą wersję, która zapisywała inaczej. Musisz przeprowadzić migrację do nowego systemu zapisywania. Wtedy nie będziesz już mógł używać wersji starszej niż v3.3.0. - + Couldn't migrate torrent with hash: %1 Nie udało się przenieść torrenta z hashem: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nie udało się przenieść torrenta. Nieprawidłowa nazwa pliku szybkiego wznawiania: %1 @@ -5710,12 +5797,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... @@ -5759,17 +5846,17 @@ W przyszłości powiadomienie nie będzie wyświetlane. ScanFoldersModel - + Watched Folder Obserwowany katalog - + Download here Pobierz tutaj - + Download path Ścieżka pobierania @@ -7828,11 +7915,11 @@ Tamte wtyczki były wyłączone. fsutils - - - - - + + + + + Downloads Pobieranie @@ -7840,103 +7927,103 @@ Tamte wtyczki były wyłączone. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Nie wykryto Pythona - + Python version: %1 Wersja Pythona: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Nieznany - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent wyłączy teraz komputer, ponieważ pobieranie zostało ukończone. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Działa - + Updating... Aktualizowanie... - + Not working Nie działa - + Not contacted yet Niesprawdzony diff --git a/src/lang/qbittorrent_pt.ts b/src/lang/qbittorrent_pt.ts index 628a4df3d..8533c0dd0 100644 --- a/src/lang/qbittorrent_pt.ts +++ b/src/lang/qbittorrent_pt.ts @@ -125,217 +125,222 @@ Ignorar verificação hash - + + Set as default label + + + + Torrent Information Informações do torrent - + Size: Tamanho: - + Comment: Comentário: - + Date: Data: - + Info Hash: Info Hash: - + Normal Normal - + High Alto - + Maximum Máximo - + Do not download Não transferir - - + + I/O Error Erro I/O - + The torrent file does not exist. O ficheiro torrent não existe. - + Invalid torrent Torrent inválido - + Failed to load the torrent: %1 Falha ao carregar o torrent: %1 - - + + Already in download list Já existe na lista de transferências - + Free disk space: %1 Espaço livre: %1 - + Not Available This comment is unavailable Não disponível - + Not Available This date is unavailable Não disponível - + Not available Não disponível - + Invalid magnet link Ligação magnet inválida - + Torrent is already in download list. Trackers were merged. O torrent já existe na lista de transferências. Os trackers serão unidos. - - + + Cannot add torrent Torrent não adicionado - + Cannot add this torrent. Perhaps it is already in adding state. Não foi possível adicionar o torrent. Talvez já esteja na lista de adições. - + This magnet link was not recognized Esta ligação magnet não foi reconhecida - + Magnet link is already in download list. Trackers were merged. A ligação magnet já existe na lista de transferências. Os trackers serão unidos. - + Cannot add this torrent. Perhaps it is already in adding. Não foi possível adicionar o torrent. Talvez já esteja na lista de adições. - + Magnet link Ligação magnet - + Retrieving metadata... Obtenção de meta-dados... - + Not Available This size is unavailable. Não disponível - - - + + + Choose save path Escolha o caminho - + Rename the file Mudar nome do ficheiro - + New name: Novo nome: - - + + The file could not be renamed O nome do ficheiro não foi alterado - + This file name contains forbidden characters, please choose a different one. Este nome contém caracteres proibidos. Por favor escolha um nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome já está em uso nessa pasta. Por favor escolha um nome diferente. - + The folder could not be renamed O nome da pasta não foi alterado - + Rename... Mudar nome... - + Priority Prioridade - + Invalid metadata Meta-dados inválidos - + Parsing metadata... Análise de metadados... - + Metadata retrieval complete Obtenção de metadados terminada - + Download Error Erro ao transferir @@ -427,9 +432,8 @@ Resolver nomes dos servidores de peers - Maximum number of half-open connections [0: Disabled] - Número máximo de ligações semi-abertas [0: inativo] + Número máximo de ligações semi-abertas [0: inativo] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Intervalo para gravação do ficheiro "fastresume" + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID do peer: - + HTTP User-Agent is '%1' O agente de utilizador HTTP é '%1' - + Anonymous mode [ON] Modo anónimo [ON] - + Anonymous mode [OFF] Modo anónimo [OFF] - + PeX support [ON] Suporte PeX [ON] - + PeX support [OFF] Suporte PeX [OFF] - + Restart is required to toggle PeX support Tem que reiniciar para aplicar as alterações - + Local Peer Discovery support [ON] Suporte Local Peer Discovery [ON] - + Local Peer Discovery support [OFF] Suporte Local Peer Discovery [OFF] - + Encryption support [ON] Suporte a codificação [ON] - + Encryption support [FORCED] Suporte a codificação [FORCED] - + Encryption support [OFF] Suporte a codificação [OFF] - + Embedded Tracker [ON] Tracker embutido [ON] - + Failed to start the embedded tracker! Ocorreu um erro ao iniciar o tracker embutido! - + Embedded Tracker [OFF] Tracker embutido [OFF] - + '%1' reached the maximum ratio you set. Removing... '%1' atingiu a taxa máxima definida. A remover... - + '%1' reached the maximum ratio you set. Pausing... '%1' atingiu a taxa máxima definida. Em pausa... - Error: Could not create torrent export directory: '%1' - Erro: não foi possível criar o diretório de exportação: '%1' + Erro: não foi possível criar o diretório de exportação: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Erro: não foi possível exportar o torrent '%1', possivelmente ainda não possui metadados. + Erro: não foi possível exportar o torrent '%1', possivelmente ainda não possui metadados. - + System network status changed to %1 e.g: System network status changed to ONLINE O estado da rede do sistema foi alterado para %1 - + ONLINE Online - + OFFLINE Offline - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuração da rede %1 foi alterada. A atualizar a sessão. - + Unable to decode '%1' torrent file. Não foi possível descodificar o torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Transferência recursiva do ficheiro '%1', incorporado no torrent %2 - + Couldn't save '%1.torrent' Não foi possível guardar '1%.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. porque '%1' está inativo. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque '%1' está inativo. - + URL seed lookup failed for URL: '%1', message: %2 A procura do URL falhou para o URL: %1. Mensagem: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... "%1" foi removido da lista de transferências e do disco. - + '%1' was removed from transfer list. 'xxx.avi' was removed... "%1" foi removido da lista de transferências. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... A receber "%1". Por favor aguarde... - Torrent Export: torrent is invalid, skipping... - Exportação torrent: o torrent é inválido e será ignorado. + Exportação torrent: o torrent é inválido e será ignorado. - + DHT support [ON] Suporte DHT [ON] - + DHT support [OFF]. Reason: %1 Suporte DHT [OFF]. Motivo: %1 - + DHT support [OFF] Suporte DHT [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 O qBitorrent está a tentar receber de uma porta: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2 + O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2 - + The network interface defined is invalid: %1 A interface de rede definida não é válida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 O qBitorrent está a tentar receber na interface %1, porta: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on O qBittorrent não encontrou o endereço local %1 para a receção - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' O tracker '%1' foi adicionado ao torrent '%2' - + Tracker '%1' was deleted from torrent '%2' O tracker '%1' foi eliminado do torrent '%2' - + URL seed '%1' was added to torrent '%2' O URL seed '%1' foi adicionado ao torrent '%2' - + URL seed '%1' was removed from torrent '%2' O URL seed '%1' foi removido do torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Não foi possível retomar o torrent %1 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro de IP processado com sucesso: %1 regras aplicadas. - + Error: Failed to parse the provided IP filter. Erro: falha ao processar o filtro de IP. - + Couldn't add torrent. Reason: %1 Torrent não adicionado: '%1'. Motivo: %2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) "%1" foi retomado. (retoma rápida) - + '%1' added to download list. 'torrent name' was added to download list. "%1" foi adicionado à lista de transferências. - + An I/O error occurred, '%1' paused. %2 Erro I/O, %1 foi colocado em pausa. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: falha no mapeamento da porta. Mensagem: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: portas mapeadas com sucesso. Mensagem: %1 - + due to IP filter. this peer was blocked due to ip filter. por um filtro IP. - + due to port filter. this peer was blocked due to port filter. por um filtro de porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. pelas restrições de modo i2p. - + because it has a low port. this peer was blocked because it has a low port. porque tem uma porta baixa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 O qBittorrent está a receber da interface %1, porta: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - O qBittorrent não conseguiu receber da interface %1, porta: %2/%3. Motivo: %4 + O qBittorrent não conseguiu receber da interface %1, porta: %2/%3. Motivo: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + O qBittorrent não conseguiu receber da interface %1, porta: %2/%3. Motivo: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP externo: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Não foi possível mover o torrent: '%1'. Motivo: %2 - + File sizes mismatch for torrent '%1', pausing it. Disparidade de tamanhos para o torrent %1, que foi colocado em pausa. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Recusa ao continuar a transferência do torrent %1. Motivo: %2. A verificar novamente... @@ -1307,20 +1323,20 @@ Pode obter estas informações nas preferências do seu navegador web. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Erro I/O: não foi possível abrir o ficheiro no modo de leitura. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Erro de processamento: o ficheiro de filtro não é um ficheiro PeerGuardian P2B válido. @@ -1328,43 +1344,43 @@ Pode obter estas informações nas preferências do seu navegador web. GeoIPDatabase - - + + Unsupported database file size. Ficheiro de base de dados não suportado. - + Metadata error: '%1' entry not found. Erro de meta-dados: %1 não encontrado. - + Metadata error: '%1' entry has invalid type. Erro de meta-dados: %1 tem um tipo inválido. - + Unsupported database version: %1.%2 Versão de base de dados não suportada: %1.%2 - + Unsupported IP version: %1 Versão IP não suportada: %1 - + Unsupported record size: %1 Registo não suportado: %1 - + Invalid database type: %1 Tipo de base de dados inválido: %1 - + Database corrupted: no data section found. Base de dados danificada: secção de dados não encontrada. @@ -1397,9 +1413,8 @@ Pode obter estas informações nas preferências do seu navegador web.Só uma ligação por linha - Download local torrent - Transferir torrent local + Transferir torrent local @@ -1572,7 +1587,22 @@ Pode obter estas informações nas preferências do seu navegador web.Inativos - + + Save files to location: + Guardar ficheiros em: + + + + Label: + Etiqueta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Transferido @@ -1582,6 +1612,11 @@ Pode obter estas informações nas preferências do seu navegador web.Logout Sair + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Pode obter estas informações nas preferências do seu navegador web. LineEdit - + Clear the text Limpar texto @@ -1743,37 +1778,37 @@ Pode obter estas informações nas preferências do seu navegador web. MainWindow - + &Edit &Editar - + &Tools Ferramen&tas - + &File &Ficheiro - + &Help Aj&uda - + On Downloads &Done A&o terminar as transferências - + &View &Ver - + &Options... &Opções... @@ -1783,153 +1818,153 @@ Pode obter estas informações nas preferências do seu navegador web.&Retomar - + Torrent &Creator &Criador de torrent - + Set Upload Limit... Definir limite de envio... - + Set Download Limit... Definir limite de receção... - + Set Global Download Limit... Definir limite global de receção... - + Set Global Upload Limit... Definir limite global de envio... - + Minimum Priority Prioridade mínima - + Top Priority Prioridade máxima - + Decrease Priority Diminuir prioridade - + Increase Priority Aumentar prioridade - - + + Alternative Speed Limits Limites alternativos de velocidade - + &Top Toolbar &Barra superior - + Display Top Toolbar Mostrar barra superior - + S&peed in Title Bar &Velocidade na barra de título - + Show Transfer Speed in Title Bar Mostrar velocidade da transferência na barra de título - + &RSS Reader Leitor &RSS - + Search &Engine Motor de p&esquisa - + L&ock qBittorrent Bl&oquear o qBittorrent - + &Import Existing Torrent... &Importar torrent existente... - + Import Torrent... Importar torrent... - + Do&nate! Do&nativos - + R&esume All R&etomar tudo - + &Log &Registo - + &Exit qBittorrent S&air do qBittorrent - + &Suspend System &Suspender sistema - + &Hibernate System &Hibernar sistema - + S&hutdown System D&esligar sistema - + &Disabled &Desativado - + &Statistics Estatística&s - + Check for Updates Procurar atualizações - + Check for Program Updates Procurar atualizações da aplicação @@ -1939,77 +1974,72 @@ Pode obter estas informações nas preferências do seu navegador web.&Sobre - Exit - Sair + Sair - + &Pause &Pausa - + &Delete E&liminar - + P&ause All P&arar tudo - + &Add Torrent File... &Adicionar ficheiro torrent... - + Open Abrir - + E&xit Sa&ir - Options - Opções + Opções - Resume - Retomar + Retomar - Pause - Pausa + Pausa - Delete - Eliminar + Eliminar - + Open URL Abrir URL - + &Documentation &Documentação - + Lock Bloquear - + Show Mostrar @@ -2020,22 +2050,21 @@ Pode obter estas informações nas preferências do seu navegador web.Procurar atualizações da aplicação - Lock qBittorrent - Bloquear qBittorrent + Bloquear qBittorrent - + Add Torrent &Link... Adicionar &ligação torrent... - + If you like qBittorrent, please donate! Se gosta do qBittorrent, faça uma doação! - + Execution Log Registo de execução @@ -2413,52 +2442,52 @@ Tem a certeza que deseja sair? Net::DNSUpdater - + Your dynamic DNS was successfully updated. O seu DNS dinâmico foi atualizado com sucesso. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Erro de DNS dinâmico: o serviço está indisponível. Nova tentativa dentro de 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Erro de DNS dinâmico: o nome do servidor não existe na conta especificada. - + Dynamic DNS error: Invalid username/password. Erro de DNS dinâmico: utilizador e/ou senha inválido(a). - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: o qBittorrent está na lista negra deste serviço. Reporte este erro em http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: o serviço devolveu %1. Reporte este erro em http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Erro de DNS dinâmico: o seu nome de utilizador foi bloqueado por abusos. - + Dynamic DNS error: supplied domain name is invalid. Erro de DNS dinâmico: o domínio não é válido. - + Dynamic DNS error: supplied username is too short. Erro de DNS dinâmico: nome de utilizador muito curto. - + Dynamic DNS error: supplied password is too short. Erro de DNS dinâmico: palavra-passe muito curta. @@ -2466,17 +2495,17 @@ Tem a certeza que deseja sair? Net::DownloadHandler - + I/O Error Erro I/O - + The file size is %1. It exceeds the download limit of %2. O tamanho do ficheiro é %1, e excede o limite máximo de %2. - + Unexpected redirect to magnet URI. Reencaminhamento inesperado para um URI magnet. @@ -2484,1300 +2513,1300 @@ Tem a certeza que deseja sair? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Base de dados GeoIP carregada. Tipo: %1, compilada em: %2 - - + + Couldn't load GeoIP database. Reason: %1 Base de dados GeoIP não carregada. Motivo: %1 - - + + N/A N/D - + Asia/Pacific Region Região asiática/pacífica - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emirados Árabes Unidos - + Afghanistan Afeganistão - + Antigua and Barbuda Antígua e Barbados - + Anguilla Anguilla - + Albania Albânia - + Armenia Arménia - + Netherlands Antilles Antilhas holandesas - + Angola Angola - + Antarctica Antártica - + Argentina Argentina - + American Samoa Samoa Americana - + Austria Áustria - + Australia Austrália - + Aruba Aruba - + Azerbaijan Azerbeijão - + Bosnia and Herzegovina Bósnia e Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Bélgica - + Burkina Faso Burkina Faso - + Bulgaria Bulgária - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Bermudas - + Brunei Darussalam Brunei Darussalam - + Bolivia Bolívia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Butão - + Bouvet Island Ilha Bouvet - + Botswana Botswana - + Belarus Bielorrusia - + Belize Belize - + Canada Canadá - + Cocos (Keeling) Islands Ilhas Coco (Keeling) - + Congo, The Democratic Republic of the República Democrática do Congo - + Central African Republic República Africana Central - + Congo Congo - + Switzerland Suíca - + Cote D'Ivoire Costa do Marfim - + Cook Islands Ilhas Cook - + Chile Chile - + Cameroon Camarões - + China China - + Colombia Colômbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + Christmas Island Ilhas Natal - + Cyprus Chipre - + Czech Republic República Checa - + Germany Alemanha - + Djibouti Djibouti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Argélia - + Ecuador Equador - + Estonia Estónia - + Egypt Egipto - + Western Sahara Sahara Ocidental - + Eritrea Eritreia - + Spain Espanha - + Ethiopia Etiópia - + Finland Finlândia - + Fiji Ilhas Fiji - + Falkland Islands (Malvinas) Ilhas Falkland (Malvinas) - + Micronesia, Federated States of Estado Federal da Micronésia - + Faroe Islands Ilhas Faroé - + France França - + France, Metropolitan Metropolitana Francesa - + Gabon Gabão - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Geórgia - + French Guiana Guiana Francesa - + Ghana Gana - + Gibraltar Gibraltar - + Greenland Gronelandia - + Gambia Gâmbia - + Guinea Guiné - + Guadeloupe Guadalupe - + Equatorial Guinea Guiné Equatorial - + Greece Grécia - + South Georgia and the South Sandwich Islands Georgia do Sul e Ilhas South Sandwich - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guiné Bissau - + Guyana Guiana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Ilha Heard e Ilhas McDonald - + Honduras Honduras - + Croatia Croácia - + Haiti Haiti - + Hungary Hungria - + Indonesia Indonésia - + Ireland Irlanda - + Israel Israel - + India Índia - + British Indian Ocean Territory Território oceânico da Índia britânica - + Iraq Iraque - + Iran, Islamic Republic of República Islâmica do Irão - + Iceland Islândia - + Italy Itália - + Jamaica Jamaica - + Jordan Jordânia - + Japan Japão - + Kenya Quénia - + Kyrgyzstan Quirguistão - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comoros - + Saint Kitts and Nevis Saint Kitts e Nevis - + Korea, Democratic People's Republic of República Democrática da Coreia - + Korea, Republic of República da Coreia - + Kuwait Kuwait - + Cayman Islands Ilhas Caimão - + Kazakhstan Cazaquistão - + Lao People's Democratic Republic República Democrática de Laos - + Lebanon Líbano - + Saint Lucia Santa Luzia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libéria - + Lesotho Lesoto - + Lithuania Lituânia - + Luxembourg Luxemburgo - + Latvia Letónia - + Libyan Arab Jamahiriya Líbia - + Morocco Marrocos - + Monaco Mónaco - + Moldova, Republic of República da Moldávia - + Madagascar Madagáscar - + Marshall Islands Ilhas Marshall - + Macedonia Macedónia - + Mali Mali - + Myanmar Birmânia - + Mongolia Mongólia - + Macau Macau - + Northern Mariana Islands Ilhas Marianas do Norte - + Martinique Martinica - + Mauritania Mauritânia - + Montserrat Monserrate - + Malta Malta - + Mauritius Mauritânia - + Maldives Maldivas - + Malawi Malaui - + Mexico México - + Malaysia Malásia - + Mozambique Moçambique - + Namibia Namíbia - + New Caledonia Nova Caledónia - + Niger Níger - + Norfolk Island Ilhas Norfolk - + Nigeria Nigéria - + Nicaragua Nicarágua - + Netherlands Holanda - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nova Zelândia - + Oman Omã - + Panama Panamá - + Peru Peru - + French Polynesia Polinésia Francesa - + Papua New Guinea Papua Nova Guiné - + Philippines Filipinas - + Pakistan Paquistão - + Poland Polónia - + Saint Pierre and Miquelon Saint Pierre e Miquelon - + Pitcairn Islands Ilhas Pitcairn - + Puerto Rico Porto Rico - + Palestinian Territory Território Palestiniano - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunião - + Romania Roménia - + Russian Federation Federação Russa - + Rwanda Ruanda - + Saudi Arabia Arábia Saudita - + Solomon Islands Ilhas Salomão - + Seychelles Ilhas Sicheles - + Sudan Sudão - + Sweden Suécia - + Singapore Singapura - + Saint Helena Santa Helena - + Slovenia Eslovénia - + Svalbard and Jan Mayen Svalbard e Jan Mayen - + Slovakia Eslováquia - + Sierra Leone Serra Leoa - + San Marino São Marino - + Senegal Senegal - + Somalia Somália - + Suriname Suriname - + Sao Tome and Principe São Tomé e Príncipe - + El Salvador El Salvador - + Syrian Arab Republic República Árabe da Síria - + Swaziland Suazilândia - + Turks and Caicos Islands Ilhas Turks e Caicos - + Chad Chade - + French Southern Territories Território francês do sul - + Togo Togo - + Thailand Tailandia - + Tajikistan Tajiquistão - + Tokelau Tokelau - + Turkmenistan Turqemenistão - + Tunisia Tunísia - + Tonga Tonga - + Timor-Leste Timor Leste - + Turkey Turquia - + Trinidad and Tobago Trinidade e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of República da tanzânia - + Ukraine Ucrânia - + Uganda Uganda - + United States Minor Outlying Islands Ilhas remotas menores dos Estados Unidos da América - + United States Estados Unidos da América - + Uruguay Uruguai - + Uzbekistan Uzbequistão - + Holy See (Vatican City State) Santa Sé (Estado do Vaticano) - + Saint Vincent and the Grenadines São Vicente e Granadinas - + Venezuela Venezuela - + Virgin Islands, British Ilhas Virgens Britânicas - + Virgin Islands, U.S. Ilhas Virgens Americanas - + Vietnam Vietname - + Vanuatu Vanuatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Iemen - + Mayotte Maiorete - + Serbia Sérvia - + South Africa África do Sul - + Zambia Zâmbia - + Montenegro Montenegro - + Zimbabwe Zimbábue - + Anonymous Proxy Proxy anónimo - + Satellite Provider Serviço de satélite - + Other Outro - + Aland Islands Ilhas Aland - + Guernsey Guernsey - + Isle of Man Ilha de Man - + Jersey Jersey - + Saint Barthelemy São Bartolomeu - + Saint Martin São Martim - + Could not uncompress GeoIP database file. Não foi possível descomprimir a base de dados GeoIP. - + Couldn't save downloaded GeoIP database file. Não foi possível guardar a base de dados GeoIP descarregada. - + Successfully updated GeoIP database. Base de dados GeoIP atualizada com sucesso. - + Couldn't download GeoIP database file. Reason: %1 Base de dados GeoIP não descarregada. Motivo: %1 @@ -3785,12 +3814,12 @@ Tem a certeza que deseja sair? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Suporte UPnp/NAT-PMP [ON] - + UPnP / NAT-PMP support [OFF] Suporte UPnp/NAT-PMP [OFF] @@ -3798,206 +3827,265 @@ Tem a certeza que deseja sair? Net::Smtp - + Email Notification Error: Erro de notificação: + + PeerInfo + + + interested(local) and choked(peer) + interessado(local) e choked(peer) + + + + interested(local) and unchoked(peer) + interessado(local) e unchoked(peer) + + + + interested(peer) and choked(local) + interessado (peer) e choked (local) + + + + interested(peer) and unchoked(local) + interessado (peer) e unchoked (local) + + + + optimistic unchoke + unchoke otimista + + + + peer snubbed + peer snubbed + + + + incoming connection + ligação recebida + + + + not interested(local) and unchoked(peer) + não interessado(local) e unchoked(peer) + + + + not interested(peer) and unchoked(local) + não interessado(peer) e unchoked(local) + + + + peer from PEX + peer de PEX + + + + peer from DHT + peer de DHT + + + + encrypted traffic + comunicação cifrada + + + + encrypted handshake + negociação cifrada + + + + peer from LSD + peer de LSD + + PeerListWidget - + IP IP - + Port Porta - + Flags Bandeiras - + Connection Ligação - + Client i.e.: Client application Cliente - + Progress i.e: % downloaded Evolução - + Down Speed i.e: Download speed Velocidade de receção - + Up Speed i.e: Upload speed Velocidade de envio - + Downloaded i.e: total data downloaded Transferido - + Uploaded i.e: total data uploaded Enviado - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Importância - + Add a new peer... Adicionar novo peer... - + Copy selected Copiar seleção - - + + Ban peer permanently Banir peer permanentemente - + Manually adding peer '%1'... Adição manual do peer '%1'... - + The peer '%1' could not be added to this torrent. Não foi possível adicionar o peer '%1' a este torrent. - + Manually banning peer '%1'... A banir manualmente o peer '%1'... - + Peer addition Adição de peer - + Some peers could not be added. Check the Log for details. Não foi possível adicionar algusn peers. Analise o registe para mais detalhes. - + The peers were added to this torrent. Os peers foram adicionados a este torrent. - + Are you sure you want to ban permanently the selected peers? Tem a certeza que quer banir permanentemente os peers selecionados? - + &Yes &Sim - + &No &Não - interested(local) and choked(peer) - interessado(local) e choked(peer) + interessado(local) e choked(peer) - interested(local) and unchoked(peer) - interessado(local) e unchoked(peer) + interessado(local) e unchoked(peer) - interested(peer) and choked(local) - interessado (peer) e choked (local) + interessado (peer) e choked (local) - interested(peer) and unchoked(local) - interessado (peer) e unchoked (local) + interessado (peer) e unchoked (local) - optimistic unchoke - unchoke otimista + unchoke otimista - peer snubbed - peer snubbed + peer snubbed - incoming connection - ligação recebida + ligação recebida - not interested(local) and unchoked(peer) - não interessado(local) e unchoked(peer) + não interessado(local) e unchoked(peer) - not interested(peer) and unchoked(local) - não interessado(peer) e unchoked(local) + não interessado(peer) e unchoked(local) - peer from PEX - peer de PEX + peer de PEX - peer from DHT - peer de DHT + peer de DHT - encrypted traffic - comunicação cifrada + comunicação cifrada - encrypted handshake - negociação cifrada + negociação cifrada - peer from LSD - peer de LSD + peer de LSD @@ -4771,17 +4859,17 @@ Tem a certeza que deseja sair? Filtrar caminho (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Detetado encerramento inválido. A restaurar as pré-definições. - + An access error occurred while trying to write the configuration file. Ocorreu um erro de acesso ao tentar escrever dados no ficheiro de configuração. - + A format error occurred while trying to write the configuration file. Ocorreu um erro de formato ao tentar escrever dados no ficheiro de configuração. @@ -4887,299 +4975,298 @@ Tem a certeza que deseja sair? PropertiesWidget - + Downloaded: Transferido: - + Availability: Disponibilidade: - + Progress: Evolução: - + Transfer Transferência - + Time Active: Time (duration) the torrent is active (not paused) Ativo há: - + ETA: ETA - + Uploaded: Enviado: - + Seeds: Seeds: - + Download Speed: Velocidade de receção: - + Upload Speed: Velocidade de envio: - + Peers: Peers: - + Download Limit: Limite de receção: - + Upload Limit: Limite de envio: - + Wasted: Perdido: - + Connections: Ligações: - + Information Informações - + Comment: Comentário: - Torrent content: - Conteúdo do torrent: + Conteúdo do torrent: - + Select All Selecionar tudo - + Select None Selecionar nenhum - + Normal Normal - + High Alto - + Share Ratio: Taxa de partilha: - + Reannounce In: Novo anúncio em: - + Last Seen Complete: Última vez que esteve completo: - + Total Size: Tamanho total: - + Pieces: Peças: - + Created By: Criado por: - + Added On: Adicionado em: - + Completed On: Terminado em: - + Created On: Criado em: - + Torrent Hash: Hash do torrent: - + Save Path: Caminho de gravação: - + Maximum Máximo - - + + Do not download Não transferir - + Never Nunca - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (tem %3) - + %1 (%2 this session) %1 (%2 nesta sessão) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (envio durante %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (máximo: %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (total: %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (média: %2) - + Open Abrir - + Open Containing Folder Abrir pasta respetiva - + Rename... Mudar nome... - + Priority Prioridade - + New Web seed Nova fonte web - + Remove Web seed Remover fonte web - + Copy Web seed URL Copiar URL da fonte web - + Edit Web seed URL Editar URL da fonte web - + Rename the file Mudar nome do ficheiro - + New name: Novo nome: - - + + The file could not be renamed O nome do ficheiro não foi alterado - + This file name contains forbidden characters, please choose a different one. Este nome contém caracteres proibidos. Por favor escolha um nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome já está a ser utilizado nesta pasta. Por favor escolha um nome diferente. - + The folder could not be renamed O nome da pasta não foi alterado - + qBittorrent qBittorrent @@ -5189,29 +5276,29 @@ Tem a certeza que deseja sair? Filtrar ficheiros... - + New URL seed New HTTP source Novo URL seed - + New URL seed: Novo URL seed: - - + + This URL seed is already in the list. Este URL seed já existe na lista. - + Web seed editing Edição de fonte web - + Web seed URL: URL da fonte web: @@ -5224,19 +5311,19 @@ Tem a certeza que deseja sair? O seu endereço IP foi banido após demasiadas tentativas de acesso falhadas. - + Error: '%1' is not a valid torrent file. Erro: %1 não é um ficheiro torrent válido. - + Error: Could not add torrent to session. Erro: não foi possível adicionar o torrent. - + I/O Error: Could not create temporary file. Erro I/O: não foi possível criar o ficheiro temporário. @@ -5389,138 +5476,138 @@ Esta será a única vez que recebe este aviso. O [qBittorrent] '%1' terminou a transferência - + The remote host name was not found (invalid hostname) O nome do servidor remoto não foi encontrado (inválido) - + The operation was canceled A operação foi cancelada - + The remote server closed the connection prematurely, before the entire reply was received and processed O servidor remoto terminou a ligação antes da resposta ser recebida e processada. - + The connection to the remote server timed out A ligação ao servidor remoto expirou. - + SSL/TLS handshake failed Falha na negociação SSL/TLS - + The remote server refused the connection O servidor remoto recusou a ligação. - + The connection to the proxy server was refused O servidor proxy recusou a ligação. - + The proxy server closed the connection prematurely O servidor proxy terminou a ligação. - + The proxy host name was not found O nome do servidor proxy não foi encontrado - + The connection to the proxy timed out or the proxy did not reply in time to the request sent A ligação ao proxy expirou ou o proxy não respondeu no tempo limite - + The proxy requires authentication in order to honor the request but did not accept any credentials offered O proxy requer a autenticação do pedido mas não aceitou as credenciais indicadas - + The access to the remote content was denied (401) O acesso ao conteúdo remoto foi negado (401) - + The operation requested on the remote content is not permitted A operação solicitada no conteúdo remoto não é permitida - + The remote content was not found at the server (404) O conteúdo remoto não foi encontrado no servidor (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted O servidor remoto requer autenticação para mostrar o conteúdo mas as credenciais indicadas não foram aceites - + The Network Access API cannot honor the request because the protocol is not known A API de acesso à rede não cumpriu o pedido porque o protocolo não é conhecido - + The requested operation is invalid for this protocol A operação não é válida para este protocolo - + An unknown network-related error was detected Ocorreu um erro de rede desconhecido - + An unknown proxy-related error was detected Ocorreu um erro de proxy desconhecido - + An unknown error related to the remote content was detected Ocorreu um erro dde conteúdo remoto desconhecido - + A breakdown in protocol was detected Detetada uma quebra no protocolo - + Unknown error Erro desconhecido - - + + Upgrade Atualizar - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Você atualizou o programa a partir de uma versão que guardava os dados de forma diferente. Tem que ser feita a migração para o novo sistema. Já não será possível utilizar a versão 3.3.0. Continuar? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Você atualizou o programa a partir de uma versão que guardava os dados de forma diferente. Tem que ser feita a migração para o novo sistema. Se continuar, já não será possível utilizar a versão 3.3.0. - + Couldn't migrate torrent with hash: %1 Não foi possível migrar o torrent com o hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Não foi possível migrar o torrent. Nome de ficheiro inválido: %1 @@ -5709,12 +5796,12 @@ Esta será a única vez que recebe este aviso. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... A transferência automática de %1 da fonte RSS %2 falhou porque não possui um torrent ou ligação magnet. - + Automatically downloading '%1' torrent from '%2' RSS feed... A receber automaticamente o torrent '%1' da fonte RSS %2... @@ -5758,17 +5845,17 @@ Esta será a única vez que recebe este aviso. ScanFoldersModel - + Watched Folder Pasta monitorizada - + Download here Transferir aqui - + Download path Caminho da transferência @@ -7828,11 +7915,11 @@ Esses plugins foram desativados. fsutils - - - - - + + + + + Downloads Transferências @@ -7840,103 +7927,103 @@ Esses plugins foram desativados. misc - + B bytes B - + KiB kibibytes (1024 bytes) KB - + MiB mebibytes (1024 kibibytes) MB - + GiB gibibytes (1024 mibibytes) GB - + TiB tebibytes (1024 gibibytes) TB - + Python not detected Python não detetado - + Python version: %1 Versão Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1 h e %2 m - + %1d %2h e.g: 2days 10hours %1 d e %2 h - + Unknown Unknown (size) Desconhecido - + qBittorrent will shutdown the computer now because all downloads are complete. O qBittorrent vai desligar o computador porque as transferências foram concluidas. - + < 1m < 1 minute < 1 m - + %1m e.g: 10minutes %1 m - + Working A executar - + Updating... A atualizar... - + Not working Não executado - + Not contacted yet Ainda não contactado diff --git a/src/lang/qbittorrent_pt_BR.ts b/src/lang/qbittorrent_pt_BR.ts index 7589a06f8..97089dfc1 100644 --- a/src/lang/qbittorrent_pt_BR.ts +++ b/src/lang/qbittorrent_pt_BR.ts @@ -125,217 +125,222 @@ Pular checagem de hash - + + Set as default label + + + + Torrent Information Informações do torrent - + Size: Tamanho: - + Comment: Comentário: - + Date: Data: - + Info Hash: Informação de Hash: - + Normal Normal - + High Alto - + Maximum Máximo - + Do not download Não baixar - - + + I/O Error Erro de entrada e saída - + The torrent file does not exist. O arquivo torrent não existe. - + Invalid torrent Torrent inválido - + Failed to load the torrent: %1 Falha ao carregar o torrent: %1 - - + + Already in download list Já está na lista de download - + Free disk space: %1 Espaço livre em disco: %1 - + Not Available This comment is unavailable Não Disponível - + Not Available This date is unavailable Não Disponível - + Not available Não disponível - + Invalid magnet link Link magnético inválido - + Torrent is already in download list. Trackers were merged. Torrent já está na lista de download. Trackers foram fundidos. - - + + Cannot add torrent Não foi possível adicionar torrente - + Cannot add this torrent. Perhaps it is already in adding state. Não foi possível adicionar este torrent. Talvez ele já esteja sendo adicionado. - + This magnet link was not recognized Este link magnético não foi reconhecido - + Magnet link is already in download list. Trackers were merged. Este magnet já está na lista de downloads. Os trackers foram adicionados. - + Cannot add this torrent. Perhaps it is already in adding. Não foi possível adicionar este torrent. Talvez ele já esteja sendo adicionado. - + Magnet link Link magnético - + Retrieving metadata... Capturando informações... - + Not Available This size is unavailable. Não Disponível - - - + + + Choose save path Escolha o caminho de salvamento - + Rename the file Renomeie o arquivo - + New name: Novo nome: - - + + The file could not be renamed O arquivo não pôde ser renomeado - + This file name contains forbidden characters, please choose a different one. Este nome contém caracteres proibidos, por favor escolha um diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome já está em uso nessa pasta. Por favor escolha um diferente. - + The folder could not be renamed Esta pasta não pode ser renomeada - + Rename... Renomear... - + Priority Prioridade - + Invalid metadata Metadados inválido - + Parsing metadata... Analisando metadados... - + Metadata retrieval complete Captura de metadados completa - + Download Error Erro no download @@ -427,9 +432,8 @@ Determinar nomes dos pares - Maximum number of half-open connections [0: Disabled] - Número máximo de conexões semiabertas [0: Desabilitado] + Número máximo de conexões semiabertas [0: Desabilitado] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Gravar intervalo de dados de continuação + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID do Peer: - + HTTP User-Agent is '%1' O usuário agente HTTP é '%1' - + Anonymous mode [ON] Modo anônimo [LIGADO] - + Anonymous mode [OFF] Modo anônimo [DESLIGADO] - + PeX support [ON] Suporte a PeX [LIGADO] - + PeX support [OFF] Suporte a PeX [DESLIGADO] - + Restart is required to toggle PeX support É necessário reinicar para alterar o suporte a PeX. - + Local Peer Discovery support [ON] Suporte para Descoberta de Peer Local [LIG] - + Local Peer Discovery support [OFF] Suporte para Descoberta de Peer Local [DESL] - + Encryption support [ON] Suporte a criptografia [LIGADO] - + Encryption support [FORCED] Suporte a criptografia [FORÇADO] - + Encryption support [OFF] Suporte a criptografia [DESLIGADO] - + Embedded Tracker [ON] Tracker embutido [LIGADO] - + Failed to start the embedded tracker! Falha ao iniciar o tracker embutido. - + Embedded Tracker [OFF] Tracker embutido [DESLIGADO] - + '%1' reached the maximum ratio you set. Removing... '%1' alcançou a proporção máxima definida. Removendo... - + '%1' reached the maximum ratio you set. Pausing... '%1' alcançou a proporção máxima definida. Pausando... - Error: Could not create torrent export directory: '%1' - Erro: Não foi possível criar o diretório para exportar o torrent: '%1' + Erro: Não foi possível criar o diretório para exportar o torrent: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Erro: Não foi possível exportar o torrent '%1'. Talvez ele ainda não contenha metadados. + Erro: Não foi possível exportar o torrent '%1'. Talvez ele ainda não contenha metadados. - + System network status changed to %1 e.g: System network status changed to ONLINE Estado de rede do sistema alterado para %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuração de rede de %1 foi alterada, atualizando ligação da sessão - + Unable to decode '%1' torrent file. Impossível decodificar o arquivo torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Download recursivo do arquivo '%1' embutido no torrent '%2' - + Couldn't save '%1.torrent' Não foi possível salvar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. pois %1 está desabilitado. - + because %1 is disabled. this peer was blocked because TCP is disabled. pois %1 está desabilitado. - + URL seed lookup failed for URL: '%1', message: %2 Falha na procura de seeds falhou para url: '%1', mensagem: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' foi removido da lista de transferência e do disco rígido. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' foi removido da lista de transferência. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Baixando '%1'. Por favor, aguarde. - Torrent Export: torrent is invalid, skipping... - Exportação de torrent: o torrent é inválido, pulando... + Exportação de torrent: o torrent é inválido, pulando... - + DHT support [ON] Suporte a DHT [LIGADO] - + DHT support [OFF]. Reason: %1 Suporte a DHT [DESLIGADO]. Motivo: %1 - + DHT support [OFF] Suporte a DHT [DESLIGADO] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tentando escutar em qualquer porta de interface: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - O qBittorrent falhou ao escutar em qualquer porta da interface: %1. Razão: %2 + O qBittorrent falhou ao escutar em qualquer porta da interface: %1. Razão: %2 - + The network interface defined is invalid: %1 A interface de rede definida é inválida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 O qBittorrent está tentando escutar na porta da interface %1: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on O qBittorrent não encontrou um endereço local %1 no qual escutar - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + O qBittorrent falhou ao escutar em qualquer porta da interface: %1. Razão: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' O tracker '%1' foi adicionado ao torrent '%2' - + Tracker '%1' was deleted from torrent '%2' O tracker '%1' foi excluído do torrent '%2' - + URL seed '%1' was added to torrent '%2' O seed da URL '%1' foi adicionado ao torrent '%2' - + URL seed '%1' was removed from torrent '%2' O seed da URL '%1' foi removido do torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Não foi possível resumir o torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro de IP fornecido analisado com sucesso: %1 regras foram aplicadas. - + Error: Failed to parse the provided IP filter. Erro: Falha ao analisar o filtro de IP fornecido. - + Couldn't add torrent. Reason: %1 Não foi possível adicionar o torrent. Motivo: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' resumido. (resumir rápido) - + '%1' added to download list. 'torrent name' was added to download list. '%1' adicionado à lista de downloads. - + An I/O error occurred, '%1' paused. %2 Ocorreu um erro de E/S, '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Falha no mapeamento de porta, mensagem: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapeamento de porta bem sucedido, mensagem: %1 - + due to IP filter. this peer was blocked due to ip filter. devido ao filtro de IP. - + due to port filter. this peer was blocked due to port filter. devido ao filtro de porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. devido às restrições de modo misto i2p. - + because it has a low port. this peer was blocked because it has a low port. pois ele tem uma porta baixa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 O qBittorrent está escutando com sucesso na porta da interface %1: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - O qBittorrent falhou ao escutar na porta da interface %1: %2/%3. Motivo: %4 + O qBittorrent falhou ao escutar na porta da interface %1: %2/%3. Motivo: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + O qBittorrent falhou ao escutar na porta da interface %1: %2/%3. Motivo: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP externo: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Não foi possível mover torrent: '% 1'. Motivo:% 2 - + File sizes mismatch for torrent '%1', pausing it. O tamanho do arquivo para o torrent '%1' está incorreto. Pausando. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Resumo rápido rejeitado para o torrent '%1'. Motivo: %2. Verificando novamente... @@ -1307,20 +1323,20 @@ Você deve buscar essa informação nas preferências do seu navegador. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Erro de E/S: Não foi possível abrir arquivo do filtro de IP no modo leitura. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Erro de Análise: O arquivo de filtro não é um arquivo P2B válido do PeerGuardian. @@ -1328,43 +1344,43 @@ Você deve buscar essa informação nas preferências do seu navegador. GeoIPDatabase - - + + Unsupported database file size. Tamanho do arquivo de banco de dados não suportado. - + Metadata error: '%1' entry not found. Erro de metadados: Entrada '%1' não encontrada. - + Metadata error: '%1' entry has invalid type. Erro de metadados:r: Entrada '%1' tem um tipo inválido. - + Unsupported database version: %1.%2 Versão do banco de dados não suportada: %1.%2 - + Unsupported IP version: %1 Versão do IP não suportada: %1 - + Unsupported record size: %1 Tamanho de gravação não suportado: %1 - + Invalid database type: %1 Tipo do banco de dados inválido: %1 - + Database corrupted: no data section found. Banco de dados corrompido: nenhuma seção de dados encontrada. @@ -1397,9 +1413,8 @@ Você deve buscar essa informação nas preferências do seu navegador.Somente um link por linha - Download local torrent - Baixar torrent local + Baixar torrent local @@ -1572,7 +1587,22 @@ Você deve buscar essa informação nas preferências do seu navegador.Inativo - + + Save files to location: + Salvar arquivos na pasta: + + + + Label: + Etiqueta: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Baixado @@ -1582,6 +1612,11 @@ Você deve buscar essa informação nas preferências do seu navegador.Logout Sair + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Você deve buscar essa informação nas preferências do seu navegador. LineEdit - + Clear the text Limpa o texto @@ -1743,37 +1778,37 @@ Você deve buscar essa informação nas preferências do seu navegador. MainWindow - + &Edit &Editar - + &Tools &Ferramentas - + &File &Arquivo - + &Help &Ajuda - + On Downloads &Done Ao Concluir os &Downloads - + &View &Ver - + &Options... &Opções... @@ -1783,153 +1818,153 @@ Você deve buscar essa informação nas preferências do seu navegador.&Resumir - + Torrent &Creator &Criar Torrent - + Set Upload Limit... Configurar Limite de Upload... - + Set Download Limit... Configurar Limite de Download... - + Set Global Download Limit... Configurar Limite Global de Download... - + Set Global Upload Limit... Configurar Limite Global de Upload... - + Minimum Priority Prioridade Mínima - + Top Priority Prioridade Máxima - + Decrease Priority Diminuir Prioridade - + Increase Priority Aumentar Prioridade - - + + Alternative Speed Limits Limites de Velocidade Alternativos - + &Top Toolbar Barra de &Ferramentas Superior - + Display Top Toolbar Exibir Barra de Ferramentas Superior - + S&peed in Title Bar &Velocidade na Barra de Título - + Show Transfer Speed in Title Bar Mostrar Velocidade de Transferência na Barra de Título - + &RSS Reader Leitor de &RSS - + Search &Engine Mecanismo de &Busca - + L&ock qBittorrent Travar &o qBittorrent - + &Import Existing Torrent... &Importar Torrent Existente... - + Import Torrent... Importar Torrent... - + Do&nate! &Doar! - + R&esume All R&esume Todos - + &Log &Log - + &Exit qBittorrent Sair do qBittorr&ent - + &Suspend System &Suspender o Sistema - + &Hibernate System &Hibernar o Sistema - + S&hutdown System Desli&gar o Sistema - + &Disabled &Desativado - + &Statistics E&statísticas - + Check for Updates Verificar Atualizações - + Check for Program Updates Verificar Atualizações do Programa @@ -1939,77 +1974,72 @@ Você deve buscar essa informação nas preferências do seu navegador.&Sobre - Exit - Sair + Sair - + &Pause &Pausar - + &Delete &Remover - + P&ause All P&ausar Todos - + &Add Torrent File... &Adicionar Arquivo Torrent... - + Open Abrir - + E&xit &Sair - Options - Opções + Opções - Resume - Retomar + Retomar - Pause - Pausar + Pausar - Delete - Remover + Remover - + Open URL Abrir URL - + &Documentation &Documentação - + Lock Travar - + Show Mostrar @@ -2020,22 +2050,21 @@ Você deve buscar essa informação nas preferências do seu navegador.Verificar atualizações do programa - Lock qBittorrent - Travar o qBittorrent + Travar o qBittorrent - + Add Torrent &Link... Adicionar &Link Torrent... - + If you like qBittorrent, please donate! Se você curte qBittorrent, por favor faça sua doação! - + Execution Log Execução Log @@ -2414,52 +2443,52 @@ Quer mesmo sair do qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Seu DNS dinâmico foi atualizado com sucesso. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Erro de DNS dinâmico: O serviço está temporariamente inacessível, nova tentativa em 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Erro de DNS dinâmico: o hostname fornecido não existe na conta especificada. - + Dynamic DNS error: Invalid username/password. Erro de DNS dinâmico: Usuário/Senha inválido. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: O qBittorrent está na lista negra deste serviço. Por favor, envie este bug para http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: %1 foi retornado pelo serviço. Por favor, envie este bug para http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Erro de DNS dinâmico: Seu usuário foi bloqueado por motivo de abuso. - + Dynamic DNS error: supplied domain name is invalid. Erro de DNS dinâmico: O domínio é inválido. - + Dynamic DNS error: supplied username is too short. Erro de DNS dinâmico: Usuário informado é muito pequeno. - + Dynamic DNS error: supplied password is too short. Erro de DNS dinâmico: A senha é muito pequena. @@ -2467,17 +2496,17 @@ Quer mesmo sair do qBittorrent? Net::DownloadHandler - + I/O Error Erro de E/S - + The file size is %1. It exceeds the download limit of %2. O tamanho do arquivo é %1. Ele excede o limite de download em %2. - + Unexpected redirect to magnet URI. Redirecionamento inesperado para URI magnético. @@ -2485,1300 +2514,1300 @@ Quer mesmo sair do qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Banco de dados GeoIP carregado. Tipo: %1. Data de criação: %2. - - + + Couldn't load GeoIP database. Reason: %1 Não foi possível carregar o banco de dados GeoIP. Motivo: %1 - - + + N/A N/A - + Asia/Pacific Region Região Ásia/Pacífico - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emirados Árabes Unidos - + Afghanistan Afeganistão - + Antigua and Barbuda Antígua e Barbuda - + Anguilla Anguilla - + Albania Albânia - + Armenia Armênia - + Netherlands Antilles Antilhas Holandesas - + Angola Angola - + Antarctica Antártica - + Argentina Argentina - + American Samoa Samoa Americana - + Austria Áustria - + Australia Austrália - + Aruba Aruba - + Azerbaijan Azerbaidjão - + Bosnia and Herzegovina Bósnia-Herzegóvina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Bélgica - + Burkina Faso Burkina Fasso - + Bulgaria Bulgária - + Bahrain Barein - + Burundi Burundi - + Benin Benin - + Bermuda Bermudas - + Brunei Darussalam Brunei - + Bolivia Bolívia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Butão - + Bouvet Island Ilha Bouvet - + Botswana Botsuana - + Belarus Belarus - + Belize Belize - + Canada Canadá - + Cocos (Keeling) Islands Ilhas Cocos (Keeling) - + Congo, The Democratic Republic of the Congo, República Democrática do - + Central African Republic República Centro-Africana - + Congo Congo - + Switzerland Suíça - + Cote D'Ivoire Costa do Marfim - + Cook Islands Ilhas Cook - + Chile Chile - + Cameroon Camarões - + China China - + Colombia Colômbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + Christmas Island Ilha Christmas - + Cyprus Chipre - + Czech Republic República Tcheca - + Germany Alemanha - + Djibouti Djibuti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Algéria - + Ecuador Equador - + Estonia Estônia - + Egypt Egito - + Western Sahara Saara Ocidental - + Eritrea Eritréia - + Spain Espanha - + Ethiopia Etiópia - + Finland Finlândia - + Fiji Fiji - + Falkland Islands (Malvinas) Ilhas Falkland (Malvinas) - + Micronesia, Federated States of Micronésia, Estados Federados da - + Faroe Islands Ilhas Feroe - + France França - + France, Metropolitan França Metropolitana - + Gabon Gabão - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Geórgia - + French Guiana Guiana Francesa - + Ghana Gana - + Gibraltar Gibraltar - + Greenland Groenlândia - + Gambia Gâmbia - + Guinea Guiné - + Guadeloupe Guadalupe - + Equatorial Guinea Guiné-Equatorial - + Greece Grécia - + South Georgia and the South Sandwich Islands Ilhas Geórgia do Sul e Sandwich do Sul - + Guatemala Guatemala - + Guam Guão - + Guinea-Bissau Guiné-Bissau - + Guyana Guiana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Ilha Heard e Ilhas McDonald - + Honduras Honduras - + Croatia Croácia - + Haiti Haiti - + Hungary Hungria - + Indonesia Indonésia - + Ireland Irlanda - + Israel Israel - + India Índia - + British Indian Ocean Territory Território Britânico do Oceano Índico - + Iraq Iraque - + Iran, Islamic Republic of Irã, República Islâmica do - + Iceland Islândia - + Italy Itália - + Jamaica Jamaica - + Jordan Jordânia - + Japan Japão - + Kenya Quênia - + Kyrgyzstan Quirguistão - + Cambodia Camboja - + Kiribati Kiribati - + Comoros Comores - + Saint Kitts and Nevis São Cristóvão e Nevis - + Korea, Democratic People's Republic of Coréia do Norte - + Korea, Republic of Coréia do Sul - + Kuwait Kuweit - + Cayman Islands Ilhas Cayman - + Kazakhstan Cazaquistão - + Lao People's Democratic Republic Laos - + Lebanon Líbano - + Saint Lucia Santa Lúcia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libéria - + Lesotho Lesoto - + Lithuania Lituânia - + Luxembourg Luxemburgo - + Latvia Letônia - + Libyan Arab Jamahiriya Líbia - + Morocco Marrocos - + Monaco Mônaco - + Moldova, Republic of Moldávia, República da - + Madagascar Madagáscar - + Marshall Islands Ilhas Marshall - + Macedonia Macedônia - + Mali Mali - + Myanmar Mianmar - + Mongolia Mongólia - + Macau Macau - + Northern Mariana Islands Ilhas Marianas Setentrionais - + Martinique Martinica - + Mauritania Mauritânia - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurício - + Maldives Maldivas - + Malawi Malauí - + Mexico México - + Malaysia Malásia - + Mozambique Moçambique - + Namibia Namíbia - + New Caledonia Nova Caledônia - + Niger Níger - + Norfolk Island Ilha Norfolk - + Nigeria Nigéria - + Nicaragua Nicarágua - + Netherlands Holanda - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nova Zelândia - + Oman Omã - + Panama Panamá - + Peru Peru - + French Polynesia Polinésia Francesa - + Papua New Guinea Papua Nova Guiné - + Philippines Filipinas - + Pakistan Paquistão - + Poland Polônia - + Saint Pierre and Miquelon São Pedro e Miquelão - + Pitcairn Islands Ilhas Pitcairn - + Puerto Rico Porto Rico - + Palestinian Territory Palestina, Estado da - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Catar - + Reunion Ilha Reunião - + Romania Romênia - + Russian Federation Federação Russa - + Rwanda Ruanda - + Saudi Arabia Arábia Saudita - + Solomon Islands Ilhas Salomão - + Seychelles Seicheles - + Sudan Sudão - + Sweden Suécia - + Singapore Singapura - + Saint Helena Ilha Santa Helena - + Slovenia Eslovênia - + Svalbard and Jan Mayen Svalbard e Jan Mayen - + Slovakia Eslováquia - + Sierra Leone Serra Leoa - + San Marino San Marino - + Senegal Senegal - + Somalia Somália - + Suriname Suriname - + Sao Tome and Principe São Tomé e Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Síria, República Árabe da - + Swaziland Suazilândia - + Turks and Caicos Islands Ilhas Turks e Caicos - + Chad Chade - + French Southern Territories Terras Austrais e Antárticas Francesas - + Togo Togo - + Thailand Tailândia - + Tajikistan Tadjiquistão - + Tokelau Toquelau - + Turkmenistan Turcomenistão - + Tunisia Tunísia - + Tonga Tonga - + Timor-Leste Timor Leste - + Turkey Turquia - + Trinidad and Tobago Trinidad e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzânia, República Unida da - + Ukraine Ucrânia - + Uganda Uganda - + United States Minor Outlying Islands Ilhas Menores Distantes dos Estados Unidos - + United States Estados Unidos - + Uruguay Uruguai - + Uzbekistan Uzbequistão - + Holy See (Vatican City State) Santa Sé (Cidade-Estado do Vaticano) - + Saint Vincent and the Grenadines São Vicente e Granadinas - + Venezuela Venezuela - + Virgin Islands, British Ilhas Virgens Britânicas - + Virgin Islands, U.S. Ilhas Virgens Americanas - + Vietnam Vietnã - + Vanuatu Vanuatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Iêmen - + Mayotte Mayotte - + Serbia Sérvia - + South Africa África do Sul - + Zambia Zâmbia - + Montenegro Montenegro - + Zimbabwe Zimbábue - + Anonymous Proxy Proxy anônimo - + Satellite Provider Provedor de satélite - + Other Outro - + Aland Islands Ilhas Aland - + Guernsey Guernsey - + Isle of Man Ilha de Man - + Jersey Jersey - + Saint Barthelemy São Bartolomeu, Coletividade de - + Saint Martin Ilha de São Martinho - + Could not uncompress GeoIP database file. Não foi possível descompactar o banco de dados GeoIP. - + Couldn't save downloaded GeoIP database file. Não foi possível salvar o banco de dados GeoIP baixado. - + Successfully updated GeoIP database. Banco de dados GeoIP atualizado com sucesso. - + Couldn't download GeoIP database file. Reason: %1 Não foi possível baixar o banco de dados GeoIP. Motivo: %1 @@ -3786,12 +3815,12 @@ Quer mesmo sair do qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Suporte a UPnp / NAT-PMP [LIG] - + UPnP / NAT-PMP support [OFF] Suporte a UPnp / NAT-PMP [DESL] @@ -3799,206 +3828,265 @@ Quer mesmo sair do qBittorrent? Net::Smtp - + Email Notification Error: E-mail de Notificação de Erro: + + PeerInfo + + + interested(local) and choked(peer) + interested(local) e choked(peer) + + + + interested(local) and unchoked(peer) + interested(local) e unchoked(peer) + + + + interested(peer) and choked(local) + interested(peer) e choked(local) + + + + interested(peer) and unchoked(local) + interested(peer) e unchoked(local) + + + + optimistic unchoke + optimistic unchoke + + + + peer snubbed + peer snubbed + + + + incoming connection + conexão entrante + + + + not interested(local) and unchoked(peer) + not interested(local) e unchoked(peer) + + + + not interested(peer) and unchoked(local) + not interested(peer) e unchoked(local) + + + + peer from PEX + peer via PEX + + + + peer from DHT + peer via DHT + + + + encrypted traffic + tráfego criptografado + + + + encrypted handshake + handshake criptografado + + + + peer from LSD + peer via LSD + + PeerListWidget - + IP IP - + Port Porta - + Flags Bandeiras - + Connection Conexão - + Client i.e.: Client application Cliente - + Progress i.e: % downloaded Progresso - + Down Speed i.e: Download speed Velocidade de download - + Up Speed i.e: Upload speed Velocidade de upload - + Downloaded i.e: total data downloaded Baixado - + Uploaded i.e: total data uploaded Subido - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevância - + Add a new peer... Adicionar um novo peer... - + Copy selected Copiar selecionado - - + + Ban peer permanently Banir fonte permanentemente - + Manually adding peer '%1'... Adicionando manualmente peer %1... - + The peer '%1' could not be added to this torrent. O peer '%1' não pôde ser adicionado a este torrent. - + Manually banning peer '%1'... Banindo manualmente peer '%1'... - + Peer addition Adição de fonte - + Some peers could not be added. Check the Log for details. Alguns peers não puderam ser adicionados. Veja o Log para detalhes. - + The peers were added to this torrent. Peers adicionados a este torrent. - + Are you sure you want to ban permanently the selected peers? Deseja mesmo banir permanentemente a fonte selecionada? - + &Yes &Sim - + &No &Não - interested(local) and choked(peer) - interested(local) e choked(peer) + interested(local) e choked(peer) - interested(local) and unchoked(peer) - interested(local) e unchoked(peer) + interested(local) e unchoked(peer) - interested(peer) and choked(local) - interested(peer) e choked(local) + interested(peer) e choked(local) - interested(peer) and unchoked(local) - interested(peer) e unchoked(local) + interested(peer) e unchoked(local) - optimistic unchoke - optimistic unchoke + optimistic unchoke - peer snubbed - peer snubbed + peer snubbed - incoming connection - conexão entrante + conexão entrante - not interested(local) and unchoked(peer) - not interested(local) e unchoked(peer) + not interested(local) e unchoked(peer) - not interested(peer) and unchoked(local) - not interested(peer) e unchoked(local) + not interested(peer) e unchoked(local) - peer from PEX - peer via PEX + peer via PEX - peer from DHT - peer via DHT + peer via DHT - encrypted traffic - tráfego criptografado + tráfego criptografado - encrypted handshake - handshake criptografado + handshake criptografado - peer from LSD - peer via LSD + peer via LSD @@ -4772,17 +4860,17 @@ Quer mesmo sair do qBittorrent? Caminho do filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Detectado encerramento irregular do programa. Usando arquivo de reserva para restaurar as configurações. - + An access error occurred while trying to write the configuration file. Um erro de acesso ocorreu ao tentar escrever o arquivo de configuração. - + A format error occurred while trying to write the configuration file. Um erro de formato ocorreu ao tentar escrever o arquivo de configuração. @@ -4888,299 +4976,298 @@ Quer mesmo sair do qBittorrent? PropertiesWidget - + Downloaded: Baixado: - + Availability: Disponível: - + Progress: Progresso: - + Transfer Transferência - + Time Active: Time (duration) the torrent is active (not paused) Tempo Ativo: - + ETA: Tempo Restante: - + Uploaded: Subido: - + Seeds: Seeds: - + Download Speed: Velocidade de Download: - + Upload Speed: Velocidade de Upload: - + Peers: Peers: - + Download Limit: Limite de Download: - + Upload Limit: Limite de Upload: - + Wasted: Gasto: - + Connections: Conexões: - + Information Informação - + Comment: Comentário: - Torrent content: - Conteúdo do torrent: + Conteúdo do torrent: - + Select All Seleciona todos - + Select None Selecionar nenhum - + Normal Normal - + High Alto - + Share Ratio: Proporção de compartilhamento: - + Reannounce In: Reanunciar em: - + Last Seen Complete: Última Vez Visto Completo: - + Total Size: Tamanho Total: - + Pieces: Pedaços: - + Created By: Criado por: - + Added On: Adicionado em: - + Completed On: Concluído em: - + Created On: Criado em: - + Torrent Hash: Hash do torrent: - + Save Path: Caminho para Salvar: - + Maximum Máximo - - + + Do not download Não baixar - + Never Nunca - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (possui %3) - + %1 (%2 this session) %1 (%2 nesta sessão) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (semeado por %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 máx.) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 média) - + Open Abrir - + Open Containing Folder Abrir pasta - + Rename... Renomear... - + Priority Prioridade - + New Web seed Novo seed web - + Remove Web seed Remover seed web - + Copy Web seed URL Copiar link do seed web - + Edit Web seed URL Editar o link seed - + Rename the file Renomeie o arquivo - + New name: Novo nome: - - + + The file could not be renamed O arquivo não pode ser renomeado - + This file name contains forbidden characters, please choose a different one. O arquivo contem caracteres desconhecidos, por favor use um nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome já está sendo utilizado nessa pasta. Por favor use um nome diferente. - + The folder could not be renamed A pasta não pode ser renomeada - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Quer mesmo sair do qBittorrent? Arquivos de filtro... - + New URL seed New HTTP source Nova URL de seed - + New URL seed: Nova URL de seed: - - + + This URL seed is already in the list. Essa URL de seed já está na lista. - + Web seed editing Editando o seed web - + Web seed URL: Link de seed web: @@ -5225,19 +5312,19 @@ Quer mesmo sair do qBittorrent? Seu endereço IP foi banido após muitas falhas de autenticação. - + Error: '%1' is not a valid torrent file. Erro: '%1' não é um arquivo torrent válido. - + Error: Could not add torrent to session. Erro: Não foi possível adicionar o torrent à sessão. - + I/O Error: Could not create temporary file. Erro de E/S: Não foi possível criar arquivo temporário. @@ -5390,138 +5477,138 @@ Não serão exibidos mais avisos. [qBittorrent] %1 terminou de ser baixado - + The remote host name was not found (invalid hostname) O host remoto não foi encontrado (host inválido) - + The operation was canceled A operação foi cancelada - + The remote server closed the connection prematurely, before the entire reply was received and processed O servidor remoto fechou a conexão prematuramente, antes da resposta completa ter sido recebida e processada - + The connection to the remote server timed out A conexão com o servidor remoto atingiu o tempo limite - + SSL/TLS handshake failed Handshake SSL/TLS falhou - + The remote server refused the connection O servidor remoto recusou a conexão - + The connection to the proxy server was refused A conexão com servidor proxy foi recusada - + The proxy server closed the connection prematurely O servidor proxy fechou a conexão prematuramente - + The proxy host name was not found O nome do host do proxy não foi encontrado - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Fim do tempo de conexão com o proxy ou o proxy não respondeu no tempo - + The proxy requires authentication in order to honor the request but did not accept any credentials offered O proxy requer autenticação mas não aceitou as credenciais oferecidas - + The access to the remote content was denied (401) O acesso ao conteúdo remoto foi negado (401) - + The operation requested on the remote content is not permitted A operação solicitada no conteúdo remoto não foi permitida - + The remote content was not found at the server (404) O conteúdo remoto não foi encontrado no servidor (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted O servidor remoto requer autenticação para fornecer os dados, mas as credenciais oferecidas não foram aceitas - + The Network Access API cannot honor the request because the protocol is not known A API de Acesso à Rede não pôde honrar o pedido pois o protocolo é desconhecido - + The requested operation is invalid for this protocol A operação solicitada é inválida para este protocolo - + An unknown network-related error was detected Um erro desconhecido relacionado à internet foi detectado - + An unknown proxy-related error was detected Um erro desconhecido relacionado ao proxy foi detectado - + An unknown error related to the remote content was detected Um erro desconhecido relacionado ao conteúdo remoto foi detectado - + A breakdown in protocol was detected Uma pane no protocolo foi detectada - + Unknown error Erro desconhecido - - + + Upgrade Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Você atualizou a partir de uma versão mais antiga que salvou as coisas de forma diferente. Você deve migrar para o novo sistema de salvamento. Você não será capaz de usar uma versão mais antiga que a v3.3.0 novamente. Continuar? [S/N] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Você atualizou a partir de uma versão mais antiga que salvou as coisas de forma diferente. Você deve migrar para o novo sistema de salvamento. Se você continuar, não será capaz de usar uma versão mais antiga que a v3.3.0 novamente. - + Couldn't migrate torrent with hash: %1 Não foi possível migrar o torrent com hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Não foi possível migrar o torrent. Nome inválido do arquivo de resumo rápido: %1 @@ -5710,12 +5797,12 @@ Não serão exibidos mais avisos. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... O download automático de '%1' da fonte RSS '%2' falhou pois ele não contém um torrent ou um link magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... Baixando automaticamente o torrent '%1' da fonte RSS '%2'... @@ -5759,17 +5846,17 @@ Não serão exibidos mais avisos. ScanFoldersModel - + Watched Folder Pasta visualizada - + Download here Baixar aqui - + Download path Caminho para download @@ -7828,11 +7915,11 @@ Estes plugins foram desabilitados. fsutils - - - - - + + + + + Downloads Downloads @@ -7840,103 +7927,103 @@ Estes plugins foram desabilitados. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python não detectado - + Python version: %1 Versão do Python: 1% - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Desconhecido - + qBittorrent will shutdown the computer now because all downloads are complete. qBIttorrent irá desligar seu computador agora porque os downloads terminaram. - + < 1m < 1 minute < 1 minuto - + %1m e.g: 10minutes %1m - + Working Trabalhando - + Updating... Atualizando... - + Not working Sem serviço - + Not contacted yet Não contactado ainda diff --git a/src/lang/qbittorrent_ro.ts b/src/lang/qbittorrent_ro.ts index 9fbe97ddf..e1ed8395b 100644 --- a/src/lang/qbittorrent_ro.ts +++ b/src/lang/qbittorrent_ro.ts @@ -125,217 +125,222 @@ Sărire peste verificarea indexului - + + Set as default label + + + + Torrent Information Informații torrent - + Size: Dimensiune: - + Comment: Comentariu: - + Date: Dată: - + Info Hash: Informații indexare: - + Normal Normal - + High Înalt - + Maximum Maxim - + Do not download Nu descărca - - + + I/O Error Eroare Intrare/Ieșire - + The torrent file does not exist. Fișierul torrent nu există. - + Invalid torrent Torrent nevalid - + Failed to load the torrent: %1 A eșuat încărcarea torrentului: %1 - - + + Already in download list Este deja în lista de descărcări - + Free disk space: %1 Spațiu liber pe disc: %1 - + Not Available This comment is unavailable Nu este disponibil - + Not Available This date is unavailable Nu este disponibil - + Not available Nu este disponibil - + Invalid magnet link Legătură magnet nevalidă - + Torrent is already in download list. Trackers were merged. Torrentul este deja în lista de descărcări. Urmăritoarele au fost combinate. - - + + Cannot add torrent Nu se poate adăuga torrentul - + Cannot add this torrent. Perhaps it is already in adding state. Acest torrent nu poate fi adăugat. Probabil este deja într-o stare de adăugare. - + This magnet link was not recognized Această legătură magnet nu a fost recunoscută - + Magnet link is already in download list. Trackers were merged. Legătura magnet este deja în lista de descărcări. Urmăritoarele au fost combinate. - + Cannot add this torrent. Perhaps it is already in adding. Acest torrent nu poate fi adăugat. Probabil este deja într-o stare de adăugare. - + Magnet link Legătură magnet - + Retrieving metadata... Se obțin metadatele... - + Not Available This size is unavailable. Nu este disponibil - - - + + + Choose save path Alegeți calea de salvare - + Rename the file Redenumire fișier - + New name: Nume nou: - - + + The file could not be renamed Fișierul nu a putut fi redenumit - + This file name contains forbidden characters, please choose a different one. Numele fișierului conține caractere interzise, alegeți un nume diferit. - - + + This name is already in use in this folder. Please use a different name. Acest nume este deja utilizat în dosar. Utilizați un nume diferit. - + The folder could not be renamed Dosarul nu a putut fi redenumit - + Rename... Redenumire... - + Priority Prioritate - + Invalid metadata Metadate nevalide - + Parsing metadata... Se analizează metadatele... - + Metadata retrieval complete Metadatele au fost obținute - + Download Error Eroare descărcare @@ -427,9 +432,8 @@ Rezolvă numele de gazdă ale partenerilor - Maximum number of half-open connections [0: Disabled] - Număr maxim de conexiuni semi-deschise [0: Dezactivat] + Număr maxim de conexiuni semi-deschise [0: Dezactivat] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Salvare interval reluare date + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID partener: - + HTTP User-Agent is '%1' Agentul utilizator HTTP este „%1” - + Anonymous mode [ON] Mod anonim [PORNIT] - + Anonymous mode [OFF] Mod anonim [OPRIT] - + PeX support [ON] Suport PeX [PORNIT] - + PeX support [OFF] Suport PeX [OPRIT] - + Restart is required to toggle PeX support Repornirea este necesară pentru comutarea suportului PeX - + Local Peer Discovery support [ON] Suport descoperire parteneri locali [PORNIT] - + Local Peer Discovery support [OFF] Suport descoperire parteneri locali [OPRIT] - + Encryption support [ON] Suport criptare [PORNIT] - + Encryption support [FORCED] Suport criptare [FORȚATĂ] - + Encryption support [OFF] Suport criptare [OPRITĂ] - + Embedded Tracker [ON] Urmăritor încorporat [PORNIT] - + Failed to start the embedded tracker! A eșuat pornirea urmăritorului încorporat! - + Embedded Tracker [OFF] Urmăritor încorporat [OPRIT] - + '%1' reached the maximum ratio you set. Removing... „%1” a atins raportul de partajare maxim pe care l-ați definit. Se elimină... - + '%1' reached the maximum ratio you set. Pausing... „%1” a atins raportul de partajare maxim pe care l-ați definit. Se suspendă... - Error: Could not create torrent export directory: '%1' - Eroare: Nu s-a putut crea dosarul de export torrent: „%1” + Eroare: Nu s-a putut crea dosarul de export torrent: „%1” - Error: could not export torrent '%1', maybe it has not metadata yet. - Eroare: nu s-a putut exporta torrentul „%1”, poate nu are încă metadate. + Eroare: nu s-a putut exporta torrentul „%1”, poate nu are încă metadate. - + System network status changed to %1 e.g: System network status changed to ONLINE Starea rețelei sistemului s-a schimbat la %1 - + ONLINE CONECTAT - + OFFLINE DECONECTAT - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Configurația rețelei %1 a fost schimbată, se reîmprospătează asocierea sesiunii - + Unable to decode '%1' torrent file. Nu s-a putut decoda fișierul torrent „%1”. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descărcare recursivă a fișierului „%1” încorporat în torrentul „%2” - + Couldn't save '%1.torrent' Nu s-a putut salva „%1.torrent” - + because %1 is disabled. this peer was blocked because uTP is disabled. fiindcă %1 este dezactivat. - + because %1 is disabled. this peer was blocked because TCP is disabled. fiindcă %1 este dezactivat. - + URL seed lookup failed for URL: '%1', message: %2 Rezolvarea adresei sursei a eșuat pentru URL-ul: „%1”, mesaj: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... „%1” a fost înlăturat din lista de transferuri și de pe disc. - + '%1' was removed from transfer list. 'xxx.avi' was removed... „%1” a fost eliminat din lista de transferuri. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Se descarcă „%1”, așteptați... - Torrent Export: torrent is invalid, skipping... - Exportare torrent: torrentul nu este valid, se omite... + Exportare torrent: torrentul nu este valid, se omite... - + DHT support [ON] Suport DHT [PORNIT] - + DHT support [OFF]. Reason: %1 Suport DHT [OPRIT]. Motivul: %1 - + DHT support [OFF] Suport DHT [OPRIT] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent încearcă să asculte pe oricare port de interfață: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBitorrent nu a putut asculta pe niciun port al interfeței %1. Motiv: %2 + qBitorrent nu a putut asculta pe niciun port al interfeței %1. Motiv: %2 - + The network interface defined is invalid: %1 Interfața de rețea definită nu este validă: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent încearcă să asculte pe interfața %1 portul: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nu a găsit o adresă locală %1 pe care să asculte - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBitorrent nu a putut asculta pe niciun port al interfeței %1. Motiv: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Urmăritorul „%1” a fost adăugat torrentului „%2” - + Tracker '%1' was deleted from torrent '%2' Urmăritorul „%1” a fost șters de la torrentul „%2” - + URL seed '%1' was added to torrent '%2' Sursa URL „%1” a fost adăugată torrentului „%2” - + URL seed '%1' was removed from torrent '%2' Sursa URL „%1” a fost ștearsă de la torrentul „%2” - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nu se poate relua descărcarea torrent: „%1” - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number S-a analizat cu succes filtrul IP furnizat: %1 reguli au fost aplicate. - + Error: Failed to parse the provided IP filter. Eroare: Eșec în analiza filtrului IP furnizat. - + Couldn't add torrent. Reason: %1 Nu s-a putut adăuga torrentul. Motivul: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) „%1” reluat. (reluare rapidă) - + '%1' added to download list. 'torrent name' was added to download list. „%1” a fost adăugat în lista de descărcare. - + An I/O error occurred, '%1' paused. %2 A apărut o eroare de Intrare/Ieșire, „%1” suspendat. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Eșec în maparea portului, mesaj: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Maparea portului încheiată cu succes, mesaj: %1 - + due to IP filter. this peer was blocked due to ip filter. datorită filtrării IP. - + due to port filter. this peer was blocked due to port filter. datorită filtrării portului. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. datorită restricțiilor modului mixt i2p. - + because it has a low port. this peer was blocked because it has a low port. fiindcă are un port mic. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent ascultă cu succes pe interfața %1 portul: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent a eșuat în ascultarea interfeței %1 portul: %2/%3. Motivul: %4 + qBittorrent a eșuat în ascultarea interfeței %1 portul: %2/%3. Motivul: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent a eșuat în ascultarea interfeței %1 portul: %2/%3. Motivul: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 IP extern: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Nu s-a putut muta torrentul: „%1”. Motivul: %2 - + File sizes mismatch for torrent '%1', pausing it. Nepotrivire dimensiuni fișiere pentru torrentul „%1”, se suspendă. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Datele pentru reluare rapidă au fost respinse pentru torrentul „%1”. Motivul %2. Se verifică din nou... @@ -1307,20 +1323,20 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Eroare Intrare/Ieșire: Nu se poate deschide fișierul de filtrare IP în modul „doar citire.” - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Eroare de analiză: Fișierul filtru nu este un fișier PeerGuardian P2B valid. @@ -1328,43 +1344,43 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr GeoIPDatabase - - + + Unsupported database file size. Mărime fișier bază de date nevalid. - + Metadata error: '%1' entry not found. Eroare metadate: nu s-a găsit intrarea „%1”. - + Metadata error: '%1' entry has invalid type. Eroare metadate: intrarea „%1” nu are un tip valid. - + Unsupported database version: %1.%2 Versiunea bazei de date este nevalidă: %1.%2 - + Unsupported IP version: %1 Versiune de IP nevalidă. %1 - + Unsupported record size: %1 Mărime înregistrare nevalidă: %1 - + Invalid database type: %1 Tipul bazei de date este nevalid: %1 - + Database corrupted: no data section found. Baza de date este deteriorată: Nu s-a găsit nicio secțiune de date. @@ -1397,9 +1413,8 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Doar unul pe linie - Download local torrent - Descarcă torrent local + Descarcă torrent local @@ -1554,25 +1569,40 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Resumed - Reluat + Reluate Paused - Suspendat + Suspendate Active - Activ + Active Inactive - Inactiv + Inactive - + + Save files to location: + Salvează fișierele în: + + + + Label: + Etichetă: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Descărcat @@ -1582,6 +1612,11 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Logout Deautentifică + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr LineEdit - + Clear the text Curăță textul @@ -1743,37 +1778,37 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr MainWindow - + &Edit &Editare - + &Tools &Unelte - + &File &Fișier - + &Help &Ajutor - + On Downloads &Done Când descărcările sunt &gata - + &View &Vizualizare - + &Options... &Opțiuni... @@ -1783,153 +1818,153 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr &Reluare - + Torrent &Creator &Creator torrent - + Set Upload Limit... Definire limită de încărcare... - + Set Download Limit... Definire limită de descărcare... - + Set Global Download Limit... Definire limită de descărcare globală... - + Set Global Upload Limit... Definire limită de încărcare globală... - + Minimum Priority Prioritate minimă - + Top Priority Prioritate maximă - + Decrease Priority Scade prioritatea - + Increase Priority Crește prioritatea - - + + Alternative Speed Limits Limite alternative de viteză - + &Top Toolbar &Bara de unelte superioară - + Display Top Toolbar Afișează bara superioară de unelte - + S&peed in Title Bar &Viteza în bara de titlu - + Show Transfer Speed in Title Bar Arată viteza de transfer în bara de titlu - + &RSS Reader Cititor &RSS - + Search &Engine &Motor de căutare - + L&ock qBittorrent Bl&ocare qBittorrent - + &Import Existing Torrent... &Importare torrent existent... - + Import Torrent... Importare torrent... - + Do&nate! Do&nați! - + R&esume All Reia &toate - + &Log &Jurnal - + &Exit qBittorrent Î&nchide qBittorrent - + &Suspend System &Suspendă sistemul - + &Hibernate System &Hibernează sistemul - + S&hutdown System &Oprește sistemul - + &Disabled &Dezactivat - + &Statistics &Statistici - + Check for Updates Verifică pentru actualizări - + Check for Program Updates Verifică pentru actualizări program @@ -1939,77 +1974,72 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr &Despre - Exit - Închide programul + Închide programul - + &Pause &Suspendare - + &Delete &Șterge - + P&ause All - P&auzează tot + Suspendă to&ate - + &Add Torrent File... &Adăugare fișier torrent... - + Open Deschide - + E&xit Î&nchide programul - Options - Opțiuni + Opțiuni - Resume - Reluare + Reluare - Pause - Suspendă + Suspendă - Delete - Șterge + Șterge - + Open URL Deschide URL - + &Documentation &Documentație - + Lock Blochează - + Show Arată @@ -2020,22 +2050,21 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Verifică pentru actualizări program - Lock qBittorrent - Blocare qBittorrent + Blocare qBittorrent - + Add Torrent &Link... Adăugare &legătură torrent... - + If you like qBittorrent, please donate! Dacă vă place qBittorrent, vă rugăm să donați! - + Execution Log Jurnal de execuție @@ -2043,7 +2072,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Clear the password - Elimină parola + Eliminare parolă @@ -2414,52 +2443,52 @@ Sigur doriți să închideți qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. DNS-ul dinamic a fost actualizat cu succes. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Eroare DNS dinamic: Serviciul este temporar indisponibil, va fi reâncercat în 30 de minute. - + Dynamic DNS error: hostname supplied does not exist under specified account. Eroare DNS dinamic: numele gazdă furnizat nu există în contul specificat. - + Dynamic DNS error: Invalid username/password. Eroare DNS dinamic: Parolă/nume utilizator nevalid(ă). - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Eroare DNS dinamic: qBittorrent a fost interzis de serviciu; raportați problema la http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Eroare DNS dinamic: valoarea %1 a fost returnată de către serviciu, raportați problema la http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Eroare DNS dinamic: Numele dumneavoastră de utilizator a fost blocat datorită abuzului. - + Dynamic DNS error: supplied domain name is invalid. Eroare DNS dinamic: numele de domeniu furnizat este nevalid. - + Dynamic DNS error: supplied username is too short. Eroare DNS dinamic: numele de utilizator furnizat este prea scurt. - + Dynamic DNS error: supplied password is too short. Eroare DNS dinamic: parola furnizată este prea scurtă. @@ -2467,17 +2496,17 @@ Sigur doriți să închideți qBittorrent? Net::DownloadHandler - + I/O Error Eroare Intrare/Ieșire - + The file size is %1. It exceeds the download limit of %2. Mărimea fișierului este %1. Ea depășește limita de %2. - + Unexpected redirect to magnet URI. Redirecționare neașteptată la URI-ul magnet. @@ -2485,1300 +2514,1300 @@ Sigur doriți să închideți qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Baza de date GeoIP încărcată. Tipul: %1. Data construirii: %2. - - + + Couldn't load GeoIP database. Reason: %1 - Nu s-a putut încărcă baza de date GeoIP. Motivul: %1 + Nu s-a putut încărca baza de date GeoIP. Motivul: %1 - - + + N/A Indisponibil - + Asia/Pacific Region Regiunea Asia-Pacific - + Europe Europa - + Andorra Andorra - + United Arab Emirates Emiratele Arabe Unite - + Afghanistan Afganistan - + Antigua and Barbuda Antigua și Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - + Netherlands Antilles Antilele Olandeze - + Angola Angola - + Antarctica Antarctica - + Argentina Argentina - + American Samoa Samoa Americană - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaidjan - + Bosnia and Herzegovina Bosnia și Herțegovina - + Barbados Barbados - + Bangladesh Bangladeș - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin - + Bermuda Insulele Bermude - + Brunei Darussalam Brunei - + Bolivia Bolivia - + Brazil Brazilia - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Insula Bouvet - + Botswana Botswana - + Belarus Belarus - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Insulele Cocos (Keeling) - + Congo, The Democratic Republic of the Congo, Republica Democrată - + Central African Republic Republica Central Africană - + Congo Congo - + Switzerland Elveția - + Cote D'Ivoire Coasta de Fildeș - + Cook Islands Insulele Cook - + Chile Chile - + Cameroon Camerun - + China China - + Colombia Columbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Insulele Capului Verde - + Christmas Island Insula Crăciunului - + Cyprus Cipru - + Czech Republic Cehia - + Germany Germania - + Djibouti Djibouti - + Denmark Danemarca - + Dominica Dominica - + Dominican Republic Republica Dominicană - + Algeria Algeria - + Ecuador Ecuador - + Estonia Estonia - + Egypt Egipt - + Western Sahara Sahara de vest - + Eritrea Eritreea - + Spain Spania - + Ethiopia Etiopia - + Finland Finlanda - + Fiji Fiji - + Falkland Islands (Malvinas) Insulele Falkland (Malvine) - + Micronesia, Federated States of Statele Federale ale Micronesiei - + Faroe Islands Insulele Feroe - + France Franța - + France, Metropolitan Franța, Metropolitană - + Gabon Gabon - + United Kingdom Regatul Unit - + Grenada Grenada - + Georgia Georgia - + French Guiana Guiana Franceză - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlanda - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guineea Ecuatorială - + Greece Grecia - + South Georgia and the South Sandwich Islands Georgia de Sud și Insulele Sandwich de Sud - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guineea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Insula Heard și Insulele McDonald - + Honduras Honduras - + Croatia Croația - + Haiti Haiti - + Hungary Ungaria - + Indonesia Indonezia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Teritoriul Oceanului Indian Britanic - + Iraq Irac - + Iran, Islamic Republic of Iran - + Iceland Islanda - + Italy Italia - + Jamaica Jamaica - + Jordan Iordania - + Japan Japonia - + Kenya Kenya - + Kyrgyzstan Kârgâzstan - + Cambodia Cambogia - + Kiribati Kiribati - + Comoros Insulele Comore - + Saint Kitts and Nevis Sfântul Cristofor și Nevis - + Korea, Democratic People's Republic of Republica Populară Democrată Coreeană - + Korea, Republic of Republica Coreea - + Kuwait Kuweit - + Cayman Islands Insulele Cayman - + Kazakhstan Kazahstan - + Lao People's Democratic Republic Republica Populară Democrată Laos - + Lebanon Liban - + Saint Lucia Sfânta Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luxemburg - + Latvia Letonia - + Libyan Arab Jamahiriya Libia - + Morocco Maroc - + Monaco Monaco - + Moldova, Republic of Republica Moldova - + Madagascar Madagascar - + Marshall Islands Insulele Marshall - + Macedonia Macedonia - + Mali Mali - + Myanmar Birmania - + Mongolia Mongolia - + Macau Macau - + Northern Mariana Islands Comunitatea Insulelor Mariane de Nord - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Republica Mauritius - + Maldives Insulele Maldive - + Malawi Republica Malawi - + Mexico Mexic - + Malaysia Malaezia - + Mozambique Mozambic - + Namibia Namibia - + New Caledonia Noua Caledonie - + Niger Nigeria - + Norfolk Island Insula Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Olanda - + Norway Norvegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Noua Zeelandă - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Polinezia Franceză - + Papua New Guinea Papua Noua Guinee - + Philippines Filipine - + Pakistan Pakistan - + Poland Polonia - + Saint Pierre and Miquelon Saint Pierre și Miquelon - + Pitcairn Islands Insulele Pitcairn - + Puerto Rico Puerto Rico - + Palestinian Territory Palestina - + Portugal Portugalia - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunion - + Romania România - + Russian Federation Federația Rusă - + Rwanda Ruanda - + Saudi Arabia Arabia Saudită - + Solomon Islands Insulele Solomon - + Seychelles Seișele - + Sudan Sudan - + Sweden Suedia - + Singapore Singapore - + Saint Helena Sfânta Elena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard și Jan Mayen - + Slovakia Slovacia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe São Tomé și Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Siria - + Swaziland Elveția - + Turks and Caicos Islands Insulele Turks și Caicos - + Chad Republica Ciad - + French Southern Territories Teritoriile Sudice Franceze - + Togo Togo - + Thailand Tailanda - + Tajikistan Tadjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor-Leste - + Turkey Turcia - + Trinidad and Tobago Trinidad și Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Ucraina - + Uganda Uganda - + United States Minor Outlying Islands Insulele Minore Îndepartate ale Statelor Unite - + United States Statele Unite - + Uruguay Uruguai - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Vatican - + Saint Vincent and the Grenadines Sfântul Vicențiu și Grenadinele - + Venezuela Venezuela - + Virgin Islands, British Insulele Virgine Britanice - + Virgin Islands, U.S. Insulele Virgine Americane - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis și Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Africa de Sud - + Zambia Zambia - + Montenegro Muntenegru - + Zimbabwe ZImbabwe - + Anonymous Proxy Proxy anonim - + Satellite Provider Furnizor satelit - + Other Altele - + Aland Islands Insulele Åland - + Guernsey Guernsey - + Isle of Man Insula Man - + Jersey Insula Jersey - + Saint Barthelemy Sfântul Bartolomeu - + Saint Martin Sfântul Martin - + Could not uncompress GeoIP database file. Nu s-a putut decomprima fișierul cu baza de date GeoIP. - + Couldn't save downloaded GeoIP database file. Nu s-a putut salva fișierul descărcat cu baza de date GeoIP. - + Successfully updated GeoIP database. Baza de date GeoIP a fost actualizată cu succes. - + Couldn't download GeoIP database file. Reason: %1 Nu s-a putut descărca fișierul cu baza de date GeoIP. Motivul: %1 @@ -3786,12 +3815,12 @@ Sigur doriți să închideți qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] suport UPnP / NAT-PMP [PORNIT] - + UPnP / NAT-PMP support [OFF] suport UPnP / NAT-PMP [OPRIT] @@ -3799,206 +3828,265 @@ Sigur doriți să închideți qBittorrent? Net::Smtp - + Email Notification Error: Eroare de Notificare Email: + + PeerInfo + + + interested(local) and choked(peer) + interesat(local) și sufocat(partener) + + + + interested(local) and unchoked(peer) + interesat(local) și nesufocat(partener) + + + + interested(peer) and choked(local) + interesat(partener) și sufocat(local) + + + + interested(peer) and unchoked(local) + interesat(partener) și nesufocat(local) + + + + optimistic unchoke + desufocare optimistă + + + + peer snubbed + partener ignorat + + + + incoming connection + conexiune de intrare + + + + not interested(local) and unchoked(peer) + neinteresat(local) și nesufocat(partener) + + + + not interested(peer) and unchoked(local) + neinteresat(partener) și nesufocat(local) + + + + peer from PEX + partener prin PEX + + + + peer from DHT + partener prin DHT + + + + encrypted traffic + trafic criptat + + + + encrypted handshake + inițializare criptată + + + + peer from LSD + partener prin LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Indicatori - + Connection Conexiune - + Client i.e.: Client application Client - + Progress i.e: % downloaded Progres - + Down Speed i.e: Download speed Viteză descărcare - + Up Speed i.e: Upload speed Viteză încărcare - + Downloaded i.e: total data downloaded Descărcat - + Uploaded i.e: total data uploaded Încărcart - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevanță - + Add a new peer... Adăugare un partener nou... - + Copy selected Copiază selecția - - + + Ban peer permanently Blochează permanent partenerul - + Manually adding peer '%1'... Se adaugă manual partenerul „%1”... - + The peer '%1' could not be added to this torrent. Partenerul „%1” nu a putut fi adăugat la acest torrent. - + Manually banning peer '%1'... Se blochează manual partenerul „%1”... - + Peer addition Adăugare partener - + Some peers could not be added. Check the Log for details. Unii parteneri nu au putut fi adăugați. Verificați jurnalul pentru detalii. - + The peers were added to this torrent. Partenerii au fost adăugați la acest torrent. - + Are you sure you want to ban permanently the selected peers? Sigur doriți să blocați permanent partenerii selectați? - + &Yes &Da - + &No &Nu - interested(local) and choked(peer) - interesat(local) și sufocat(partener) + interesat(local) și sufocat(partener) - interested(local) and unchoked(peer) - interesat(local) și nesufocat(partener) + interesat(local) și nesufocat(partener) - interested(peer) and choked(local) - interesat(partener) și sufocat(local) + interesat(partener) și sufocat(local) - interested(peer) and unchoked(local) - interesat(partener) și nesufocat(local) + interesat(partener) și nesufocat(local) - optimistic unchoke - desufocare optimistă + desufocare optimistă - peer snubbed - partener ignorat + partener ignorat - incoming connection - conexiune de intrare + conexiune de intrare - not interested(local) and unchoked(peer) - neinteresat(local) și nesufocat(partener) + neinteresat(local) și nesufocat(partener) - not interested(peer) and unchoked(local) - neinteresat(partener) și nesufocat(local) + neinteresat(partener) și nesufocat(local) - peer from PEX - partener prin PEX + partener prin PEX - peer from DHT - partener prin DHT + partener prin DHT - encrypted traffic - trafic criptat + trafic criptat - encrypted handshake - inițializare criptată + inițializare criptată - peer from LSD - partener prin LSD + partener prin LSD @@ -4772,17 +4860,17 @@ Sigur doriți să închideți qBittorrent? Cale filtru (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. A fost detectată o ieșire forțată din program. Se folosește fișierul de rezervă pentru a restaura configurările. - + An access error occurred while trying to write the configuration file. A apărut o eroare de acces când se încerca scrierea fișierului de configurație. - + A format error occurred while trying to write the configuration file. A apărut o eroare de format când se încerca scrierea fișierului de configurație. @@ -4888,299 +4976,298 @@ Sigur doriți să închideți qBittorrent? PropertiesWidget - + Downloaded: Descărcat: - + Availability: Disponibilitate: - + Progress: Progres: - + Transfer Transfer - + Time Active: Time (duration) the torrent is active (not paused) Timp Activ: - + ETA: Timp rămas: - + Uploaded: Încărcat: - + Seeds: Surse: - + Download Speed: Viteză descărcare: - + Upload Speed: Viteză încărcare: - + Peers: Parteneri: - + Download Limit: Limită de descărcare: - + Upload Limit: Limită încărcare: - + Wasted: Pierdut: - + Connections: Conexiuni: - + Information Informații - + Comment: Comentariu: - Torrent content: - Conținut torrent: + Conținut torrent: - + Select All Selectează toate - + Select None Nu selecta nimic - + Normal Normală - + High Înaltă - + Share Ratio: Raport partajare: - + Reannounce In: Reanunțare în: - + Last Seen Complete: Văzut complet ultima dată: - + Total Size: Dimensiune totală: - + Pieces: Bucăți: - + Created By: Creat de: - + Added On: Adăugat la: - + Completed On: Terminat la: - + Created On: Creat la: - + Torrent Hash: Index torrent: - + Save Path: Cale salvare: - + Maximum Maximă - - + + Do not download Nu descărca - + Never Niciodată - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (avem %3) - + %1 (%2 this session) %1 (%2 în această sesiune) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (contribuit pentru %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 în medie) - + Open Deschide - + Open Containing Folder Deschide dosarul conținător - + Rename... Redenumire... - + Priority Prioritate - + New Web seed Sursă Web nouă - + Remove Web seed Elimină sursa Web - + Copy Web seed URL Copiază URL-ul sursei Web - + Edit Web seed URL Editare URL sursă Web - + Rename the file Redenumește fișierul - + New name: Denumire nouă: - - + + The file could not be renamed Fișierul nu a putut fi redenumit - + This file name contains forbidden characters, please choose a different one. Numele fișierului conține caractere interzise. Alegeți unul diferit. - - + + This name is already in use in this folder. Please use a different name. Acest nume este deja folosit în acest dosar. Alegeți un nume diferit. - + The folder could not be renamed Dosarul nu a putut fi redenumit - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Sigur doriți să închideți qBittorrent? Filtrare fișiere... - + New URL seed New HTTP source Sursă URL nouă - + New URL seed: Sursa URL nouă: - - + + This URL seed is already in the list. Această sursă URL este deja în listă. - + Web seed editing Editare sursă Web - + Web seed URL: URL sursă Web: @@ -5225,18 +5312,18 @@ Sigur doriți să închideți qBittorrent? Adresa dumneavoastră IP a fost interzisă după prea multe încercări de autentificare eșuate. - + Error: '%1' is not a valid torrent file. Eroare: „%1” nu este un fișier torrent valid. - + Error: Could not add torrent to session. Eroare: Nu s-a putut adăuga torrentul acestei sesiuni. - + I/O Error: Could not create temporary file. Eroare Intrare/Ieșire: Nu se poate crea fișierul temporar. @@ -5350,7 +5437,7 @@ Nu vor fi emise alte notificări. Cancel - Anulează + Renunță @@ -5389,138 +5476,138 @@ Nu vor fi emise alte notificări. [qBittorrent] '%1' a terminat descărcarea - + The remote host name was not found (invalid hostname) Numele gazdei la distanță nu a fost găsit (nume de gazdă nevalid) - + The operation was canceled Operația a fost anulată - + The remote server closed the connection prematurely, before the entire reply was received and processed Serverul la distanță a închis conexiunea prematur, înainte ca întregul răspuns să fie primit și procesat - + The connection to the remote server timed out Conexiunea la serverul la distanță a expirat - + SSL/TLS handshake failed Inițierea conexiunii SSL/TLS a eșuat - + The remote server refused the connection Serverul la distanță a refuzat conexiunea - + The connection to the proxy server was refused Conexiunea la serverul proxy a fost refuzată - + The proxy server closed the connection prematurely Serverul proxy a închis conexiunea prematur - + The proxy host name was not found Numele de gazdă al serverului proxy nu a fost găsit - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Conexiunea la proxy terminată sau proxy-ul nu a răspuns la timp cererii trimise - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Proxy-ul cere autentificare pentru a putea onora cererea dar nu a acceptat certificările oferite - + The access to the remote content was denied (401) Accesul la conținutul la distanță a fost refuzat (401) - + The operation requested on the remote content is not permitted Operațiunea cerută asupra conținutului la distanță nu este permisă - + The remote content was not found at the server (404) Conținutul la distanță nu a fost găsit pe acest server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Serverul la distanță cere autentificare pentru a furniza conținutul dar certificările oferite nu au fost acceptate - + The Network Access API cannot honor the request because the protocol is not known API-ul de acces la rețea nu poate onora cererea deoarece protocolul nu este cunoscut - + The requested operation is invalid for this protocol Operațiunea cerută nu este validă pentru acest protocol - + An unknown network-related error was detected O eroare necunoscută legată de rețea a fost detectată - + An unknown proxy-related error was detected O eroare necunoscută legată de proxy a fost detectată - + An unknown error related to the remote content was detected O eroare necunocută legată de conținutul la distanță a fost detectată - + A breakdown in protocol was detected O întrerupere a fost detectată în protocol - + Unknown error Eroare necunoscută - - + + Upgrade Actualizează - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Ați actualizat de la o versiune mai veche ce a salvat setările în mod diferit. Trebuie să migrați setările la noul sistem de salvare. Nu veți mai putea folosi o versiune mai veche de v3.3.0 altă dată. Continuați? [d/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Ați actualizat de la o versiune mai veche ce a salvat setările în mod diferit. Trebuie să migrați setările la noul sistem de salvare. Dacă alegeți să continuați nu veți mai putea folosi o versiune mai veche de v3.3.0 altă dată. - + Couldn't migrate torrent with hash: %1 Nu s-a reușit migrarea torrentului cu indexul: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nu s-a reușit migrarea torrentului. Nume fișier nevalid: %1 @@ -5709,12 +5796,12 @@ Nu vor fi emise alte notificări. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Descărcare automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... Descărcare automată a %1 torrent de la %2 fluxuri RSS... @@ -5758,17 +5845,17 @@ Nu vor fi emise alte notificări. ScanFoldersModel - + Watched Folder Dosar urmărit - + Download here Descarcă aici - + Download path Cale descărcare @@ -5983,7 +6070,7 @@ Nu vor fi emise alte notificări. The computer will now be switched off unless you cancel within the next %1 seconds. - Calculatorul se va opri dacă nu anulați acțiunea în %1 secunde. + Calculatorul se va opri dacă nu renunțați la acțiune în %1 secunde. @@ -5993,7 +6080,7 @@ Nu vor fi emise alte notificări. The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - Calculatorul va hiberna dacă nu anulați acțiunea în %1 secunde. + Calculatorul va intra în modul hibernare dacă nu renunțați la acțiune în %1 secunde. @@ -6768,7 +6855,7 @@ Nu vor fi emise alte notificări. Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - Nu s-a putut decodifica favicon-ul pentru URL „%1” Se încearcă descărcarea lui în formatul PNG. + Nu s-a putut decodifica favicon-ul pentru URL-ul „%1”. Se încearcă descărcarea lui în formatul PNG. @@ -7189,7 +7276,7 @@ Nu vor fi emise alte notificări. Limit download rate... - Limitează rata de descărcare... + Limitare rată de descărcare... @@ -7200,13 +7287,13 @@ Nu vor fi emise alte notificări. Move up i.e. move up in the queue - Mută în sus + Mută mai sus Move down i.e. Move down in the queue - Mută în jos + Mută mai jos @@ -7434,7 +7521,7 @@ Nu vor fi emise alte notificări. Cancel - Anulare + Renunță @@ -7545,7 +7632,7 @@ Nu vor fi emise alte notificări. Auto - Automat + Automată @@ -7578,7 +7665,7 @@ Nu vor fi emise alte notificări. Add torrent links - Adaugă legături torrent + Adăugați legături torrent @@ -7593,12 +7680,12 @@ Nu vor fi emise alte notificări. Cancel - Anulare + Renunță Download from urls - Descarcă de la URL-uri + Descărcare de la URL-uri @@ -7828,11 +7915,11 @@ Cu toate acestea, acele extensii au fost dezactivate. fsutils - - - - - + + + + + Downloads Descărcări @@ -7840,103 +7927,103 @@ Cu toate acestea, acele extensii au fost dezactivate. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiO - + MiB mebibytes (1024 kibibytes) MiO - + GiB gibibytes (1024 mibibytes) GiO - + TiB tebibytes (1024 gibibytes) TiO - + Python not detected Python nedetectat - + Python version: %1 Versiune Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1z %2h - + Unknown Unknown (size) Necunoscut - + qBittorrent will shutdown the computer now because all downloads are complete. - qBittorrent va închide acum calculatorul deoarece toate descărcările au fost finalizate. + qBittorrent va opri acum calculatorul deoarece toate descărcările au fost finalizate. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Funcțional - + Updating... Se actualizează... - + Not working Nefuncțional - + Not contacted yet Nu a fost contactat încă @@ -7960,7 +8047,7 @@ Cu toate acestea, acele extensii au fost dezactivate. Add directory to scan - Adaugă director de scanat + Adăugați director de scanat diff --git a/src/lang/qbittorrent_ru.ts b/src/lang/qbittorrent_ru.ts index 2d87f9cba..6c518a823 100644 --- a/src/lang/qbittorrent_ru.ts +++ b/src/lang/qbittorrent_ru.ts @@ -125,217 +125,222 @@ Не проверять контрольную сумму - + + Set as default label + + + + Torrent Information Сведения о торренте - + Size: Размер: - + Comment: Комментарий: - + Date: Дата: - + Info Hash: Хеш: - + Normal Обычный - + High Высокий - + Maximum Высший - + Do not download Не загружать - - + + I/O Error Ошибка ввода/вывода - + The torrent file does not exist. Торрент-файл не существует. - + Invalid torrent Некорректный торрент - + Failed to load the torrent: %1 Не удалось загрузить торрент: %1 - - + + Already in download list Уже присутствует в списке загрузок - + Free disk space: %1 Свободно на диске: %1 - + Not Available This comment is unavailable Недоступно - + Not Available This date is unavailable Недоступно - + Not available Недоступно - + Invalid magnet link Некорректная magnet-ссылка - + Torrent is already in download list. Trackers were merged. Торрент уже присутствует в списке загрузок. Трекеры были объединены. - - + + Cannot add torrent Нельзя добавить торрент - + Cannot add this torrent. Perhaps it is already in adding state. Нельзя добавить этот торрент. Возможно, он уже в состоянии добавления. - + This magnet link was not recognized Magnet-ссылка не распознана - + Magnet link is already in download list. Trackers were merged. Magnet-ссылка уже присутствует в списке загрузок. Трекеры были объединены. - + Cannot add this torrent. Perhaps it is already in adding. Нельзя добавить этот торрент. Возможно, он уже добавляется. - + Magnet link Magnet-ссылка - + Retrieving metadata... Получение метаданных… - + Not Available This size is unavailable. Недоступно - - - + + + Choose save path Выберите путь сохранения - + Rename the file Переименовать файл - + New name: Новое имя: - - + + The file could not be renamed Файл не может быть переименован - + This file name contains forbidden characters, please choose a different one. Имя файла содержит недопустимые символы. Пожалуйста, выберите другое. - - + + This name is already in use in this folder. Please use a different name. Файл с таким именем уже существует в этой папке. Пожалуйста, задайте другое. - + The folder could not be renamed Папка не может быть переименована - + Rename... Переименовать… - + Priority Приоритет - + Invalid metadata Некорректные метаданные - + Parsing metadata... Анализ метаданных… - + Metadata retrieval complete Получение метаданных завершено - + Download Error Ошибка загрузки @@ -427,9 +432,8 @@ Определять имя хоста пира - Maximum number of half-open connections [0: Disabled] - Макс. кол-во полуоткрытых соединений [0: Откл.] + Макс. кол-во полуоткрытых соединений [0: Откл.] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Период сохранения данных о загрузках + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID пира: - + HTTP User-Agent is '%1' HTTP User-Agent: %1 - + Anonymous mode [ON] Анонимный режим [Вкл] - + Anonymous mode [OFF] Анонимный режим [Выкл] - + PeX support [ON] Поддержка PeX [Вкл] - + PeX support [OFF] Поддержка PeX [Выкл] - + Restart is required to toggle PeX support Необходим перезапуск для включения поддержки PeX - + Local Peer Discovery support [ON] Обнаружение локальных пиров [Вкл] - + Local Peer Discovery support [OFF] Обнаружение локальных пиров [Выкл] - + Encryption support [ON] Поддержка шифрования [Вкл] - + Encryption support [FORCED] Поддержка шифрования [Принудительно] - + Encryption support [OFF] Поддержка шифрования [Выкл] - + Embedded Tracker [ON] Встроенный трекер [Вкл] - + Failed to start the embedded tracker! Не удалось запустить встроенный трекер! - + Embedded Tracker [OFF] Встроенный трекер [Выкл] - + '%1' reached the maximum ratio you set. Removing... '%1' достиг установленного вами максимального коэффициента. Удаление… - + '%1' reached the maximum ratio you set. Pausing... '%1' достиг установленного вами максимального коэффициента. Приостановка… - Error: Could not create torrent export directory: '%1' - Ошибка: Невозможно создать директорию экспорта торрента: '%1' + Ошибка: Невозможно создать директорию экспорта торрента: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Ошибка: не удалось экспортировать торрент '%1', возможно, он пока не содержит метаданных. + Ошибка: не удалось экспортировать торрент '%1', возможно, он пока не содержит метаданных. - + System network status changed to %1 e.g: System network status changed to ONLINE Системный сетевой статус сменился на %1 - + ONLINE В СЕТИ - + OFFLINE НЕ В СЕТИ - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Настройки сети %1 изменились, обновление привязки сеанса - + Unable to decode '%1' torrent file. Не удалось декодировать торрент-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Рекурсивная загрузка файла '%1' встроена в торрент '%2' - + Couldn't save '%1.torrent' Не удалось сохранить '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. потому что %1 отключен. - + because %1 is disabled. this peer was blocked because TCP is disabled. because %1 is disabled. - + URL seed lookup failed for URL: '%1', message: %2 Поиск адреса раздающего не удался: '%1', сообщение: '%2' - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' был удалён из списка торрентов и с жёсткого диска. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' был удалён из списка торрентов. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Загружается '%1', подождите… - Torrent Export: torrent is invalid, skipping... - Экспорт торрента: торрент недоступен, пропуск… + Экспорт торрента: торрент недоступен, пропуск… - + DHT support [ON] Поддержка DHT [Вкл] - + DHT support [OFF]. Reason: %1 Поддержка DHT [Выкл]. Причина: %1 - + DHT support [OFF] Поддержка DHT [Выкл] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 пытаемся использовать порт %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - попытка использования порта %1 провалилась. Причина: %2 + попытка использования порта %1 провалилась. Причина: %2 - + The network interface defined is invalid: %1 Указанный сетевой интерфейс недоступен: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 пытаемся использовать порт %2 на интерфейсе %1 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on Адрес %1 не найден. Прослушивание недоступно для данного адреса. - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + попытка использования порта %1 провалилась. Причина: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Трекер '%1' добавлен в торрент '%2' - + Tracker '%1' was deleted from torrent '%2' Трекер '%1' удалён из торрента '%2' - + URL seed '%1' was added to torrent '%2' Адрес источника '%1' добавлен в торрент '%2' - + URL seed '%1' was removed from torrent '%2' Адрес источника '%1' удалён из торрента '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Неудалось возобновить торрент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Указанный фильтр IP был успешно разобран: %1 правил применено. - + Error: Failed to parse the provided IP filter. Ошибка: невозможно разобрать фильтр IP. - + Couldn't add torrent. Reason: %1 Не удалось добавить торрент. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) %1 возобновлен. (быстрое возобновление) - + '%1' added to download list. 'torrent name' was added to download list. '%1' добавлен в список загрузок. - + An I/O error occurred, '%1' paused. %2 Ошибка ввода/вывода, '%1' приостановлен. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 Распределение портов UPnP/NAT-PMP не удалось с сообщением: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 Распределение портов UPnP/NAT-PMP прошло успешно: %1 - + due to IP filter. this peer was blocked due to ip filter. в соответствии с IP-фильтром. - + due to port filter. this peer was blocked due to port filter. в соответствии с фильтром портов. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. согласно ограничениями смешанного режима i2p. - + because it has a low port. this peer was blocked because it has a low port. так как они имеют низкий порт. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 порт %2/%3 на интерфейсе %1 успешно занят - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4 + попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Внешний IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Не удалось переместить торрент: '%1'. Причина: %2 - + File sizes mismatch for torrent '%1', pausing it. Несовпадение размеров файлов для торрента '%1', приостановка. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Быстрое восстановление данных для торрента '%1' было отклонено. Причина: %2. Повтор проверки… @@ -1307,20 +1323,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Ошибка ввода-вывода: Не удалось открыть файл фильтра IP в режиме чтения. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Ошибка разбора: Файл фильтра не является рабочим файлом PeerGuardian P2B. @@ -1328,43 +1344,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. Неподдерживаемый размер файла данных. - + Metadata error: '%1' entry not found. Ошибка метаданных: запись '%1' не найдена. - + Metadata error: '%1' entry has invalid type. Ошибка метаданных: запись '%1' имеет неверный тип. - + Unsupported database version: %1.%2 Неподдерживаемая версия базы данных: %1.%2 - + Unsupported IP version: %1 Неподдерживаемая версия IP: %1 - + Unsupported record size: %1 Неподдерживаемый размер записи: %1 - + Invalid database type: %1 Неверный тип базы данных: %1 - + Database corrupted: no data section found. База данных повреждена: не найден раздел данных. @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. Только одна ссылка в строке - Download local torrent - Загрузить локальный торрент + Загрузить локальный торрент @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. Неактивны - + + Save files to location: + Путь сохранения по умолчанию: + + + + Label: + Метка: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Загружен @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout Выйти + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Очистить текст @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit П&равка - + &Tools Инс&трументы - + &File &Файл - + &Help &Помощь - + On Downloads &Done По &окончании загрузок - + &View &Вид - + &Options... &Настройки… @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. &Возобновить - + Torrent &Creator &Создать торрент - + Set Upload Limit... Установить ограничение отдачи… - + Set Download Limit... Установить ограничение загрузки… - + Set Global Download Limit... Установить ограничение загрузки… - + Set Global Upload Limit... Установить ограничение отдачи… - + Minimum Priority Низший приоритет - + Top Priority Высший приоритет - + Decrease Priority Понизить приоритет - + Increase Priority Повысить приоритет - - + + Alternative Speed Limits Иные ограничения скорости - + &Top Toolbar Панель &инструментов - + Display Top Toolbar Показывать панель инструментов - + S&peed in Title Bar &Скорость в заголовке - + Show Transfer Speed in Title Bar Отображать текущую скорость в заголовке окна - + &RSS Reader &RSS менеджер - + Search &Engine Поисковый движок - + L&ock qBittorrent &Заблокировать qBittorrent - + &Import Existing Torrent... &Импортировать торрент… - + Import Torrent... Импортировать торрент… - + Do&nate! Пожертвовать! - + R&esume All Воз&обновить все - + &Log &Журнал - + &Exit qBittorrent &Выйти из qBittorrent - + &Suspend System &Перейти в ждущий режим - + &Hibernate System &Перейти в спящий режим - + S&hutdown System &Выключить компьютер - + &Disabled &Ничего не делать - + &Statistics &Статистика - + Check for Updates Проверить обновления - + Check for Program Updates Проверить наличие обновлений @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. &О qBittorrent - Exit - Выход + Выход - + &Pause &Приостановить - + &Delete &Удалить - + P&ause All П&риостановить все - + &Add Torrent File... &Добавить торрент-файл… - + Open Открыть - + E&xit &Выход - Options - Настройки + Настройки - Resume - Возобновить + Возобновить - Pause - Приостановить + Приостановить - Delete - Удалить + Удалить - + Open URL Открыть ссылку - + &Documentation &Документация - + Lock Заблокировать - + Show Показать @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. Проверить наличие обновлений - Lock qBittorrent - Заблокировать qBittorrent + Заблокировать qBittorrent - + Add Torrent &Link... Добавить &ссылку на торрент… - + If you like qBittorrent, please donate! Если вам нравится qBittorrent, пожалуйста, пожертвуйте! - + Execution Log Лог выполнения @@ -2414,52 +2443,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Ваш динамический DNS был успешно обновлён. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Ошибка динамического DNS: служба временно недоступна. Повтор попытки соединения через 30 минут. - + Dynamic DNS error: hostname supplied does not exist under specified account. Ошибка динамического DNS: предоставленное имя хоста не существует в указанной учётной записи. - + Dynamic DNS error: Invalid username/password. Ошибка динамического DNS: неверный логин или пароль. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Ошибка динамического DNS: qBittorrent внесён службой в чёрный список. Пожалуйста, сообщите об ошибке на http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Ошибка динамического DNS: служба вернула %1. Пожалуйста, сообщите об ошибке на http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Ошибка динамического DNS: ваш аккаунт был заблокирован из-за злоупотребления. - + Dynamic DNS error: supplied domain name is invalid. Ошибка динамического DNS: предоставленное доменное имя неверное. - + Dynamic DNS error: supplied username is too short. Ошибка динамического DNS: предоставленное имя пользователя слишком короткое. - + Dynamic DNS error: supplied password is too short. Ошибка динамического DNS: предоставленный пароль слишком короткий. @@ -2467,17 +2496,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error Ошибка ввода/вывода - + The file size is %1. It exceeds the download limit of %2. Размер файла - %1, что превышает ограничение загрузки %2. - + Unexpected redirect to magnet URI. Неожиданная переадресация к magnet-ссылке. @@ -2485,1300 +2514,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. База данных GeoIP загружена. Тип: %1. Время построения: %2. - - + + Couldn't load GeoIP database. Reason: %1 Не удалось загрузить базу данных GeoIP. Причина: %1 - - + + N/A Н/Д - + Asia/Pacific Region Азиатско-Тихоокеанский регион - + Europe Европа - + Andorra Андорра - + United Arab Emirates Объединенные Арабские Эмираты - + Afghanistan Афганистан - + Antigua and Barbuda Антигуа и Барбуда - + Anguilla Ангилья - + Albania Албания - + Armenia Армения - + Netherlands Antilles Нидерландские Антильские острова - + Angola Ангола - + Antarctica Антарктида - + Argentina Аргентина - + American Samoa Американское Самоа - + Austria Австрия - + Australia Австралия - + Aruba Аруба - + Azerbaijan Азербайджан - + Bosnia and Herzegovina Босния и Герцеговина - + Barbados Барбадос - + Bangladesh Бангладеш - + Belgium Бельгия - + Burkina Faso Буркина-Фасо - + Bulgaria Болгария - + Bahrain Бахрейн - + Burundi Бурунди - + Benin Бенин - + Bermuda Бермудские острова - + Brunei Darussalam Бруней-Даруссалам - + Bolivia Боливия - + Brazil Бразилия - + Bahamas Багамские Острова - + Bhutan Бутан - + Bouvet Island Остров Буве - + Botswana Ботсвана - + Belarus Беларусь - + Belize Белиз - + Canada Канада - + Cocos (Keeling) Islands Кокосовые острова - + Congo, The Democratic Republic of the Демократическая Республика Конго - + Central African Republic Центральноафриканская Республика - + Congo Республика Конго - + Switzerland Швейцария - + Cote D'Ivoire Кот-д'Ивуар - + Cook Islands Острова Кука - + Chile Чили - + Cameroon Камерун - + China Китай - + Colombia Колумбия - + Costa Rica Коста-Рика - + Cuba Куба - + Cape Verde Кабо-Верде - + Christmas Island Остров Рождества - + Cyprus Кипр - + Czech Republic Чехия - + Germany Германия - + Djibouti Джибути - + Denmark Дания - + Dominica Доминика - + Dominican Republic Доминиканская Республика - + Algeria Алжир - + Ecuador Эквадор - + Estonia Эстония - + Egypt Египет - + Western Sahara Западная Сахара - + Eritrea Эритрея - + Spain Испания - + Ethiopia Эфиопия - + Finland Финляндия - + Fiji Фиджи - + Falkland Islands (Malvinas) Фолклендские острова - + Micronesia, Federated States of Федеративные Штаты Микронезии - + Faroe Islands Фарерские острова - + France Франция - + France, Metropolitan Метрополия Франции - + Gabon Габон - + United Kingdom Великобритания - + Grenada Гренада - + Georgia Грузия - + French Guiana Французская Гвиана - + Ghana Гана - + Gibraltar Гибралтар - + Greenland Гренландия - + Gambia Гамбия - + Guinea Гвинея - + Guadeloupe Гваделупа - + Equatorial Guinea Экваториальная Гвинея - + Greece Греция - + South Georgia and the South Sandwich Islands Южная Георгия и Южные Сандвичевы Острова - + Guatemala Гватемала - + Guam Гуам - + Guinea-Bissau Гвинея-Бисау - + Guyana Гайана - + Hong Kong Гонконг - + Heard Island and McDonald Islands Остров Херд и острова Макдональд - + Honduras Гондурас - + Croatia Хорватия - + Haiti Гаити - + Hungary Венгрия - + Indonesia Индонезия - + Ireland Ирландия - + Israel Израиль - + India Индия - + British Indian Ocean Territory Британская территория в Индийском океане - + Iraq Ирак - + Iran, Islamic Republic of Иран - + Iceland Исландия - + Italy Италия - + Jamaica Ямайка - + Jordan Иордания - + Japan Япония - + Kenya Кения - + Kyrgyzstan Киргизия - + Cambodia Камбоджа - + Kiribati Кирибати - + Comoros Коморы - + Saint Kitts and Nevis Сент-Китс и Невис - + Korea, Democratic People's Republic of Корейская Народно-Демократическая Республика - + Korea, Republic of Республика Корея - + Kuwait Кувейт - + Cayman Islands Острова Кайман - + Kazakhstan Казахстан - + Lao People's Democratic Republic Лаос - + Lebanon Ливан - + Saint Lucia Сент-Люсия - + Liechtenstein Лихтенштейн - + Sri Lanka Шри-Ланка - + Liberia Либерия - + Lesotho Лесото - + Lithuania Литва - + Luxembourg Люксембург - + Latvia Латвия - + Libyan Arab Jamahiriya Ливия - + Morocco Марокко - + Monaco Монако - + Moldova, Republic of Молдавия - + Madagascar Мадагаскар - + Marshall Islands Маршалловы Острова - + Macedonia Македония - + Mali Мали - + Myanmar Мьянма - + Mongolia Монголия - + Macau Макао - + Northern Mariana Islands Северные Марианские острова - + Martinique Мартиника - + Mauritania Мавритания - + Montserrat Монтсеррат - + Malta Мальта - + Mauritius Маврикий - + Maldives Мальдивы - + Malawi Малави - + Mexico Мексика - + Malaysia Малайзия - + Mozambique Мозамбик - + Namibia Намибия - + New Caledonia Новая Каледония - + Niger Нигер - + Norfolk Island Норфолк - + Nigeria Нигерия - + Nicaragua Никарагуа - + Netherlands Нидерланды - + Norway Норвегия - + Nepal Непал - + Nauru Науру - + Niue Ниуэ - + New Zealand Новая Зеландия - + Oman Оман - + Panama Панама - + Peru Перу - + French Polynesia Французская Полинезия - + Papua New Guinea Папуа — Новая Гвинея - + Philippines Филиппины - + Pakistan Пакистан - + Poland Польша - + Saint Pierre and Miquelon Сен-Пьер и Микелон - + Pitcairn Islands Острова Питкэрн - + Puerto Rico Пуэрто-Рико - + Palestinian Territory Палестина - + Portugal Португалия - + Palau Палау - + Paraguay Парагвай - + Qatar Катар - + Reunion Реюньон - + Romania Румыния - + Russian Federation Российская Федерация - + Rwanda Руанда - + Saudi Arabia Саудовская Аравия - + Solomon Islands Соломоновы Острова - + Seychelles Сейшельские Острова - + Sudan Судан - + Sweden Швеция - + Singapore Сингапур - + Saint Helena Остров Святой Елены - + Slovenia Словения - + Svalbard and Jan Mayen Шпицберген и Ян-Майен - + Slovakia Словакия - + Sierra Leone Сьерра-Леоне - + San Marino Сан-Марино - + Senegal Сенегал - + Somalia Сомали - + Suriname Суринам - + Sao Tome and Principe Сан-Томе и Принсипи - + El Salvador Сальвадор - + Syrian Arab Republic Сирия - + Swaziland Свазиленд - + Turks and Caicos Islands Теркс и Кайкос - + Chad Чад - + French Southern Territories Французские Южные и Антарктические территории - + Togo Того - + Thailand Thailand - + Tajikistan Таджикистан - + Tokelau Токелау - + Turkmenistan Туркмения - + Tunisia Тунис - + Tonga Тонга - + Timor-Leste Восточный Тимор - + Turkey Турция - + Trinidad and Tobago Тринидад и Тобаго - + Tuvalu Тувалу - + Taiwan Тайвань - + Tanzania, United Republic of Танзания - + Ukraine Украина - + Uganda Уганда - + United States Minor Outlying Islands Внешние малые острова США - + United States Соединённые Штаты Америки - + Uruguay Уругвай - + Uzbekistan Узбекистан - + Holy See (Vatican City State) Ватикан - + Saint Vincent and the Grenadines Сент-Винсент и Гренадины - + Venezuela Венесуэла - + Virgin Islands, British Британские Виргинские острова - + Virgin Islands, U.S. Виргинские Острова - + Vietnam Вьетнам - + Vanuatu Вануату - + Wallis and Futuna Уоллис и Футуна - + Samoa Самоа - + Yemen Йемен - + Mayotte Майотта - + Serbia Сербия - + South Africa Южно-Африканская Республика - + Zambia Замбия - + Montenegro Черногория - + Zimbabwe Зимбабве - + Anonymous Proxy Анонимный прокси - + Satellite Provider Спутниковый провайдер - + Other Другое - + Aland Islands Аландские острова - + Guernsey Гернси - + Isle of Man Остров Мэн - + Jersey Джерси - + Saint Barthelemy Сен-Бартелеми - + Saint Martin Сен-Мартен - + Could not uncompress GeoIP database file. Не удалось распаковать файл базы данных GeoIP. - + Couldn't save downloaded GeoIP database file. Не удалось сохранить загруженный файл базы данных GeoIP. - + Successfully updated GeoIP database. База данных GeoIP успешно обновлена. - + Couldn't download GeoIP database file. Reason: %1 Не удалось загрузить файл базы данных GeoIP. Причина: %1 @@ -3786,12 +3815,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Поддержка UPnP / NAT-PMP [Вкл] - + UPnP / NAT-PMP support [OFF] Поддержка UPnP / NAT-PMP [Выкл] @@ -3799,206 +3828,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Ошибка оповещения по e-mail: + + PeerInfo + + + interested(local) and choked(peer) + заинтересованный (клиент) и блокированный (пир) + + + + interested(local) and unchoked(peer) + заинтересованный (клиент) и разблокированный (пир) + + + + interested(peer) and choked(local) + заинтересованный (пир) и блокированный (клиент) + + + + interested(peer) and unchoked(local) + заинтересованный (пир) и разблокированный (клиент) + + + + optimistic unchoke + оптимистичная разблокировка + + + + peer snubbed + застопоренный пир + + + + incoming connection + входящее соединение + + + + not interested(local) and unchoked(peer) + незаинтересованный (клиент) и разблокированный (пир) + + + + not interested(peer) and unchoked(local) + незаинтересованный (пир) и разблокированный (клиент) + + + + peer from PEX + пир из PEX + + + + peer from DHT + пир из DHT + + + + encrypted traffic + шифрованное соединение + + + + encrypted handshake + шифрованное "рукопожатие" + + + + peer from LSD + пир из LSD + + PeerListWidget - + IP IP - + Port Порт - + Flags Флаги - + Connection Соединение - + Client i.e.: Client application Клиент - + Progress i.e: % downloaded Прогресс - + Down Speed i.e: Download speed Скорость загрузки - + Up Speed i.e: Upload speed Скорость отдачи - + Downloaded i.e: total data downloaded Загружено - + Uploaded i.e: total data uploaded Отдано - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Релевантность - + Add a new peer... Добавить нового пира… - + Copy selected Копировать выделенное - - + + Ban peer permanently Заблокировать пира навсегда - + Manually adding peer '%1'... Ручное добавление пира '%1'… - + The peer '%1' could not be added to this torrent. - Сен-Мартен + Пир '%1' не может быть добавлен к этому торренту. - + Manually banning peer '%1'... Ручкая блокировка пира '%1'... - + Peer addition Добавление пира - + Some peers could not be added. Check the Log for details. Некоторые пиры не могут быть добавлены. Смотрите лог для деталей. - + The peers were added to this torrent. Пиры были добавлен к этому торренту. - + Are you sure you want to ban permanently the selected peers? Вы уверены, что хотите навсегда заблокировать выделенных пиров? - + &Yes &Да - + &No &Нет - interested(local) and choked(peer) - заинтересованный (клиент) и блокированный (пир) + заинтересованный (клиент) и блокированный (пир) - interested(local) and unchoked(peer) - заинтересованный (клиент) и разблокированный (пир) + заинтересованный (клиент) и разблокированный (пир) - interested(peer) and choked(local) - заинтересованный (пир) и блокированный (клиент) + заинтересованный (пир) и блокированный (клиент) - interested(peer) and unchoked(local) - заинтересованный (пир) и разблокированный (клиент) + заинтересованный (пир) и разблокированный (клиент) - optimistic unchoke - оптимистичная разблокировка + оптимистичная разблокировка - peer snubbed - застопоренный пир + застопоренный пир - incoming connection - входящее соединение + входящее соединение - not interested(local) and unchoked(peer) - незаинтересованный (клиент) и разблокированный (пир) + незаинтересованный (клиент) и разблокированный (пир) - not interested(peer) and unchoked(local) - незаинтересованный (пир) и разблокированный (клиент) + незаинтересованный (пир) и разблокированный (клиент) - peer from PEX - пир из PEX + пир из PEX - peer from DHT - пир из DHT + пир из DHT - encrypted traffic - шифрованное соединение + шифрованное соединение - encrypted handshake - шифрованное "рукопожатие" + шифрованное "рукопожатие" - peer from LSD - пир из LSD + пир из LSD @@ -4772,17 +4860,17 @@ Are you sure you want to quit qBittorrent? Путь к фильтрам (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Обнаружено некорректное завешение программы. Производится попытка восстановить настройки из резервной копии. - + An access error occurred while trying to write the configuration file. Ошибка доступа при попытке записи файла конфигурации. - + A format error occurred while trying to write the configuration file. Ошибка формата при попытке записи файла конфигурации. @@ -4888,299 +4976,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Загружено: - + Availability: Доступно: - + Progress: Прогресс: - + Transfer Передача - + Time Active: Time (duration) the torrent is active (not paused) Активен: - + ETA: Осталось: - + Uploaded: Отдано: - + Seeds: Сиды: - + Download Speed: Загрузка: - + Upload Speed: Отдача: - + Peers: Пиры: - + Download Limit: Огр. загрузки: - + Upload Limit: Огр. отдачи: - + Wasted: Потеряно: - + Connections: Соединения: - + Information Информация - + Comment: Комментарий: - Torrent content: - Содержимое торрента: + Содержимое торрента: - + Select All Выбрать все - + Select None Отменить выбор - + Normal Обычный - + High Высокий - + Share Ratio: Коэффициент: - + Reannounce In: След. анонс: - + Last Seen Complete: Замечен целиком: - + Total Size: Общий объем: - + Pieces: Частей: - + Created By: Создан в: - + Added On: Добавлен: - + Completed On: Завершён: - + Created On: Дата создания: - + Torrent Hash: Хеш торрента: - + Save Path: Путь сохранения: - + Maximum Высший - - + + Do not download Не загружать - + Never Никогда - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (из них есть %3) - + %1 (%2 this session) %1 (%2 за эту сессию) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (раздаётся в течении %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 макс) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 всего) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 сред.) - + Open Открыть - + Open Containing Folder Открыть папку назначения - + Rename... Переименовать… - + Priority Приоритет - + New Web seed Новый Web-сид - + Remove Web seed Удалить Web-сид - + Copy Web seed URL Копировать адрес веб-сида - + Edit Web seed URL Изменить адрес веб-сида - + Rename the file Переименовать файл - + New name: Новое имя: - - + + The file could not be renamed Файл не может быть переименован - + This file name contains forbidden characters, please choose a different one. Имя файла содержит недопустимые символы. Пожалуйста, выберите другое. - - + + This name is already in use in this folder. Please use a different name. Файл с таким именем уже существует в этой папке. Используйте другое имя. - + The folder could not be renamed Папка не может быть переименована - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Are you sure you want to quit qBittorrent? Фильтр файлов… - + New URL seed New HTTP source Новый адрес раздачи - + New URL seed: Новый адрес раздачи: - - + + This URL seed is already in the list. Этот адрес источника уже в списке. - + Web seed editing Редактирование Web-сида - + Web seed URL: Адрес веб-сида: @@ -5225,19 +5312,19 @@ Are you sure you want to quit qBittorrent? Ваш IP-адрес был забанен после слишком большого количества неудачных попыток аутентификации. - + Error: '%1' is not a valid torrent file. Ошибка: '%1' не является действительным торрент-файлом. - + Error: Could not add torrent to session. Ошибка: не удалось добавить торрент в сеанс. - + I/O Error: Could not create temporary file. Ошибка ввода-вывода: Невозможно создать временный файл @@ -5390,138 +5477,138 @@ No further notices will be issued. [qBittorrent] загрузка '%1' завершена - + The remote host name was not found (invalid hostname) Удаленный хост не был найден (неверное имя хоста) - + The operation was canceled Операция была отменена - + The remote server closed the connection prematurely, before the entire reply was received and processed Сервер закрыл соединение, прежде чем весь ответ был принят и обработан - + The connection to the remote server timed out Время соединения с сервером вышло - + SSL/TLS handshake failed Соединение SSL/TLS не удалось - + The remote server refused the connection Удалённый сервер отклонил соединение - + The connection to the proxy server was refused Прокси-сервер отклонил соединение - + The proxy server closed the connection prematurely Прокси-сервер преждевременно закрыл соединение - + The proxy host name was not found Имя прокси-сервера не было найдено - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Подключение к прокси-серверу истекло или прокси-сервер не ответил на запрос - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Прокси-сервер требует аутентификации, но не принял указанные учетные данные - + The access to the remote content was denied (401) В доступе к сторонним данным было отказано (401) - + The operation requested on the remote content is not permitted В данной операции над сторонними данными отказано - + The remote content was not found at the server (404) Сторонние данные не были найдены на сервере (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Удалённый сервер требует аутентификации для отдачи данных, но указанные учетные данные не были приняты - + The Network Access API cannot honor the request because the protocol is not known API сетевого доступа не может выполнить запрос, потому что протокол неизвестен - + The requested operation is invalid for this protocol Запрошенная операция не поддерживается данным протоколом - + An unknown network-related error was detected Неизвестная сетевая ошибка - + An unknown proxy-related error was detected Неизвестная ошибка прокси-сервера - + An unknown error related to the remote content was detected Неизвестная ошибка сторонних данных - + A breakdown in protocol was detected Ошибка в протоколе - + Unknown error Неизвестная ошибка - - + + Upgrade Обновить - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем вы не сможете использовать версии старее v3.3.0. Продолжить? [у/n] + Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем вы не сможете использовать версии старше v3.3.0. Продолжить? [у/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем вы не сможете использовать версии старее v3.3.0. + Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем вы не сможете использовать версии старше v3.3.0. - + Couldn't migrate torrent with hash: %1 Не удалось перенести торрент с хешем: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Не удалось перенести торрент. Неверное имя файла "быстрого возобновления": %1 @@ -5710,12 +5797,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Автоматическая загрузка '%1' из RSS канала '%2' не удалась, потому что он не содержит торрента или магнет-ссылки... - + Automatically downloading '%1' torrent from '%2' RSS feed... Автоматическая загрузка торрента '%1' с RSS канала '%2'... @@ -5759,17 +5846,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Отслеживаемые папки - + Download here Загружать сюда - + Download path Папка загрузки @@ -7828,11 +7915,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Загрузки @@ -7840,103 +7927,103 @@ Those plugins were disabled. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КБ - + MiB mebibytes (1024 kibibytes) МБ - + GiB gibibytes (1024 mibibytes) ГБ - + TiB tebibytes (1024 gibibytes) Тб - + Python not detected Python не найден - + Python version: %1 Версия Python: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1 ч %2 мин - + %1d %2h e.g: 2days 10hours %1 д %2 ч - + Unknown Unknown (size) Неизвестно - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorent сейчас выключит компьютер, так как все загрузки завершены. - + < 1m < 1 minute < 1м - + %1m e.g: 10minutes %1 мин - + Working Работает - + Updating... Обновляется… - + Not working Не работает - + Not contacted yet Не соединился diff --git a/src/lang/qbittorrent_sk.ts b/src/lang/qbittorrent_sk.ts index ba3e791bc..bd099b862 100644 --- a/src/lang/qbittorrent_sk.ts +++ b/src/lang/qbittorrent_sk.ts @@ -125,217 +125,222 @@ Preskočiť kontrolu hašu - + + Set as default label + + + + Torrent Information Informácie o torrente - + Size: Veľkosť: - + Comment: Komentár: - + Date: Dátum: - + Info Hash: Haš info: - + Normal Normálna - + High Vysoká - + Maximum Maximálna - + Do not download Nesťahovať - - + + I/O Error V/V chyba - + The torrent file does not exist. Súbor .torrent zatiaľ neexistuje. - + Invalid torrent Neplatný torrent - + Failed to load the torrent: %1 Nepodarilo sa načítať torrent: %1 - - + + Already in download list Už sa nachádza v zozname sťahovaných - + Free disk space: %1 Voľné miesto na disku: %1 - + Not Available This comment is unavailable Nedostupný - + Not Available This date is unavailable Nedostupný - + Not available Nedostupný - + Invalid magnet link Neplatný odkaz Magnet - + Torrent is already in download list. Trackers were merged. Torrent sa už nachádza v zozname sťahovaných. Trackery boli zlúčené. - - + + Cannot add torrent Nepodarilo sa pridať torrent - + Cannot add this torrent. Perhaps it is already in adding state. Nepodarilo sa pridať torrent. Pravdepodobne už je v zozname pridávaných. - + This magnet link was not recognized Tento odkaz Magnet nebol rozpoznaný - + Magnet link is already in download list. Trackers were merged. Odkaz Magnet sa už nachádza v zozname sťahovaných. Trackery boli zlúčené. - + Cannot add this torrent. Perhaps it is already in adding. Nepodarilo sa pridať torrent. Pravdepodobne už je v zozname pridávaných. - + Magnet link Odkaz Magnet - + Retrieving metadata... Získavajú sa metadáta... - + Not Available This size is unavailable. Nedostupný - - - + + + Choose save path Zvoľte cieľový adresár - + Rename the file Premenovať súbor - + New name: Nový názov: - - + + The file could not be renamed Nebolo možné premenovať súbor - + This file name contains forbidden characters, please choose a different one. Tento názov súboru obsahuje nepovolené znaky. Prosím, zvoľte iný názov. - - + + This name is already in use in this folder. Please use a different name. Tento názov sa v tomto adresári už používa. Prosím, zvoľte iný názov. - + The folder could not be renamed Nebolo možné premenovať priečinok - + Rename... Premenovať... - + Priority Priorita - + Invalid metadata Neplatné metadáta - + Parsing metadata... Spracovávajú sa metadáta... - + Metadata retrieval complete Získavanie metadát dokončené - + Download Error Chyba pri sťahovaní @@ -427,9 +432,8 @@ Prekladať názvy počítačov rovesníkov - Maximum number of half-open connections [0: Disabled] - Maximálny počet polootvorených spojení [0: vypnuté] + Maximálny počet polootvorených spojení [0: vypnuté] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Ulož interval dát pre pokračovanie + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID rovesníka: - + HTTP User-Agent is '%1' HTTP User-Agent je '%1' - + Anonymous mode [ON] Anonymný režim [zapnutý] - + Anonymous mode [OFF] Anonymný režim [vypnutý] - + PeX support [ON] Podpora PeX [zapnutá] - + PeX support [OFF] Podpora PeX [vypnutá] - + Restart is required to toggle PeX support Na zmenenie podpory PeX je potrebný reštart - + Local Peer Discovery support [ON] Podpora Local Peer Discovery [zapnutá] - + Local Peer Discovery support [OFF] Podpora Local Peer Discovery support [vypnutá] - + Encryption support [ON] Podpora šifrovania [zapnutá] - + Encryption support [FORCED] Podpora šifrovania [vynútená] - + Encryption support [OFF] Podpora šifrovania [vypnutá] - + Embedded Tracker [ON] Zabudovaný tracker [zapnutý] - + Failed to start the embedded tracker! Nepodarilo sa spustiť zabudovaný tracker! - + Embedded Tracker [OFF] Zabudovaný tracker [vypnutý] - + '%1' reached the maximum ratio you set. Removing... '%1' dosiahol nastavený maximálny pomer zdieľania. Odstraňujem... - + '%1' reached the maximum ratio you set. Pausing... '%1' dosiahol nastavený maximálny pomer zdieľania. Pozastavujem... - Error: Could not create torrent export directory: '%1' - Chyba: Nepodarilo sa vytvoriť adresár pre exportovanie torrentov: '%1' + Chyba: Nepodarilo sa vytvoriť adresár pre exportovanie torrentov: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Chyba: nepodarilo sa exportovať torrent '%1', zrejme ešte nemá metadáta. + Chyba: nepodarilo sa exportovať torrent '%1', zrejme ešte nemá metadáta. - + System network status changed to %1 e.g: System network status changed to ONLINE Stav siete systému sa zmenil na %1 - + ONLINE pripojený - + OFFLINE nepripojený - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfigurácia siete %1 sa zmenila, obnovuje sa väzba relácie - + Unable to decode '%1' torrent file. Nepodarilo sa dekódovať torrentový súbor '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurzívne sťahovanie súboru '%1' vnoreného v torrente '%2' - + Couldn't save '%1.torrent' Nepodarilo sa uložiť '%1.torrent'. - + because %1 is disabled. this peer was blocked because uTP is disabled. pretože %1 je zakázané. - + because %1 is disabled. this peer was blocked because TCP is disabled. pretože %1 je zakázané. - + URL seed lookup failed for URL: '%1', message: %2 Vyhľadanie URL seedu zlyhalo pre URL: '%1', správa: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... „%1“ bol odstránený zo zoznamu sťahovaných a z pevného disku. - + '%1' was removed from transfer list. 'xxx.avi' was removed... „%1“ bol odstránený zo zoznamu sťahovaných. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Prebieha sťahovanie „%1“, čakajte prosím... - Torrent Export: torrent is invalid, skipping... - Export torrentov: torrent nie je platný, preskakujem... + Export torrentov: torrent nie je platný, preskakujem... - + DHT support [ON] Podpora DHT [zapnutá] - + DHT support [OFF]. Reason: %1 Podpora DHT [vypnutá]. Dôvod: %1 - + DHT support [OFF] Podpora DHT [vypnutá] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sa pokúša počúvať na všetkých rozhraniach na porte: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrentu sa nepodarilo počúvať nažiadnom porte rozhrania: %1. Dôvod: %2 + qBittorrentu sa nepodarilo počúvať nažiadnom porte rozhrania: %1. Dôvod: %2 - + The network interface defined is invalid: %1 Definované sieťové rozhranie je neplatné: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sa pokúša počúvať na rozhraní %1 na porte: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nenašiel lokálnu adresu %1, na ktorej by mohol počúvať - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrentu sa nepodarilo počúvať nažiadnom porte rozhrania: %1. Dôvod: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Tracker „%1“ bol pridaný do torrentu „%2“ - + Tracker '%1' was deleted from torrent '%2' Tracker „%1“ bol vymazaný z torrentu „%2“ - + URL seed '%1' was added to torrent '%2' URL seed „%1“ bolo pridané do torrentu „%2“ - + URL seed '%1' was removed from torrent '%2' URL seed „%1“ bolo vymazané z torrentu „%2“ - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nepodarilo sa obnoviť torrent „%1“. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Zadaný filter IP bol úspešne spracovaný: %1 pravidiel bolo použitých. - + Error: Failed to parse the provided IP filter. Chyba: Nepodarilo sa spracovať zadaný filter IP. - + Couldn't add torrent. Reason: %1 Nepodarilo sa pridať torrent. Dôvod: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) „%1“ bol obnovený. (rýchle obnovenie) - + '%1' added to download list. 'torrent name' was added to download list. „%1“ bol pridaný do zoznamu na sťahovanie. - + An I/O error occurred, '%1' paused. %2 Vyskytla sa V/V chyba, „%1“ je pozastavené. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Zlyhanie mapovania portov, správa: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapovanie portov úspešné, správa: %1 - + due to IP filter. this peer was blocked due to ip filter. v dôsledku filtra IP. - + due to port filter. this peer was blocked due to port filter. v dôsledku filtra portov. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. v dôsledku i2p reštrikcií zmiešaného módu. - + because it has a low port. this peer was blocked because it has a low port. pretože má nízky port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent úspešne počúva na rozhraní %1 na porte: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4 + qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Externá IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Nepodarilo sa presunúť torrent: „%1“.. Dôvod: %2 - + File sizes mismatch for torrent '%1', pausing it. Veľkosti súborov sa líšia pre torrent '%1', pozastavuje sa. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Rýchle obnovenie torrentu '%'1 bolo zamietnuté. Dôvod: %2. Prebieha opätovná kontrola... @@ -1308,20 +1324,20 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. V/V chyba: Nepodarilo sa súbor filtra IP v režime čítania. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Chyba syntaxe: Súbor filtra nie je platný PeerGuardian P2B súbor. @@ -1329,43 +1345,43 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača GeoIPDatabase - - + + Unsupported database file size. Nepodporovaná veľkosť súboru databázy. - + Metadata error: '%1' entry not found. Chyba metadát: záznam "%1" nebol nájdený. - + Metadata error: '%1' entry has invalid type. Chyba metadát: záznam "%1" má neplatný typ. - + Unsupported database version: %1.%2 Nepodporovaná verzia databázy: %1.%2 - + Unsupported IP version: %1 Nepodporovaná verzia IP: %1 - + Unsupported record size: %1 Nepodporovaná veľkosť záznamu: %1 - + Invalid database type: %1 Neplatný typ databázy: %1 - + Database corrupted: no data section found. Poškodená databáza: nebola nájdená žiadna dátová sekcia. @@ -1398,9 +1414,8 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Iba jeden odkaz na riadok - Download local torrent - Stiahnuť lokálny torrent + Stiahnuť lokálny torrent @@ -1573,7 +1588,22 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Neaktívne - + + Save files to location: + Ukladať súbory do priečinka: + + + + Label: + Označenie: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Stiahnuté @@ -1583,6 +1613,11 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Logout Odhlásenie + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1723,7 +1758,7 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača LineEdit - + Clear the text Vyčistiť pole @@ -1744,37 +1779,37 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača MainWindow - + &Edit &Úpravy - + &Tools Nás&troje - + &File &Súbor - + &Help &Pomocník - + On Downloads &Done Po &skončení sťahovania - + &View &Zobraziť - + &Options... Mo&žnosti... @@ -1784,153 +1819,153 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Pok&račovať - + Torrent &Creator &Vytvoriť torrent - + Set Upload Limit... Nastaviť obmedzenie nahrávania... - + Set Download Limit... Nastaviť obmedzenie sťahovania... - + Set Global Download Limit... Nastaviť globálne obmedzenie sťahovania... - + Set Global Upload Limit... Nastaviť globálne obmedzenie nahrávania... - + Minimum Priority Najnižšia priorita - + Top Priority Najvyššia priorita - + Decrease Priority Znížiť prioritu - + Increase Priority Zvýšiť prioritu - - + + Alternative Speed Limits Alternatívne obmedzenia rýchlostí - + &Top Toolbar Panel nás&trojov - + Display Top Toolbar Zobraziť horný panel nástrojov - + S&peed in Title Bar Rýchlo&sť v titulnom pruhu - + Show Transfer Speed in Title Bar Zobraziť prenosovú rýchlosť v titulnom pruhu - + &RSS Reader Čítačka &RSS - + Search &Engine &Vyhľadávač - + L&ock qBittorrent &Zamknúť qBittorrent - + &Import Existing Torrent... &Importovať existujúci torrent... - + Import Torrent... Importovať torrent... - + Do&nate! &Prispejte! - + R&esume All Pokračovať vš&etky - + &Log Žurná&l - + &Exit qBittorrent &Ukončiť qBittorrent - + &Suspend System U&spať systém - + &Hibernate System Uspať systém na &disk - + S&hutdown System &Vypnúť systém - + &Disabled &Neurobiť nič - + &Statistics Štatistik&a - + Check for Updates &Skontrolovať aktualizácie - + Check for Program Updates Skontrolovať aktualizácie programu @@ -1940,77 +1975,72 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača O &aplikácii - Exit - Ukončiť + Ukončiť - + &Pause &Pozastaviť - + &Delete &Zmazať - + P&ause All Poz&astaviť všetky - + &Add Torrent File... Prid&ať torrentový súbor... - + Open Otvoriť - + E&xit U&končiť - Options - Možnosti + Možnosti - Resume - Pokračovať + Pokračovať - Pause - Pozastaviť + Pozastaviť - Delete - Zmazať + Zmazať - + Open URL Otvoriť URL - + &Documentation &Dokumentácia - + Lock Zamknúť - + Show Zobraziť @@ -2021,22 +2051,21 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Skontrolovať aktualizácie programu - Lock qBittorrent - Zamknúť qBittorrent + Zamknúť qBittorrent - + Add Torrent &Link... Prid&ať torrentový súbor... - + If you like qBittorrent, please donate! Ak sa vám qBittorrent páči, prosím, prispejte! - + Execution Log Záznam spustení @@ -2415,52 +2444,52 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Váš dynamický DNS záznam bol úspešne aktualizovaný. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Chyba dynamického DNS: Služba je dočasne nedostupná, pokus sa zopakuje o 30 minút. - + Dynamic DNS error: hostname supplied does not exist under specified account. Chyba dynamického DNS: Zadaný názov hostiteľa v uvedenom účte neexistuje. - + Dynamic DNS error: Invalid username/password. Chyba dynamického DNS: Neplatné používateľské meno alebo heslo. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamického DNS: qBittorrent bol zaradený na čiernu listinu služby, nahláste prosím túto chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamického DNS: Služba vrátila %1, nahláste prosím túto chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Chyba dynamického DNS: Vaše používateľské meno bolo zablokované z dôvodu zneužitia. - + Dynamic DNS error: supplied domain name is invalid. Chyba dynamického DNS: Zadaný názov domény nie je platný. - + Dynamic DNS error: supplied username is too short. Chyba dynamického DNS: Zadané používateľské meno je príliš krátke. - + Dynamic DNS error: supplied password is too short. Chyba dynamického DNS: Zadané heslo je príliš krátke. @@ -2468,17 +2497,17 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::DownloadHandler - + I/O Error V/V chyba - + The file size is %1. It exceeds the download limit of %2. Veľkosť súboru je %1. Prekračuje tak limit na sťahovanie, ktorý je %2. - + Unexpected redirect to magnet URI. Neočakávané presmerovanie na magnet URI. @@ -2486,1300 +2515,1300 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP databáza bola načítaná. Typ: %1. Doba vytvárania: %2. - - + + Couldn't load GeoIP database. Reason: %1 Nepodarilo sa načítať GeoIP databázu. Dôvod: %1 - - + + N/A Neuvedené - + Asia/Pacific Region Ázia/Tichomorie - + Europe Európa - + Andorra Andora - + United Arab Emirates Spojené arabské emiráty - + Afghanistan Afganistan - + Antigua and Barbuda Antigua and Barbuda - + Anguilla Anguilla - + Albania Albánsko - + Armenia Arménsko - + Netherlands Antilles Holandské Antily - + Angola Angola - + Antarctica Antarktída - + Argentina Argentína - + American Samoa Americká Samoa - + Austria Rakúsko - + Australia Austrália - + Aruba Aruba - + Azerbaijan Azerbajdžan - + Bosnia and Herzegovina Bosna a Hercegovina - + Barbados Barbados - + Bangladesh Bangladéš - + Belgium Belgicko - + Burkina Faso Burkina Faso - + Bulgaria Bulharsko - + Bahrain Bahrajn - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunej - + Bolivia Bolívia - + Brazil Brazília - + Bahamas Bahamy - + Bhutan Bhután - + Bouvet Island Bouvetov ostrov - + Botswana Botswana - + Belarus Bielorusko - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kokosové ostrovy - + Congo, The Democratic Republic of the Konžská demokratická republika - + Central African Republic Stredoafrická republika - + Congo Kongo - + Switzerland Švajčiarsko - + Cote D'Ivoire Pobrežie slonoviny - + Cook Islands Cookove ostrovy - + Chile Čile - + Cameroon Kamerun - + China Čína - + Colombia Kolumbia - + Costa Rica Kostarika - + Cuba Kuba - + Cape Verde Kapverdy - + Christmas Island Vianočný ostrov - + Cyprus Cyprus - + Czech Republic Česká republika - + Germany Nemecko - + Djibouti Džibutsko - + Denmark Dánsko - + Dominica Dominika - + Dominican Republic Dominikánska republika - + Algeria Alžírsko - + Ecuador Ekvádor - + Estonia Estónsko - + Egypt Egypt - + Western Sahara Západná Sahara - + Eritrea Eritrea - + Spain Španielsko - + Ethiopia Etiópia - + Finland Fínsko - + Fiji Fidži - + Falkland Islands (Malvinas) Falklandské ostrovy (Malvíny) - + Micronesia, Federated States of Mikronézia - + Faroe Islands Faerské ostrovy - + France Francúzsko - + France, Metropolitan Metropolitné Francúzsko - + Gabon Gabon - + United Kingdom Spojené kráľovstvo - + Grenada Grenada - + Georgia Gruznsko - + French Guiana Francúzska Guyana - + Ghana Ghana - + Gibraltar Gibraltár - + Greenland Grónsko - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Rovníková Guinea - + Greece Grécko - + South Georgia and the South Sandwich Islands Južná Georgia a Južné Sandwichove ostrovy - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heardov ostrov a McDonaldove ostrovy - + Honduras Honduras - + Croatia Chorvátsko - + Haiti Haiti - + Hungary Maďarsko - + Indonesia Indonézia - + Ireland Írsko - + Israel Izreal - + India India - + British Indian Ocean Territory Britské indickooceánske územie - + Iraq Irak - + Iran, Islamic Republic of Irán - + Iceland Island - + Italy Taliansko - + Jamaica Jamajka - + Jordan Jordánsko - + Japan Japonsko - + Kenya Keňa - + Kyrgyzstan Kyrgyzsko - + Cambodia Kambodža - + Kiribati Kiribati - + Comoros Komory - + Saint Kitts and Nevis Svätý Krištof a Nevis - + Korea, Democratic People's Republic of Kórejská ľudovodemokratická republika - + Korea, Republic of Kórejská republika - + Kuwait Kuvajt - + Cayman Islands Kajmanie ostrovy - + Kazakhstan Kazachstan - + Lao People's Democratic Republic Laos - + Lebanon Libanon - + Saint Lucia Svätá Lucia - + Liechtenstein Lichtenštajnsko - + Sri Lanka Srí Lanka - + Liberia Libéria - + Lesotho Lesoto - + Lithuania Litva - + Luxembourg Luxembursko - + Latvia Lotyšsko - + Libyan Arab Jamahiriya Líbya - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Moldavsko - + Madagascar Madagaskar - + Marshall Islands Marshallove ostrovy - + Macedonia Macedónsko - + Mali Mali - + Myanmar Mjanmarsko - + Mongolia Mongolsko - + Macau Macau - + Northern Mariana Islands Severné Mariány - + Martinique Martinik - + Mauritania Mauritánia - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurícius - + Maldives Maledivy - + Malawi Malawi - + Mexico Mexico - + Malaysia Malajzia - + Mozambique Mozambik - + Namibia Namíbia - + New Caledonia Nová Kaledónia - + Niger Niger - + Norfolk Island Ostrov Norfolk - + Nigeria Nigéria - + Nicaragua Nikaragua - + Netherlands Holandsko - + Norway Nórsko - + Nepal Nepál - + Nauru Nauru - + Niue Niue - + New Zealand Nový Zéland - + Oman Omán - + Panama Panama - + Peru Peru - + French Polynesia Francúzska Polynézia - + Papua New Guinea Papua-Nová Guinea - + Philippines Filipíny - + Pakistan Pakistan - + Poland Poľsko - + Saint Pierre and Miquelon Saint Pierre a Miquelon - + Pitcairn Islands Pitcairnove ostrovy - + Puerto Rico Portoriko - + Palestinian Territory Palestínske okupované územia - + Portugal Portugalsko - + Palau Palau - + Paraguay Paraguaj - + Qatar Katar - + Reunion Réunion - + Romania Rumunsko - + Russian Federation Rusko - + Rwanda Rwanda - + Saudi Arabia Saudská Arábia - + Solomon Islands Šalamúnove ostrovy - + Seychelles Seychely - + Sudan Sudán - + Sweden Švédsko - + Singapore Singapur - + Saint Helena Svätá Helena - + Slovenia Slovinsko - + Svalbard and Jan Mayen Svalbard a Jan Mayen - + Slovakia Slovensko - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somálsko - + Suriname Surinam - + Sao Tome and Principe Svätý Tomáš a Princov ostrov - + El Salvador Salvádor - + Syrian Arab Republic Sýria - + Swaziland Svazijsko - + Turks and Caicos Islands Turks a Caicos - + Chad Čad - + French Southern Territories Francúzske južné a antarktické územia - + Togo Togo - + Thailand Thajsko - + Tajikistan Tadžikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisko - + Tonga Tonga - + Timor-Leste Východný Timor - + Turkey Turecko - + Trinidad and Tobago Trinidad a Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzánia - + Ukraine Ukrajina - + Uganda Uganda - + United States Minor Outlying Islands Menšie odľahlé ostrovy USA - + United States Spojené štáty - + Uruguay Uruguaj - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Vatikán - + Saint Vincent and the Grenadines Svätý Vincent a Grenadíny - + Venezuela Venezuela - + Virgin Islands, British Panenské ostrovy, Britské - + Virgin Islands, U.S. Panenské ostrovy, U.S.A - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis a Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Srbsko - + South Africa Južná Afrika - + Zambia Zambia - + Montenegro Čierna Hora - + Zimbabwe Zimbabwe - + Anonymous Proxy Anonymný proxy - + Satellite Provider Satelitný poskytovateľ - + Other Iné - + Aland Islands Alandské ostrovy - + Guernsey Guernsey - + Isle of Man Ostrov Man - + Jersey Jersey - + Saint Barthelemy Svätý Bartolomej - + Saint Martin Svätý Martin - + Could not uncompress GeoIP database file. Nepodarilo sa rozbaliť súbor s GeoIP databázou. - + Couldn't save downloaded GeoIP database file. Nepodarilo sa uložiť stiahnutý súbor s GeoIP databázou. - + Successfully updated GeoIP database. GeoIP databáza bola úspešne aktualizovaná. - + Couldn't download GeoIP database file. Reason: %1 Nepodarilo sa stiahnuť súbor s GeoIP databázou. Dôvod: %1 @@ -3787,12 +3816,12 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Podpora UPnP/NAT-PMP [zapnutá] - + UPnP / NAT-PMP support [OFF] Podpora UPnP/NAT-PMP [vypnutá] @@ -3800,206 +3829,265 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::Smtp - + Email Notification Error: Chyba emailovej notfikácie: + + PeerInfo + + + interested(local) and choked(peer) + interesovaný(lokálny) a obmedzený(rovesník) + + + + interested(local) and unchoked(peer) + interesovaný(lokálny) a neobmedzený(rovesník) + + + + interested(peer) and choked(local) + interesovaný(rovesník) a obmedzený(lokálny) + + + + interested(peer) and unchoked(local) + interesovaný(rovesník) a neobmedzený(lokálny) + + + + optimistic unchoke + optimistické zrušenie obmedzenia + + + + peer snubbed + rovesník neposiela + + + + incoming connection + prichádzajúce spojenie + + + + not interested(local) and unchoked(peer) + neinteresovaný(lokálny) a neobmedzený(rovesník) + + + + not interested(peer) and unchoked(local) + neinteresovaný(rovesník) a neobmedzený(lokálny) + + + + peer from PEX + rovesník z PEX + + + + peer from DHT + rovesník z DHT + + + + encrypted traffic + šifrovaný prenos + + + + encrypted handshake + šifrovaný handshake + + + + peer from LSD + rovesník z LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Príznaky - + Connection Spojenie - + Client i.e.: Client application Klient - + Progress i.e: % downloaded Priebeh - + Down Speed i.e: Download speed Rýchlosť sťahovania - + Up Speed i.e: Upload speed Rýchlosť nahrávania - + Downloaded i.e: total data downloaded Stiahnuté - + Uploaded i.e: total data uploaded Nahrané - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Dôležitosť: - + Add a new peer... Pridať nového rovesníka... - + Copy selected Kopírovať označené - - + + Ban peer permanently Zablokovať rovesníka na stálo - + Manually adding peer '%1'... Manuálne pridaný rovesník '%1'... - + The peer '%1' could not be added to this torrent. Rovesníka '%1' nebolo možné pridať k tomuto torrentu. - + Manually banning peer '%1'... Manuálne zablokovaný rovesník '%1'... - + Peer addition Pridanie rovesníka - + Some peers could not be added. Check the Log for details. Niektorých rovesníkov nebolo možné pridať. Pozrite prosím žurnál pre detaily. - + The peers were added to this torrent. Rovesníci boli pridaní k tomuto torrentu. - + Are you sure you want to ban permanently the selected peers? Ste si istý, že chcete zmazať natrvalo zablokovať vybraného rovesníka? - + &Yes Án&o - + &No &Nie - interested(local) and choked(peer) - interesovaný(lokálny) a obmedzený(rovesník) + interesovaný(lokálny) a obmedzený(rovesník) - interested(local) and unchoked(peer) - interesovaný(lokálny) a neobmedzený(rovesník) + interesovaný(lokálny) a neobmedzený(rovesník) - interested(peer) and choked(local) - interesovaný(rovesník) a obmedzený(lokálny) + interesovaný(rovesník) a obmedzený(lokálny) - interested(peer) and unchoked(local) - interesovaný(rovesník) a neobmedzený(lokálny) + interesovaný(rovesník) a neobmedzený(lokálny) - optimistic unchoke - optimistické zrušenie obmedzenia + optimistické zrušenie obmedzenia - peer snubbed - rovesník neposiela + rovesník neposiela - incoming connection - prichádzajúce spojenie + prichádzajúce spojenie - not interested(local) and unchoked(peer) - neinteresovaný(lokálny) a neobmedzený(rovesník) + neinteresovaný(lokálny) a neobmedzený(rovesník) - not interested(peer) and unchoked(local) - neinteresovaný(rovesník) a neobmedzený(lokálny) + neinteresovaný(rovesník) a neobmedzený(lokálny) - peer from PEX - rovesník z PEX + rovesník z PEX - peer from DHT - rovesník z DHT + rovesník z DHT - encrypted traffic - šifrovaný prenos + šifrovaný prenos - encrypted handshake - šifrovaný handshake + šifrovaný handshake - peer from LSD - rovesník z LSD + rovesník z LSD @@ -4773,17 +4861,17 @@ Ste si istý, že chcete ukončiť Bittorrent? Cesta k filtrom (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Bolo zistené nesprávne ukončenie programu. Nastavenia sa obnovia zo záložného súboru. - + An access error occurred while trying to write the configuration file. Pri pokuse zapísať konfiguračný súbor sa vyskytla chyba prístupu. - + A format error occurred while trying to write the configuration file. Pri pokuse zapísať konfiguračný súbor sa vyskytla chyba formátu. @@ -4889,299 +4977,298 @@ Ste si istý, že chcete ukončiť Bittorrent? PropertiesWidget - + Downloaded: Stiahnuté: - + Availability: Dostupnosť: - + Progress: Priebeh: - + Transfer Prenos - + Time Active: Time (duration) the torrent is active (not paused) Čas aktivity: - + ETA: Odhad. čas: - + Uploaded: Nahrané: - + Seeds: Seedov: - + Download Speed: Sťahovaná rýchlosť: - + Upload Speed: Nahrávaná rýchlosť: - + Peers: Rovesníci: - + Download Limit: Obmedzenie sťahovania: - + Upload Limit: Obmedzenie nahrávania: - + Wasted: Premrhané: - + Connections: Spojení: - + Information Informácie - + Comment: Komentár: - Torrent content: - Obsah torrentu: + Obsah torrentu: - + Select All Vybrať všetky - + Select None Nevybrať nič - + Normal Normálna - + High Vysoká - + Share Ratio: Pomer zdieľania: - + Reannounce In: Znova ohlásiť o: - + Last Seen Complete: Posledné videné ukončenie: - + Total Size: Celková veľkosť: - + Pieces: Častí: - + Created By: Vytvoril: - + Added On: Pridané: - + Completed On: Dokončené: - + Created On: Vytvorené: - + Torrent Hash: Haš torrentu: - + Save Path: Uložené do: - + Maximum Maximálna - - + + Do not download Nesťahovať - + Never Nikdy - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (máte %3) - + %1 (%2 this session) %1 (%2 toto sedenie) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (seedovaný už %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (%2 max.) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 celkom) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 priem.) - + Open Otvoriť - + Open Containing Folder Otvoriť obsahujúci adresár - + Rename... Premenovať... - + Priority Priorita - + New Web seed Nový webový seed - + Remove Web seed Odstrániť webový seed - + Copy Web seed URL Kopírovať URL webového seedu - + Edit Web seed URL Upraviť URL webového seedu - + Rename the file Premenovať súbor - + New name: Nový názov: - - + + The file could not be renamed Nebolo možné premenovať súbor - + This file name contains forbidden characters, please choose a different one. Tento názov súboru obsahuje nepovolené znaky, preto zvoľte iný. - - + + This name is already in use in this folder. Please use a different name. Tento názov sa v tomto adresári už používa. Prosím, zvoľte iný názov. - + The folder could not be renamed Nebolo možné premenovať adresár - + qBittorrent qBittorrent @@ -5191,29 +5278,29 @@ Ste si istý, že chcete ukončiť Bittorrent? Filtruj súbory... - + New URL seed New HTTP source Nový URL seed - + New URL seed: Nový URL seed: - - + + This URL seed is already in the list. Tento URL seed je už v zozname. - + Web seed editing Úprava webového seedu - + Web seed URL: URL webového seedu: @@ -5226,7 +5313,7 @@ Ste si istý, že chcete ukončiť Bittorrent? Vaša IP adresa bola zakázaná kvôli príliš veľkému počtu neúspešných pokusov o prihlásenie. - + Error: '%1' is not a valid torrent file. Chyba: '%1' nie je korektný torrentový súbor. @@ -5234,12 +5321,12 @@ Ste si istý, že chcete ukončiť Bittorrent? - + Error: Could not add torrent to session. Chyba: nepodarilo sa pridať torrent do sedenia. - + I/O Error: Could not create temporary file. V/V chyba: Nepodarilo sa vytvoriť dočasný súbor. @@ -5392,138 +5479,138 @@ No further notices will be issued. [qBittorrent] sťahovanie '%1' bolo dokončené - + The remote host name was not found (invalid hostname) Nepodarilo sa zistiť názov vzdialeného počítača (neplatný názov počítača) - + The operation was canceled Operácia bola zrušená - + The remote server closed the connection prematurely, before the entire reply was received and processed Vzdialený server predčasne zatvoril spojenie predtým, než bola prijatá a spracovaná celá odpoveď - + The connection to the remote server timed out Čas spojenia so vzdialeným serverom vypršal - + SSL/TLS handshake failed SSL/TLS handshake zlyhal - + The remote server refused the connection Vzdialený server odmietol spojenie - + The connection to the proxy server was refused Spojenie s proxy serverom bolo odmietnuté - + The proxy server closed the connection prematurely Proxy server predčasne zatvoril spojenie - + The proxy host name was not found Názov proxy servera nebol nájdený - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Čas spojenia s proxy serverom vypršal alebo proxy server neodpovedal včas na zaslanú požiadavku - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Proxy vyžaduje autentifikáciu aby mohol splniť požiadavku, neprijal ale žiadne z ponúkaných prihlasovacích údajov - + The access to the remote content was denied (401) Prístup k vzdialenému obsahu bol zamietnutý (401) - + The operation requested on the remote content is not permitted Požadovaná operácia so vzdialeným obsahom nie je povolená - + The remote content was not found at the server (404) Vzdialený obsah nebol nájdený na serveri (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Vzdialený server vyžaduje na poskytnutie obsahu autentifikáciu, neprijal ale poskytnuté prihlasovacie údaje. - + The Network Access API cannot honor the request because the protocol is not known Network Access API neprijalo požiadavku, pretože protokol nie je známy - + The requested operation is invalid for this protocol Požadovaná operácia nie je platná pre tento protokol - + An unknown network-related error was detected Bola zistená neznáma chyba týkajúca sa siete - + An unknown proxy-related error was detected Bola zistená neznáma chyba týkajúca sa proxy - + An unknown error related to the remote content was detected Bola zistená neznáma chyba týkajúca sa vzdialeného obsahu - + A breakdown in protocol was detected Bola zistená porucha v protokole - + Unknown error Neznáma chyba - - + + Upgrade Aktualizácia - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Aktualizovali ste program zo staršej verzie, ktorá ukladala veci odlišným spôsobom. Je preto nutné, aby ste prešli na nový spôsob ukladania. V dôsledku toho však už nebudete môcť použiť znova verziu staršiu ako v3.3.0. Chcete pokračovať? [á/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Aktualizovali ste program zo staršej verzie, ktorá ukladala veci odlišným spôsobom. Je preto nutné, aby ste prešli na nový spôsob ukladania. Ak budete pokračovať, nebudete už môcť znova použiť verziu staršiu ako v3.3.0. - + Couldn't migrate torrent with hash: %1 Nepodarilo sa konvertovať torrent s hašom: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nepodarilo sa konvertovať torrent. Neplatný názov súboru pre rýchle obnovenie: %1 @@ -5712,12 +5799,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Automatické sťahovanie '%1' z z RSS kanála '%2' zlyhalo, pretože neobsahuje torrent ani magnetický odkaz. - + Automatically downloading '%1' torrent from '%2' RSS feed... Automaticky sa sťahuje torrent '%1' z RSS kanála '%2'... @@ -5761,17 +5848,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Sledovaný priečinok - + Download here Stiahnuť sem - + Download path @@ -7830,11 +7917,11 @@ Tieto moduly však boli vypnuté. fsutils - - - - - + + + + + Downloads Sťahovania @@ -7842,103 +7929,103 @@ Tieto moduly však boli vypnuté. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python nebol nájdený. - + Python version: %1 Verzia Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Neznáma - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent teraz vypne počítač, pretože sťahovanie všetkých torrentov bolo dokončené. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Pracuje sa - + Updating... Prebieha aktualizácia... - + Not working Nepracuje sa - + Not contacted yet Zatiaľ nekontaktovaný diff --git a/src/lang/qbittorrent_sl.ts b/src/lang/qbittorrent_sl.ts index 95b6a708e..e7bd19089 100644 --- a/src/lang/qbittorrent_sl.ts +++ b/src/lang/qbittorrent_sl.ts @@ -125,217 +125,222 @@ Preskoči preverjanje napak - + + Set as default label + + + + Torrent Information Torrent informacije - + Size: Velikost: - + Comment: Komentar: - + Date: Datum: - + Info Hash: Razpršilo: - + Normal Normalno - + High Visoko - + Maximum Maksimalno - + Do not download Ne prenesi - - + + I/O Error I/O Napaka - + The torrent file does not exist. Torrent datoteka ne obstaja. - + Invalid torrent Napačen torrent - + Failed to load the torrent: %1 Napaka pri nalaganju torrenta: %1 - - + + Already in download list Torrent že obstaja v seznamu prenosov - + Free disk space: %1 Neporabljen prostor na disku: %1 - + Not Available This comment is unavailable Ni na voljo. - + Not Available This date is unavailable Ni na voljo - + Not available Ni na voljo - + Invalid magnet link Napačna magnet povezava - + Torrent is already in download list. Trackers were merged. Torrent že obstaja v seznamu prenosov. Sledilniki so bili združeni. - - + + Cannot add torrent Ni mogoče dodati torrenta - + Cannot add this torrent. Perhaps it is already in adding state. Ni mogoče dodati torrenta. Mogoče je že dodan. - + This magnet link was not recognized Ta magnet povezava ni prepoznavna - + Magnet link is already in download list. Trackers were merged. Magnet povezava je že v seznamu prenosov. Sledilnik so bili združeni. - + Cannot add this torrent. Perhaps it is already in adding. Ni mogoče dodati torrenta. Mogoče je že dodan. - + Magnet link Magnet povezava - + Retrieving metadata... Pridobivam podatke... - + Not Available This size is unavailable. Ni na voljo - - - + + + Choose save path Izberi mapo za shranjevanje - + Rename the file Preimenuj datoteko - + New name: Novo ime: - - + + The file could not be renamed Datoteke ni možno preimenovati - + This file name contains forbidden characters, please choose a different one. To ime datoteke vsebuje prepovedane znake, prosim izberi drugo ime. - - + + This name is already in use in this folder. Please use a different name. To ime je že v uporabi v tej mapi. Prosim uporabi drugo ime. - + The folder could not be renamed Mape ni možno preimenovati - + Rename... Preimenuj... - + Priority Prioriteta - + Invalid metadata Neveljavni meta podatki - + Parsing metadata... Razpoznavanje podatkov... - + Metadata retrieval complete Pridobivanje podatkov končano - + Download Error Napaka prejema @@ -427,9 +432,8 @@ Razreši host imena soležnikov - Maximum number of half-open connections [0: Disabled] - Maksimalno število na pol odprtih povezav [0: Onemogoči] + Maksimalno število na pol odprtih povezav [0: Onemogoči] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Interval shranjevanja prenosa + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: ID soležnika: - + HTTP User-Agent is '%1' Uporabniški posrednik HTTP je %1 - + Anonymous mode [ON] Brezimni način [vključen] - + Anonymous mode [OFF] Brezimni način [izključen] - + PeX support [ON] Podpora PeX [vključena] - + PeX support [OFF] Podpora PeX [izključena] - + Restart is required to toggle PeX support Potreben je ponovni zagon za preklop PeX podpore - + Local Peer Discovery support [ON] Podpora odkrivanja krajevnih soležnikov - LPD [vključena] - + Local Peer Discovery support [OFF] Podpora odkrivanja krajevnih soležnikov - LPD [izključena] - + Encryption support [ON] Podpora šifriranja [vključena] - + Encryption support [FORCED] Podpora šifriranja [vsiljena] - + Encryption support [OFF] Podpora šifriranja [izključena] - + Embedded Tracker [ON] Vdelan sledilnik [vključen] - + Failed to start the embedded tracker! Spodletel zagon vdelanega sledilnika! - + Embedded Tracker [OFF] Vdelan sledilnik [izključen] - + '%1' reached the maximum ratio you set. Removing... %1 je dosegel najvišje nastavljeno razmerje. Odstranjujem ... - + '%1' reached the maximum ratio you set. Pausing... %1 je dosegel najvišje nastavljeno razmerje. Premor ... - Error: Could not create torrent export directory: '%1' - Napaka: Ni bilo mogoče ustvariti imenika za izvoz torrenta: %1 + Napaka: Ni bilo mogoče ustvariti imenika za izvoz torrenta: %1 - Error: could not export torrent '%1', maybe it has not metadata yet. - Napaka: ni bilo mogoče izvoziti torrenta %1, mogoče še nima meta podatkov. + Napaka: ni bilo mogoče izvoziti torrenta %1, mogoče še nima meta podatkov. - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Ni mogoče odkodirati %1 datoteke torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurzivni prejem datoteke '%1' vdelane v torrent '%2' - + Couldn't save '%1.torrent' Ni bilo mogoče shraniti '%1. torrenta' - + because %1 is disabled. this peer was blocked because uTP is disabled. ker je %1 onemogočen. - + because %1 is disabled. this peer was blocked because TCP is disabled. ker je %1 onemogočen. - + URL seed lookup failed for URL: '%1', message: %2 Spodletelo iskanje naslova URL za sejalca: %1, sporočilo: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' je bil odstranjen iz seznama prenosov in trdega diska. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' je bil odstranjen iz seznama prenosov. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Prejemanje '%1', prosim počakajte ... - Torrent Export: torrent is invalid, skipping... - Izvoz torrenta: torrent je neveljaven, preskok ... + Izvoz torrenta: torrent je neveljaven, preskok ... - + DHT support [ON] Podpora DHT [vključena] - + DHT support [OFF]. Reason: %1 Podpora DHT [izključena]. Razlog: %1 - + DHT support [OFF] Podpora DHT [izključena] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent poskuša poslušati na vseh vratih vmesnika: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent je spodletel pri poslušanju na vseh vratih vmesnika: %1. Razlog: %2 + qBittorrent je spodletel pri poslušanju na vseh vratih vmesnika: %1. Razlog: %2 - + The network interface defined is invalid: %1 Določeni omrežni vmesnik je neveljaven: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent poskuša poslušati na vmesniku %1 in vratih: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent ni našel krajevnega naslova %1 za poslušanje - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent je spodletel pri poslušanju na vseh vratih vmesnika: %1. Razlog: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Sledilnik '%1' je bil dodan h torrentu '%2' - + Tracker '%1' was deleted from torrent '%2' Sledilnik '%1' je bil odstranjen iz torrenta '%2' - + URL seed '%1' was added to torrent '%2' URL sejalec '%1' je bil dodan h torrentu '%2' - + URL seed '%1' was removed from torrent '%2' URL sejalec '%1' je bil odstranjen iz torrenta '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ni mogoče nadaljevati torrenta '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspešno razčlenjen filter IP: %1 pravil je bilo uveljavljenih. - + Error: Failed to parse the provided IP filter. Napaka: Spodletelo razčlenjevanje filtra IP. - + Couldn't add torrent. Reason: %1 Ni bilo mogoče dodati torrenta. Razlog: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' se nadaljuje. (hitro nadaljevanje) - + '%1' added to download list. 'torrent name' was added to download list. '%1' je bil dodan na seznam prejemov. - + An I/O error occurred, '%1' paused. %2 Zgodila se je napaka I/O, '%1' v premoru. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Spodletela preslikava vrat, sporočilo: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Uspešna preslikava vrat, sporočilo: %1 - + due to IP filter. this peer was blocked due to ip filter. zaradi filtra IP. - + due to port filter. this peer was blocked due to port filter. zaradi filtra vrat. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. zaradi i2p omejitev mešanega načina. - + because it has a low port. this peer was blocked because it has a low port. ker ima prenizka vrata. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent uspešno posluša na vmesniku %1 in vratih: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent je spodletel pri poslušanju na vmesnika %1 in vratih:%2/%3. Razlog: %4 + qBittorrent je spodletel pri poslušanju na vmesnika %1 in vratih:%2/%3. Razlog: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent je spodletel pri poslušanju na vmesnika %1 in vratih:%2/%3. Razlog: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Zunanji IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Ni bilo mogoče premakniti torrenta: '%1'. Razlog: %2 - + File sizes mismatch for torrent '%1', pausing it. Neusklajeni velikosti datoteke za torrent '%1', v premoru. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Hitro nadaljevanje je bilo zavrnjeno za torrent '%1'. Razlog: %2. Preverjam znova ... @@ -1307,20 +1323,20 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Napaka I/O: Ni mogoče odpreti datoteke filtra IP v načinu branja. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Napaka razčlenjevanja: Datoteka filtra ni veljavna datoteka PeerGuardian P2B. @@ -1328,43 +1344,43 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. GeoIPDatabase - - + + Unsupported database file size. Nepodprta velikost datoteke podatkovne zbirke - + Metadata error: '%1' entry not found. Napaka meta podatkov: '%1' ni mogoče najti. - + Metadata error: '%1' entry has invalid type. Napaka meta podatkov: '%1' je neveljavne vrste. - + Unsupported database version: %1.%2 Nepodprta različica podatkovne zbirke: %1.%2 - + Unsupported IP version: %1 Nepodprta različica IP: %1 - + Unsupported record size: %1 Nepodprta velikost zapisa: %1 - + Invalid database type: %1 Neveljavna vrsta podatkovne zbirke: %1 - + Database corrupted: no data section found. Podatkovna zbirka pokvarjena: ni bil najden odsek podatkov. @@ -1397,9 +1413,8 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. Samo ena povezava na vrstico - Download local torrent - Prejmi krajevni torrent + Prejmi krajevni torrent @@ -1572,7 +1587,22 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. Nedejavno - + + Save files to location: + Shrani datoteke v: + + + + Label: + Oznaka: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Prejeto @@ -1582,6 +1612,11 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. Logout Odjava + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. LineEdit - + Clear the text Pobriši besedilo @@ -1743,37 +1778,37 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. MainWindow - + &Edit &Uredi - + &Tools &Orodja - + &File &Datoteka - + &Help &Pomoč - + On Downloads &Done Ob &zaključenih prejemih - + &View &Pogled - + &Options... &Možnosti ... @@ -1783,153 +1818,153 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. &Nadaljuj - + Torrent &Creator Ustvarjalnik &torrentov - + Set Upload Limit... Nastavi omejitev pošiljanja ... - + Set Download Limit... Nastavi omejitev prejemanja ... - + Set Global Download Limit... Nastavi splošno omejitev prejemanja ... - + Set Global Upload Limit... Nastavi splošno omejitev pošiljanja ... - + Minimum Priority Najmanjša prednost - + Top Priority Najvišja prednost - + Decrease Priority Zmanjšaj prednost - + Increase Priority Povišaj prednost - - + + Alternative Speed Limits Nadomestna omejitev hitrosti - + &Top Toolbar &Zgornja orodna vrstica - + Display Top Toolbar Pokaži zgornjo orodno vrstico - + S&peed in Title Bar Hit&rost v naslovni vrstici - + Show Transfer Speed in Title Bar Pokaži hitrost prenosa v naslovni vrstici - + &RSS Reader &Bralnik RSS - + Search &Engine &Iskalnik - + L&ock qBittorrent &Zakleni qBittorrent - + &Import Existing Torrent... &Uvozi obstoječi torrent ... - + Import Torrent... Uvozi torrent ... - + Do&nate! Pod&ari! - + R&esume All &Nadaljuj vse - + &Log &Dnevnik - + &Exit qBittorrent &Končaj qBittorrent - + &Suspend System Sistem v &pripravljenost - + &Hibernate System Sistem v &mirovanje - + S&hutdown System I&zklopi sistem - + &Disabled Onemo&goči - + &Statistics Statisti&ka - + Check for Updates Preveri za posodobitve - + Check for Program Updates Preveri posodobitve programa @@ -1939,77 +1974,72 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. &O programu - Exit - Končaj + Končaj - + &Pause &Premor - + &Delete &Odstrani - + P&ause All P&remor vseh - + &Add Torrent File... &Dodaj datoteko torrent ... - + Open Odpri - + E&xit &Končaj - Options - Možnosti + Možnosti - Resume - Nadaljuj + Nadaljuj - Pause - Premor + Premor - Delete - Odstrani + Odstrani - + Open URL Odpri URL - + &Documentation Dokumenta&cija - + Lock Zakleni - + Show Pokaži @@ -2020,22 +2050,21 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. Preveri posodobitve programa - Lock qBittorrent - Zakleni qBittorrent + Zakleni qBittorrent - + Add Torrent &Link... Dodaj torrent &povezavo - + If you like qBittorrent, please donate! Če vam je qBittorrent všeč, potem prosim donirajte! - + Execution Log Dnevnik izvedb @@ -2413,52 +2442,52 @@ Ali ste prepričani, da želite končati qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Vaš dinamični DNS je bil uspešno posodobljen. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Napaka dinamičnega DNS-ja: Storitev trenutno ni na voljo, sledi vnovičen poskus čez 30min. - + Dynamic DNS error: hostname supplied does not exist under specified account. Napaka dinamičnega DNS-ja: vpisano ime gostitelja ne obstaja pod določenim računom. - + Dynamic DNS error: Invalid username/password. Napaka dinamičnega DNS-ja: Neveljavno uporabniško ime/geslo. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Napaka dinamičnega DNS-ja: qBittorrent je pristal na črnem seznamu storitve. Prijavite hrošča na http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Napaka dinamičnega DNS-ja: storitev je sporočila %1. Prijavite hrošča na http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Napaka dinamičnega DNSja: Vaše uporabniško ime je bilo blokirano zaradi zlorabe. - + Dynamic DNS error: supplied domain name is invalid. Napaka dinamičnega DNS-ja: vpisano ime domene je neveljavno. - + Dynamic DNS error: supplied username is too short. Napaka dinamičnega DNS-ja: vpisano uporabniško ime je prekratko. - + Dynamic DNS error: supplied password is too short. Napaka dinamičnega DNS-ja: vpisano geslo je prekratko. @@ -2466,17 +2495,17 @@ Ali ste prepričani, da želite končati qBittorrent? Net::DownloadHandler - + I/O Error I/O Napaka - + The file size is %1. It exceeds the download limit of %2. Velikost datoteke je %1. Prekorači omejitev prejema %2. - + Unexpected redirect to magnet URI. Nepričakovana preusmeritev na magnetno povezavo. @@ -2484,1300 +2513,1300 @@ Ali ste prepričani, da želite končati qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP podatkovna zbirka naložena. Vrsta: %1. Čas izgradnje: %2. - - + + Couldn't load GeoIP database. Reason: %1 Ni bilo mogoče naložiti podatkovne zbirke GeoIP. Razlog: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Francija - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grčija - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. Ni bilo mogoče razširiti datoteke podatkovne zbirke GeoIP. - + Couldn't save downloaded GeoIP database file. Ni bilo mogoče shraniti prejete datoteke podatkovne zbirke GeoIP. - + Successfully updated GeoIP database. Uspešno posodobljena podatkovna zbirka GeoIP. - + Couldn't download GeoIP database file. Reason: %1 Ni bilo mogoče prejeti datoteke podatkovne zbirke GeoIP. Razlog: %1 @@ -3785,12 +3814,12 @@ Ali ste prepričani, da želite končati qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Podpora UPnP / NAT-PMP [vključena] - + UPnP / NAT-PMP support [OFF] Podpora UPnP / NAT-PMP [izključena] @@ -3798,206 +3827,233 @@ Ali ste prepričani, da želite končati qBittorrent? Net::Smtp - + Email Notification Error: Napaka e-poštnega obvestila: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + dohodna povezava + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + soležnik iz PEX + + + + peer from DHT + soležnik iz DHT + + + + encrypted traffic + šifriran promet + + + + encrypted handshake + šifrirana izmenjava signalov + + + + peer from LSD + soležnik iz LSD + + PeerListWidget - + IP IP - + Port Vrata - + Flags Zastavice - + Connection Povezava - + Client i.e.: Client application Odjemalec - + Progress i.e: % downloaded Napredek - + Down Speed i.e: Download speed Hitrost prejema - + Up Speed i.e: Upload speed Hitrost pošiljanja - + Downloaded i.e: total data downloaded Prejeto - + Uploaded i.e: total data uploaded Poslano - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Pomembnost - + Add a new peer... Dodaj novega soležnika ... - + Copy selected Kopiraj izbrano - - + + Ban peer permanently Trajno izobči soležnika - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Zbiranje soležnikov - + Some peers could not be added. Check the Log for details. Nekaterih soležnikov ni bilo mogoče dodati h torrentu. Za več podrobnosti preverite Dnevnik. - + The peers were added to this torrent. Soležniki so biil dodan h torrentu. - + Are you sure you want to ban permanently the selected peers? Ali ste prepričani, da želite trajno izobčiti izbrane soležnike? - + &Yes &Da - + &No &Ne - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - incoming connection - dohodna povezava + dohodna povezava - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - peer from PEX - soležnik iz PEX + soležnik iz PEX - peer from DHT - soležnik iz DHT + soležnik iz DHT - encrypted traffic - šifriran promet + šifriran promet - encrypted handshake - šifrirana izmenjava signalov + šifrirana izmenjava signalov - peer from LSD - soležnik iz LSD + soležnik iz LSD @@ -4771,17 +4827,17 @@ Ali ste prepričani, da želite končati qBittorrent? Filter poti (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4887,299 +4943,298 @@ Ali ste prepričani, da želite končati qBittorrent? PropertiesWidget - + Downloaded: Prejeto: - + Availability: Na voljo: - + Progress: Napredek: - + Transfer Prenos - + Time Active: Time (duration) the torrent is active (not paused) Čas delovanja: - + ETA: Preostal čas: - + Uploaded: Poslano: - + Seeds: Sejalci: - + Download Speed: Hitrost prejema: - + Upload Speed: Hitrost pošiljanja: - + Peers: Soležniki: - + Download Limit: Omejitev prejema: - + Upload Limit: Omejitev pošiljanja: - + Wasted: Zavrženo: - + Connections: Povezave: - + Information Podrobnosti - + Comment: Komentar: - Torrent content: - Vsebina torrenta: + Vsebina torrenta: - + Select All Izberi vse - + Select None Ne izberi nič - + Normal Normalno - + High Visoko - + Share Ratio: Deli razmerje: - + Reannounce In: Ponovno objavi čez: - + Last Seen Complete: Nazadnje videno v celoti: - + Total Size: Skupna velikost: - + Pieces: Kosov: - + Created By: Ustvarjeno od: - + Added On: Dodano: - + Completed On: Zaključeno: - + Created On: Ustvarjeno: - + Torrent Hash: Razpršilo: - + Save Path: Mesto: - + Maximum Največ - - + + Do not download Ne prenesi - + Never Nikoli - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (ima %3) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Odpri - + Open Containing Folder Odpri mapo - + Rename... Preimenuj ... - + Priority Prednost - + New Web seed Nov spletni sejalec - + Remove Web seed Odstrani spletnega sejalca - + Copy Web seed URL Kopiraj URL spletnega sejalca - + Edit Web seed URL Uredi URL spletnega sejalca - + Rename the file Preimenuj datoteko - + New name: Novo ime: - - + + The file could not be renamed Datoteke ni bilo mogoče preimenovati - + This file name contains forbidden characters, please choose a different one. Ime datoteke vsebuje prepovedane znake, izberite drugo ime. - - + + This name is already in use in this folder. Please use a different name. To ime je že v uporabi v tej mapi. Prosim uporabite drugo ime. - + The folder could not be renamed Mape ni bilo mogoče preimenovati - + qBittorrent qBittorrent @@ -5189,29 +5244,29 @@ Ali ste prepričani, da želite končati qBittorrent? Filtriraj datoteke ... - + New URL seed New HTTP source Nov URL sejalca - + New URL seed: Nov URL sejalca: - - + + This URL seed is already in the list. URL sejalca je že na seznamu. - + Web seed editing Urejanje spletnega sejalca - + Web seed URL: URL spletnega sejalca: @@ -5224,19 +5279,19 @@ Ali ste prepričani, da želite končati qBittorrent? Vaš naslov IP je bil izobčen zaradi prevelikega števila neuspešnih poskusov overitve. - + Error: '%1' is not a valid torrent file. Napaka: '%1' je neveljavna datoteka torrent. - + Error: Could not add torrent to session. Napaka: Ni mogoče dodati torrenta k seji. - + I/O Error: Could not create temporary file. Napaka I/O: Ni mogoče ustvariti začasne datoteke. @@ -5389,138 +5444,138 @@ Ne bo nadaljnjih obvestil. - + The remote host name was not found (invalid hostname) Oddaljeno ime gostitelja ni bilo najdeno (neveljavno ime gostitelja) - + The operation was canceled Dejanje je bilo preklicano - + The remote server closed the connection prematurely, before the entire reply was received and processed Oddaljeni strežnik je predčasno zaprl povezavo, preden je bil odgovor prejet in obdelan - + The connection to the remote server timed out Povezava do oddaljenega strežnika je časovno potekla - + SSL/TLS handshake failed Spodletela izmenjava signalov SSL/TLS - + The remote server refused the connection Oddaljeni strežnik je zavrnil povezavo - + The connection to the proxy server was refused Povezava na posredniški strežnik je bila zavrnjena - + The proxy server closed the connection prematurely Posredniški strežnik je predčasno zaprl povezavo - + The proxy host name was not found Ime gostitelja posredniškega strežnika ni bilo najdeno - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Povezava do posredniškega strežnika je časovno potekla ali pa posredniški strežnik ni odgovoril na poslano zahtevo - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) Dostop do oddaljene vsebine je bil zavrnjen (401) - + The operation requested on the remote content is not permitted Zahtevano dejanje na oddaljeni vsebini ni dovoljeno - + The remote content was not found at the server (404) Oddaljena vsebina ni bila najdena na strežniku (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Oddaljeni strežnik potrebuje overitev za serviranje vsebine ampak ni sprejel nobenih ponujenih poveril - + The Network Access API cannot honor the request because the protocol is not known Network Access API ne more spoštovati zahteve, ker protokol ni znan - + The requested operation is invalid for this protocol Zahtevano dejanje je neveljavno za ta protokol - + An unknown network-related error was detected Zaznana je bila neznana napaka povezana z omrežjem - + An unknown proxy-related error was detected Zaznana je bila neznana napaka povezana s posredniškim strežnikom - + An unknown error related to the remote content was detected Zaznana je bila neznana napaka povezana z oddaljeno vsebino - + A breakdown in protocol was detected Zaznana je bila napaka v protokolu - + Unknown error Neznana napaka - - + + Upgrade Nadgradnja - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Posodobili ste starejšo različico, ki je shranjevala predmete na drugačen način. Morali boste uporabljati nov sistem shranjevanja. Ne boste mogli več uporabljati starejše različice od v3.3.0. Nadaljujem? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Posodobili ste starejšo različico, ki je shranjevala predmete na drugačen način. Morali boste uporabljati nov sistem shranjevanja. Če nadaljujete ne boste mogli več uporabljati starejše različice od v3.3.0. - + Couldn't migrate torrent with hash: %1 Ni mogoče preseliti torrenta z razpršilom: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Ni mogoče preseliti torrenta. Neveljavno ime datoteke za hitro nadaljevanje: %1 @@ -5709,12 +5764,12 @@ Ne bo nadaljnjih obvestil. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5758,17 +5813,17 @@ Ne bo nadaljnjih obvestil. ScanFoldersModel - + Watched Folder Opazovana mapa - + Download here Prejmite tukaj - + Download path @@ -7827,11 +7882,11 @@ Tisti vstavki so bili onemogočeni. fsutils - - - - - + + + + + Downloads Prejemi @@ -7839,103 +7894,103 @@ Tisti vstavki so bili onemogočeni. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected Python ni bil zaznan - + Python version: %1 Različica Python: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Neznano - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent bo sedaj izklopil računalnik, ker so vsi prejemi zaključeni. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Deluje - + Updating... Posodabljam... - + Not working Ne deluje - + Not contacted yet Še ni bilo stika diff --git a/src/lang/qbittorrent_sr.ts b/src/lang/qbittorrent_sr.ts index 66aa2c40f..c67298506 100644 --- a/src/lang/qbittorrent_sr.ts +++ b/src/lang/qbittorrent_sr.ts @@ -125,217 +125,222 @@ - + + Set as default label + + + + Torrent Information - + Size: - + Comment: Коментар: - + Date: - + Info Hash: - + Normal Нормалан - + High Висок - + Maximum Максималан - + Do not download Не преузимај - - + + I/O Error И/О Грешка - + The torrent file does not exist. - + Invalid torrent - + Failed to load the torrent: %1 - - + + Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available - + Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link - + Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path Изаберите путању чувања - + Rename the file Преименуј фајл - + New name: Ново име: - - + + The file could not be renamed Фајл не може бити преименован - + This file name contains forbidden characters, please choose a different one. Ово име фајла садржи недозвољене карактере, молим изаберите неко друго. - - + + This name is already in use in this folder. Please use a different name. Ово име је већ у употреби молим изаберите неко друго. - + The folder could not be renamed Фолдер не може бити преименован - + Rename... Преименуј... - + Priority Приоритет - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -427,9 +432,8 @@ Одреди име хоста peer-а (учесника) - Maximum number of half-open connections [0: Disabled] - Максимални број полу-отворених конекција [0: Онемогућено] + Максимални број полу-отворених конекција [0: Онемогућено] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Само један линк по линији - Download local torrent - Преузми локални торент + Преузми локални торент @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Сачувај фајлове на локацији: + + + + Label: + Ознака: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Преузет @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Обриши текст @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Уреди - + &Tools &Алати - + &File &Фајл - + &Help &Помоћ - + On Downloads &Done - + &View &Изглед - + &Options... &Опције... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Настави - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Н&астави Све - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. &О програму - Exit - Излаз + Излаз - + &Pause &Пауза - + &Delete &Обриши - + P&ause All П&аузирај све - + &Add Torrent File... - + Open - + E&xit - - Options - Опције - - - - Resume - Настави - - - - Pause - Пауза - - - - Delete - Обриши - - - + Open URL - + &Documentation &Документација - + Lock - + Show Прикажи @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. - Lock qBittorrent - Закључај qBittorrent + Закључај qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Ако волите qBittorrent, молимо Вас донирајте! - + Execution Log Дневник догађаја @@ -2408,52 +2399,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2452,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error И/О Грешка - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2470,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Француска - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3771,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,207 +3784,210 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + + + + + incoming connection + + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + + + + + peer from DHT + + + + + encrypted traffic + + + + + encrypted handshake + + + + + peer from LSD + + + PeerListWidget - + IP IP - + Port - + Flags - + Connection Конекције - + Client i.e.: Client application Клијент - + Progress i.e: % downloaded Напредак - + Down Speed i.e: Download speed Брзина Преузимања - + Up Speed i.e: Upload speed Брзина Слања - + Downloaded i.e: total data downloaded Преузето - + Uploaded i.e: total data uploaded Послато - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Додај нов peer (учесник-а)... - + Copy selected - - + + Ban peer permanently Забрани(бануј) peer трајно - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Додавање (peer-a) учесника - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Да ли сте сигурни да желите да забраните изабране учеснике трајно? - + &Yes &Да - + &No &Не - - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - - peer snubbed - - - - - incoming connection - - - - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - - peer from PEX - - - - - peer from DHT - - - - - encrypted traffic - - - - - encrypted handshake - - - - - peer from LSD - - PeersAdditionDlg @@ -4766,17 +4760,17 @@ Are you sure you want to quit qBittorrent? Филтер, путања фајла (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4876,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Преузето: - + Availability: Доступност: - + Progress: Напредак: - + Transfer Трансфер - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Послато: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Потрошено: - + Connections: Конекције: - + Information Информације - + Comment: Коментар: - Torrent content: - Садржај Торента: + Садржај Торента: - + Select All Селектуј све - + Select None Деселектуј - + Normal Нормалан - + High Висок - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Максималан - - + + Do not download Не преузимај - + Never Никада - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... Преименуј... - + Priority Приоритет - + New Web seed - + Remove Web seed - + Copy Web seed URL - + Edit Web seed URL - + Rename the file Преименуј фајл - + New name: Ново име: - - + + The file could not be renamed Фајл не може бити преименован - + This file name contains forbidden characters, please choose a different one. Ово име фајла садржи недозвољене карактере, молим изаберите неко друго. - - + + This name is already in use in this folder. Please use a different name. Ово име је већ у употреби молим изаберите неко друго. - + The folder could not be renamed Фолдер не може бити преименован - + qBittorrent qBittorrent @@ -5184,29 +5177,29 @@ Are you sure you want to quit qBittorrent? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing - + Web seed URL: @@ -5219,18 +5212,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5381,138 +5374,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5701,12 +5694,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5750,17 +5743,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Надгледани Фолдер - + Download here Преузими одавде - + Download path @@ -7818,11 +7811,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Преузимање @@ -7830,103 +7823,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1h%2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Непознат-а - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent ће искључити рачунар сада, јер су сва преузимања завршена. - + < 1m < 1 minute < 1m - + %1m e.g: 10minutes %1m - + Working Ради - + Updating... Ажурирање... - + Not working Не ради - + Not contacted yet Није још контактиран diff --git a/src/lang/qbittorrent_sv.ts b/src/lang/qbittorrent_sv.ts index 8c45b4d9c..31bbb1908 100644 --- a/src/lang/qbittorrent_sv.ts +++ b/src/lang/qbittorrent_sv.ts @@ -125,217 +125,222 @@ Skippa hashkontroll - + + Set as default label + + + + Torrent Information Torrentinformation - + Size: Storlek: - + Comment: Kommentar: - + Date: Datum: - + Info Hash: Infohash: - + Normal Normal - + High Hög - + Maximum Maximalt - + Do not download Hämta inte - - + + I/O Error In-/Ut-fel - + The torrent file does not exist. Torrentfillen existerar inte. - + Invalid torrent Ogiltig torrent - + Failed to load the torrent: %1 Kunde inte ladda torrenten: %1 - - + + Already in download list Redan i hämtningslistan - + Free disk space: %1 - + Not Available This comment is unavailable Inte tillgänglig - + Not Available This date is unavailable Inte tillgänglig - + Not available Inte tillgänglig - + Invalid magnet link Ogiltig magnetlänk - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Denna magnetlänk känns ej igen - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnetlänk - + Retrieving metadata... Hämtar metadata... - + Not Available This size is unavailable. Inte tillgänglig - - - + + + Choose save path Välj sökväg att spara i - + Rename the file Byt namn på filen - + New name: Nytt namn: - - + + The file could not be renamed Det gick inte att byta namn på filen - + This file name contains forbidden characters, please choose a different one. Detta filnamn innehåller förbjudna tecken. Välj ett annat filnamn. - - + + This name is already in use in this folder. Please use a different name. Detta namn används redan i denna mapp. Använd ett annat namn. - + The folder could not be renamed Det gick inte att byta namn på mappen - + Rename... Byt namn... - + Priority Prioritet - + Invalid metadata - + Parsing metadata... Löser metadata... - + Metadata retrieval complete Hämtning av metadata klart - + Download Error @@ -427,9 +432,8 @@ Slå upp klienternas värdnamn - Maximum number of half-open connections [0: Disabled] - Maximalt antal halvöppna anslutningar [0: inaktiverat] + Maximalt antal halvöppna anslutningar [0: inaktiverat] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Interval för sparning av återupptagningsdata + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: Klient-ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] Anonymt läge [PÅ] - + Anonymous mode [OFF] Anonymt läge [AV] - + PeX support [ON] PeX-stöd [PÅ] - + PeX support [OFF] PeX-stöd [AV] - + Restart is required to toggle PeX support Omstart krävs för att växla PeX-stöd - + Local Peer Discovery support [ON] Stöd för Local Peer Discovery [PÅ] - + Local Peer Discovery support [OFF] Stöd för Local Peer Discovery [AV] - + Encryption support [ON] Krypteringsstöd [PÅ] - + Encryption support [FORCED] Krypteringsstöd [TVINGAD] - + Encryption support [OFF] Krypteringsstöd [AV] - + Embedded Tracker [ON] Inbäddad bevakare [PÅ] - + Failed to start the embedded tracker! Misslyckades med att starta den inbäddade bevakaren! - + Embedded Tracker [OFF] Inbäddad bevakare [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... "%1" togs bort från överföringslistan och hårddisken. - + '%1' was removed from transfer list. 'xxx.avi' was removed... "%1" togs bort från överföringslistan. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Endast en länk per rad - Download local torrent - Hämta lokal torrent + Hämta lokal torrent @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Spara filer till platsen: + + + + Label: + Etikett: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Hämtad @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Töm texten @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit R&edigera - + &Tools Ver&ktyg - + &File &Arkiv - + &Help &Hjälp - + On Downloads &Done - + &View &Visa - + &Options... A&lternativ... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Återuppta - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Återu&ppta alla - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,72 @@ You should get this information from your Web browser preferences. &Om - Exit - Avsluta + Avsluta - + &Pause &Paus - + &Delete &Ta bort - + P&ause All P&ausa alla - + &Add Torrent File... - + Open Öppna - + E&xit - Options - Alternativ + Alternativ - Resume - Återuppta + Återuppta - Pause - Gör paus + Gör paus - Delete - Ta bort + Ta bort - + Open URL Öppna URL - + &Documentation &Dokumentation - + Lock Lås - + Show Visa @@ -2019,22 +2027,21 @@ You should get this information from your Web browser preferences. Leta efter programuppdateringar - Lock qBittorrent - Lås qBittorrent + Lås qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Donera om du tycker om qBittorrent! - + Execution Log Körningslogg @@ -2409,52 +2416,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2462,17 +2469,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2480,1300 +2487,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Frankrike - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grekland - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3781,12 +3788,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP-stöd [PÅ] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP-stöd [AV] @@ -3794,206 +3801,237 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + + + + + interested(local) and unchoked(peer) + + + + + interested(peer) and choked(local) + + + + + interested(peer) and unchoked(local) + + + + + optimistic unchoke + + + + + peer snubbed + peer snubbed + + + + incoming connection + inkommande anslutning + + + + not interested(local) and unchoked(peer) + + + + + not interested(peer) and unchoked(local) + + + + + peer from PEX + klient från PEX + + + + peer from DHT + klient från DHT + + + + encrypted traffic + krypterad trafik + + + + encrypted handshake + krypterad handskakning + + + + peer from LSD + klient från LSD + + PeerListWidget - + IP IP - + Port Port - + Flags Flaggor - + Connection Anslutning - + Client i.e.: Client application Klient - + Progress i.e: % downloaded Förlopp - + Down Speed i.e: Download speed Hämtningshastighet - + Up Speed i.e: Upload speed Sändningshastighet - + Downloaded i.e: total data downloaded Hämtat - + Uploaded i.e: total data uploaded Skickat - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Relevans - + Add a new peer... Lägg till en ny klient... - + Copy selected Kopiera markerade - - + + Ban peer permanently Bannlys klient permanent - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Lägg till klient - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Är du säker på att du vill bannlysa de markerade klienterna permanent? - + &Yes &Ja - + &No &Nej - - interested(local) and choked(peer) - - - - - interested(local) and unchoked(peer) - - - - - interested(peer) and choked(local) - - - - - interested(peer) and unchoked(local) - - - - - optimistic unchoke - - - - peer snubbed - peer snubbed + peer snubbed - incoming connection - inkommande anslutning + inkommande anslutning - - not interested(local) and unchoked(peer) - - - - - not interested(peer) and unchoked(local) - - - - peer from PEX - klient från PEX + klient från PEX - peer from DHT - klient från DHT + klient från DHT - encrypted traffic - krypterad trafik + krypterad trafik - encrypted handshake - krypterad handskakning + krypterad handskakning - peer from LSD - klient från LSD + klient från LSD @@ -4767,17 +4805,17 @@ Are you sure you want to quit qBittorrent? Filtersökväg (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4883,299 +4921,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Hämtat: - + Availability: Tillgänglighet: - + Progress: Förlopp: - + Transfer Överför - + Time Active: Time (duration) the torrent is active (not paused) Tid aktiv: - + ETA: Färdig om: - + Uploaded: Skickat: - + Seeds: Distributörer: - + Download Speed: Hämtningshastighet: - + Upload Speed: Sändningshastighet: - + Peers: Klienter: - + Download Limit: Hämtningsgräns: - + Upload Limit: Sändnigsgräns: - + Wasted: Förkastat: - + Connections: Anslutningar: - + Information Information - + Comment: Kommentar: - Torrent content: - Torrentfilens innehåll: + Torrentfilens innehåll: - + Select All Markera allt - + Select None Markera ingen - + Normal Normal - + High Hög - + Share Ratio: Utdelningsförhållande: - + Reannounce In: Annonsering igen om: - + Last Seen Complete: Sågs senast fullständig - + Total Size: Total storlek: - + Pieces: Delar: - + Created By: Skapades av: - + Added On: Lades till: - + Completed On: Färdigställdes: - + Created On: Skapades den: - + Torrent Hash: Torrent-hash: - + Save Path: Sökväg att spara i: - + Maximum Maximal - - + + Do not download Hämta inte - + Never Aldrig - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open Öppna - + Open Containing Folder Öppna innehållande katalog - + Rename... Byt namn... - + Priority Prioritet - + New Web seed Ny webbdistribution - + Remove Web seed Ta bort webbdistribution - + Copy Web seed URL Kopiera webbdistributions URL - + Edit Web seed URL Ändra webbdistributions URL - + Rename the file Byt namn på filen - + New name: Nytt namn: - - + + The file could not be renamed Det gick inte att byta namn på filen - + This file name contains forbidden characters, please choose a different one. Detta filnamn innehåller förbjudna tecken. Välj ett annat filnamn. - - + + This name is already in use in this folder. Please use a different name. Detta namn används redan i denna mapp. Använd ett annat namn. - + The folder could not be renamed Det gick inte att byta namn på mappen - + qBittorrent qBittorrent @@ -5185,29 +5222,29 @@ Are you sure you want to quit qBittorrent? Filtrera filer... - + New URL seed New HTTP source Ny URL-distribution - + New URL seed: Ny URL-distribution: - - + + This URL seed is already in the list. Den här URL-distributionen finns redan i listan. - + Web seed editing Webbdistributionredigering - + Web seed URL: URL för webbdistribution: @@ -5220,18 +5257,18 @@ Are you sure you want to quit qBittorrent? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. I/O-fel: Kunde inte skapa temporär fil. @@ -5384,138 +5421,138 @@ Detta meddelande kommer inte att visas igen. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5704,12 +5741,12 @@ Detta meddelande kommer inte att visas igen. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5753,17 +5790,17 @@ Detta meddelande kommer inte att visas igen. ScanFoldersModel - + Watched Folder Bevakad mapp - + Download here Hämta hit - + Download path @@ -7821,11 +7858,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Hämtningar @@ -7833,103 +7870,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1h %2m - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Okänd - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent kommer nu att stänga av datorn därför att alla hämtningar är färdiga. - + < 1m < 1 minute < 1 min - + %1m e.g: 10minutes %1 min - + Working Fungerar - + Updating... Uppdaterar... - + Not working Fungerar inte - + Not contacted yet Inte ännu kontaktad diff --git a/src/lang/qbittorrent_tr.ts b/src/lang/qbittorrent_tr.ts index 0a84975c1..afc41704f 100644 --- a/src/lang/qbittorrent_tr.ts +++ b/src/lang/qbittorrent_tr.ts @@ -125,217 +125,222 @@ Adresleme kontrolünü atla - + + Set as default label + + + + Torrent Information Torrent Bilgisi - + Size: Boyut: - + Comment: Yorum: - + Date: Tarih: - + Info Hash: Bilgi Adreslemesi: - + Normal Normal - + High Yüksek - + Maximum En Yüksek - + Do not download İndirme yapma - - + + I/O Error G/Ç Hatası - + The torrent file does not exist. Torrent dosyası mevcut değil. - + Invalid torrent Geçersiz torrent - + Failed to load the torrent: %1 Torrenti yükleme başarısız: %1 - - + + Already in download list Zaten indirme listesinde - + Free disk space: %1 Boş disk alanı: %1 - + Not Available This comment is unavailable Mevcut Değil - + Not Available This date is unavailable Mevcut Değil - + Not available Mevcut değil - + Invalid magnet link Geçersiz magnet bağlantısı - + Torrent is already in download list. Trackers were merged. Torrent zaten indirme listesinde. İzleyiciler birleştirildi. - - + + Cannot add torrent Torrent eklenemiyor - + Cannot add this torrent. Perhaps it is already in adding state. Bu torrent eklenemiyor. Belki zaten ekleme durumundadır. - + This magnet link was not recognized Bu magnet bağlantısı tanınamadı - + Magnet link is already in download list. Trackers were merged. Magnet bağlantısı zaten indirme listesinde. İzleyiciler birleştirildi. - + Cannot add this torrent. Perhaps it is already in adding. Bu torrent eklenemiyor. Belki zaten eklenmektedir. - + Magnet link Magnet bağlantısı - + Retrieving metadata... Üstveri alınıyor... - + Not Available This size is unavailable. Mevcut Değil - - - + + + Choose save path Kayıt yolunu seçin - + Rename the file Dosyayı yeniden adlandır - + New name: Yeni adı: - - + + The file could not be renamed Dosya yeniden adlandırılamadı - + This file name contains forbidden characters, please choose a different one. Bu dosya adı yasak karakterler içeriyor, lütfen farklı bir tane seçin. - - + + This name is already in use in this folder. Please use a different name. Bu dosya adı bu klasörde zaten kullanılmakta. Lütfen farklı bir ad kullanın. - + The folder could not be renamed Klasör yeniden adlandırılamadı - + Rename... Yeniden adlandır... - + Priority Öncelik - + Invalid metadata Geçersiz üstveri - + Parsing metadata... Üstveri ayrıştırılıyor... - + Metadata retrieval complete Üstveri alımı tamamlandı - + Download Error İndirme Hatası @@ -427,9 +432,8 @@ Kişi anamakine adlarını çöz - Maximum number of half-open connections [0: Disabled] - Yarı açık bağlantıların en fazla sayısı [0: Etkisizleştirildi] + Yarı açık bağlantıların en fazla sayısı [0: Etkisizleştirildi] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Devam eden veri aralığını kaydet + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -558,7 +567,7 @@ Enable Automated RSS Downloader - Otomatikleştirilmiş RSS İndiriciyi Etkinleştir + Otomatikleştirilmiş RSS İndirici'yi etkinleştir @@ -573,7 +582,7 @@ Use Regular Expressions - Düzenli İfadeleri Kullan + Düzenli İfadeler kullan @@ -598,13 +607,13 @@ Save to a Different Directory - Farklı bir Dizine Kaydet + Farklı bir Dizine kaydet Ignore Subsequent Matches for (0 to Disable) ... X days - Daha Sonraki Eşleşmeleri Yoksay (Etkisizleştirmek için 0) + Sonradan Gelen Eşleşmelerin Yoksayılması (0=Etkisiz) @@ -614,7 +623,7 @@ Add Paused: - Duraklatılmış Ekle: + Duraklatıldı olarak ekle: @@ -644,12 +653,12 @@ &Import... - İç&e aktar... + İç&e Aktar... &Export... - &Dışa aktar... + &Dışa Aktar... @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Kişi KİMLİĞİ: - + HTTP User-Agent is '%1' HTTP Kullanıcı Tanıtıcısı '%1' - + Anonymous mode [ON] İsimsiz kipi [AÇIK] - + Anonymous mode [OFF] İsimsiz kipi [KAPALI] - + PeX support [ON] PeX desteği [AÇIK] - + PeX support [OFF] PeX desteği [KAPALI] - + Restart is required to toggle PeX support PeX desteğini değiştirmek için yeniden başlatma gerekir - + Local Peer Discovery support [ON] Yerel Kişi Keşfi desteği [AÇIK] - + Local Peer Discovery support [OFF] Yerel Kişi Keşfi desteği [KAPALI] - + Encryption support [ON] Şifreleme desteği [AÇIK] - + Encryption support [FORCED] Şifreleme desteği [ZORLANDI] - + Encryption support [OFF] Şifreleme desteği [KAPALI] - + Embedded Tracker [ON] Gömülü İzleyici [AÇIK] - + Failed to start the embedded tracker! Gömülü izleyiciyi başlatma başarısız! - + Embedded Tracker [OFF] Gömülü İzleyici [KAPALI] - + '%1' reached the maximum ratio you set. Removing... '%1', ayarladığınız en fazla orana ulaştı. Kaldırılıyor... - + '%1' reached the maximum ratio you set. Pausing... '%1', ayarladığınız en fazla orana ulaştı. Duraklatılıyor... - Error: Could not create torrent export directory: '%1' - Hata: Torrent dışa aktarma dizini oluşturulamadı: '%1' + Hata: Torrent dışa aktarma dizini oluşturulamadı: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Hata: '%1' torrenti dışa aktarılamadı, belki henüz üstveriye sahip değil. + Hata: '%1' torrenti dışa aktarılamadı, belki henüz üstveriye sahip değil. - + System network status changed to %1 e.g: System network status changed to ONLINE Sistem ağ durumu %1 olarak değişti - + ONLINE ÇEVRİMİÇİ - + OFFLINE ÇEVRİMDIŞI - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 ağ yapılandırması değişti, oturum bağlaması yenileniyor - + Unable to decode '%1' torrent file. '%1' torrent dosyası çözülemiyor. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' '%1' dosyasının tekrarlayan indirmesi '%2' torrenti içine gömüldü - + Couldn't save '%1.torrent' '%1.torrent' dosyası kaydedilemedi - + because %1 is disabled. this peer was blocked because uTP is disabled. engellendi çünkü %1 etkisizleştirildi. - + because %1 is disabled. this peer was blocked because TCP is disabled. engellendi çünkü %1 etkisizleştirildi. - + URL seed lookup failed for URL: '%1', message: %2 URL gönderimi arama şu URL için başarısız oldu: '%1', ileti: '%2' - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' dosyası aktarım listesinden ve sabit diskten kaldırıldı. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' dosyası aktarım listesinden kaldırıldı. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' indiriliyor, lütfen bekleyin... - Torrent Export: torrent is invalid, skipping... - Torrent Dışa Aktarma: torrent geçersiz, atlanıyor... + Torrent Dışa Aktarma: torrent geçersiz, atlanıyor... - + DHT support [ON] DHT desteği [AÇIK] - + DHT support [OFF]. Reason: %1 DHT desteği [KAPALI]. Sebep: %1 - + DHT support [OFF] DHT desteği [KAPALI] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemeyi deniyor: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2 + qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2 - + The network interface defined is invalid: %1 Tanımlanan ağ arayüzü geçersiz: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemeyi deniyor: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent dinlemek için bir %1 yerel adresi bulamadı - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' İzleyici '%1', '%2' torrentine eklendi - + Tracker '%1' was deleted from torrent '%2' İzleyici '%1', '%2' torrentinden silindi - + URL seed '%1' was added to torrent '%2' Gönderim URL'si '%1', '%2' torrentine eklendi - + URL seed '%1' was removed from torrent '%2' Gönderim URL'si '%1', '%2' torrentinden kaldırıldı - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. '%1' torrent dosyası devam ettirilemiyor. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verilen IP süzgeci başarılı olarak ayrıştırıldı: %1 kural uygulandı. - + Error: Failed to parse the provided IP filter. Hata: Verilen IP süzgecini ayrıştırma başarısız. - + Couldn't add torrent. Reason: %1 Torrent eklenemedi. Sebep: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' dosyasına devam edildi. (hızlı devam) - + '%1' added to download list. 'torrent name' was added to download list. '%1' dosyası indirme listesine eklendi. - + An I/O error occurred, '%1' paused. %2 Bir G/Ç hatası meydana geldi, '%1' duraklatıldı. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Bağlantı noktası eşleme başarısız, ileti: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Bağlantı noktası eşleme başarılı, ileti: %1 - + due to IP filter. this peer was blocked due to ip filter. IP süzgecinden dolayı engellendi. - + due to port filter. this peer was blocked due to port filter. bağlantı noktası süzgecinden dolayı engellendi. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p karışık kip kısıtlamalarından dolayı engellendi. - + because it has a low port. this peer was blocked because it has a low port. engellendi çünkü düşük bir bağlantı noktasına sahip. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent, %1 arayüzünde şu bağlantı noktasını başarılı olarak dinliyor: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4 + qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Dış IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Torrent taşınamadı: '%1'. Sebep: %2 - + File sizes mismatch for torrent '%1', pausing it. '%1' torrenti için dosya boyutu uyuşmuyor, duraklatılıyor. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Hızlı devam verisi '%1' torrenti için reddedildi. Sebep: '%2'. Tekrar kontrol ediliyor... @@ -1307,20 +1323,20 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. G/Ç Hatası: Okuma kipinde ip süzgeci dosyası açılamadı. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Ayrıştırma Hatası: Süzgeç dosyası geçerli bir PeerGuardian P2B dosyası değil. @@ -1328,43 +1344,43 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. GeoIPDatabase - - + + Unsupported database file size. Desteklenmeyen veritabanı dosya boyutu. - + Metadata error: '%1' entry not found. Üstveri hatası: '%1' giriş bulunamadı. - + Metadata error: '%1' entry has invalid type. Üstveri hatası: '%1' giriş geçersiz türe sahip. - + Unsupported database version: %1.%2 Desteklenmeyen veritabanı sürümü: %1.%2 - + Unsupported IP version: %1 Desteklenmeyen IP sürümü: %1 - + Unsupported record size: %1 Desteklenmeyen kayıt boyutu: %1 - + Invalid database type: %1 Geçersiz veritabanı türü: %1 - + Database corrupted: no data section found. Veritabanı bozuldu: bulunan veri bölümü yok. @@ -1397,9 +1413,8 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Her satıra bir bağlantı - Download local torrent - Yerel torrenti indir + Yerel torrenti indir @@ -1572,7 +1587,22 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Etkin değil - + + Save files to location: + Dosyaların kaydedildiği yer: + + + + Label: + Etiket: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? İndirilen @@ -1580,7 +1610,12 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Logout - Oturumu kapat + Oturumu Kapat + + + + Upload local torrent + @@ -1722,7 +1757,7 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. LineEdit - + Clear the text Metni temizle @@ -1743,37 +1778,37 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. MainWindow - + &Edit Düz&en - + &Tools &Araçlar - + &File &Dosya - + &Help &Yardım - + On Downloads &Done İndirmeler &Bittiğinde - + &View &Görünüm - + &Options... &Seçenekler... @@ -1783,153 +1818,153 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. &Devam - + Torrent &Creator Torrent &Oluşturucu - + Set Upload Limit... Gönderme Sınırını Ayarla... - + Set Download Limit... İndirme Sınırını Ayarla... - + Set Global Download Limit... Genel İndirme Sınırını Ayarla... - + Set Global Upload Limit... Genel Gönderme Sınırını Ayarla... - + Minimum Priority En Düşük Öncelik - + Top Priority En Yüksek Öncelik - + Decrease Priority Önceliği Azalt - + Increase Priority Önceliği Arttır - - + + Alternative Speed Limits Alternatif Hız Sınırları - + &Top Toolbar Üst &Araç Çubuğu - + Display Top Toolbar Üst Araç Çubuğunu Görüntüle - + S&peed in Title Bar Başlık Çubuğunda &Hızı Göster - + Show Transfer Speed in Title Bar Aktarım Hızını Başlık Çubuğunda Göster - + &RSS Reader &RSS Okuyucu - + Search &Engine Arama &Motoru - + L&ock qBittorrent qBittorrent'i Kilitle - + &Import Existing Torrent... Varolan Torrenti İç&e Aktar... - + Import Torrent... Torrenti İçe Aktar... - + Do&nate! &Bağış Yap! - + R&esume All &Tümüne Devam Et - + &Log &Günlük - + &Exit qBittorrent qBittorrent'ten Çı&k - + &Suspend System Bilgisayarı &Askıya Al - + &Hibernate System Bilgisayarı &Hazırda Beklet - + S&hutdown System Bil&gisayarı Kapat - + &Disabled &Etkisizleştirildi - + &Statistics İ&statistikler - + Check for Updates Güncellemeleri Kontrol Et - + Check for Program Updates Program Güncellemelerini Kontrol Et @@ -1939,77 +1974,72 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. &Hakkında - Exit - Çıkış + Çıkış - + &Pause &Duraklat - + &Delete &Sil - + P&ause All Tümünü D&uraklat - + &Add Torrent File... Torrent Dosyası &Ekle... - + Open - + E&xit Çı&kış - Options - Seçenekler + Seçenekler - Resume - Devam et + Devam et - Pause - Duraklat + Duraklat - Delete - Sil + Sil - + Open URL URL'yi Aç - + &Documentation B&elgeler - + Lock Kilitle - + Show Göster @@ -2020,22 +2050,21 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Program güncellemelerini kontrol et - Lock qBittorrent - qBittorrent'i kilitle + qBittorrent'i kilitle - + Add Torrent &Link... Torrent &Bağlantısı Ekle... - + If you like qBittorrent, please donate! qBittorrent'i beğendiyseniz, lütfen bağış yapın! - + Execution Log Çalıştırma Günlüğü @@ -2414,52 +2443,52 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Değişken DNS'iniz başarılı olarak güncellendi. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Değişken DNS hatası: Hizmet geçici olarak kullanılamıyor, 30 dakika içinde yeniden denenecektir. - + Dynamic DNS error: hostname supplied does not exist under specified account. Değişken DNS hatası: verilen anamakine adı belirtilen hesap altında mevcut değil. - + Dynamic DNS error: Invalid username/password. Değişken DNS hatası: Geçersiz kullanıcı adı/parola. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Değişken DNS hatası: qBittorrent, hizmet tarafından kara listeye alındı, lütfen http://bugs.qbittorrent.org adresinde bir hata bildirin. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Değişken DNS hatası: %1, hizmet tarafından geri döndürüldü, lütfen http://bugs.qbittorrent.org adresinde bir hata bildirin. - + Dynamic DNS error: Your username was blocked due to abuse. Değişken DNS hatası: Kullanıcı adınız kötüye kullanımdan dolayı engellendi. - + Dynamic DNS error: supplied domain name is invalid. Değişken DNS hatası: verilen etki alanı adı geçersiz. - + Dynamic DNS error: supplied username is too short. Değişken DNS hatası: verilen kullanıcı adı çok kısa. - + Dynamic DNS error: supplied password is too short. Değişken DNS hatası: verilen parola çok kısa. @@ -2467,17 +2496,17 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::DownloadHandler - + I/O Error G/Ç Hatası - + The file size is %1. It exceeds the download limit of %2. Dosya boyutu %1. %2 indirme sınırını aşıyor. - + Unexpected redirect to magnet URI. Magnet URI'ye beklenmedik yönlendirme. @@ -2485,1300 +2514,1300 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP veritabanı yüklendi. Türü: %1. Yapım zamanı: %2. - - + + Couldn't load GeoIP database. Reason: %1 GeoIP veritabanı yüklenemedi. Sebep: %1 - - + + N/A Yok - + Asia/Pacific Region Asya/Pasifik Bölgesi - + Europe Avrupa - + Andorra Andora - + United Arab Emirates Birleşik Arap Emirlikleri - + Afghanistan Afganistan - + Antigua and Barbuda Antigua ve Barbuda - + Anguilla Anguilla - + Albania Arnavutluk - + Armenia Ermenistan - + Netherlands Antilles Hollanda Antilleri - + Angola Angola - + Antarctica Antartika - + Argentina Arjantina - + American Samoa Amerikan Samoası - + Austria Avusturya - + Australia Avusturalya - + Aruba Aruba - + Azerbaijan Azerbaycan - + Bosnia and Herzegovina Bosna Hersek - + Barbados Barbados - + Bangladesh Bangladeş - + Belgium Belçika - + Burkina Faso Burkina Faso - + Bulgaria Bulgaristan - + Bahrain Bahreyn - + Burundi Burundi - + Benin Benin - + Bermuda Bermuda - + Brunei Darussalam Brunei Darussalam - + Bolivia Bolivya - + Brazil Brezilya - + Bahamas Bahamalar - + Bhutan Bhutan - + Bouvet Island Bouvet Adası - + Botswana Botsvana - + Belarus Beyaz Rusya - + Belize Beliz - + Canada Kanada - + Cocos (Keeling) Islands Cocos (Keeling) Adaları - + Congo, The Democratic Republic of the Demokratik Kongo Cumhuriyeti - + Central African Republic Orta Afrika Cumhuriyeti - + Congo Kongo - + Switzerland İsviçre - + Cote D'Ivoire Fildişi Sahili - + Cook Islands Cook Adaları - + Chile Şili - + Cameroon Kamerun - + China Çin - + Colombia Kolombiya - + Costa Rica Kosta Rika - + Cuba Kuba - + Cape Verde Yeşil Burun Adaları - + Christmas Island Christmas Adası - + Cyprus Kıbrıs - + Czech Republic Çek Cumhuriyeti - + Germany Almanya - + Djibouti Cibuti - + Denmark Danimarka - + Dominica Dominika - + Dominican Republic Dominik Cumhuriyeti - + Algeria Cezayir - + Ecuador Ekvator - + Estonia Estonya - + Egypt Mısır - + Western Sahara Batı Sahra - + Eritrea Eritre - + Spain İspanya - + Ethiopia Etiyopya - + Finland Finlandiya - + Fiji Fiji - + Falkland Islands (Malvinas) Falkland Adaları (Malvinas) - + Micronesia, Federated States of Mikronezya Federal Devletleri - + Faroe Islands Faroe Adaları - + France Fransa - + France, Metropolitan Fransa, Metropolitan - + Gabon Gabon - + United Kingdom Birleşik Krallık - + Grenada Grenada - + Georgia Gürcistan - + French Guiana Fransız Guyanası - + Ghana Gana - + Gibraltar Cebelitarık - + Greenland Grönland - + Gambia Gambiya - + Guinea Gine - + Guadeloupe Guadeloupe - + Equatorial Guinea Ekvator Ginesi - + Greece Yunanistan - + South Georgia and the South Sandwich Islands Güney Georgia ve Güney Sandwich Adaları - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Gine-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heard Adası ve McDonald Adaları - + Honduras Honduras - + Croatia Hırvatistan - + Haiti Haiti - + Hungary Macaristan - + Indonesia Endonezya - + Ireland İrlanda - + Israel İsrail - + India Hindistan - + British Indian Ocean Territory Britanya Hint Okyanusu Toprakları - + Iraq Irak - + Iran, Islamic Republic of İran İslam Cumhuriyeti - + Iceland İzlanda - + Italy İtalya - + Jamaica Jamaika - + Jordan Ürdün - + Japan Japonya - + Kenya Kenya - + Kyrgyzstan Kırgizistan - + Cambodia Kamboçya - + Kiribati Kiribati - + Comoros Komorlar - + Saint Kitts and Nevis Saint Kitts ve Nevis - + Korea, Democratic People's Republic of Kore Demokratik Halk Cumhuriyeti - + Korea, Republic of Güney Kore - + Kuwait Kuveyt - + Cayman Islands Kayman Adaları - + Kazakhstan Kazakistan - + Lao People's Democratic Republic Laos Demokratik Halk Cumhuriyeti - + Lebanon Lübnan - + Saint Lucia Saint Lucia - + Liechtenstein Lihtenştayn - + Sri Lanka Sri Lanka - + Liberia Liberya - + Lesotho Lesotho - + Lithuania Litvanya - + Luxembourg Lüksemburg - + Latvia Letonya - + Libyan Arab Jamahiriya Libya - + Morocco Fas - + Monaco Monako - + Moldova, Republic of Moldova - + Madagascar Madakaskar - + Marshall Islands Marshall Adaları - + Macedonia Makedonya - + Mali Mali - + Myanmar Myanmar - + Mongolia Moğolistan - + Macau Makao - + Northern Mariana Islands Kuzey Mariana Adaları - + Martinique Martinik - + Mauritania Moritanya - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldivler - + Malawi Malavi - + Mexico Meksika - + Malaysia Malesya - + Mozambique Mozambik - + Namibia Namibya - + New Caledonia Yeni Kaledonya - + Niger Nijer - + Norfolk Island Norfolk Adası - + Nigeria Nijerya - + Nicaragua Nikaragua - + Netherlands Hollanda - + Norway Norveç - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Yeni Zelanda - + Oman Oman - + Panama Panama - + Peru javascript:; - + French Polynesia Fransız Polinezyası - + Papua New Guinea Papua Yeni Gine - + Philippines Filipinler - + Pakistan Pakistan - + Poland Polonya - + Saint Pierre and Miquelon Saint Pierre ve Miquelon - + Pitcairn Islands Pitcairn Adaları - + Puerto Rico Porto Riko - + Palestinian Territory Filistin Toprakları - + Portugal Portekiz - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion Reunion - + Romania Romanya - + Russian Federation Rusya Federasyonu - + Rwanda Ruanda - + Saudi Arabia Suudi Arabistan - + Solomon Islands Solomon Adaları - + Seychelles Seyşeller - + Sudan Sudan - + Sweden İsveç - + Singapore Singapur - + Saint Helena Saint Helena - + Slovenia Slovenya - + Svalbard and Jan Mayen Svalbard ve Jan Mayen - + Slovakia Slovakya - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somali - + Suriname Surinam - + Sao Tome and Principe Sao Tome ve Principe - + El Salvador El Salvador - + Syrian Arab Republic Suriye Arap Cumhuriyeti - + Swaziland Svaziland - + Turks and Caicos Islands Turks ve Caicos Adaları - + Chad Çad - + French Southern Territories Fransız Güney Toprakları - + Togo Togo - + Thailand Tayland - + Tajikistan Tacikistan - + Tokelau Tokelau - + Turkmenistan Türkmenistan - + Tunisia Tunus - + Tonga Tonga - + Timor-Leste Doğu Timor - + Turkey Türkiye - + Trinidad and Tobago Trinidad ve Tobago - + Tuvalu Tuvalu - + Taiwan Tayvan - + Tanzania, United Republic of Tanzanya Birleşik Cumhuriyeti - + Ukraine Ukrayna - + Uganda Uganda - + United States Minor Outlying Islands Amerika Birleşik Devletleri Küçük Dış Adaları - + United States Amerika Birleşik Devletleri - + Uruguay Uruguay - + Uzbekistan Özbekistan - + Holy See (Vatican City State) Vatikan - + Saint Vincent and the Grenadines Saint Vincent ve Grenadinler - + Venezuela Venezuela - + Virgin Islands, British Britanya Virjin Adaları - + Virgin Islands, U.S. ABD Virjin Adaları - + Vietnam Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis ve Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Sırbistan - + South Africa Güney Afrika - + Zambia Zambiya - + Montenegro Karadağ - + Zimbabwe Zimbabve - + Anonymous Proxy İsimsiz Proksi - + Satellite Provider Uydu Sağlayıcı - + Other Diğer - + Aland Islands Aland Adaları - + Guernsey Guernsey - + Isle of Man Man Adası - + Jersey Jersey - + Saint Barthelemy Saint Barthelemy - + Saint Martin Saint Martin - + Could not uncompress GeoIP database file. GeoIP veritabanı dosyası genişletilemedi. - + Couldn't save downloaded GeoIP database file. İndirilmiş GeoIP veritabanı dosyası kaydedilemedi. - + Successfully updated GeoIP database. GeoIP veritabanı başarılı olarak güncellendi. - + Couldn't download GeoIP database file. Reason: %1 GeoIP veritabanı dosyası indirilemedi. Sebep: %1 @@ -3786,12 +3815,12 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP desteği [AÇIK] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP desteği [KAPALI] @@ -3799,206 +3828,265 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::Smtp - + Email Notification Error: E-posta Bildirim Hatası: + + PeerInfo + + + interested(local) and choked(peer) + ilgilenen(yerel) ve sıkışan(kişi) + + + + interested(local) and unchoked(peer) + ilgilenen(yerel) ve sıkışmayan(kişi) + + + + interested(peer) and choked(local) + ilgilenen(kişi) ve sıkışan(yerel) + + + + interested(peer) and unchoked(local) + ilgilenen(kişi) ve sıkışmayan(yerel) + + + + optimistic unchoke + iyimser sıkışmama + + + + peer snubbed + kişi geri çevrildi + + + + incoming connection + gelen bağlantı + + + + not interested(local) and unchoked(peer) + ilgilenmeyen(yerel) ve sıkışmayan(kişi) + + + + not interested(peer) and unchoked(local) + ilgilenmeyen(kişi) ve sıkışmayan(yerel) + + + + peer from PEX + PEX'ten kişi + + + + peer from DHT + DHT'den kişi + + + + encrypted traffic + şifrelenmiş trafik + + + + encrypted handshake + şifrelenmiş görüşme + + + + peer from LSD + LSD'den kişi + + PeerListWidget - + IP IP - + Port B.Noktası - + Flags İşaretler - + Connection Bağlantı - + Client i.e.: Client application İstemci - + Progress i.e: % downloaded İlerleme - + Down Speed i.e: Download speed İndirme Hızı - + Up Speed i.e: Upload speed Gönderme Hızı - + Downloaded i.e: total data downloaded İndirilen - + Uploaded i.e: total data uploaded Gönderilen - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Uygunluk - + Add a new peer... Yeni bir kişi ekle... - + Copy selected Seçileni kopyala - - + + Ban peer permanently Kişiyi kalıcı olarak yasakla - + Manually adding peer '%1'... Kişi '%1' el ile ekleniyor... - + The peer '%1' could not be added to this torrent. Kişi '%1' bu torrente eklenemedi. - + Manually banning peer '%1'... Kişi '%1' el ile yasaklanıyor... - + Peer addition Kişi ekleme - + Some peers could not be added. Check the Log for details. Bazı kişiler eklenemedi. Ayrıntılar için Günlüğü kontrol edin. - + The peers were added to this torrent. Kişiler bu torrente eklendi. - + Are you sure you want to ban permanently the selected peers? Seçilen kişileri kalıcı olarak yasaklamak istediğinize emin misiniz? - + &Yes &Evet - + &No &Hayır - interested(local) and choked(peer) - ilgilenen(yerel) ve sıkışan(kişi) + ilgilenen(yerel) ve sıkışan(kişi) - interested(local) and unchoked(peer) - ilgilenen(yerel) ve sıkışmayan(kişi) + ilgilenen(yerel) ve sıkışmayan(kişi) - interested(peer) and choked(local) - ilgilenen(kişi) ve sıkışan(yerel) + ilgilenen(kişi) ve sıkışan(yerel) - interested(peer) and unchoked(local) - ilgilenen(kişi) ve sıkışmayan(yerel) + ilgilenen(kişi) ve sıkışmayan(yerel) - optimistic unchoke - iyimser sıkışmama + iyimser sıkışmama - peer snubbed - kişi geri çevrildi + kişi geri çevrildi - incoming connection - gelen bağlantı + gelen bağlantı - not interested(local) and unchoked(peer) - ilgilenmeyen(yerel) ve sıkışmayan(kişi) + ilgilenmeyen(yerel) ve sıkışmayan(kişi) - not interested(peer) and unchoked(local) - ilgilenmeyen(kişi) ve sıkışmayan(yerel) + ilgilenmeyen(kişi) ve sıkışmayan(yerel) - peer from PEX - PEX'ten kişi + PEX'ten kişi - peer from DHT - DHT'den kişi + DHT'den kişi - encrypted traffic - şifrelenmiş trafik + şifrelenmiş trafik - encrypted handshake - şifrelenmiş görüşme + şifrelenmiş görüşme - peer from LSD - LSD'den kişi + LSD'den kişi @@ -4126,13 +4214,13 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? From: from (time1 to time2) - Buradan: + Bu saatten: To: time1 to time2 - Buraya: + Bu saate: @@ -4525,7 +4613,7 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Info: The password is saved unencrypted - Bilgi: Parola şifrelenmeden kaydedildi + Bilgi: Parola şifrelenmeden kaydedilir @@ -4772,17 +4860,17 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Süzgeç yolu (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Programdan düzgün olmayan bir şekilde çıkıldığı algılandı. Ayarları geri yüklemek için geri alma dosyası kullanılıyor. - + An access error occurred while trying to write the configuration file. Yapılandırma dosyasını yazmaya çalışırken bir erişim hatası meydana geldi. - + A format error occurred while trying to write the configuration file. Yapılandırma dosyasını yazmaya çalışırken bir biçim hatası meydana geldi. @@ -4888,299 +4976,298 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? PropertiesWidget - + Downloaded: İndirilen: - + Availability: Kullanılabilirlik: - + Progress: İlerleme: - + Transfer Aktarım - + Time Active: Time (duration) the torrent is active (not paused) Etkinlik Süresi: - + ETA: TBS: - + Uploaded: Gönderilen: - + Seeds: Gönderim: - + Download Speed: İndirme Hızı: - + Upload Speed: Gönderme Hızı: - + Peers: Kişi: - + Download Limit: İndirme Sınırı: - + Upload Limit: Gönderme Sınırı: - + Wasted: Boşa Giden: - + Connections: Bağlantı: - + Information Bilgi - + Comment: Yorum: - Torrent content: - Torrent içeriği: + Torrent içeriği: - + Select All Tümünü Seç - + Select None Hiçbirini Seçme - + Normal Normal - + High Yüksek - + Share Ratio: Paylaşma Oranı: - + Reannounce In: Yeniden Duyuru Süresi: - + Last Seen Complete: Tam Halinin Görülmesi: - + Total Size: Toplam Boyut: - + Pieces: Parça: - + Created By: Oluşturan: - + Added On: Eklenme: - + Completed On: Tamamlanma: - + Created On: Oluşturma: - + Torrent Hash: Torrent Adreslemesi: - + Save Path: Kaydetme Yolu: - + Maximum En Yüksek - - + + Do not download İndirme yapma - + Never Asla - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (%3 var) - + %1 (%2 this session) %1 (bu oturumda %2): - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (gönderilme %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (en fazla %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (toplam %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (ort. %2) - + Open - + Open Containing Folder İçerdiği Klasörü Aç - + Rename... Yeniden Adlandır... - + Priority Öncelik - + New Web seed Yeni Web gönderimi - + Remove Web seed Web gönderimini kaldır - + Copy Web seed URL Web gönderim URL'sini kopyala - + Edit Web seed URL Web gönderim URL'sini düzenle - + Rename the file Dosyayı yeniden adlandır - + New name: Yeni adı: - - + + The file could not be renamed Dosya yeniden adlandırılamadı - + This file name contains forbidden characters, please choose a different one. Bu dosya adı yasak karakterler içeriyor, lütfen başka bir tane seçin. - - + + This name is already in use in this folder. Please use a different name. Bu ad zaten bu klasör içinde kullanımda, Lütfen farklı bir ad kullanın. - + The folder could not be renamed Klasör yeniden adlandırılamadı - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Dosyaları süz... - + New URL seed New HTTP source Yeni URL gönderimi - + New URL seed: Yeni URL gönderimi: - - + + This URL seed is already in the list. Bu URL gönderimi zaten listede. - + Web seed editing Web gönderim düzenleme - + Web seed URL: Web gönderim URL'si: @@ -5225,19 +5312,19 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? IP adresiniz çok fazla başarısız kimlik doğrulaması denemesinden sonra yasaklandı. - + Error: '%1' is not a valid torrent file. Hata: '%1' geçerli bir torrent dosyası değil. - + Error: Could not add torrent to session. Hata: Torrent oturuma eklenemedi. - + I/O Error: Could not create temporary file. G/Ç Hatası: Geçici dosya oluşturamadı. @@ -5390,138 +5477,138 @@ Başka bir bildiri yayınlanmayacaktır. [qBittorrent] '%1' indirmeyi tamamladı - + The remote host name was not found (invalid hostname) Uzak anamakine adı bulunamadı (geçersiz anamakine adı) - + The operation was canceled İşlem iptal edildi - + The remote server closed the connection prematurely, before the entire reply was received and processed Uzak sunucu, tam bir yanıt alınmadan ve işlenmeden önce bağlantıyı erken kapattı - + The connection to the remote server timed out Uzak sunucuya bağlantı zaman aşımına uğradı - + SSL/TLS handshake failed SSL/TLS görüşmesi başarısız oldu - + The remote server refused the connection Uzak sunucu bağlantıyı reddetti - + The connection to the proxy server was refused Proksi sunucusuna bağlantı reddedildi - + The proxy server closed the connection prematurely Proksi sunucusu bağlantıyı erken kapattı - + The proxy host name was not found Proksi anamakine adı bulunamadı - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Proksi sunucusuna bağlantı zaman aşımına uğradı ya da proksi gönderilen isteğe zamanında yanıt vermedi - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Proksi, isteğe karşılık vermek için kimlik doğrulaması gerektirir ancak verilen kimlik bilgilerinin hiçbirini kabul etmedi - + The access to the remote content was denied (401) Uzak içeriğe erişim reddedildi (401) - + The operation requested on the remote content is not permitted Uzak içerikte istenen işleme izin verilmedi - + The remote content was not found at the server (404) Uzak içerik sunucuda bulunamadı (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Uzak sunucu, içeriği sunmak için kimlik doğrulaması gerektirir ancak verilen kimlik bilgileri kabul edilmedi - + The Network Access API cannot honor the request because the protocol is not known Ağ Erişim API'si isteğe karşılık veremiyor çünkü protokol bilinmiyor - + The requested operation is invalid for this protocol İstenen işlem bu protokol için geçersiz - + An unknown network-related error was detected Bilinmeyen bir ağ-ile-ilgili hata saptandı - + An unknown proxy-related error was detected Bilinmeyen bir proksi-ile-ilgili hata saptandı - + An unknown error related to the remote content was detected Uzak içerikle ilgili bilinmeyen bir hata saptandı - + A breakdown in protocol was detected Protokolde bir bozulma saptandı - + Unknown error Bilinmeyen hata - - + + Upgrade Yükselt - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Dosyaları farklı olarak kaydeden eski bir sürümden güncellediniz. Yeni kaydetme sistemine geçirmek zorundasınız. Artık v3.3.0 sürümünden daha eski bir sürümü kullanamayacaksınız. Devam edilsin mi? [e/h] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Dosyaları farklı olarak kaydeden eski bir sürümden güncellediniz. Yeni kaydetme sistemine geçirmek zorundasınız. Eğer devam ederseniz, artık v3.3.0 sürümünden daha eski bir sürümü kullanamayacaksınız. - + Couldn't migrate torrent with hash: %1 Torrentin geçirilmesi şu adresleme ile yapılamadı: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Torrentin geçirilmesi yapılamadı. Geçersiz hızlı devam etme dosya adı: %1 @@ -5710,12 +5797,12 @@ Başka bir bildiri yayınlanmayacaktır. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... - + Automatically downloading '%1' torrent from '%2' RSS feed... '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... @@ -5759,17 +5846,17 @@ Başka bir bildiri yayınlanmayacaktır. ScanFoldersModel - + Watched Folder İzlenen Klasör - + Download here Buraya indir - + Download path İndirme yolu @@ -6347,7 +6434,7 @@ Başka bir bildiri yayınlanmayacaktır. Errored (0) - Hata olan (0) + Hata oldu (0) @@ -6392,7 +6479,7 @@ Başka bir bildiri yayınlanmayacaktır. Errored (%1) - Hata olan (%1) + Hata oldu (%1) @@ -6509,7 +6596,7 @@ Başka bir bildiri yayınlanmayacaktır. Import - İçe aktar + İçe Aktar @@ -7048,7 +7135,7 @@ Başka bir bildiri yayınlanmayacaktır. Errored torrent status, the torrent has an error - Hata olan + Hata oldu @@ -7579,7 +7666,7 @@ Başka bir bildiri yayınlanmayacaktır. Add torrent links - Torrent bağlantılarını ekle + Torrent bağlantılarını ekleyin @@ -7828,11 +7915,11 @@ Bu eklentiler etkisizleştirildi. fsutils - - - - - + + + + + Downloads İndirmeler @@ -7840,103 +7927,103 @@ Bu eklentiler etkisizleştirildi. misc - + B bytes B - + KiB kibibytes (1024 bytes) KB - + MiB mebibytes (1024 kibibytes) MB - + GiB gibibytes (1024 mibibytes) GB - + TiB tebibytes (1024 gibibytes) TB - + Python not detected Python algılanmadı - + Python version: %1 Python sürümü: %1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1s %2d - + %1d %2h e.g: 2days 10hours %1g %2s - + Unknown Unknown (size) Bilinmiyor - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent bilgisayarı şimdi kapatacak çünkü tüm indirmeler tamamlandı. - + < 1m < 1 minute < 1d - + %1m e.g: 10minutes %1d - + Working Çalışıyor - + Updating... Güncelleniyor... - + Not working Çalışmıyor - + Not contacted yet Henüz bağlanmadı diff --git a/src/lang/qbittorrent_uk.ts b/src/lang/qbittorrent_uk.ts index 8ce01206d..db04ae715 100644 --- a/src/lang/qbittorrent_uk.ts +++ b/src/lang/qbittorrent_uk.ts @@ -125,217 +125,222 @@ Пропустити перевірку хешу - + + Set as default label + + + + Torrent Information Інформація про торрент - + Size: Розмір: - + Comment: Коментар: - + Date: Дата: - + Info Hash: Інформаційний хеш: - + Normal Нормальний - + High Високий - + Maximum Максимальний - + Do not download Не завантажувати - - + + I/O Error Помилка вводу/виводу - + The torrent file does not exist. Цей torrent-файл не існує. - + Invalid torrent Хибний торрент - + Failed to load the torrent: %1 Не вдалось завантажити торрент: %1 - - + + Already in download list Вже є в списку завантажень - + Free disk space: %1 Вільне місце на диску: %1 - + Not Available This comment is unavailable Недоступно - + Not Available This date is unavailable Недоступно - + Not available Недоступно - + Invalid magnet link Хибне magnet-посилання - + Torrent is already in download list. Trackers were merged. Торрент вже є у списку завантажень. Трекери об’єднано. - - + + Cannot add torrent Не вдалось додати торрент - + Cannot add this torrent. Perhaps it is already in adding state. Не вдалось додати цей торрент. Можливо, він уже в стані додавання. - + This magnet link was not recognized Це magnet-посилання не було розпізнано - + Magnet link is already in download list. Trackers were merged. Magnet-посилання вже є в списку завантажень. Трекерт об’єднано. - + Cannot add this torrent. Perhaps it is already in adding. Не вдалось додати цей торрент. Можливо, він уже додається - + Magnet link Magnet-посилання - + Retrieving metadata... Отримуються метадані... - + Not Available This size is unavailable. Недоступно - - - + + + Choose save path Виберіть шлях збереження - + Rename the file Перейменувати файл - + New name: Нова назва: - - + + The file could not be renamed Файл не вдалося перейменувати - + This file name contains forbidden characters, please choose a different one. Ця назва файла містить заборонені символи. Будь ласка, виберіть іншу. - - + + This name is already in use in this folder. Please use a different name. Ця назва вже використовується в даній папці. Будь ласка, виберіть іншу. - + The folder could not be renamed Цю теку не вдалося перейменувати - + Rename... Перейменувати... - + Priority Пріоритет - + Invalid metadata Хибні метадані - + Parsing metadata... Розбираються метадані... - + Metadata retrieval complete Завершено отримання метаданих - + Download Error Помилка завантаження @@ -427,9 +432,8 @@ Дізнаватись адресу пірів - Maximum number of half-open connections [0: Disabled] - Максимальна кількість напіввідкритих з’єднань [0: Вимк.] + Максимальна кількість напіввідкритих з’єднань [0: Вимк.] @@ -473,6 +477,11 @@ How often the fastresume file is saved. Інтервал збереження даних відновлення + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -553,58 +562,58 @@ RSS Downloader - + Завантажувач RSS Enable Automated RSS Downloader - + Увімкнути автоматичний завантажувач RSS Download Rules - + Правила завантаження Rule Definition - + Визначення правила Use Regular Expressions - + Використовувати регулярні вирази Must Contain: - + Повинно містити: Must Not Contain: - + Не може містити: Episode Filter: - + Фільтр серій: Assign Label: - + Призначити мітку: Save to a Different Directory - + Зберегти в іншу теку Ignore Subsequent Matches for (0 to Disable) ... X days - + Ігнорувати подальші збіги протягом (0 щоб вимкнути) @@ -619,37 +628,37 @@ Use global settings - + Використовувати глобальні налаштування Always - + Завжди Never - Ніколи + Ніколи Apply Rule to Feeds: - + Застосувати правило до подач: Matching RSS Articles - + Відповідні RSS-статті &Import... - + &Імпорт... &Export... - + &Експорт... @@ -710,12 +719,12 @@ Last Match: %1 days ago - + Останній збіг: %1 днів тому Last Match: Unknown - + Останній збіг: невідомо @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Ідентифікатор піра: - + HTTP User-Agent is '%1' Назва програми (HTTP): '%1' - + Anonymous mode [ON] Анонімний режим [Увімк.] - + Anonymous mode [OFF] Анонімний режим [Вимк.] - + PeX support [ON] Підтримка PeX [Увімк.] - + PeX support [OFF] Підтримка PeX [Вимк.] - + Restart is required to toggle PeX support Щоб перемкнути підтримку PeX, потрібно перезавантажити програму - + Local Peer Discovery support [ON] Підтримка локального пошуку пірів [Увімк.] - + Local Peer Discovery support [OFF] Підтримка пошуку локальних пірів [Вимк.] - + Encryption support [ON] Підтримка шифрування [Увімк.] - + Encryption support [FORCED] Підтримка шифрування [Примусова] - + Encryption support [OFF] Підтримка шифрування [Вимк.] - + Embedded Tracker [ON] Вбудований трекер [Увімк.] - + Failed to start the embedded tracker! Не вдалося запустити вбудований трекер! - + Embedded Tracker [OFF] Вбудований трекер [Вимк.] - + '%1' reached the maximum ratio you set. Removing... '%1' досяг максимального коефіцієнта, налаштованого вами. Видаляється... - + '%1' reached the maximum ratio you set. Pausing... '%1' досяг максимального коефіцієнта, налаштованого вами. Призупиняється... - Error: Could not create torrent export directory: '%1' - Помилка: Не вдалось створити теку експорту: '%1' + Помилка: Не вдалось створити теку експорту: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - Помилка: не вдалось експортувати торрент '%1', можливо, він ще не має метаданих. + Помилка: не вдалось експортувати торрент '%1', можливо, він ще не має метаданих. - + System network status changed to %1 e.g: System network status changed to ONLINE - + Мережевий статус системи змінено на %1 - + ONLINE - + ОНЛАЙН - + OFFLINE - + ОФЛАЙН - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Мережева конфігурація %1 змінилась, оновлення прив'язки сеансу - + Unable to decode '%1' torrent file. Не вдалось розкодувати торрент-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Рекурсивне завантаження файла '%1', вбудованого в торрент '%2' - + Couldn't save '%1.torrent' Не вдалося зберегти '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. бо %1 вимкнено. - + because %1 is disabled. this peer was blocked because TCP is disabled. бо %1 вимкнено. - + URL seed lookup failed for URL: '%1', message: %2 Пошук URL роздачі невдалий для URL: '%1', повідомлення: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' видалено зі списку завантажень та жорсткого диску. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' видалено зі списку завантажень. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Завантажується '%1', зачекайте... - Torrent Export: torrent is invalid, skipping... - Експорт торрентів: торрент хибний, пропускається... + Експорт торрентів: торрент хибний, пропускається... - + DHT support [ON] Підтримка DHT [Увімк.] - + DHT support [OFF]. Reason: %1 Підтримка DHT [Вимк.]. Причина: %1 - + DHT support [OFF] Підтримка DHT [Вимк.] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent пробує приєднатись до будь-якого інтерфейсу, порт: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2 + qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2 - + The network interface defined is invalid: %1 Зазначений мережевий інтерфейс неправильний: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent пробує приєднатись до інтерфейсу %1, порт: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent не знайшов локальну адресу %1 для очікування вхідних з’єднань - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2. {1.?} + + + Tracker '%1' was added to torrent '%2' Трекет '%1' додано до торрента '%2' - + Tracker '%1' was deleted from torrent '%2' Трекер '%1' вилучено з торрента '%2' - + URL seed '%1' was added to torrent '%2' URL-роздачу '%1' додано до торрента '%2' - + URL seed '%1' was removed from torrent '%2' URL-роздачу '%1' вилучено з торрента '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Не вдалося відновити торрент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успішно оброблено наданий фільтр IP: застосовано %1 правил. - + Error: Failed to parse the provided IP filter. Помилка: Не вдалося розібрати даний фільтр IP. - + Couldn't add torrent. Reason: %1 Не вдалося додати торрент. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' продовжено. (швидке відновлення) - + '%1' added to download list. 'torrent name' was added to download list. '%1' додано до списку завантажень. - + An I/O error occurred, '%1' paused. %2 Виникла помилка вводу/виводу, '%1' призупинено. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Не вдалось приєднати порт, повідомлення: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Успішне приєднання порта, повідомлення: %1 - + due to IP filter. this peer was blocked due to ip filter. через фільтр IP. - + due to port filter. this peer was blocked due to port filter. через фільтр портів. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. через обмеження змішаного режиму i2p. - + because it has a low port. this peer was blocked because it has a low port. через низький номер порта. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent очікує з’єднань на інтерфейсі %1 порт: %2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4 + qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4 + + + External IP: %1 e.g. External IP: 192.168.0.1 Зовнішня IP: %1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 Не вдалося перемістити торрент: '%1'. Причина: %2 - + File sizes mismatch for torrent '%1', pausing it. Розміри файлів не збігаються для торрента %1, буде зупинено. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Дані швидкого відновлення були відкинуті для торрента '%1'. Причина: %2. Повторна перевірка... @@ -1253,17 +1269,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + Білий: Відсутні шматки Green: Partial pieces - + Зелений: Часткові шматки Blue: Completed pieces - + Синій: завершені шматки @@ -1307,20 +1323,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. Помилка вводу/виводу: Не вдалось відкрити для читання файл IP-фільтра. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. Помилка розбору: Файл фільтру не є коректним файлом PeerGuardian P2B. @@ -1328,43 +1344,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. Непідтримуваний розмір файла бази даних - + Metadata error: '%1' entry not found. Помилка метаданих: запис '%1' не знайдено. - + Metadata error: '%1' entry has invalid type. Помилка метаданих: запис '%1' має некоректний тип. - + Unsupported database version: %1.%2 Непідтримувана версія бази даних: %1.%2 - + Unsupported IP version: %1 Непідтримувана версія IP: %1 - + Unsupported record size: %1 Непідтримуваний розмір запису: %1 - + Invalid database type: %1 Некоректний тип бази даних: %1 - + Database corrupted: no data section found. Пошкоджена база даних: не знайдено розділ даних. @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. Одне посилання на рядок - Download local torrent - Завантажити локальний торрент + Завантажити локальний торрент @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. Неактивні - + + Save files to location: + Зберігати файли до: + + + + Label: + + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Завантажено @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout Вийти + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Очистити текст @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Торренти - + &Tools &Інструменти - + &File &Файл - + &Help &Допомога - + On Downloads &Done Після &завершення завантажень - + &View &Показати - + &Options... &Налаштування... @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. &Продовжити - + Torrent &Creator С&творення торрента - + Set Upload Limit... Встановити обмеження вивантаження... - + Set Download Limit... Встановити обмеження завантаження... - + Set Global Download Limit... Встановити глобальний ліміт завантаження... - + Set Global Upload Limit... Встановити глобальний ліміт вивантаження... - + Minimum Priority Найнижчий пріоритет - + Top Priority Найвищий пріоритет - + Decrease Priority Зменшити пріоритет - + Increase Priority Збільшити пріоритет - - + + Alternative Speed Limits Альтернативні обмеження швидкості - + &Top Toolbar &Верхню панель - + Display Top Toolbar Показувати верхню панель - + S&peed in Title Bar &Швидкість у заголовку - + Show Transfer Speed in Title Bar Показувати швидкість завантаження і вивантаження у заголовку - + &RSS Reader &Читач RSS - + Search &Engine &Пошуковик - + L&ock qBittorrent За&блокувати qBittorrent - + &Import Existing Torrent... &Імпортувати існуючий торрент... - + Import Torrent... Імпортувати торрент... - + Do&nate! По&жертвувати гроші - + R&esume All П&родовжити всі - + &Log &Журнал - + &Exit qBittorrent В&ийти з qBittorrent - + &Suspend System При&зупинити систему - + &Hibernate System При&спати систему - + S&hutdown System &Вимкнути систему - + &Disabled &Вимкнено - + &Statistics &Статистика - + Check for Updates Перевірити оновлення - + Check for Program Updates Перевірити оновлення програми @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. &Про програму - Exit - Вийти + Вийти - + &Pause При&зупинити - + &Delete &Видалити - + P&ause All З&упинити всі - + &Add Torrent File... &Додати torrent-файл... - + Open Відкрити - + E&xit &Вийти - Options - Налаштування + Налаштування - Resume - Продовжити + Продовжити - Pause - Призупинити + Призупинити - Delete - Видалити + Видалити - + Open URL Відкрити URL - + &Documentation &Документація - + Lock Замкнути - + Show Показати @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. Перевірити, чи є свіжіші версії програми - Lock qBittorrent - Заблокувати qBittorrent + Заблокувати qBittorrent - + Add Torrent &Link... Додати &посилання на торрент - + If you like qBittorrent, please donate! Якщо вам подобається qBittorrent, будь ласка, пожертвуйте кошти! - + Execution Log Журнал виконання @@ -2414,52 +2443,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Ваш динамічний DNS успішно оновлено. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Помилка динамічного DNS: Сервіс тимчасово недоступний; повторна спроба за 30 хвилин. - + Dynamic DNS error: hostname supplied does not exist under specified account. Помилка динамічного DNS: наданий домен не існує в зазначеному обліковому записі. - + Dynamic DNS error: Invalid username/password. Помилка динамічного DNS: Неправильний логін/пароль. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Помилка динамічного DNS: qBittorrent додано в чорний список сервісу; будь ласка, повідомте про це на http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Помилка динамічного DNS: Сервіс повернув %1; будь ласка, повідомте про помилку на http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Помилка динамічного DNS: Ваш логін заблоковано через зловживання. - + Dynamic DNS error: supplied domain name is invalid. Помилка динамічного DNS: наданий домен неправильний. - + Dynamic DNS error: supplied username is too short. Помилка динамічного DNS: наданий логін закороткий. - + Dynamic DNS error: supplied password is too short. Помилка динамічного DNS: наданий пароль закороткий. @@ -2467,17 +2496,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error Помилка вводу/виводу - + The file size is %1. It exceeds the download limit of %2. Розмір файла %1. Він перевищує ліміт завантаження %2. - + Unexpected redirect to magnet URI. Неочікуване перенаправлення на magnet-посилання. @@ -2485,1300 +2514,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. Базу даних GeoIP завантажено. Тип: %1. Час збірки: %2. - - + + Couldn't load GeoIP database. Reason: %1 Не вдалося завантажити базу даних GeoIP. Причина: %1 - - + + N/A - + Asia/Pacific Region Азія і Тихоокеанський регіон - + Europe Європа - + Andorra Андорра - + United Arab Emirates Об’єднані Арабські Емірати - + Afghanistan Афганістан - + Antigua and Barbuda Антигуа і Барбуда - + Anguilla Ангілья - + Albania Албанія - + Armenia Вірменія - + Netherlands Antilles Нідерландські Антильські острови - + Angola Ангола - + Antarctica Антарктида - + Argentina Аргентина - + American Samoa Американське Самоа - + Austria Австрія - + Australia Австралія - + Aruba Аруба - + Azerbaijan Азербайджан - + Bosnia and Herzegovina Боснія і Герцеговина - + Barbados Барбадос - + Bangladesh Бангладеш - + Belgium Бельгія - + Burkina Faso Буркіна-Фасо - + Bulgaria Болгарія - + Bahrain Бахрейн - + Burundi Бурунді - + Benin Бенін - + Bermuda Бермудські острови - + Brunei Darussalam Бруней-Даруссалам - + Bolivia Болівія - + Brazil Бразилія - + Bahamas Багами - + Bhutan Бутан - + Bouvet Island Острів Буве - + Botswana Ботсвана - + Belarus Білорусь - + Belize Беліз - + Canada Канада - + Cocos (Keeling) Islands Кокосові (Кілінгові) острови - + Congo, The Democratic Republic of the Конго, Демократична Республіка - + Central African Republic Центральноафриканська Республіка - + Congo Конго - + Switzerland Швейцарія - + Cote D'Ivoire Кот-д'Івуар - + Cook Islands Острови Кука - + Chile Чилі - + Cameroon Камерун - + China Китай - + Colombia Колумбія - + Costa Rica Коста-Ріка - + Cuba Куба - + Cape Verde Кабо-Верде - + Christmas Island Острів Різдва - + Cyprus Кіпр - + Czech Republic Чехія - + Germany Німеччина - + Djibouti Джибуті - + Denmark Данія - + Dominica Домініка - + Dominican Republic Домініканська республіка - + Algeria Алжир - + Ecuador Еквадор - + Estonia Естонія - + Egypt Єгипет - + Western Sahara Західна Сахара - + Eritrea Еритрея - + Spain Іспанія - + Ethiopia Ефіопія - + Finland Фінляндія - + Fiji Фіджі - + Falkland Islands (Malvinas) Фолклендські (Мальвінські) острови - + Micronesia, Federated States of Мікронезія, Федеративні Штати - + Faroe Islands Фарерські острови - + France Франція - + France, Metropolitan Франція, Метрополія - + Gabon Габон - + United Kingdom Об’єднане Королівство - + Grenada Гренада - + Georgia Грузія - + French Guiana Французька Гвіана - + Ghana Гана - + Gibraltar Гібралтар - + Greenland Гренландія - + Gambia Гамбія - + Guinea Гвінея - + Guadeloupe Гваделупа - + Equatorial Guinea Екваторіальна Гвінея - + Greece Греція - + South Georgia and the South Sandwich Islands Південна Джорджія та Південні Сандвічеві острови - + Guatemala Гватемала - + Guam Гуам - + Guinea-Bissau Гвінея-Бісау - + Guyana Гайана - + Hong Kong Гонконг - + Heard Island and McDonald Islands Острів Герд і Острови Макдональд - + Honduras Гондурас - + Croatia Хорватія - + Haiti Гаїті - + Hungary Угорщина - + Indonesia Індонезія - + Ireland Ірландія - + Israel Ізраїль - + India Індія - + British Indian Ocean Territory Британська територія Індійського океану - + Iraq Ірак - + Iran, Islamic Republic of Іран, Ісламська Республіка - + Iceland Ісландія - + Italy Італія - + Jamaica Ямайка - + Jordan Йорданія - + Japan Японія - + Kenya Кенія - + Kyrgyzstan Киргизстан - + Cambodia Камбоджа - + Kiribati Кірибаті - + Comoros Коморські острови - + Saint Kitts and Nevis Сент-Кіттс і Невіс - + Korea, Democratic People's Republic of Корейська Народно-Демократична Республіка - + Korea, Republic of Корея, Республіка - + Kuwait Кувейт - + Cayman Islands Кайманові острови - + Kazakhstan Казахстан - + Lao People's Democratic Republic Лаоська Народно-Демократична Республіка - + Lebanon Ліван - + Saint Lucia Сент-Люсія - + Liechtenstein Ліхтенштейн - + Sri Lanka Шрі Ланка - + Liberia Ліберія - + Lesotho Лесото - + Lithuania Литва - + Luxembourg Люксембург - + Latvia Латвія - + Libyan Arab Jamahiriya Лівійська Арабська Джамахірія - + Morocco Марокко - + Monaco Монако - + Moldova, Republic of Молдова, Республіка - + Madagascar Мадагаскар - + Marshall Islands Маршаллові Острови - + Macedonia Македонія - + Mali Малі - + Myanmar М’янма - + Mongolia Монголія - + Macau Макао - + Northern Mariana Islands Північні Маріанські острови - + Martinique Мартиніка - + Mauritania Мавританія - + Montserrat Монтсеррат - + Malta Мальта - + Mauritius Маврикій - + Maldives Мальдіви - + Malawi Малаві - + Mexico Мексика - + Malaysia Малайзія - + Mozambique Мозамбік - + Namibia Намібія - + New Caledonia Нова Каледонія - + Niger Нігер - + Norfolk Island Норфолк, Острів - + Nigeria Нігерія - + Nicaragua Нікарагуа - + Netherlands Нідерланди - + Norway Норвегія - + Nepal Непал - + Nauru Науру - + Niue Ніуе - + New Zealand Нова Зеландія - + Oman Оман - + Panama Панама - + Peru Перу - + French Polynesia Французька Полінезія - + Papua New Guinea Папуа-Нова Гвінея - + Philippines Філіппіни - + Pakistan Пакистан - + Poland Польща - + Saint Pierre and Miquelon Сен-П’єр і Мікелон - + Pitcairn Islands Піткерн, Острови - + Puerto Rico Пуерто-Рико - + Palestinian Territory Палестинська територія - + Portugal Португалія - + Palau Палау - + Paraguay Парагвай - + Qatar Катар - + Reunion Реюньйон - + Romania Румунія - + Russian Federation Російська Федерація - + Rwanda Руанда - + Saudi Arabia Саудівська Аравія - + Solomon Islands Соломонові Острови - + Seychelles Сейшельські Острови - + Sudan Судан - + Sweden Швеція - + Singapore Сінгапур - + Saint Helena Святої Єлени, Острів - + Slovenia Словенія - + Svalbard and Jan Mayen Свальбард і Ян-Маєн - + Slovakia Словаччина - + Sierra Leone Сьєрра-Леоне - + San Marino Сан-Марино - + Senegal Сенегал - + Somalia Сомалі - + Suriname Сурінам - + Sao Tome and Principe Сан-Томе і Принсіпі - + El Salvador Сальвадор - + Syrian Arab Republic Сирійська Арабська Республіка - + Swaziland Свазіленд - + Turks and Caicos Islands Теркс і Кейкос, Острови - + Chad Чад - + French Southern Territories Французькі Південні території - + Togo Того - + Thailand Таїланд - + Tajikistan Таджикистан - + Tokelau Токелау - + Turkmenistan Туркменістан - + Tunisia Туніс - + Tonga Тонга - + Timor-Leste Східний Тимор - + Turkey Туреччина - + Trinidad and Tobago Тринідад і Тобаго - + Tuvalu Тувалу - + Taiwan Тайвань - + Tanzania, United Republic of Танзанія, Об’єднана Республіка - + Ukraine Україна - + Uganda Уганда - + United States Minor Outlying Islands Зовнішні малі острови США - + United States США - + Uruguay Уругвай - + Uzbekistan Узбекистан - + Holy See (Vatican City State) Святий Престол (Держава-місто Ватикан) - + Saint Vincent and the Grenadines Сент-Вінсент і Гренадини - + Venezuela Венесуела - + Virgin Islands, British Віргінські Острови, Британські - + Virgin Islands, U.S. Віргінські острови, Американські - + Vietnam В’єтнам - + Vanuatu Вануату - + Wallis and Futuna Волліс і Футуна - + Samoa Самоа - + Yemen Ємен - + Mayotte Майотта - + Serbia Сербія - + South Africa Південна Африка - + Zambia Замбія - + Montenegro Чорногорія - + Zimbabwe Зімбабве - + Anonymous Proxy Анонімний проксі - + Satellite Provider Супутниковий провайдер - + Other Інше - + Aland Islands Аландські острови - + Guernsey Гернсі - + Isle of Man Острів Мен - + Jersey Джерсі, Острів - + Saint Barthelemy Сен-Бартельмі - + Saint Martin Сен-Мартен - + Could not uncompress GeoIP database file. Не вдалося розпакувати базу даних GeoIP. - + Couldn't save downloaded GeoIP database file. Не вдалося зберегти завантажений файл бази GeoIP. - + Successfully updated GeoIP database. Базу даних GeoIP успішно оновлено. - + Couldn't download GeoIP database file. Reason: %1 Не вдалося завантажити файл бази GeoIP. Причина: %1 @@ -3786,12 +3815,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] Підтримка UPnP / NAT-PMP [Увімк.] - + UPnP / NAT-PMP support [OFF] Підтримка UPnP / NAT-PMP [Вимк.] @@ -3799,206 +3828,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Помилка сповіщення e-mail: + + PeerInfo + + + interested(local) and choked(peer) + зацікавлений (локальний), відмовляється (пір) + + + + interested(local) and unchoked(peer) + зацікавлений (локальний), погоджується (пір) + + + + interested(peer) and choked(local) + зацікавлений (пір), відмовляється (локальний) + + + + interested(peer) and unchoked(local) + зацікавлений (пір), погоджується (локальний) + + + + optimistic unchoke + оптимістичний вибір + + + + peer snubbed + пір зупинився + + + + incoming connection + вхідне з’єднання + + + + not interested(local) and unchoked(peer) + незацікавлений (локальний), відмовляється (пір) + + + + not interested(peer) and unchoked(local) + незацікавлений (пір), відмовляється (локальний) + + + + peer from PEX + пір із PEX + + + + peer from DHT + пір із DHT + + + + encrypted traffic + закодований трафік + + + + encrypted handshake + зашифроване рукостискання + + + + peer from LSD + пір із LSD + + PeerListWidget - + IP IP - + Port Порт - + Flags Прапори - + Connection З’єднання - + Client i.e.: Client application Клієнт - + Progress i.e: % downloaded Прогрес - + Down Speed i.e: Download speed Шв. завантаження - + Up Speed i.e: Upload speed Шв. вивантаження - + Downloaded i.e: total data downloaded Завантажено - + Uploaded i.e: total data uploaded Вивантажено - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. Доречність - + Add a new peer... Додати нового піра... - + Copy selected Скопіювати вибране - - + + Ban peer permanently Заблокувати піра - + Manually adding peer '%1'... Вручну додається пір '%1'... - + The peer '%1' could not be added to this torrent. Піра '%1' не вдалося додати до цього торрента. - + Manually banning peer '%1'... Вручну блокується пір '%1'... - + Peer addition Додавання піра - + Some peers could not be added. Check the Log for details. Деяких пірів не вдалося додати. Додаткові деталі в Журналі. - + The peers were added to this torrent. Пірів додано до цього торрента. - + Are you sure you want to ban permanently the selected peers? Ви впевнені, що хочете назовсім заблокувати вибраних пірів? - + &Yes &Так - + &No &Ні - interested(local) and choked(peer) - зацікавлений (локальний), відмовляється (пір) + зацікавлений (локальний), відмовляється (пір) - interested(local) and unchoked(peer) - зацікавлений (локальний), погоджується (пір) + зацікавлений (локальний), погоджується (пір) - interested(peer) and choked(local) - зацікавлений (пір), відмовляється (локальний) + зацікавлений (пір), відмовляється (локальний) - interested(peer) and unchoked(local) - зацікавлений (пір), погоджується (локальний) + зацікавлений (пір), погоджується (локальний) - optimistic unchoke - оптимістичний вибір + оптимістичний вибір - peer snubbed - пір зупинився + пір зупинився - incoming connection - вхідне з’єднання + вхідне з’єднання - not interested(local) and unchoked(peer) - незацікавлений (локальний), відмовляється (пір) + незацікавлений (локальний), відмовляється (пір) - not interested(peer) and unchoked(local) - незацікавлений (пір), відмовляється (локальний) + незацікавлений (пір), відмовляється (локальний) - peer from PEX - пір із PEX + пір із PEX - peer from DHT - пір із DHT + пір із DHT - encrypted traffic - закодований трафік + закодований трафік - encrypted handshake - зашифроване рукостискання + зашифроване рукостискання - peer from LSD - пір із LSD + пір із LSD @@ -4029,12 +4117,12 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + Білий: недоступні шматки Blue: Available pieces - + Синій: доступні шматки @@ -4126,13 +4214,13 @@ Are you sure you want to quit qBittorrent? From: from (time1 to time2) - + З: To: time1 to time2 - + До: @@ -4555,27 +4643,27 @@ Are you sure you want to quit qBittorrent? Weekdays - + Робочі дні Weekends - + Вихідні Rate Limits Settings - + Налаштування обмежень швидкості Enable µTP protocol - + Увімкнути протокол µTP Apply rate limit to µTP protocol - + Включати в обмеження протокол uTP @@ -4635,7 +4723,7 @@ Are you sure you want to quit qBittorrent? Automatically add these trackers to new downloads: - + Автоматично додавати ці трекери до нових завантажень: @@ -4665,7 +4753,7 @@ Are you sure you want to quit qBittorrent? Alternative Rate Limits - + Альтернативні обмеження швидкості @@ -4772,19 +4860,19 @@ Are you sure you want to quit qBittorrent? Шлях до фільтра (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + Виявлено аварійний вихід програми. Використовується резервний файл для відновлення налаштувань. - + An access error occurred while trying to write the configuration file. - + Виникла помилка доступу при спробі запису файла конфігурації. - + A format error occurred while trying to write the configuration file. - + Виникла помилка формату при спробі запису файла конфігурації. @@ -4888,299 +4976,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: Завантажено: - + Availability: Доступно: - + Progress: Прогрес: - + Transfer Передача - + Time Active: Time (duration) the torrent is active (not paused) Активний протягом: - + ETA: Залишилось: - + Uploaded: Вивантажено: - + Seeds: Сіди: - + Download Speed: Швидкість завантаження: - + Upload Speed: Швидкість вивантаження: - + Peers: Піри: - + Download Limit: Обмеження завантаження: - + Upload Limit: Обмеження вивантаження: - + Wasted: Змарновано: - + Connections: З’єднання: - + Information Інформація - + Comment: Коментар: - Torrent content: - Вміст торрента: + Вміст торрента: - + Select All Вибрати все - + Select None Зняти виділення - + Normal Нормальний - + High Високий - + Share Ratio: Коефіцієнт роздачі: - + Reannounce In: Переанонсувати через: - + Last Seen Complete: Востаннє завершений: - + Total Size: Загальний розмір: - + Pieces: Шматків: - + Created By: Створено: - + Added On: Додано: - + Completed On: Завершено: - + Created On: Створено: - + Torrent Hash: Хеш торрента: - + Save Path: Шлях збереження: - + Maximum Максимальний - - + + Do not download Не завантажувати - + Never Ніколи - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 × %2 (є %3) - + %1 (%2 this session) %1 (%2 цього сеансу) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (роздавався %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (макс. %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (%2 загалом) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (%2 середн.) - + Open Відкрити - + Open Containing Folder Відкрити теку - + Rename... Перейменувати... - + Priority Пріоритет - + New Web seed Додати Веб-сід - + Remove Web seed Вилучити Веб-сід - + Copy Web seed URL Скопіювати URL Веб-сіда - + Edit Web seed URL Редагувати URL Веб-сіда - + Rename the file Перейменувати файл - + New name: Нова назва: - - + + The file could not be renamed Файл не вдалося перейменувати - + This file name contains forbidden characters, please choose a different one. Ця назва файла містить заборонені символи. Будь ласка, виберіть іншу. - - + + This name is already in use in this folder. Please use a different name. Ця назва файла вже використовується в даній папці. Будь ласка, виберіть іншу. - + The folder could not be renamed Не вдалося перейменувати цю теку - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Are you sure you want to quit qBittorrent? Фільтрувати файли... - + New URL seed New HTTP source Нова URL-роздача - + New URL seed: Нова URL-роздача: - - + + This URL seed is already in the list. Ця URL-роздача вже є у списку. - + Web seed editing Редагування Веб-сіда - + Web seed URL: URL Веб-сіда: @@ -5225,19 +5312,19 @@ Are you sure you want to quit qBittorrent? Ваша IP-адреса заблокована після надто численних невдалих спроб автентифікації. - + Error: '%1' is not a valid torrent file. Помилка: '%1' не є коректним torrent-файлом. - + Error: Could not add torrent to session. Помилка: Не вдалося додати торрент до сеансу. - + I/O Error: Could not create temporary file. Помилка вводу/виводу. @@ -5390,138 +5477,138 @@ No further notices will be issued. [qBittorrent] Завантаження '%1' завершено - + The remote host name was not found (invalid hostname) Віддалений сервер не знайдено (неправильна адреса) - + The operation was canceled Операцію скасовано - + The remote server closed the connection prematurely, before the entire reply was received and processed Віддалений сервер закрив з’єднання передчасно, перед тим, як було отримано і оброблено відповідь - + The connection to the remote server timed out Вичерпано час на з’єднання з віддаленим сервером - + SSL/TLS handshake failed Помилка обміну SSL/TLS - + The remote server refused the connection Віддалений сервер відмовив у з’єднанні - + The connection to the proxy server was refused Відмовлено у з’єднанні з проксі-сервером - + The proxy server closed the connection prematurely Проксі-сервер закрив з’єднання передчасно - + The proxy host name was not found Не знайдено адресу проксі-сервера - + The connection to the proxy timed out or the proxy did not reply in time to the request sent Вичерпано час на з’єднання з проксі або сервер не встиг відповісти на запит - + The proxy requires authentication in order to honor the request but did not accept any credentials offered Проксі потребує автентифікації, щоб задовольнити запит, але не прийняв запропонованих автентифікаційних даних - + The access to the remote content was denied (401) Відмовлено у доступі до віддалених даних (401) - + The operation requested on the remote content is not permitted Операція щодо віддаленого вмісту не дозволена - + The remote content was not found at the server (404) Віддалені дані не знайдено на сервері (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted Віддалений сервер потребує автентифікації, щоб надати вміст, але не прийняв наданих автентифікаційних даних - + The Network Access API cannot honor the request because the protocol is not known Не вдалось задовольнити запит: невідомий протокол - + The requested operation is invalid for this protocol Операція недопустима для цього протоколу - + An unknown network-related error was detected Виявлено невідому помилку, пов’язану з мережею - + An unknown proxy-related error was detected Виявлено невідому помилку, пов’язану з проксі - + An unknown error related to the remote content was detected Виявлено невідому помилку, пов’язану з віддаленим вмістом - + A breakdown in protocol was detected Виявлено поломку в протоколі - + Unknown error Невідома помилка - - + + Upgrade Оновлення - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Ви оновили програму зі старої версії, яка по-іншому зберігала дані. Ви повинні перейти на нову систему. Після цього ви не зможете повернутись до старішої версії, ніж v3.3.0. Продовжити? [т/н] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Ви оновили програму зі старої версії, яка по-іншому зберігала дані. Ви повинні перейти на нову систему. Після цього ви не зможете повернутись до старішої версії, ніж v3.3.0. - + Couldn't migrate torrent with hash: %1 Не вдалося адаптувати торрент з хешом: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Не вдалося адаптувати торрент. Неправильна назва файла швидкого відновлення: %1 @@ -5710,12 +5797,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... Автоматичне завантаження '%1' із RSS-подачі '%2' не вдалося, тому що вона не містить торрент або magnet-посилання... - + Automatically downloading '%1' torrent from '%2' RSS feed... Автоматично завантажується торрент '%1' з RSS-подачі '%2'... @@ -5759,19 +5846,19 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Тека спостерігання - + Download here Завантажувати до - + Download path - + Шлях завантаження @@ -6347,7 +6434,7 @@ No further notices will be issued. Errored (0) - + З помилкою (0) @@ -6392,7 +6479,7 @@ No further notices will be issued. Errored (%1) - + З помилкою (%1) @@ -7048,7 +7135,7 @@ No further notices will be issued. Errored torrent status, the torrent has an error - + З помилкою @@ -7686,12 +7773,12 @@ No further notices will be issued. Invalid plugin - + Хибний додаток The search engine plugin is invalid, please contact the author. - + Пошуковий додаток некоректний, будь ласка повідомте автора. @@ -7828,11 +7915,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Завантаження @@ -7840,103 +7927,103 @@ Those plugins were disabled. misc - + B bytes Б - + KiB kibibytes (1024 bytes) КіБ - + MiB mebibytes (1024 kibibytes) МіБ - + GiB gibibytes (1024 mibibytes) ГіБ - + TiB tebibytes (1024 gibibytes) ТіБ - + Python not detected Python не виявлено - + Python version: %1 Версія Python: %1 - + /s per second - + %1h %2m e.g: 3hours 5minutes %1г %2хв - + %1d %2h e.g: 2days 10hours %1д %2г - + Unknown Unknown (size) Невідомо - + qBittorrent will shutdown the computer now because all downloads are complete. Зараз qBittorrent вимкне комп’ютер, бо всі завантаження завершено. - + < 1m < 1 minute < 1хв - + %1m e.g: 10minutes %1хв - + Working Працює - + Updating... Оновлюється... - + Not working Не працює - + Not contacted yet Ще не зв’язувався @@ -7980,12 +8067,12 @@ Those plugins were disabled. %F: Content path (same as root path for multifile torrent) - + %F: Шлях вмісту (для торрента з багатьма файлами те саме що корінь) %R: Root path (first torrent subdirectory path) - + %R: Кореневий шлях (шлях до головної папки торрента) diff --git a/src/lang/qbittorrent_vi.ts b/src/lang/qbittorrent_vi.ts index 253a8cb36..b12e60de6 100644 --- a/src/lang/qbittorrent_vi.ts +++ b/src/lang/qbittorrent_vi.ts @@ -125,217 +125,222 @@ Bỏ qua kiểm tra hash - + + Set as default label + + + + Torrent Information Thông tin về torrent - + Size: Kích thước: - + Comment: Bình luận: - + Date: Ngày tháng: - + Info Hash: - + Normal Bình thường - + High Ưu tiên cao - + Maximum Ưu tiên tối đa - + Do not download Không tải về - - + + I/O Error Lỗi về xuất/nhập - + The torrent file does not exist. Tập tin torrent này không tồn tại. - + Invalid torrent Torrent không hợp lệ - + Failed to load the torrent: %1 Xảy ra lỗi khi tải torrent: %1 - - + + Already in download list Đã có trong danh sách tải về - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available Hiện không có - + Invalid magnet link Đường dẫn magnet không hợp lệ - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Không nhận dạng được đường dẫn magnet này - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Đường dẫn magnet - + Retrieving metadata... Đang nhận các thông tin chi tiết... - + Not Available This size is unavailable. - - - + + + Choose save path Chọn nơi để lưu - + Rename the file Đổi tên tập ti - + New name: Tên mới: - - + + The file could not be renamed Không thể đổi tên tập tin này - + This file name contains forbidden characters, please choose a different one. Tên tập tin chứa một số ký tự bị cấm, vui lòng chọn một tên khác. - - + + This name is already in use in this folder. Please use a different name. Tên này hiện đã được dùng cho một thư mục khác. Vui lòng sử dụng một tên khác. - + The folder could not be renamed Không thể đổi tên thư mục - + Rename... Đổi tên... - + Priority Độ ưu tiên - + Invalid metadata - + Parsing metadata... Đang phân tích số liệu từ các thông tin chi tiết... - + Metadata retrieval complete Đã nhận đầy đủ phần thông tin chi tiết - + Download Error @@ -427,9 +432,8 @@ Phân giải dựa vào tên host của peer - Maximum number of half-open connections [0: Disabled] - Số lượng tối đa các kết nối mở-phân nửa [0: Tắt] + Số lượng tối đa các kết nối mở-phân nửa [0: Tắt] @@ -473,6 +477,11 @@ How often the fastresume file is saved. + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - - Error: Could not create torrent export directory: '%1' - - - - - Error: could not export torrent '%1', maybe it has not metadata yet. - - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - - Torrent Export: torrent is invalid, skipping... - - - - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - - - - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + + + + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Phân tích cú pháp thành công từ bộ lọc dữ liệu IP: %1 các quy luật đã được áp dụng. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1191,17 +1185,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1306,20 +1300,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. @@ -1327,43 +1321,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. - + Metadata error: '%1' entry not found. - + Metadata error: '%1' entry has invalid type. - + Unsupported database version: %1.%2 - + Unsupported IP version: %1 - + Unsupported record size: %1 - + Invalid database type: %1 - + Database corrupted: no data section found. @@ -1396,9 +1390,8 @@ You should get this information from your Web browser preferences. Mỗi dòng chỉ chứa một liên kết - Download local torrent - Tải về từ phần torrent trên hệ thống + Tải về từ phần torrent trên hệ thống @@ -1571,7 +1564,22 @@ You should get this information from your Web browser preferences. - + + Save files to location: + Lưu các tập tin vào vị trí: + + + + Label: + Nhãn: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? Đã được tải về @@ -1581,6 +1589,11 @@ You should get this information from your Web browser preferences. Logout + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1721,7 +1734,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text Xóa phần nội dung văn bản @@ -1742,37 +1755,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &Chỉnh Sửa - + &Tools &Công Cụ - + &File &Tập Tin - + &Help &Trợ Giúp - + On Downloads &Done - + &View &Chế Độ Xem - + &Options... &Tùy Chọn... @@ -1782,153 +1795,153 @@ You should get this information from your Web browser preferences. &Hoạt Động Trở Lại - + Torrent &Creator - + Set Upload Limit... - + Set Download Limit... - + Set Global Download Limit... - + Set Global Upload Limit... - + Minimum Priority - + Top Priority - + Decrease Priority - + Increase Priority - - + + Alternative Speed Limits - + &Top Toolbar - + Display Top Toolbar - + S&peed in Title Bar - + Show Transfer Speed in Title Bar - + &RSS Reader - + Search &Engine - + L&ock qBittorrent - + &Import Existing Torrent... - + Import Torrent... - + Do&nate! - + R&esume All Đ&ưa tất cả hoạt động trở lại - + &Log - + &Exit qBittorrent - + &Suspend System - + &Hibernate System - + S&hutdown System - + &Disabled - + &Statistics - + Check for Updates - + Check for Program Updates @@ -1938,77 +1951,56 @@ You should get this information from your Web browser preferences. T&hông tin - Exit - Thoát Khỏi Chương Trình + Thoát Khỏi Chương Trình - + &Pause T&ạm Dừng - + &Delete X&óa - + P&ause All Tạ&m Dừng Tất Cả - + &Add Torrent File... - + Open - + E&xit - - Options - Tuỳ chọn - - - - Resume - Khôi phục lại - - - - Pause - Tạm dừng - - - - Delete - - - - + Open URL - + &Documentation &Tài Liệu Hướng Dẫn - + Lock - + Show Hiển Thị @@ -2019,22 +2011,21 @@ You should get this information from your Web browser preferences. Kiểm tra cập nhật chương trình - Lock qBittorrent - Khóa Lại qBittorrent + Khóa Lại qBittorrent - + Add Torrent &Link... - + If you like qBittorrent, please donate! Nếu Bạn Thích qBittorrent, Hãy Ủng Hộ Chúng Tôi! - + Execution Log Thi Hành Việc Cập Nhật Nhật Trình @@ -2408,52 +2399,52 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dynamic DNS error: Invalid username/password. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2461,17 +2452,17 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::DownloadHandler - + I/O Error - + The file size is %1. It exceeds the download limit of %2. - + Unexpected redirect to magnet URI. @@ -2479,1300 +2470,1300 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. - - + + Couldn't load GeoIP database. Reason: %1 - - + + N/A - + Asia/Pacific Region - + Europe - + Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - + Netherlands Antilles - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin - + Bermuda - + Brunei Darussalam - + Bolivia - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - + Cote D'Ivoire - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - + Christmas Island - + Cyprus - + Czech Republic - + Germany - + Djibouti - + Denmark - + Dominica - + Dominican Republic - + Algeria - + Ecuador - + Estonia - + Egypt - + Western Sahara - + Eritrea - + Spain - + Ethiopia - + Finland - + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - + France Pháp - + France, Metropolitan - + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Hy Lạp - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - + Libyan Arab Jamahiriya - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - + Macedonia - + Mali - + Myanmar - + Mongolia - + Macau - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - + Pitcairn Islands - + Puerto Rico - + Palestinian Territory - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - + Saint Helena - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - + Turkey - + Trinidad and Tobago - + Tuvalu - + Taiwan - + Tanzania, United Republic of - + Ukraine - + Uganda - + United States Minor Outlying Islands - + United States - + Uruguay - + Uzbekistan - + Holy See (Vatican City State) - + Saint Vincent and the Grenadines - + Venezuela - + Virgin Islands, British - + Virgin Islands, U.S. - + Vietnam - + Vanuatu - + Wallis and Futuna - + Samoa - + Yemen - + Mayotte - + Serbia - + South Africa - + Zambia - + Montenegro - + Zimbabwe - + Anonymous Proxy - + Satellite Provider - + Other - + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + Saint Barthelemy - + Saint Martin - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3780,12 +3771,12 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::PortForwarder - + UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP support [OFF] @@ -3793,206 +3784,265 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::Smtp - + Email Notification Error: + + PeerInfo + + + interested(local) and choked(peer) + khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối chậm (mạng ngang hàng) + + + + interested(local) and unchoked(peer) + khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối không chậm (mạng ngang hàng) + + + + interested(peer) and choked(local) + khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối chậm (mạng đồng bộ) + + + + interested(peer) and unchoked(local) + khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối không chậm (mạng đồng bộ) + + + + optimistic unchoke + gỡ bõ nghẽn mạch ưu tiên + + + + peer snubbed + bỏ mạng ngang hàng + + + + incoming connection + kết nối đang thực hiện + + + + not interested(local) and unchoked(peer) + không quan tâm(nội bộ) và gỡ nghẽn mạng(ngang hàng) + + + + not interested(peer) and unchoked(local) + không quan tâm(ngang hàng) và gỡ nghẽn mạng(nội bộ) + + + + peer from PEX + mạng ngang hàng từ PEX + + + + peer from DHT + mạng ngang hàng từ DHT + + + + encrypted traffic + dữ liệu mạng đã mã hóa + + + + encrypted handshake + chập kết nối đã mã hóa + + + + peer from LSD + mạng ngang hàng từ LSD + + PeerListWidget - + IP IP - + Port - + Flags Cờ Đánh Dấu - + Connection Kết nối - + Client i.e.: Client application Máy trạm - + Progress i.e: % downloaded Tiến độ - + Down Speed i.e: Download speed Tốc độ tải về - + Up Speed i.e: Upload speed Tốc độ tải lên - + Downloaded i.e: total data downloaded Đã tải về - + Uploaded i.e: total data uploaded Đã tải lên - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Add a new peer... Thêm vào một mạng ngang hàng mới... - + Copy selected - - + + Ban peer permanently Luôn cấm mạng ngang hàng - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - + Peer addition Bổ sung mạng ngang hàng - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Bạn có chắc muốn cấm hoàn toàn những mạng ngang hàng mà bạn đã lựa chọn hay không? - + &Yes &Đồng Ý - + &No K&hông Đồng Ý - interested(local) and choked(peer) - khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối chậm (mạng ngang hàng) + khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối chậm (mạng ngang hàng) - interested(local) and unchoked(peer) - khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối không chậm (mạng ngang hàng) + khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối không chậm (mạng ngang hàng) - interested(peer) and choked(local) - khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối chậm (mạng đồng bộ) + khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối chậm (mạng đồng bộ) - interested(peer) and unchoked(local) - khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối không chậm (mạng đồng bộ) + khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối không chậm (mạng đồng bộ) - optimistic unchoke - gỡ bõ nghẽn mạch ưu tiên + gỡ bõ nghẽn mạch ưu tiên - peer snubbed - bỏ mạng ngang hàng + bỏ mạng ngang hàng - incoming connection - kết nối đang thực hiện + kết nối đang thực hiện - not interested(local) and unchoked(peer) - không quan tâm(nội bộ) và gỡ nghẽn mạng(ngang hàng) + không quan tâm(nội bộ) và gỡ nghẽn mạng(ngang hàng) - not interested(peer) and unchoked(local) - không quan tâm(ngang hàng) và gỡ nghẽn mạng(nội bộ) + không quan tâm(ngang hàng) và gỡ nghẽn mạng(nội bộ) - peer from PEX - mạng ngang hàng từ PEX + mạng ngang hàng từ PEX - peer from DHT - mạng ngang hàng từ DHT + mạng ngang hàng từ DHT - encrypted traffic - dữ liệu mạng đã mã hóa + dữ liệu mạng đã mã hóa - encrypted handshake - chập kết nối đã mã hóa + chập kết nối đã mã hóa - peer from LSD - mạng ngang hàng từ LSD + mạng ngang hàng từ LSD @@ -4766,17 +4816,17 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Lọc đường dẫn (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -4882,299 +4932,298 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? PropertiesWidget - + Downloaded: Đã tải về: - + Availability: Tình trạng sẵn sàng: - + Progress: Tiến độ: - + Transfer Truyền Đổi - + Time Active: Time (duration) the torrent is active (not paused) - + ETA: - + Uploaded: Đã tải lên: - + Seeds: - + Download Speed: - + Upload Speed: - + Peers: - + Download Limit: - + Upload Limit: - + Wasted: Đã hao hụt: - + Connections: Kết nối: - + Information Thông tin - + Comment: Bình luận: - Torrent content: - Nội dung torrent: + Nội dung torrent: - + Select All Chọn Tất cả - + Select None Không chọn gì - + Normal Bình thường - + High Ưu tiên cao - + Share Ratio: - + Reannounce In: - + Last Seen Complete: - + Total Size: - + Pieces: - + Created By: - + Added On: - + Completed On: - + Created On: - + Torrent Hash: - + Save Path: - + Maximum Ưu tiên tối đa - - + + Do not download Không tải về - + Never Không Bao Giờ - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 (%2 this session) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + Open - + Open Containing Folder - + Rename... Đổi tên... - + Priority Độ ưu tiên - + New Web seed Seed Web mới - + Remove Web seed Loại bỏ seed Web - + Copy Web seed URL Sao chép đường dẫn seed Web - + Edit Web seed URL Chỉnh sửa đường dẫn seed Web - + Rename the file Đổi tên tập tin - + New name: Tên mới: - - + + The file could not be renamed Không thể đổi tên tập tin này - + This file name contains forbidden characters, please choose a different one. Tên tập tin chứa một số ký tự bị cấm, vui lòng chọn một tên khác. - - + + This name is already in use in this folder. Please use a different name. Tên này hiện đã được dùng cho một thư mục khác. Vui lòng sử dụng một tên khác. - + The folder could not be renamed Không thể đổi tên thư mục - + qBittorrent qBittorrent @@ -5184,29 +5233,29 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? - + New URL seed New HTTP source - + New URL seed: - - + + This URL seed is already in the list. - + Web seed editing Đang chỉnh sửa seed Web - + Web seed URL: Đường liên kết seed Web: @@ -5219,18 +5268,18 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? - + Error: '%1' is not a valid torrent file. - + Error: Could not add torrent to session. - + I/O Error: Could not create temporary file. @@ -5381,138 +5430,138 @@ No further notices will be issued. - + The remote host name was not found (invalid hostname) - + The operation was canceled - + The remote server closed the connection prematurely, before the entire reply was received and processed - + The connection to the remote server timed out - + SSL/TLS handshake failed - + The remote server refused the connection - + The connection to the proxy server was refused - + The proxy server closed the connection prematurely - + The proxy host name was not found - + The connection to the proxy timed out or the proxy did not reply in time to the request sent - + The proxy requires authentication in order to honor the request but did not accept any credentials offered - + The access to the remote content was denied (401) - + The operation requested on the remote content is not permitted - + The remote content was not found at the server (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted - + The Network Access API cannot honor the request because the protocol is not known - + The requested operation is invalid for this protocol - + An unknown network-related error was detected - + An unknown proxy-related error was detected - + An unknown error related to the remote content was detected - + A breakdown in protocol was detected - + Unknown error - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5701,12 +5750,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... @@ -5750,17 +5799,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder Thư mục đã theo dõi - + Download here Tải về tại đây - + Download path @@ -7818,11 +7867,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads Tải về @@ -7830,103 +7879,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected - + Python version: %1 - + /s per second /giây - + %1h %2m e.g: 3hours 5minutes %1 giờ %2 phút - + %1d %2h e.g: 2days 10hours %1d %2h - + Unknown Unknown (size) Chưa rõ - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent sẽ tắt máy tính vì toàn bộ các phần tải về đã được hoàn tất. - + < 1m < 1 minute < 1phút - + %1m e.g: 10minutes %1phút - + Working Làm việc - + Updating... Đang cập nhật... - + Not working Đang không thực hiện - + Not contacted yet Chưa liên lạc được diff --git a/src/lang/qbittorrent_zh.ts b/src/lang/qbittorrent_zh.ts index 57d3e8e36..2587bff32 100644 --- a/src/lang/qbittorrent_zh.ts +++ b/src/lang/qbittorrent_zh.ts @@ -125,217 +125,222 @@ 跳过哈希检查 - + + Set as default label + + + + Torrent Information Torrent信息 - + Size: 大小: - + Comment: 注释: - + Date: 日期: - + Info Hash: 哈希值 - + Normal 正常 - + High - + Maximum 最大 - + Do not download 不下载 - - + + I/O Error I/O错误 - + The torrent file does not exist. 该torrent文件不存在. - + Invalid torrent 无效torrent - + Failed to load the torrent: %1 加载torrent失败: %1 - - + + Already in download list 已经在下载列表中 - + Free disk space: %1 剩余磁盘空间:%1 - + Not Available This comment is unavailable 不可用 - + Not Available This date is unavailable 不可用 - + Not available 不可用 - + Invalid magnet link 无效的磁力链接 - + Torrent is already in download list. Trackers were merged. Torrent已经在下载列表中。Trackers 已合并。 - - + + Cannot add torrent 无法添加 torrent - + Cannot add this torrent. Perhaps it is already in adding state. 无法添加此 torrent。也许它已是添加状态。 - + This magnet link was not recognized 该磁力链接未被识别 - + Magnet link is already in download list. Trackers were merged. Magnet 链接已经在下载列表中。Trackers 已合并。 - + Cannot add this torrent. Perhaps it is already in adding. 无法添加此 torrent。也许它已是添加状态。 - + Magnet link 磁力链接 - + Retrieving metadata... 检索元数据... - + Not Available This size is unavailable. 不可用 - - - + + + Choose save path 选择保存路径 - + Rename the file 重命名文件 - + New name: 新名: - - + + The file could not be renamed 文件不能被重命名 - + This file name contains forbidden characters, please choose a different one. 该文件名包含被禁止符号,请重新命名. - - + + This name is already in use in this folder. Please use a different name. 该名称已被使用,请重新命名. - + The folder could not be renamed 文件夹不能被重命名 - + Rename... 重命名... - + Priority 优先 - + Invalid metadata 无效的元数据 - + Parsing metadata... 解析元数据... - + Metadata retrieval complete 元数据检索完成 - + Download Error 下载错误 @@ -427,9 +432,8 @@ 显示用户主机名 - Maximum number of half-open connections [0: Disabled] - 最大半开放连接数 [0: 禁用] + 最大半开放连接数 [0: 禁用] @@ -473,6 +477,11 @@ How often the fastresume file is saved. 保存恢复数据时间间隔 + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: Peer ID: - + HTTP User-Agent is '%1' HTTP 用户代理是 %1 - + Anonymous mode [ON] 匿名模式[开] - + Anonymous mode [OFF] 匿名模式[关] - + PeX support [ON] PeX 支持[开] - + PeX support [OFF] PeX 支持[关] - + Restart is required to toggle PeX support 更改PeX支持状态需要重启 - + Local Peer Discovery support [ON] 本地资源搜索支持[开] - + Local Peer Discovery support [OFF] 本地资源搜索支持[关] - + Encryption support [ON] 加密支持[开] - + Encryption support [FORCED] 加密支持[强制] - + Encryption support [OFF] 加密支持[开] - + Embedded Tracker [ON] 嵌入式Tracker [开] - + Failed to start the embedded tracker! 无法启动嵌入式tracker! - + Embedded Tracker [OFF] 嵌入式Tracker [关] - + '%1' reached the maximum ratio you set. Removing... '%1' 达到了您设定的最大比率,正在删除... - + '%1' reached the maximum ratio you set. Pausing... '%1' 达到了您设定的最大比率,暂停中... - Error: Could not create torrent export directory: '%1' - 错误: 无法创建torrent输出文件夹: '%1' + 错误: 无法创建torrent输出文件夹: '%1' - Error: could not export torrent '%1', maybe it has not metadata yet. - 错误: 无法导出torrent '%1', 或缺少元数据! + 错误: 无法导出torrent '%1', 或缺少元数据! - + System network status changed to %1 e.g: System network status changed to ONLINE 系统网络状态变更至 %1 - + ONLINE 在线 - + OFFLINE 离线 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding 网络配置 %1 发生改变,刷新会话绑定 - + Unable to decode '%1' torrent file. 无法解析 '%1' torrent文件 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 递归下载文件 '%1' 内嵌于 torrent '%2' - + Couldn't save '%1.torrent' 无法保存 '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. 因为 %1 已被禁用 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因为 %1 已被禁用 - + URL seed lookup failed for URL: '%1', message: %2 找不到网址种子: '%1', 消息: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1'从传输列表及硬盘被移除. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1'从传输列表被移除. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1'下载中,请等待... - Torrent Export: torrent is invalid, skipping... - 导出 Torrent:torrent 无效,跳过... + 导出 Torrent:torrent 无效,跳过... - + DHT support [ON] DHT 支持 [开] - + DHT support [OFF]. Reason: %1 DHT 支持 [关]。原因:%1 - + DHT support [OFF] DHT 支持 [关] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent试图监听任何接口上的端口:%1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent监听任何接口上的端口:%1 失败。原因:%2 + qBittorrent监听任何接口上的端口:%1 失败。原因:%2 - + The network interface defined is invalid: %1 网络界面定义无效:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent试图监听接口%1 端口:%2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent 没有找到一个 %1 本地地址侦听 - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent监听任何接口上的端口:%1 失败。原因:%2. {1.?} + + + Tracker '%1' was added to torrent '%2' Tracker '%1' 已被添加到BT种子 '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' 已被添加到BT种子 '%2' - + URL seed '%1' was added to torrent '%2' URL 种子'%1' 已被添加到BT种子 '%2' - + URL seed '%1' was removed from torrent '%2' URL 种子'%1' 已被添加到BT种子 '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 无法解码torrent文件:'%1' - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 解析提供的IP过滤器成功: %1 规则被应用. - + Error: Failed to parse the provided IP filter. 错误: 无法解析提供的IP过滤器 - + Couldn't add torrent. Reason: %1 不能移动torrent:'%1' 原因:%2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1'重新开始. (快速) - + '%1' added to download list. 'torrent name' was added to download list. '%1'已添加到下载列表. - + An I/O error occurred, '%1' paused. %2 出现输入/输出错误,'%1'暂停. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: 端口映射失败, 消息: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: 端口映射成功, 消息: %1 - + due to IP filter. this peer was blocked due to ip filter. 取决于 IP 筛选器。 - + due to port filter. this peer was blocked due to port filter. 取决于端口筛选器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由于 i2p 混合模式的限制。 - + because it has a low port. this peer was blocked because it has a low port. 因为它有一个低端口号。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent 成功监听接口 %1 端口:%2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4 + qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4 + + + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP:%1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 无法移动 torrent:'%1'。原因:%2 - + File sizes mismatch for torrent '%1', pausing it. 文件大小与 '%1' torrent不匹配, 暂停中。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... '%1' 种子的快速恢复数据被拒绝,原因: %2。重新检查中... @@ -1307,20 +1323,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. I/O 错误:无法在读取模式下打开 ip 筛选器文件。 - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. 解析错误:筛选器文件不是一个有效的 PeerGuardian P2B 文件。 @@ -1328,43 +1344,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. 不支持数据库文件大小 - + Metadata error: '%1' entry not found. 元数据错误: 未找到: '%1'项 - + Metadata error: '%1' entry has invalid type. 元数据错误: '%1'项有无效类型 - + Unsupported database version: %1.%2 不支持数据库版本: %1.%2 - + Unsupported IP version: %1 不支持IP版本: %1 - + Unsupported record size: %1 不支持记录大小: %1 - + Invalid database type: %1 无效数据库类型: %1 - + Database corrupted: no data section found. 数据库损坏:未发现数据段 @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. 每行仅可有一连接 - Download local torrent - 下载本地torrent + 下载本地torrent @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. 非活动 - + + Save files to location: + 保存文件到: + + + + Label: + 标签: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? 已下载 @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout 注销 + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text 清除文本 @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit &编辑 - + &Tools 工具 - + &File &文件 - + &Help &帮助 - + On Downloads &Done 在下载完成后(&D) - + &View 视图 - + &Options... 选项... @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. 重新开始 - + Torrent &Creator Torrent 创建器(&C) - + Set Upload Limit... 设置上传限制... - + Set Download Limit... 设置下载限制... - + Set Global Download Limit... 设置全局下载限制... - + Set Global Upload Limit... 设置全局上传限制... - + Minimum Priority 最低优先级 - + Top Priority 最高优先级 - + Decrease Priority 降低优先级 - + Increase Priority 提升优先级 - - + + Alternative Speed Limits 可替代速度限制 - + &Top Toolbar 顶部工具栏(&t) - + Display Top Toolbar 显示顶部工具栏 - + S&peed in Title Bar 在标题栏显示速度(&p) - + Show Transfer Speed in Title Bar 在标题栏显示传输速度 - + &RSS Reader RSS 阅读器(&R) - + Search &Engine 搜索引擎(&E) - + L&ock qBittorrent 锁定 qBittorrent(&o) - + &Import Existing Torrent... 导入已存在的 Torrent(&I)... - + Import Torrent... 导入 Torrent... - + Do&nate! 捐赠(&n) - + R&esume All 重新开始所有 - + &Log 日志(&L) - + &Exit qBittorrent 退出 qBittorrent(&E) - + &Suspend System 系统睡眠(&S) - + &Hibernate System 系统休眠(&H) - + S&hutdown System 关闭系统(&h) - + &Disabled 禁用(&D) - + &Statistics 统计(&S) - + Check for Updates 检查更新 - + Check for Program Updates 检查程序更新 @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. 关于 - Exit - 退出 + 退出 - + &Pause 暂停 - + &Delete 删除 - + P&ause All 暂停所有 - + &Add Torrent File... 添加 Torrent 文件(&A)... - + Open 打开 - + E&xit 退出(&x) - Options - 设定 + 设定 - Resume - 恢复 + 恢复 - Pause - 暂停 + 暂停 - Delete - 删除 + 删除 - + Open URL 打开网址 - + &Documentation 文档资料 - + Lock 锁定 - + Show 显示 @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. 检查程序更新 - Lock qBittorrent - 锁定qBittorrent + 锁定qBittorrent - + Add Torrent &Link... 添加 Torrent 链接(&A)... - + If you like qBittorrent, please donate! 如果您喜欢qBittorrent, 请捐款! - + Execution Log 执行日志 @@ -2413,52 +2442,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. 您的动态 DNS 已成功更新。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 动态 DNS 错误:服务器暂时不可用,将于 30 分钟后重试。 - + Dynamic DNS error: hostname supplied does not exist under specified account. 动态 DNS 错误:提供的主机名不在指定的账户下。 - + Dynamic DNS error: Invalid username/password. 动态 DNS 错误:无效的用户名/密码。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. 动态 DNS 错误:qBittorrent 被服务器屏蔽,请在 http://bugs.qbittorrent.org 提交此错误。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 动态 DNS 错误:服务器返回 %1,请在 http://bugs.qbittorrent.org 提交此错误。 - + Dynamic DNS error: Your username was blocked due to abuse. 动态 DNS 错误:您的用户名因滥用而被屏蔽。 - + Dynamic DNS error: supplied domain name is invalid. 动态 DNS 错误:提供的域名无效。 - + Dynamic DNS error: supplied username is too short. 动态 DNS 错误:提供的用户名过短。 - + Dynamic DNS error: supplied password is too short. 动态 DNS 错误:提供的密码过短。 @@ -2466,17 +2495,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error I/O 错误 - + The file size is %1. It exceeds the download limit of %2. 文件大小是 %1。它超出了下载限制 %2。 - + Unexpected redirect to magnet URI. 意外重定向至磁力链接 @@ -2484,1300 +2513,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. 已载入 GeoIP 数据库。类型:%1。创建时间:%2。 - - + + Couldn't load GeoIP database. Reason: %1 无法载入 GeoIP 数据库。原因:%1 - - + + N/A N/A - + Asia/Pacific Region 亚洲/太平洋地区 - + Europe 欧洲 - + Andorra 安道尔 - + United Arab Emirates 阿拉伯联合酋长国 - + Afghanistan 阿富汗 - + Antigua and Barbuda 安提瓜和巴布达 - + Anguilla 安圭拉 - + Albania 阿尔巴尼亚 - + Armenia 亚美尼亚 - + Netherlands Antilles 荷属安地列斯群岛 - + Angola 安哥拉 - + Antarctica 南极洲 - + Argentina 阿根廷 - + American Samoa 美属萨摩亚 - + Austria 奥地利 - + Australia 澳大利亚 - + Aruba 阿鲁巴 - + Azerbaijan 阿塞拜疆 - + Bosnia and Herzegovina 波斯尼亚和黑塞哥维那 - + Barbados 巴巴多斯 - + Bangladesh 孟加拉国 - + Belgium 比利时 - + Burkina Faso 布吉纳法索 - + Bulgaria 保加利亚 - + Bahrain 巴林 - + Burundi 布隆迪 - + Benin 贝宁 - + Bermuda 百慕大 - + Brunei Darussalam 文莱达鲁萨兰国 - + Bolivia 玻利维亚 - + Brazil 巴西 - + Bahamas 巴哈马 - + Bhutan 不丹 - + Bouvet Island 布维岛 - + Botswana 博茨瓦纳 - + Belarus 白俄罗斯 - + Belize 伯利兹 - + Canada 加拿大 - + Cocos (Keeling) Islands 科科斯 (基林) 群岛 - + Congo, The Democratic Republic of the 刚果民主共和国 - + Central African Republic 中非共和国 - + Congo 刚果 - + Switzerland 瑞士 - + Cote D'Ivoire 科特迪瓦 - + Cook Islands 库克群岛 - + Chile 智利 - + Cameroon 喀麦隆 - + China 中国 - + Colombia 哥伦比亚 - + Costa Rica 哥斯达黎加 - + Cuba 古巴 - + Cape Verde 佛得角 - + Christmas Island 圣诞岛 - + Cyprus 塞浦路斯 - + Czech Republic 捷克共和国 - + Germany 德国 - + Djibouti 吉布提 - + Denmark 丹麦 - + Dominica 多米尼克 - + Dominican Republic 多米尼加共和国 - + Algeria 阿尔及利亚 - + Ecuador 厄瓜多尔 - + Estonia 爱沙尼亚 - + Egypt 埃及 - + Western Sahara 西撒哈拉 - + Eritrea 厄立特里亚 - + Spain 西班牙 - + Ethiopia 埃塞俄比亚 - + Finland 芬兰 - + Fiji 斐济 - + Falkland Islands (Malvinas) 福克兰群岛 (马尔维纳斯群岛) - + Micronesia, Federated States of 密克罗尼西亚联邦国 - + Faroe Islands 法罗群岛 - + France 法国 - + France, Metropolitan 法国大都会 - + Gabon 加蓬 - + United Kingdom 英国 - + Grenada 格林纳达 - + Georgia 格鲁吉亚 - + French Guiana 法属圭亚那 - + Ghana 加纳 - + Gibraltar 直布罗陀 - + Greenland 格陵兰岛 - + Gambia 冈比亚 - + Guinea 几内亚 - + Guadeloupe 瓜德罗普岛 - + Equatorial Guinea 赤道几内亚 - + Greece 希腊 - + South Georgia and the South Sandwich Islands 南乔治亚岛和南桑威奇群岛 - + Guatemala 危地马拉 - + Guam 关岛 - + Guinea-Bissau 几内亚比绍 - + Guyana 圭亚那 - + Hong Kong 香港 - + Heard Island and McDonald Islands 赫德岛和麦克唐纳群岛 - + Honduras 洪都拉斯 - + Croatia 克罗地亚 - + Haiti 海地 - + Hungary 匈牙利 - + Indonesia 印度尼西亚 - + Ireland 爱尔兰 - + Israel 以色列 - + India 印度 - + British Indian Ocean Territory 英属印度洋领地 - + Iraq 伊拉克 - + Iran, Islamic Republic of 伊朗伊斯兰共和国 - + Iceland 冰岛 - + Italy 意大利 - + Jamaica 牙买加 - + Jordan 约旦 - + Japan 日本 - + Kenya 肯尼亚 - + Kyrgyzstan 吉尔吉斯斯坦 - + Cambodia 柬埔寨 - + Kiribati 基里巴斯 - + Comoros 科摩罗 - + Saint Kitts and Nevis 圣基茨和尼维斯 - + Korea, Democratic People's Republic of 朝鲜民主主义人民共和国 - + Korea, Republic of 韩国 (大韩民国) - + Kuwait 科威特 - + Cayman Islands 开曼群岛 - + Kazakhstan 哈萨克斯坦 - + Lao People's Democratic Republic 老挝人民民主共和国 - + Lebanon 黎巴嫩 - + Saint Lucia 圣卢西亚 - + Liechtenstein 列支敦士登 - + Sri Lanka 斯里兰卡 - + Liberia 利比里亚 - + Lesotho 莱索托 - + Lithuania 立陶宛 - + Luxembourg 卢森堡 - + Latvia 拉托维亚 - + Libyan Arab Jamahiriya 阿拉伯利比亚民众国 - + Morocco 摩洛哥 - + Monaco 摩纳哥 - + Moldova, Republic of 摩尔多瓦共和国 - + Madagascar 马达加斯加 - + Marshall Islands 马绍尔群岛 - + Macedonia 马其顿 - + Mali 马里 - + Myanmar 缅甸 - + Mongolia 蒙古 - + Macau 澳门 - + Northern Mariana Islands 北马里亚纳群岛 - + Martinique 马提尼克岛 - + Mauritania 毛里塔尼亚 - + Montserrat 蒙特塞拉特 - + Malta 马耳他 - + Mauritius 毛里求斯 - + Maldives 马尔代夫 - + Malawi 马拉维 - + Mexico 墨西哥 - + Malaysia 马来西亚 - + Mozambique 莫桑比克 - + Namibia 纳米比亚 - + New Caledonia 新喀里多尼亚 - + Niger 尼日尔 - + Norfolk Island 诺福克岛 - + Nigeria 尼日利亚 - + Nicaragua 尼加拉瓜 - + Netherlands 荷兰 - + Norway 挪威 - + Nepal 尼泊尔 - + Nauru 瑙鲁 - + Niue 纽埃 - + New Zealand 新西兰 - + Oman 阿曼 - + Panama 巴拿马 - + Peru 秘鲁 - + French Polynesia 法属波利尼西亚 - + Papua New Guinea 巴布亚新几内亚 - + Philippines 菲律宾 - + Pakistan 巴基斯坦 - + Poland 波兰 - + Saint Pierre and Miquelon 圣皮埃尔和密克隆群岛 - + Pitcairn Islands 皮特凯恩群岛 - + Puerto Rico 波多黎各 - + Palestinian Territory 巴勒斯坦领土 - + Portugal 葡萄牙 - + Palau 帕劳 - + Paraguay 巴拉圭 - + Qatar 卡塔尔 - + Reunion 团聚 - + Romania 罗马尼亚 - + Russian Federation 俄罗斯联邦 - + Rwanda 卢旺达 - + Saudi Arabia 沙特阿拉伯 - + Solomon Islands 所罗门群岛 - + Seychelles 塞舌尔 - + Sudan 苏丹 - + Sweden 瑞典 - + Singapore 新加坡 - + Saint Helena 圣海伦娜 - + Slovenia 斯洛文尼亚 - + Svalbard and Jan Mayen 斯瓦尔巴和扬马延岛 - + Slovakia 斯洛伐克 - + Sierra Leone 塞拉利昂 - + San Marino 圣马利诺 - + Senegal 塞内加尔 - + Somalia 索马里 - + Suriname 苏里南 - + Sao Tome and Principe 圣多美和普林西比 - + El Salvador 萨尔瓦多 - + Syrian Arab Republic 阿拉伯叙利亚共和国 - + Swaziland 斯威士兰 - + Turks and Caicos Islands 特克斯和凯科斯群岛 - + Chad 乍得 - + French Southern Territories 法国南部领地 - + Togo 多哥 - + Thailand 泰国 - + Tajikistan 塔吉克斯坦 - + Tokelau 托克劳 - + Turkmenistan 土库曼斯坦 - + Tunisia 突尼斯 - + Tonga 汤加 - + Timor-Leste 东帝汶 - + Turkey 土耳其 - + Trinidad and Tobago 特立尼达和多巴哥 - + Tuvalu 图瓦卢 - + Taiwan 台湾省 - + Tanzania, United Republic of 坦桑尼亚联合共和国 - + Ukraine 乌克兰 - + Uganda 乌干达 - + United States Minor Outlying Islands 美国本土外小岛屿 - + United States 美国 - + Uruguay 乌拉圭 - + Uzbekistan 乌兹别克斯坦 - + Holy See (Vatican City State) 教廷 (梵蒂冈城国) - + Saint Vincent and the Grenadines 圣文森特和格林纳丁斯 - + Venezuela 委内瑞拉 - + Virgin Islands, British 英属维京群岛 - + Virgin Islands, U.S. 美属维京群岛 - + Vietnam 越南 - + Vanuatu 瓦努阿图 - + Wallis and Futuna 瓦利斯和富图纳群岛 - + Samoa 萨摩亚 - + Yemen 也门 - + Mayotte 马约特岛 - + Serbia 塞尔维亚 - + South Africa 南非 - + Zambia 赞比亚 - + Montenegro 黑山 - + Zimbabwe 津巴布韦 - + Anonymous Proxy 匿名代理 - + Satellite Provider 卫星提供商 - + Other 其他 - + Aland Islands 奥兰群岛 - + Guernsey 根西岛 - + Isle of Man 马恩岛 - + Jersey 泽西岛 - + Saint Barthelemy 圣巴泰勒米 - + Saint Martin 圣马丁岛 - + Could not uncompress GeoIP database file. 无法解压 GeoIP 数据库文件。 - + Couldn't save downloaded GeoIP database file. 无法保存已下载的 GeoIP 数据库文件。 - + Successfully updated GeoIP database. 成功更新 GeoIP 数据库。 - + Couldn't download GeoIP database file. Reason: %1 无法下载 GeoIP 数据库文件。原因:%1 @@ -3785,12 +3814,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP 支持 [开] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP 支持 [关] @@ -3798,206 +3827,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Email 提醒出错: + + PeerInfo + + + interested(local) and choked(peer) + 被关注的 (本地)和阻塞的 (peer) + + + + interested(local) and unchoked(peer) + 被关注 (本地)和通畅的 (peer) + + + + interested(peer) and choked(local) + 被关注的 (peer)和阻塞的 (本地) + + + + interested(peer) and unchoked(local) + 被关注的 (peer)和通畅的 (本地) + + + + optimistic unchoke + 尝试性疏通 + + + + peer snubbed + 被拒绝的 peer + + + + incoming connection + 传入的​​连接 + + + + not interested(local) and unchoked(peer) + 不被关注 (本地)和通畅的 (peer) + + + + not interested(peer) and unchoked(local) + 不被关注的 (peer)和通畅的 (本地) + + + + peer from PEX + 来自 PEX 的 peer + + + + peer from DHT + 来自DHT 的 peer + + + + encrypted traffic + 加密的流量 + + + + encrypted handshake + 加密的握手 + + + + peer from LSD + 来自 LSD 的 peer + + PeerListWidget - + IP IP - + Port 端口 - + Flags 标志 - + Connection 连接 - + Client i.e.: Client application 用户 - + Progress i.e: % downloaded 进度 - + Down Speed i.e: Download speed 下载速度 - + Up Speed i.e: Upload speed 上传速度 - + Downloaded i.e: total data downloaded 已下载 - + Uploaded i.e: total data uploaded 已上传 - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. 文件关联 - + Add a new peer... 添加新用户 - + Copy selected 复制已选择的 - - + + Ban peer permanently 永久禁止用户 - + Manually adding peer '%1'... 手动添加用户 '%1'... - + The peer '%1' could not be added to this torrent. 用户 '%1' 无法被添加到此 torrent。 - + Manually banning peer '%1'... 手动禁止用户 '%1'... - + Peer addition 用户添加 - + Some peers could not be added. Check the Log for details. 部分用户无法被添加。请查看日志以了解更多。 - + The peers were added to this torrent. 这些用户已添加到此 torrent。 - + Are you sure you want to ban permanently the selected peers? 您确定要永久禁止被选中的用户吗? - + &Yes &是 - + &No &否 - interested(local) and choked(peer) - 被关注的 (本地)和阻塞的 (peer) + 被关注的 (本地)和阻塞的 (peer) - interested(local) and unchoked(peer) - 被关注 (本地)和通畅的 (peer) + 被关注 (本地)和通畅的 (peer) - interested(peer) and choked(local) - 被关注的 (peer)和阻塞的 (本地) + 被关注的 (peer)和阻塞的 (本地) - interested(peer) and unchoked(local) - 被关注的 (peer)和通畅的 (本地) + 被关注的 (peer)和通畅的 (本地) - optimistic unchoke - 尝试性疏通 + 尝试性疏通 - peer snubbed - 被拒绝的 peer + 被拒绝的 peer - incoming connection - 传入的​​连接 + 传入的​​连接 - not interested(local) and unchoked(peer) - 不被关注 (本地)和通畅的 (peer) + 不被关注 (本地)和通畅的 (peer) - not interested(peer) and unchoked(local) - 不被关注的 (peer)和通畅的 (本地) + 不被关注的 (peer)和通畅的 (本地) - peer from PEX - 来自 PEX 的 peer + 来自 PEX 的 peer - peer from DHT - 来自DHT 的 peer + 来自DHT 的 peer - encrypted traffic - 加密的流量 + 加密的流量 - encrypted handshake - 加密的握手 + 加密的握手 - peer from LSD - 来自 LSD 的 peer + 来自 LSD 的 peer @@ -4771,17 +4859,17 @@ Are you sure you want to quit qBittorrent? 过滤器路径(.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. 检测到未完全清理的程序退出记录。使用备份文件恢复设置。 - + An access error occurred while trying to write the configuration file. 尝试写入配置文件时出现权限错误。 - + A format error occurred while trying to write the configuration file. 尝试写入配置文件时出现文件格式错误。 @@ -4887,299 +4975,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: 已下载: - + Availability: 可用性: - + Progress: 进度: - + Transfer 传输 - + Time Active: Time (duration) the torrent is active (not paused) 活动时间: - + ETA: 剩余时间: - + Uploaded: 已上传: - + Seeds: 种子: - + Download Speed: 下载速度: - + Upload Speed: 上传速度: - + Peers: 用户: - + Download Limit: 下载限制: - + Upload Limit: 上传限制: - + Wasted: 已丢弃: - + Connections: 连接: - + Information 信息 - + Comment: 注释: - Torrent content: - Torrent内容: + Torrent内容: - + Select All 选择所有 - + Select None 全不选 - + Normal 正常 - + High - + Share Ratio: 分享率: - + Reannounce In: 重新发布于: - + Last Seen Complete: 最后完整可见: - + Total Size: 总大小: - + Pieces: 区块: - + Created By: 创建者: - + Added On: 添加于: - + Completed On: 完成于: - + Created On: 创建于: - + Torrent Hash: Torrent 哈希值: - + Save Path: 保存路径: - + Maximum 最大 - - + + Do not download 不下载 - + Never 从不 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (有 %3) - + %1 (%2 this session) %1 (本次会话 %2) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1 (已做种 %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1 (最大 %2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1 (总计 %2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1 (平均 %2) - + Open 打开 - + Open Containing Folder 打开包含文件夹 - + Rename... 重命名... - + Priority 优先 - + New Web seed 新建网页种子 - + Remove Web seed 移除网页种子 - + Copy Web seed URL 复制网页种子URL网址 - + Edit Web seed URL 编辑网页种子URL地址 - + Rename the file 重命名文件 - + New name: 新名: - - + + The file could not be renamed 文件不能被重命名 - + This file name contains forbidden characters, please choose a different one. 该文件名包含被禁止符号,请重新命名. - - + + This name is already in use in this folder. Please use a different name. 该名称已被使用,请重新命名. - + The folder could not be renamed 文件夹不能被重命名 - + qBittorrent qBittorrent @@ -5189,29 +5276,29 @@ Are you sure you want to quit qBittorrent? 过滤文件... - + New URL seed New HTTP source 新建 URL 种子 - + New URL seed: 新建 URL 种子: - - + + This URL seed is already in the list. 该 URL 种子已在列表中。 - + Web seed editing 网页种子编辑 - + Web seed URL: 网页种子URL地址: @@ -5224,20 +5311,20 @@ Are you sure you want to quit qBittorrent? 经过多次授权失败后,您的 IP 已被封锁。 - + Error: '%1' is not a valid torrent file. 错误:'%1' 不是一个有效的Torrent文件。 - + Error: Could not add torrent to session. 错误:无法添加 torrent 到会话中。 - + I/O Error: Could not create temporary file. I/O 错误:创建缓存文件失败。 @@ -5390,138 +5477,138 @@ No further notices will be issued. [qBittorrent] '%1' 已完成下载 - + The remote host name was not found (invalid hostname) 未找到远端主机名(无效主机名) - + The operation was canceled 操作被取消 - + The remote server closed the connection prematurely, before the entire reply was received and processed 远端服务器在接到和处理完整回复前过早关闭连接 - + The connection to the remote server timed out 连接远端服务器超时 - + SSL/TLS handshake failed SSL/TLS 握手失败 - + The remote server refused the connection 远端服务器拒绝连接 - + The connection to the proxy server was refused 连接到代理服务器被拒绝 - + The proxy server closed the connection prematurely 代理服务器过早关闭连接 - + The proxy host name was not found 代理服务器主机名不存在 - + The connection to the proxy timed out or the proxy did not reply in time to the request sent 连接到代理服务器超时或代理服务器未及时回复请求 - + The proxy requires authentication in order to honor the request but did not accept any credentials offered 代理服务器要求身份验证以确认请求,但没有接受任何提供的凭据 - + The access to the remote content was denied (401) 读取远端内容被拒绝 (401) - + The operation requested on the remote content is not permitted 对于远端内容请求的操作未被允许 - + The remote content was not found at the server (404) 内容在远程服务器上未找到(404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted 远程服务器要求认证以提供资源,但提供的凭据不被接受 - + The Network Access API cannot honor the request because the protocol is not known 网络许可 API 无法处理请求,因为协议未知 - + The requested operation is invalid for this protocol 请求的操作对该协议无效 - + An unknown network-related error was detected 检测到未知的关于局域网的错误 - + An unknown proxy-related error was detected 检测到未知的关于代理服务器的错误 - + An unknown error related to the remote content was detected 检测到未知的关于远端内容的错误 - + A breakdown in protocol was detected 检测到协议故障 - + Unknown error 未知错误 - - + + Upgrade 升级 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] 你从较旧的版本更新,两者保存的东西有所不同。你必须迁移到新的保存系统。你将不能再次使用比 v3.3.0 旧的版本。要继续吗? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. 你从较旧的版本更新,两者保存的东西有所不同。你必须迁移到新的保存系统。如果你继续,你将不能再次使用比 v3.3.0 旧的版本。 - + Couldn't migrate torrent with hash: %1 不能迁移 torrent,它的哈希为:%1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 不能迁移 torrent。无效的 fastresume 文件名称:%1 @@ -5710,12 +5797,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... - + Automatically downloading '%1' torrent from '%2' RSS feed... 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... @@ -5759,17 +5846,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder 监控文件夹 - + Download here 下载到这里 - + Download path 下载路径 @@ -7829,11 +7916,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads 下载 @@ -7841,103 +7928,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected 未检测到 Python - + Python version: %1 Python 版本号:%1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1小时%2分钟 - + %1d %2h e.g: 2days 10hours %1天%2小时 - + Unknown Unknown (size) 未知 - + qBittorrent will shutdown the computer now because all downloads are complete. 所有下载已完成,qBittorrent即将关闭电脑 - + < 1m < 1 minute < 1分钟 - + %1m e.g: 10minutes %1分钟 - + Working 工作中 - + Updating... 更新中... - + Not working 不运行 - + Not contacted yet 未联系 diff --git a/src/lang/qbittorrent_zh_HK.ts b/src/lang/qbittorrent_zh_HK.ts index 3075c8758..37ff5d9fa 100644 --- a/src/lang/qbittorrent_zh_HK.ts +++ b/src/lang/qbittorrent_zh_HK.ts @@ -125,217 +125,222 @@ 略過驗證碼檢查 - + + Set as default label + + + + Torrent Information Torrent資訊 - + Size: 大小: - + Comment: 評註: - + Date: 日期: - + Info Hash: 資訊驗證碼: - + Normal 一般 - + High - + Maximum 最高 - + Do not download 不要下載 - - + + I/O Error 入出錯誤 - + The torrent file does not exist. 這Torrent檔不存在。 - + Invalid torrent 無效Torrent - + Failed to load the torrent: %1 無法載入Torrent:%1 - - + + Already in download list 已於下載清單。 - + Free disk space: %1 可用磁碟空間:%1 - + Not Available This comment is unavailable 不可選用 - + Not Available This date is unavailable 不可選用 - + Not available 不可選用 - + Invalid magnet link 無效磁性連結 - + Torrent is already in download list. Trackers were merged. Torrent已於下載清單。追蹤器被合併。 - - + + Cannot add torrent 無法加入Torrent - + Cannot add this torrent. Perhaps it is already in adding state. 無法加入這Torrent。可能正在加入狀態。 - + This magnet link was not recognized 無法辨認這磁性連結 - + Magnet link is already in download list. Trackers were merged. 磁性連結已於下載清單。追蹤器被合併。 - + Cannot add this torrent. Perhaps it is already in adding. 無法加入這Torrent。可能已加入。 - + Magnet link 磁性連結 - + Retrieving metadata... 檢索元資料… - + Not Available This size is unavailable. 不可選用 - - - + + + Choose save path 選取儲存路徑 - + Rename the file 重新命名檔案 - + New name: 新名稱: - - + + The file could not be renamed 檔案無法重新命名 - + This file name contains forbidden characters, please choose a different one. 檔名包含不准使用的字元,請另選名稱。 - - + + This name is already in use in this folder. Please use a different name. 資料夾存在同名項目。請另選名稱。 - + The folder could not be renamed 這資料夾無法重新命名 - + Rename... 重新命名… - + Priority 優先權 - + Invalid metadata 無效元資料 - + Parsing metadata... 解析元資料… - + Metadata retrieval complete 完成檢索元資料 - + Download Error 下載錯誤 @@ -427,9 +432,8 @@ 分析同路人主機名 - Maximum number of half-open connections [0: Disabled] - 最大半開啟連接數(0:停用) + 最大半開啟連接數(0:停用) @@ -473,6 +477,11 @@ How often the fastresume file is saved. 儲存復原資訊間距 + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: 同路人ID: - + HTTP User-Agent is '%1' HTTP用戶代理是「%1」 - + Anonymous mode [ON] 匿名模式 [啟用中] - + Anonymous mode [OFF] 匿名模式 [停用中] - + PeX support [ON] 支援PeX同路人交換 [啟用中] - + PeX support [OFF] 支援PeX同路人交換 [停用中] - + Restart is required to toggle PeX support 啟用和停用對PeX同路人交換的支援須重新啟動 - + Local Peer Discovery support [ON] 支援LPD本地同路人發現 [啟用中] - + Local Peer Discovery support [OFF] 支援LPD本地同路人發現 [停用中] - + Encryption support [ON] 加密支援 [啟用中] - + Encryption support [FORCED] 加密支援 [強制] - + Encryption support [OFF] 加密支援 [停用中] - + Embedded Tracker [ON] 嵌入式追蹤器 [啟用中] - + Failed to start the embedded tracker! 無法開啟嵌入式追蹤器。 - + Embedded Tracker [OFF] 嵌入式追蹤器 [停用中] - + '%1' reached the maximum ratio you set. Removing... 「%1」已到你設定的最大分享率。清除中… - + '%1' reached the maximum ratio you set. Pausing... 「%1」已到你設定的最大分享率。暫停中… - Error: Could not create torrent export directory: '%1' - 錯誤:無法建立Torrent匯出資料夾「%1」 + 錯誤:無法建立Torrent匯出資料夾「%1」 - Error: could not export torrent '%1', maybe it has not metadata yet. - 錯誤:無法匯出Torrent「%1」,可能Torrent沒有元資料。 + 錯誤:無法匯出Torrent「%1」,可能Torrent沒有元資料。 - + System network status changed to %1 e.g: System network status changed to ONLINE 系統網絡連線:%1 - + ONLINE 啟用 - + OFFLINE 停用 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1的網絡設定已更改,正在更新階段配對 - + Unable to decode '%1' torrent file. 無法解析Torrent檔「%1」 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 反復下載嵌入於Torrent「%2」的「%1」 - + Couldn't save '%1.torrent' 無法儲存「%1.torrent」 - + because %1 is disabled. this peer was blocked because uTP is disabled. 因%1已被停用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因%1已被停用。 - + URL seed lookup failed for URL: '%1', message: %2 網址「%1」搜尋URL種子失敗,訊息:%2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... 「%1」已從傳輸清單和磁碟中清除。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... 「%1」已從傳輸清單清除。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... 下載「%1」中,請稍候… - Torrent Export: torrent is invalid, skipping... - 匯出Torrent:Torrent無效,正略過… + 匯出Torrent:Torrent無效,正略過… - + DHT support [ON] 支援DHT分散式網絡 [啟用中] - + DHT support [OFF]. Reason: %1 支援DHT分散式網絡 [停用中]。理由:%1 - + DHT support [OFF] 支援DHT分散式網絡 [停用中] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent正在嘗試監聽任何介面埠:%1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent監聽任何介面埠失敗:%1。理由:%2 + qBittorrent監聽任何介面埠失敗:%1。理由:%2 - + The network interface defined is invalid: %1 定義的網絡介面無效:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent正在嘗試監聽介面%1的埠:%2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent未找到供監聽的%1本地位址 - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent監聽任何介面埠失敗:%1。理由:%2. {1.?} + + + Tracker '%1' was added to torrent '%2' 追蹤器「%1」已加入到Torrent「%2」 - + Tracker '%1' was deleted from torrent '%2' 追蹤器「%1」已從Torrent「%2」刪除 - + URL seed '%1' was added to torrent '%2' 已加入URL種子「%1」到Torrent「%2」 - + URL seed '%1' was removed from torrent '%2' 已從Torrent「%2」清除URL種子「%1」 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 無法復原Torrent檔案「%1」。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 成功解析IP過濾器:已套用%1個規則。 - + Error: Failed to parse the provided IP filter. 錯誤:解析IP過濾器失敗。 - + Couldn't add torrent. Reason: %1 無法加入Torrent。理由:%1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) 「%1」已復原。(快速復原) - + '%1' added to download list. 'torrent name' was added to download list. 「%1」已加入到下載清單。 - + An I/O error occurred, '%1' paused. %2 發生入出錯誤,「%1」已暫停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP╱NAT-PMP:埠映射失敗,訊息:%1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP╱NAT-PMP:埠映射成功,訊息:%1 - + due to IP filter. this peer was blocked due to ip filter. 由於IP過濾器。 - + due to port filter. this peer was blocked due to port filter. 由於埠過濾器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由於i2p混合模式限制。 - + because it has a low port. this peer was blocked because it has a low port. 由於低埠。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent成功監聽介面%1的埠:%2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4 + qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4 + + + External IP: %1 e.g. External IP: 192.168.0.1 外部IP:%1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 無法移動Torrent「%1」。理由:%2 - + File sizes mismatch for torrent '%1', pausing it. 檔案大小不符Torrent「%1」,正在暫停。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... 快速復原「%1」被拒。理由:%2。再檢查中… @@ -1307,20 +1323,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. 入出錯誤:讀取模式下無法開啟IP過濾器檔。 - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. 解析錯誤:過濾器檔並非有效的PeerGuardian P2B檔。 @@ -1328,43 +1344,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. 不支援的資料庫檔案大小。 - + Metadata error: '%1' entry not found. 元資料錯誤:未能找到「%1」項。 - + Metadata error: '%1' entry has invalid type. 元資料錯誤:「%1」項類型無效。 - + Unsupported database version: %1.%2 不支援的資料庫版本:%1.%2 - + Unsupported IP version: %1 不支援的IP版本:%1 - + Unsupported record size: %1 不支援的記錄大小:%1 - + Invalid database type: %1 無效的資料庫類型:%1 - + Database corrupted: no data section found. 資料庫破損:未能找到資料部份。 @@ -1384,7 +1400,7 @@ You should get this information from your Web browser preferences. Help - 幫助 + 說明 @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. 一行一連結 - Download local torrent - 下載本地Torrent + 下載本地Torrent @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. 不活躍 - + + Save files to location: + 儲存檔案到: + + + + Label: + 標記: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? 已下載 @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout 登出 + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text 清除文字 @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit 編輯(&E) - + &Tools 工具(&T) - + &File 檔案(&F) - + &Help - 幫助(&H) + 程式(&H) - + On Downloads &Done 下載完成時(&D) - + &View 檢視(&V) - + &Options... 喜好設定(&O) @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. 繼續(&R) - + Torrent &Creator Torrent建立工具(&C) - + Set Upload Limit... 設定上載速度限制… - + Set Download Limit... 設定下載速度限制… - + Set Global Download Limit... 設定整體下載速度限制… - + Set Global Upload Limit... 設定整體上載速度限制… - + Minimum Priority 最低優先權 - + Top Priority 最高優先權 - + Decrease Priority 減低優先權 - + Increase Priority 提高優先權 - - + + Alternative Speed Limits 特別速度限制 - + &Top Toolbar 頂端工具列(&T) - + Display Top Toolbar 顯示頂端工具列 - + S&peed in Title Bar 標題列和工作列按鈕顯示速度(&P) - + Show Transfer Speed in Title Bar 標題列和工作列按鈕顯示傳輸速度 - + &RSS Reader RSS閱讀器(&R) - + Search &Engine 搜尋引擎(&E) - + L&ock qBittorrent 鎖定qBittorrent(&O) - + &Import Existing Torrent... 匯入已存在的Torrent(&I) - + Import Torrent... 匯入Torrent… - + Do&nate! 捐款(&N) - + R&esume All 全部繼續(&E) - + &Log 執行日誌(&L) - + &Exit qBittorrent 關閉qBittorrent(&E) - + &Suspend System 睡眠(&S) - + &Hibernate System 休眠(&H) - + S&hutdown System 關機(&H) - + &Disabled 甚麼都不做(&D) - + &Statistics 統計資料(&S) - + Check for Updates 檢查更新 - + Check for Program Updates 檢查程式更新 @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. 關於(&A) - Exit - 離開 + 離開 - + &Pause 暫停(&P) - + &Delete 刪除(&D) - + P&ause All 全部暫停(&A) - + &Add Torrent File... 加入Torrent檔案(&A) - + Open 開啟 - + E&xit 離開(&X) - Options - 喜好設定 + 喜好設定 - Resume - 繼續 + 繼續 - Pause - 暫停 + 暫停 - Delete - 刪除 + 刪除 - + Open URL 開啟網址 - + &Documentation 網上說明(&D) - + Lock 鎖定 - + Show 顯示 @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. 檢查程式更新 - Lock qBittorrent - 鎖定qBittorrent + 鎖定qBittorrent - + Add Torrent &Link... 加入Torrent連結(&L) - + If you like qBittorrent, please donate! 如果你喜歡qBittorrent,請捐款! - + Execution Log 執行日誌 @@ -2414,52 +2443,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. 成功更新動態DNS。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 動態DNS錯誤:服務暫時無法使用,將在30分鐘後重試。 - + Dynamic DNS error: hostname supplied does not exist under specified account. 動態DNS錯誤:提供的主機名稱於指定帳號不存在。 - + Dynamic DNS error: Invalid username/password. 動態DNS錯誤:無效的用戶名稱╱密碼。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. 動態DNS錯誤:qBittorrent被該服務封鎖,請回報這問題至http://bugs.qbittorrent.org。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 動態DNS錯誤:該服務傳回%1,請回報這問題至http://bugs.qbittorrent.org。 - + Dynamic DNS error: Your username was blocked due to abuse. 動態DNS錯誤:你的用戶名稱因濫用而被封鎖。 - + Dynamic DNS error: supplied domain name is invalid. 動態DNS錯誤:提供的域名無效。 - + Dynamic DNS error: supplied username is too short. 動態DNS錯誤:提供的用戶名稱太短。 - + Dynamic DNS error: supplied password is too short. 動態DNS錯誤:提供的密碼太短。 @@ -2467,17 +2496,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error 入出錯誤 - + The file size is %1. It exceeds the download limit of %2. 檔案大小為%1。它超過了%2的下載限制。 - + Unexpected redirect to magnet URI. 未預期重新導向到磁性連結 @@ -2485,1300 +2514,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. 已載入GeoIP資料庫。類型:%1。版本時間:%2。 - - + + Couldn't load GeoIP database. Reason: %1 無法載入GeoIP資料庫。理由:%1 - - + + N/A (無) - + Asia/Pacific Region 亞太(Asia╱Pacific) - + Europe 歐洲(Europe) - + Andorra 安道爾(Andorra) - + United Arab Emirates 阿拉伯聯合酋長國(United Arab Emirates) - + Afghanistan 阿富汗(Afghanistan) - + Antigua and Barbuda 安提瓜和巴布達(Antigua and Barbuda) - + Anguilla 安圭拉(Anguilla) - + Albania 阿爾巴尼亞(Albania) - + Armenia 阿美尼亞(Armenia) - + Netherlands Antilles 荷屬安地列斯(Netherlands Antilles) - + Angola 安哥拉(Angola) - + Antarctica 南極洲(Antarctica) - + Argentina 阿根廷(Argentina) - + American Samoa 美屬薩摩亞(American Samoa) - + Austria 奧地利(Austria) - + Australia 澳洲(Australia) - + Aruba 阿魯巴(Aruba) - + Azerbaijan 阿西拜疆(Azerbaijan) - + Bosnia and Herzegovina 波斯尼亞(Bosnia) - + Barbados 巴巴多斯(Barbados) - + Bangladesh 孟加拉(Bangladesh) - + Belgium 比利時(Belgium) - + Burkina Faso 布基納法索(Burkina Faso) - + Bulgaria 保加利亞(Bulgaria) - + Bahrain 巴林(Bahrain) - + Burundi 布隆迪(Burundi) - + Benin 貝寧(Benin) - + Bermuda 百慕達(Bermuda) - + Brunei Darussalam 汶萊(Brunei) - + Bolivia 玻利維亞(Bolivia) - + Brazil 巴西(Brazil) - + Bahamas 巴哈馬(Bahamas) - + Bhutan 不丹(Bhutan) - + Bouvet Island 鮑威特島(Bouvet Island) - + Botswana 博茨華納(Botswana) - + Belarus 白俄羅斯(Belarus) - + Belize 伯利茲(Belize) - + Canada 加拿大(Canada) - + Cocos (Keeling) Islands 可可斯群島(Cocos Islands) - + Congo, The Democratic Republic of the 剛果民主共和國(Democratic Republic of Congo) - + Central African Republic 中非共和國(Central African Republic) - + Congo 剛果(Congo) - + Switzerland 瑞士(Switzerland) - + Cote D'Ivoire 科特迪瓦(Cote D'Ivoire) - + Cook Islands 庫克群島(Cook Islands) - + Chile 智利(Chile) - + Cameroon 喀麥隆(Cameroon) - + China 中華人民共和國(China) - + Colombia 哥倫比亞(Colombia) - + Costa Rica 哥斯達黎加(Costa Rica) - + Cuba 古巴(Cuba) - + Cape Verde 佛得角(Cape Verde) - + Christmas Island 聖誕島(Christmas Island) - + Cyprus 西浦路斯(Cyprus) - + Czech Republic 捷克(Czech Republic) - + Germany 德國(Germany) - + Djibouti 吉布提(Djibouti) - + Denmark 丹麥(Denmark) - + Dominica 多明尼加聯邦(Dominica) - + Dominican Republic 多明尼加共和國(Dominican Republic) - + Algeria 阿爾及利亞(Algeria) - + Ecuador 厄瓜多爾(Ecuador) - + Estonia 愛沙尼亞(Estonia) - + Egypt 埃及(Egypt) - + Western Sahara 西撒哈拉(Western Sahara) - + Eritrea 厄立特里亞(Eritrea) - + Spain 西班牙(Spain) - + Ethiopia 衣索比亞(Ethiopia) - + Finland 芬蘭(Finland) - + Fiji 斐濟(Fiji) - + Falkland Islands (Malvinas) 福克蘭群島(Falkland Islands) - + Micronesia, Federated States of 密克羅尼西亞聯邦(Federated States of Micronesia) - + Faroe Islands 法羅群島(Faroe Islands) - + France 法國(France) - + France, Metropolitan 法國大都會區(Metropolitan France) - + Gabon 加蓬(Gabon) - + United Kingdom 英國(United Kingdom) - + Grenada 格林納達(Grenada) - + Georgia 格魯吉亞(Georgia) - + French Guiana 法屬圭亞那(French Guiana) - + Ghana 加納(Ghana) - + Gibraltar 直布羅陀(Gibraltar) - + Greenland 格陵蘭(Greenland) - + Gambia 岡比亞(Gambia) - + Guinea 幾內亞(Guinea) - + Guadeloupe 瓜德羅普(Guadeloupe) - + Equatorial Guinea 赤道幾內亞(Equatorial Guinea) - + Greece 希臘(Greece) - + South Georgia and the South Sandwich Islands 南喬治亞和南三文治群島(South Georgia and South Sandwich Islands) - + Guatemala 危地馬拉(Guatemala) - + Guam 關島(Guam) - + Guinea-Bissau 幾內亞比紹(Guinea-Bissau) - + Guyana 圭亞那(Guyana) - + Hong Kong 香港(Hong Kong) - + Heard Island and McDonald Islands 凱德島和麥當奴群島(Heard Island and McDonald Islands) - + Honduras 洪都拉斯(Honduras) - + Croatia 克羅地亞(Croatia) - + Haiti 海地(Haiti) - + Hungary 匈牙利(Hungary) - + Indonesia 印尼(Indonesia) - + Ireland 愛爾蘭(Ireland) - + Israel 以色列(Israel) - + India 印度(India) - + British Indian Ocean Territory 英屬印度洋領地(British Indian Ocean Territory) - + Iraq 伊拉克(Iraq) - + Iran, Islamic Republic of 伊朗(Iran) - + Iceland 冰島(Iceland) - + Italy 意大利(Italy) - + Jamaica 牙買加(Jamaica) - + Jordan 約旦(Jordan) - + Japan 日本(Japan) - + Kenya 肯亞(Kenya) - + Kyrgyzstan 吉爾吉斯(Kyrgyzstan) - + Cambodia 柬埔寨(Cambodia) - + Kiribati 基里巴斯(Kiribati) - + Comoros 科摩羅(Comoros) - + Saint Kitts and Nevis 聖基茨和尼維斯(Saint Kitts and Nevis) - + Korea, Democratic People's Republic of 朝鮮(North Korea) - + Korea, Republic of 韓國(South Korea) - + Kuwait 科威特(Kuwait) - + Cayman Islands 開曼群島(Cayman Islands) - + Kazakhstan 哈薩克(Kazakhstan) - + Lao People's Democratic Republic 寮國(Laos) - + Lebanon 黎巴嫩(Lebanon) - + Saint Lucia 聖盧西亞(Saint Lucia) - + Liechtenstein 列支敦士登(Liechtenstein) - + Sri Lanka 斯里蘭卡(Sri Lanka) - + Liberia 利比里亞(Liberia) - + Lesotho 萊索托(Lesotho) - + Lithuania 立陶宛(Lithuania) - + Luxembourg 盧森堡(Luxembourg) - + Latvia 拉脫維亞(Latvia) - + Libyan Arab Jamahiriya 利比亞(Libya) - + Morocco 摩洛哥(Morocco) - + Monaco 摩納哥(Monaco) - + Moldova, Republic of 摩爾多瓦(Moldova) - + Madagascar 馬達加斯加(Madagascar) - + Marshall Islands 馬紹爾群島(Marshall Islands) - + Macedonia 馬其頓(Macedonia) - + Mali 馬里(Mali) - + Myanmar 緬甸(Myanmar) - + Mongolia 蒙古(Mongolia) - + Macau 澳門(Macau) - + Northern Mariana Islands 北馬里亞納群島(Northern Mariana Islands) - + Martinique 馬提尼克(Martinique) - + Mauritania 毛里塔尼亞(Mauritania) - + Montserrat 滿特西拉特(Montserrat) - + Malta 馬耳他(Malta) - + Mauritius 毛里求斯(Mauritius) - + Maldives 馬爾代夫(Maldives) - + Malawi 馬拉維(Malawi) - + Mexico 墨西哥(Mexico) - + Malaysia 馬來西亞(Malaysia) - + Mozambique 莫桑比克(Mozambique) - + Namibia 納米比亞(Namibia) - + New Caledonia 新喀里多尼亞(New Caledonia) - + Niger 尼日爾(Niger) - + Norfolk Island 諾福克島(Norfolk Island) - + Nigeria 尼日利亞(Nigeria) - + Nicaragua 尼加拉瓜(Nicaragua) - + Netherlands 荷蘭(Netherlands) - + Norway 挪威(Norway) - + Nepal 尼泊爾(Nepal) - + Nauru 瑙魯(Nauru) - + Niue 紐埃(Niue) - + New Zealand 新西蘭(New Zealand) - + Oman 阿曼(Oman) - + Panama 巴拿馬(Panama) - + Peru 秘魯(Peru) - + French Polynesia 法屬波利尼西亞(French Polynesia) - + Papua New Guinea 巴布亞新幾內亞(Papua New Guinea) - + Philippines 菲律賓(Philippines) - + Pakistan 巴基斯坦(Pakistan) - + Poland 波蘭(Poland) - + Saint Pierre and Miquelon 聖皮埃爾和密克隆(Saint Pierre and Miquelon) - + Pitcairn Islands 皮特凱恩群島(Pitcairn Islands) - + Puerto Rico 波多黎各(Puerto Rico) - + Palestinian Territory 巴勒斯坦(Palestine) - + Portugal 葡萄牙(Portugal) - + Palau 帛琉(Palau) - + Paraguay 巴拉圭(Paraguay) - + Qatar 卡塔爾(Qatar) - + Reunion 留尼旺(Reunion) - + Romania 羅馬尼亞(Romania) - + Russian Federation 俄羅斯(Russia) - + Rwanda 盧旺達(Rwanda) - + Saudi Arabia 沙地阿拉伯(Saudi Arabia) - + Solomon Islands 所羅門群島(Solomon Islands) - + Seychelles 西舌爾(Seychelles) - + Sudan 蘇丹(Sudan) - + Sweden 瑞典(Sweden) - + Singapore 新加坡(Singapore) - + Saint Helena 聖凱倫娜(Saint Helena) - + Slovenia 斯洛文尼亞(Slovenia) - + Svalbard and Jan Mayen 斯瓦巴和揚馬延(Svalbard and Jan Mayen) - + Slovakia 斯洛伐克(Slovakia) - + Sierra Leone 西拉利昂(Sierra Leone) - + San Marino 聖馬力諾(San Marino) - + Senegal 西內加爾(Senegal) - + Somalia 索馬里(Somalia) - + Suriname 蘇里南(Suriname) - + Sao Tome and Principe 聖多美和普林西比(Sao Tome and Principe) - + El Salvador 薩爾瓦多(El Salvador) - + Syrian Arab Republic 敘利亞(Syria) - + Swaziland 斯威士蘭(Swaziland) - + Turks and Caicos Islands 特克斯群島和凱科斯群島(Turks and Caicos Islands) - + Chad 乍得(Chad) - + French Southern Territories 法屬南部領地(French Southern Territories) - + Togo 多哥(Togo) - + Thailand 泰國(Thailand) - + Tajikistan 塔吉克(Tajikistan) - + Tokelau 托克勞(Tokelau) - + Turkmenistan 土庫曼(Turkmenistan) - + Tunisia 突尼西亞(Tunisia) - + Tonga 湯加(Tonga) - + Timor-Leste 東帝汶(East Timor) - + Turkey 土耳其(Turkey) - + Trinidad and Tobago 千里達和多巴哥(Trinidad and Tobago) - + Tuvalu 吐瓦魯(Tuvalu) - + Taiwan 臺灣(Taiwan) - + Tanzania, United Republic of 坦桑尼亞(Tanzania) - + Ukraine 烏克蘭(Ukraine) - + Uganda 烏干達(Uganda) - + United States Minor Outlying Islands 美國小型外島(United States Minor Outlying Islands) - + United States 美國(United States) - + Uruguay 烏拉圭(Uruguay) - + Uzbekistan 烏茲別克(Uzbekistan) - + Holy See (Vatican City State) 梵蒂岡(Vatican) - + Saint Vincent and the Grenadines 聖文森和格林納丁斯(Saint Vincent and the Grenadines) - + Venezuela 委內瑞拉(Venezuela) - + Virgin Islands, British 英屬處女群島(British Virgin Islands) - + Virgin Islands, U.S. 美屬處女群島(American Virgin Islands) - + Vietnam 越南(Vietnam) - + Vanuatu 瓦努阿圖(Vanuatu) - + Wallis and Futuna 華利斯和富圖納(Wallis and Futuna) - + Samoa 薩摩亞(Samoa) - + Yemen 也門(Yemen) - + Mayotte 馬約特(Mayotte) - + Serbia 西爾維亞(Serbia) - + South Africa 南非(South Africa) - + Zambia 贊比亞(Zambia) - + Montenegro 黑山(Montenegro) - + Zimbabwe 津巴布韋(Zimbabwe) - + Anonymous Proxy 匿名代理 - + Satellite Provider 衛星供應者 - + Other 其他 - + Aland Islands 奧蘭群島(Aland Islands) - + Guernsey 根西(Guernsey) - + Isle of Man 曼島(Isle of Man) - + Jersey 澤西(Jersey) - + Saint Barthelemy 聖巴泰勒米(Saint Barthelemy) - + Saint Martin 聖馬丁(Saint Martin) - + Could not uncompress GeoIP database file. 無法解壓縮GeoIP資料庫檔。 - + Couldn't save downloaded GeoIP database file. 無法儲存GeoIP資料庫檔。 - + Successfully updated GeoIP database. 成功更新GeoIP資料庫。 - + Couldn't download GeoIP database file. Reason: %1 無法下載GeoIP資料庫。理由:%1 @@ -3786,12 +3815,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP╱NAT-PMP支援 [啟用中] - + UPnP / NAT-PMP support [OFF] UPnP╱NAT-PMP支援 [停用中] @@ -3799,206 +3828,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: 電郵通知錯誤: + + PeerInfo + + + interested(local) and choked(peer) + 感興趣(本地)受阻(同路人) + + + + interested(local) and unchoked(peer) + 感興趣(本地)無阻(同路人) + + + + interested(peer) and choked(local) + 感興趣(同路人)受阻(本地) + + + + interested(peer) and unchoked(local) + 感興趣(同路人)無阻(本地) + + + + optimistic unchoke + 樂觀無阻 + + + + peer snubbed + 被同路人冷落 + + + + incoming connection + 連入 + + + + not interested(local) and unchoked(peer) + 不感興趣(本地)無阻(同路人) + + + + not interested(peer) and unchoked(local) + 不感興趣(同路人)無阻(本地) + + + + peer from PEX + 來自PeX同路人交換的同路人 + + + + peer from DHT + 來自DHT分散式網絡的同路人 + + + + encrypted traffic + 加密的流量 + + + + encrypted handshake + 加密的溝通 + + + + peer from LSD + 來自LPD本地同路人發現的同路人 + + PeerListWidget - + IP IP - + Port - + Flags 旗幟 - + Connection 連接 - + Client i.e.: Client application 用戶端 - + Progress i.e: % downloaded 進度 - + Down Speed i.e: Download speed 下載速度 - + Up Speed i.e: Upload speed 上載速度 - + Downloaded i.e: total data downloaded 已下載 - + Uploaded i.e: total data uploaded 已上載 - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. 相關度 - + Add a new peer... 加入同路人… - + Copy selected 複製所選 - - + + Ban peer permanently 永遠封鎖同路人 - + Manually adding peer '%1'... 手動加入同路人「%1」… - + The peer '%1' could not be added to this torrent. 無法加入同路人「%1」到這Torrent。 - + Manually banning peer '%1'... 手動封鎖同路人「%1」… - + Peer addition 加入同路人 - + Some peers could not be added. Check the Log for details. 無法加入部份同路人。詳情請看執行日誌。 - + The peers were added to this torrent. 已加入同路人到這Torrent。 - + Are you sure you want to ban permanently the selected peers? 永遠封鎖所選同路人,確定? - + &Yes 是(&Y) - + &No 否(&N) - interested(local) and choked(peer) - 感興趣(本地)受阻(同路人) + 感興趣(本地)受阻(同路人) - interested(local) and unchoked(peer) - 感興趣(本地)無阻(同路人) + 感興趣(本地)無阻(同路人) - interested(peer) and choked(local) - 感興趣(同路人)受阻(本地) + 感興趣(同路人)受阻(本地) - interested(peer) and unchoked(local) - 感興趣(同路人)無阻(本地) + 感興趣(同路人)無阻(本地) - optimistic unchoke - 樂觀無阻 + 樂觀無阻 - peer snubbed - 被同路人冷落 + 被同路人冷落 - incoming connection - 連入 + 連入 - not interested(local) and unchoked(peer) - 不感興趣(本地)無阻(同路人) + 不感興趣(本地)無阻(同路人) - not interested(peer) and unchoked(local) - 不感興趣(同路人)無阻(本地) + 不感興趣(同路人)無阻(本地) - peer from PEX - 來自PeX同路人交換的同路人 + 來自PeX同路人交換的同路人 - peer from DHT - 來自DHT分散式網絡的同路人 + 來自DHT分散式網絡的同路人 - encrypted traffic - 加密的流量 + 加密的流量 - encrypted handshake - 加密的溝通 + 加密的溝通 - peer from LSD - 來自LPD本地同路人發現的同路人 + 來自LPD本地同路人發現的同路人 @@ -4495,7 +4583,7 @@ Are you sure you want to quit qBittorrent? Global maximum number of upload slots: - 整體上載最大連接數量 + 整體上載最大連接數量: @@ -4772,17 +4860,17 @@ Are you sure you want to quit qBittorrent? 過濾器(.dat、.p2p、.p2b) - + Detected unclean program exit. Using fallback file to restore settings. 偵測到有瑕疵的程式退出。正在使用備份檔案來復原設定。 - + An access error occurred while trying to write the configuration file. 嘗試寫入設定檔時發生存取錯誤。 - + A format error occurred while trying to write the configuration file. 嘗試寫入設定檔時發生格式錯誤。 @@ -4888,299 +4976,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: 已下載: - + Availability: 可得度: - + Progress: 進度: - + Transfer 傳輸 - + Time Active: Time (duration) the torrent is active (not paused) 已用時間: - + ETA: 預計剩餘時間: - + Uploaded: 已上載: - + Seeds: 種子: - + Download Speed: 下載速度: - + Upload Speed: 上載速度: - + Peers: 同路人: - + Download Limit: 下載速度限制: - + Upload Limit: 上載速度限制: - + Wasted: 已丟棄: - + Connections: 連接: - + Information 資訊 - + Comment: 評註: - Torrent content: - Torrent內容: + Torrent內容: - + Select All 選取全部 - + Select None 取消選取檔案 - + Normal 一般 - + High - + Share Ratio: 分享率: - + Reannounce In: 重新公告於: - + Last Seen Complete: 最後完整可見: - + Total Size: 總大小: - + Pieces: 片段: - + Created By: 建立者: - + Added On: 加入於: - + Completed On: 完成於: - + Created On: 建立於: - + Torrent Hash: Torrent驗證碼: - + Save Path: 儲存路徑: - + Maximum 最高 - - + + Do not download 不要下載 - + Never 從不 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1×%2(有%3) - + %1 (%2 this session) %1(本階段%2) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1(做種%2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1(最高%2) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1(總計%2) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1(平均%2) - + Open 開啟 - + Open Containing Folder 開啟存放位置 - + Rename... 重新命名… - + Priority 優先權 - + New Web seed 新Web種子 - + Remove Web seed 清除Web種子 - + Copy Web seed URL 複製Web種子網址 - + Edit Web seed URL 編輯Web種子網址 - + Rename the file 重新命名檔案 - + New name: 新名稱: - - + + The file could not be renamed 檔案無法重新命名 - + This file name contains forbidden characters, please choose a different one. 檔名包含不准使用的字元,請另選名稱。 - - + + This name is already in use in this folder. Please use a different name. 資料夾存在同名項目。請另選名稱。 - + The folder could not be renamed 這資料夾無法重新命名 - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Are you sure you want to quit qBittorrent? 過濾檔案… - + New URL seed New HTTP source 新URL種子 - + New URL seed: 新URL種子: - - + + This URL seed is already in the list. 這URL種子已於清單。 - + Web seed editing 編輯Web種子 - + Web seed URL: Web種子網址: @@ -5225,18 +5312,18 @@ Are you sure you want to quit qBittorrent? 你的IP位址因多次驗證失敗而被封鎖。 - + Error: '%1' is not a valid torrent file. 錯誤:「'%1」不是有效Torrent檔。 - + Error: Could not add torrent to session. 錯誤:無法加入種子到工作階段。 - + I/O Error: Could not create temporary file. 入出錯誤:無法建立暫存檔。 @@ -5280,7 +5367,7 @@ Are you sure you want to quit qBittorrent? Displays this help message - 顯示幫助訊息 + 顯示說明訊息 @@ -5305,7 +5392,7 @@ Are you sure you want to quit qBittorrent? Help - 幫助 + 說明 @@ -5389,138 +5476,138 @@ No further notices will be issued. [qBittorrent]「%1」已完成下載 - + The remote host name was not found (invalid hostname) 未找到遠端主機名(無效主機名) - + The operation was canceled 操作已取消 - + The remote server closed the connection prematurely, before the entire reply was received and processed 在回應被接收和處理前,遠端伺服器已關閉連接 - + The connection to the remote server timed out 連接到遠端伺服器逾時 - + SSL/TLS handshake failed SSL╱TLS溝通失敗 - + The remote server refused the connection 遠端伺服器拒絕連接 - + The connection to the proxy server was refused 連接代理伺服器被拒 - + The proxy server closed the connection prematurely 代理伺服器過早關閉連接 - + The proxy host name was not found 代理伺服器主機名不存在 - + The connection to the proxy timed out or the proxy did not reply in time to the request sent 連接到代理伺服器逾時或代理伺服器未能及時回應 - + The proxy requires authentication in order to honor the request but did not accept any credentials offered 代理不接受已提供的憑證,須重新驗證換取代理兌現要求 - + The access to the remote content was denied (401) 存取遠端內容被拒絕(401) - + The operation requested on the remote content is not permitted 不容許要求遠端內容的操作 - + The remote content was not found at the server (404) 伺服器上未找到遠端內容(404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted 遠端伺服器不接受已提供的憑證,須重新驗證後才可提供內容 - + The Network Access API cannot honor the request because the protocol is not known 因為未知的協定,網絡存取API無法兌現要求 - + The requested operation is invalid for this protocol 要求的操作對於這協定是無效 - + An unknown network-related error was detected 偵測到一個未知的網絡相關錯誤 - + An unknown proxy-related error was detected 偵測到一個未知的代理伺服器相關錯誤 - + An unknown error related to the remote content was detected 偵測到一個未知的遠端內容相關錯誤 - + A breakdown in protocol was detected 偵測到一個協定錯誤 - + Unknown error 未知的錯誤 - - + + Upgrade 升級 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] 你升級自一個以其他方式儲存的版本。你必須遷移到新的儲存系統。這樣,你將無法再使用早於v3.3.0的版本。繼續嗎?[y╱n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. 你升級自一個以其他方式儲存的版本。你必須遷移到新的儲存系統。選擇繼續,你將無法再使用早於v3.3.0的版本。 - + Couldn't migrate torrent with hash: %1 無法遷移驗證碼是%1的Torrent - + Couldn't migrate torrent. Invalid fastresume file name: %1 無法遷移Torrent。無效的快速復原檔名稱:%1 @@ -5709,12 +5796,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… - + Automatically downloading '%1' torrent from '%2' RSS feed... 從RSS feed「%2」自動下載「%1」Torrent… @@ -5758,17 +5845,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder 監視資料夾 - + Download here 下載到此 - + Download path 下載路徑 @@ -7826,11 +7913,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads 下載 @@ -7838,103 +7925,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected 未找到Python - + Python version: %1 Python版本:%1 - + /s per second 每秒 - + %1h %2m e.g: 3hours 5minutes %1小時%2分鐘 - + %1d %2h e.g: 2days 10hours %1日%2小時 - + Unknown Unknown (size) 未知 - + qBittorrent will shutdown the computer now because all downloads are complete. qBittorrent完成全部下載,即將關機。 - + < 1m < 1 minute 少於1分鐘 - + %1m e.g: 10minutes %1分鐘 - + Working 有效 - + Updating... 更新中… - + Not working 無效 - + Not contacted yet 未嘗連接 diff --git a/src/lang/qbittorrent_zh_TW.ts b/src/lang/qbittorrent_zh_TW.ts index 2d51e1f23..48b9c7e9e 100644 --- a/src/lang/qbittorrent_zh_TW.ts +++ b/src/lang/qbittorrent_zh_TW.ts @@ -125,217 +125,222 @@ 跳過驗證碼檢查 - + + Set as default label + + + + Torrent Information Torrent 資訊 - + Size: 大小: - + Comment: 註解: - + Date: 日期: - + Info Hash: 資訊驗證碼: - + Normal 一般 - + High - + Maximum 最高 - + Do not download 不要下載 - - + + I/O Error I/O 錯誤 - + The torrent file does not exist. 此 torrent 檔案不存在。 - + Invalid torrent 無效的 torrent - + Failed to load the torrent: %1 無法載入 torrent:%1 - - + + Already in download list 已經在下載清單裡了。 - + Free disk space: %1 可用硬碟空間:%1 - + Not Available This comment is unavailable 不可用 - + Not Available This date is unavailable 不可用 - + Not available 不可得 - + Invalid magnet link 無效的磁性連結 - + Torrent is already in download list. Trackers were merged. Torrent 已經在下載清單裡了。Trackers 已被合併。 - - + + Cannot add torrent 無法加入 torrent - + Cannot add this torrent. Perhaps it is already in adding state. 無法加入此 torrent。也許它已經在正在加入的狀態了。 - + This magnet link was not recognized 無法辨識此磁性連結 - + Magnet link is already in download list. Trackers were merged. 磁性連結已經在下載清單裡了。Trackers 已被合併。 - + Cannot add this torrent. Perhaps it is already in adding. 無法加入此 torrent。也許它已經加入了。 - + Magnet link 磁性連結 - + Retrieving metadata... 檢索中介資料... - + Not Available This size is unavailable. 不可用 - - - + + + Choose save path 選擇儲存路徑 - + Rename the file 重新命名檔案 - + New name: 新名稱: - - + + The file could not be renamed 檔案無法重新命名 - + This file name contains forbidden characters, please choose a different one. 檔案名稱包含禁止使用之字元,請選擇其他名稱。 - - + + This name is already in use in this folder. Please use a different name. 此名稱已在此資料夾中使用。請選擇另一個名稱。 - + The folder could not be renamed 此資料夾無法被重新命名 - + Rename... 重新命名... - + Priority 優先度 - + Invalid metadata 無效的中介資料 - + Parsing metadata... 解析中介資料... - + Metadata retrieval complete 中介資料檢索完成 - + Download Error 下載錯誤 @@ -427,9 +432,8 @@ 解析下載者的主機名 - Maximum number of half-open connections [0: Disabled] - 最大半開啟連線數 [0:停用] + 最大半開啟連線數 [0:停用] @@ -473,6 +477,11 @@ How often the fastresume file is saved. 儲存恢復資料區間 + + + Maximum number of half-open connections [0: Unlimited] + + IP Address to report to trackers (requires restart) @@ -858,331 +867,338 @@ BitTorrent::Session - + Peer ID: 下載者 ID: - + HTTP User-Agent is '%1' HTTP 使用者代理為「%1」 - + Anonymous mode [ON] 匿名模式 [開啟] - + Anonymous mode [OFF] 匿名模式 [關閉] - + PeX support [ON] PeX 支援 [開啟] - + PeX support [OFF] PeX 支援 [關閉] - + Restart is required to toggle PeX support 切換 PeX 支援需重新啟動 - + Local Peer Discovery support [ON] 本地下載者搜尋支援 [開啟] - + Local Peer Discovery support [OFF] 本地下載者搜尋支援 [關閉] - + Encryption support [ON] 加密支援 [開啟] - + Encryption support [FORCED] 加密支援 [強制] - + Encryption support [OFF] 加密支援 [關閉] - + Embedded Tracker [ON] 嵌入 tracker [開啟] - + Failed to start the embedded tracker! 無法開始嵌入 tracker! - + Embedded Tracker [OFF] 嵌入 tracker [關閉] - + '%1' reached the maximum ratio you set. Removing... 「%1」已經到達您設定的最大比率了。正在移除... - + '%1' reached the maximum ratio you set. Pausing... 「%1」已經到達您設定的最大比率了。正在暫停... - Error: Could not create torrent export directory: '%1' - 錯誤:無法建立 torrent 匯出目錄:「%1」 + 錯誤:無法建立 torrent 匯出目錄:「%1」 - Error: could not export torrent '%1', maybe it has not metadata yet. - 錯誤:無法匯出 torrent「%1」,也許它尚未有中介資料。 + 錯誤:無法匯出 torrent「%1」,也許它尚未有中介資料。 - + System network status changed to %1 e.g: System network status changed to ONLINE 系統的網路狀態變更為 %1 - + ONLINE 上線 - + OFFLINE 離線 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 的網路設定已變更,正在重新整理工作階段綁紮 - + Unable to decode '%1' torrent file. 無法解碼 torrent 檔案「%1」。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 遞迴下載在 torrent「%2」裡的檔案「%1」 - + Couldn't save '%1.torrent' 無法儲存「%1.torrent」 - + because %1 is disabled. this peer was blocked because uTP is disabled. 因為 %1 已停用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因為 %1 已停用。 - + URL seed lookup failed for URL: '%1', message: %2 找不到 URL:「%1」的 URL 種子,訊息:「%2」 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... 「%1」已經從傳輸清單和硬碟中刪除了。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... 「%1」已經從傳輸清單中刪除了。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... 下載「%1」中,請稍候... - Torrent Export: torrent is invalid, skipping... - Torrent 匯出:torrent 無效,正在略過... + Torrent 匯出:torrent 無效,正在略過... - + DHT support [ON] DHT 支援 [開啟] - + DHT support [OFF]. Reason: %1 DHT 支援 [關閉]。理由:%1 - + DHT support [OFF] DHT 支援 [關閉] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent 正在嘗試監聽任何的介面埠:%1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent 監聽任意介面埠失敗:%1。理由:%2 + qBittorrent 監聽任意介面埠失敗:%1。理由:%2 - + The network interface defined is invalid: %1 定義的網路介面是無效的:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent 正在嘗試監聽介面 %1 的埠: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent 找不到供監聽的 %1 本機位置 - + + qBittorrent failed to listen on any interface port: %1. Reason: %2. + e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface + qBittorrent 監聽任意介面埠失敗:%1。理由:%2. {1.?} + + + Tracker '%1' was added to torrent '%2' 追蹤者「%1」已加入到 torrent「%2」中 - + Tracker '%1' was deleted from torrent '%2' 追蹤者「%1」已被從 torrent「%2」中刪除 - + URL seed '%1' was added to torrent '%2' URL 種子「%1」已加入到 torrent「%2」中 - + URL seed '%1' was removed from torrent '%2' URL 種子「%1」已被從 torrent「%2」中刪除 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 無法復原 torrent 檔案:「%1」 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 分析 IP 過濾檔案成功:已套用 %1 個規則。 - + Error: Failed to parse the provided IP filter. 錯誤:IP 過濾檔案分析失敗。 - + Couldn't add torrent. Reason: %1 無法加入 torrent。理由:%1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) 「%1」已恢復下載。(快速恢復) - + '%1' added to download list. 'torrent name' was added to download list. 「%1」已增加到下載清單。 - + An I/O error occurred, '%1' paused. %2 發生 I/O 錯誤,「%1」已暫停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP:埠映射失敗,訊息:%1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP:埠映射成功,訊息:%1 - + due to IP filter. this peer was blocked due to ip filter. 由於 IP 過濾器。 - + due to port filter. this peer was blocked due to port filter. 由於埠過濾器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由於 i2p 混合模式限制。 - + because it has a low port. this peer was blocked because it has a low port. 因為它有著較低的埠。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent 成功監聽介面 %1 的埠:%2/%3 - - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4 + qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4. {1 ?} {2/%3.?} - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 + e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use + qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4 + + + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP:%1 @@ -1191,17 +1207,17 @@ BitTorrent::TorrentHandle - + Could not move torrent: '%1'. Reason: %2 無法移動 torrent:「%1」。理由:%2 - + File sizes mismatch for torrent '%1', pausing it. 檔案大小和 torrent「%1」不符合,暫停。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... 快速恢復資料被 torrent「%1」拒絕,理由:「%2」。正在重新檢查... @@ -1307,20 +1323,20 @@ You should get this information from your Web browser preferences. FilterParserThread - - - + + + I/O Error: Could not open ip filter file in read mode. I/O 錯誤:無法在讀取模式開啟 IP 過濾器。 - - - - - - - + + + + + + + Parsing Error: The filter file is not a valid PeerGuardian P2B file. 解析錯誤:過濾器檔案並非有效的 PeerGuardian P2B 檔案。 @@ -1328,43 +1344,43 @@ You should get this information from your Web browser preferences. GeoIPDatabase - - + + Unsupported database file size. 不支援的資料庫檔案大小。 - + Metadata error: '%1' entry not found. 中介資料錯誤:找不到「%1」項目。 - + Metadata error: '%1' entry has invalid type. 中介資料錯誤:「%1」項目有無效的類型。 - + Unsupported database version: %1.%2 不支援的資料庫版本:%1.%2 - + Unsupported IP version: %1 不支援的 IP 版本:%1 - + Unsupported record size: %1 不支援的記錄大小:%1 - + Invalid database type: %1 無效的資料庫類型:%1 - + Database corrupted: no data section found. 資料庫毀損:找不到資料項目。 @@ -1397,9 +1413,8 @@ You should get this information from your Web browser preferences. 一線僅一連結 - Download local torrent - 下載本地 torrent + 下載本地 torrent @@ -1572,7 +1587,22 @@ You should get this information from your Web browser preferences. 不活躍的 - + + Save files to location: + 儲存檔案到: + + + + Label: + 標籤: + + + + Cookie: + + + + Downloaded Is the file downloaded or not? 已下載 @@ -1582,6 +1612,11 @@ You should get this information from your Web browser preferences. Logout 登出 + + + Upload local torrent + + Are you sure you want to delete the selected torrents from the transfer list? @@ -1722,7 +1757,7 @@ You should get this information from your Web browser preferences. LineEdit - + Clear the text 清除文字 @@ -1743,37 +1778,37 @@ You should get this information from your Web browser preferences. MainWindow - + &Edit 編輯(&E) - + &Tools 工具 (&T) - + &File 檔案(&F) - + &Help 幫助(&H) - + On Downloads &Done 在下載已完成(&D) - + &View 檢視 (&V) - + &Options... 選項... (&O) @@ -1783,153 +1818,153 @@ You should get this information from your Web browser preferences. 繼續 (&R) - + Torrent &Creator Torrent 建立工具(&C) - + Set Upload Limit... 設定上傳限制... - + Set Download Limit... 設定下載限制... - + Set Global Download Limit... 設定全域下載速度限制... - + Set Global Upload Limit... 設定全域上傳速度限制... - + Minimum Priority 最低優先度 - + Top Priority 最高優先度 - + Decrease Priority 減少優先度 - + Increase Priority 增加優先度 - - + + Alternative Speed Limits 替代速度限制 - + &Top Toolbar 頂端工具列(&T) - + Display Top Toolbar 顯示頂端工具列 - + S&peed in Title Bar 在標題列的速度(&P) - + Show Transfer Speed in Title Bar 在標題列顯示傳輸速度 - + &RSS Reader RSS 閱讀器(&R) - + Search &Engine 搜尋引擎(&E) - + L&ock qBittorrent 鎖定 qBittorrent(&O) - + &Import Existing Torrent... 匯入已存在的 torrent... (&I) - + Import Torrent... 匯入 torrent... - + Do&nate! 捐款!(&N) - + R&esume All 全部繼續 (&E) - + &Log 記錄(&L) - + &Exit qBittorrent 結束 qbittorrent(&E) - + &Suspend System 暫停系統(&S) - + &Hibernate System 系統冬眠(&H) - + S&hutdown System 關閉系統(&H) - + &Disabled 已停用(&D) - + &Statistics 統計資料(&S) - + Check for Updates 檢查更新 - + Check for Program Updates 檢查程式更新 @@ -1939,77 +1974,72 @@ You should get this information from your Web browser preferences. 關於 (&A) - Exit - 離開 + 離開 - + &Pause 暫停 (&P) - + &Delete 刪除 (&D) - + P&ause All 全部暫停 (&A) - + &Add Torrent File... 新增 torrent 檔案... (&A) - + Open 開啟 - + E&xit 離開(&X) - Options - 選項 + 選項 - Resume - 繼續 + 繼續 - Pause - 暫停 + 暫停 - Delete - 刪除 + 刪除 - + Open URL 開啟 URL - + &Documentation 文件 (&D) - + Lock 鎖定 - + Show 顯示 @@ -2020,22 +2050,21 @@ You should get this information from your Web browser preferences. 檢查軟體更新 - Lock qBittorrent - 鎖定 qBittorrent + 鎖定 qBittorrent - + Add Torrent &Link... 新增 torrent 連結 (&L) - + If you like qBittorrent, please donate! 如果你喜歡 qBittorrent,請捐款! - + Execution Log 執行紀錄 @@ -2414,52 +2443,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. 你的動態 DNS 更新成功。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 動態 DNS 錯誤:服務暫時無法使用,將在 30 分鐘後重試。 - + Dynamic DNS error: hostname supplied does not exist under specified account. 動態 DNS 錯誤:提供的主機名稱在指定的帳號下不存在。 - + Dynamic DNS error: Invalid username/password. 動態 DNS 錯誤:無效的使用者名稱/密碼。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. 動態 DNS 錯誤:qBittorrent 被該服務封鎖了,請回報此問題至 http://bugs.qbittorrent.org。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 動態 DNS 錯誤:該服務傳回 %1,請回報此問題至 http://bugs.qbittorrent.org。 - + Dynamic DNS error: Your username was blocked due to abuse. 動態 DNS 錯誤:您的使用者名稱因濫用而被封鎖。 - + Dynamic DNS error: supplied domain name is invalid. 動態 DNS 錯誤:提供的網域名稱是無效的。 - + Dynamic DNS error: supplied username is too short. 動態 DNS 錯誤:提供的使用者名稱太短。 - + Dynamic DNS error: supplied password is too short. 動態 DNS 錯誤:提供的密碼太短。 @@ -2467,17 +2496,17 @@ Are you sure you want to quit qBittorrent? Net::DownloadHandler - + I/O Error I/O 錯誤 - + The file size is %1. It exceeds the download limit of %2. 檔案大小為 %1。它超過了 %2 的下䵧限制。 - + Unexpected redirect to magnet URI. 未預期的到磁力 URI 的重新導向。 @@ -2485,1300 +2514,1300 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - - + + GeoIP database loaded. Type: %1. Build time: %2. GeoIP 資料庫已載入。類型:%1。構建時間:%2。 - - + + Couldn't load GeoIP database. Reason: %1 無法載入 GeoIP 資料庫。理由:%1 - - + + N/A N/A - + Asia/Pacific Region 亞洲/太平洋區域 - + Europe 歐洲 - + Andorra 安道爾 - + United Arab Emirates 阿拉伯聯合大公國 - + Afghanistan 阿富汗 - + Antigua and Barbuda 安地卡及巴布達 - + Anguilla 安圭拉 - + Albania 阿爾巴尼亞 - + Armenia 亞美尼亞 - + Netherlands Antilles 荷屬安地列斯 - + Angola 安哥拉 - + Antarctica 南極洲 - + Argentina 阿根廷 - + American Samoa 美屬薩摩亞 - + Austria 奧地利 - + Australia 澳大利亞 - + Aruba 阿魯巴 - + Azerbaijan 亞塞拜然 - + Bosnia and Herzegovina 波士尼亞與赫塞哥維納 - + Barbados 巴貝多 - + Bangladesh 孟加拉 - + Belgium 比利時 - + Burkina Faso 布吉納法索 - + Bulgaria 保加利亞 - + Bahrain 巴林 - + Burundi 蒲隆地 - + Benin 貝南 - + Bermuda 百慕達 - + Brunei Darussalam 汶萊 - + Bolivia 玻利維亞 - + Brazil 巴西 - + Bahamas 巴哈馬 - + Bhutan 不丹 - + Bouvet Island 布威島 - + Botswana 波札那 - + Belarus 白俄羅斯 - + Belize 貝里斯 - + Canada 加拿大 - + Cocos (Keeling) Islands 科科斯(基林)群島 - + Congo, The Democratic Republic of the 剛果民主共和國 - + Central African Republic 中非共和國 - + Congo 剛果共和國 - + Switzerland 瑞士 - + Cote D'Ivoire 象牙海岸 - + Cook Islands 庫克群島 - + Chile 智利 - + Cameroon 喀麥隆 - + China 中華人民共和國 - + Colombia 哥倫比亞 - + Costa Rica 哥斯大黎加 - + Cuba 古巴 - + Cape Verde 維德角 - + Christmas Island 聖誕島 - + Cyprus 賽普勒斯 - + Czech Republic 捷克共和國 - + Germany 德國 - + Djibouti 吉布地 - + Denmark 丹麥 - + Dominica 多米尼克 - + Dominican Republic 多明尼加共和國 - + Algeria 阿爾及利亞 - + Ecuador 厄瓜多 - + Estonia 愛沙尼亞 - + Egypt 埃及 - + Western Sahara 西撒哈拉 - + Eritrea 厄利垂亞 - + Spain 西班牙 - + Ethiopia 衣索比亞 - + Finland 芬蘭 - + Fiji 斐濟 - + Falkland Islands (Malvinas) 福克蘭群島(馬爾維納斯群島) - + Micronesia, Federated States of 密克羅尼西亞聯邦 - + Faroe Islands 法羅群島 - + France 法國 - + France, Metropolitan 法國本土 - + Gabon 加彭 - + United Kingdom 英國本土 - + Grenada 格瑞那達 - + Georgia 喬治亞 - + French Guiana 法屬圭亞那 - + Ghana 加納 - + Gibraltar 直布羅陀 - + Greenland 格陵蘭 - + Gambia 甘比亞 - + Guinea 幾內亞 - + Guadeloupe 瓜德羅普 - + Equatorial Guinea 赤道幾內亞 - + Greece 希臘 - + South Georgia and the South Sandwich Islands 南喬治亞與南三明治群島 - + Guatemala 瓜地馬拉 - + Guam 關島 - + Guinea-Bissau 幾內亞比索 - + Guyana 蓋亞那 - + Hong Kong 香港 - + Heard Island and McDonald Islands 赫德島和麥克唐納群島 - + Honduras 洪都拉斯 - + Croatia 克羅埃西亞 - + Haiti 海地 - + Hungary 匈牙利 - + Indonesia 印度尼西亞 - + Ireland 愛爾蘭 - + Israel 以色列 - + India 印度 - + British Indian Ocean Territory 英屬印度洋領地 - + Iraq 伊拉克 - + Iran, Islamic Republic of 伊朗伊斯蘭共和國 - + Iceland 冰島 - + Italy 義大利 - + Jamaica 牙買加 - + Jordan 約旦 - + Japan 日本 - + Kenya 肯亞 - + Kyrgyzstan 吉爾吉斯 - + Cambodia 柬埔寨 - + Kiribati 吉里巴斯 - + Comoros 葛摩 - + Saint Kitts and Nevis 聖克里斯多福及尼維斯 - + Korea, Democratic People's Republic of 朝鮮民主主義人民共和國 - + Korea, Republic of 大韓民國 - + Kuwait 科威特 - + Cayman Islands 蓋曼群島 - + Kazakhstan 哈薩克 - + Lao People's Democratic Republic 寮人民民主共和國 - + Lebanon 黎巴嫩 - + Saint Lucia 聖露西亞 - + Liechtenstein 列支敦斯登 - + Sri Lanka 斯里蘭卡 - + Liberia 利比亞 - + Lesotho 賴索托 - + Lithuania 立陶宛 - + Luxembourg 盧森堡 - + Latvia 拉脫維亞 - + Libyan Arab Jamahiriya 阿拉伯利比亞民眾國 - + Morocco 摩洛哥 - + Monaco 摩納哥 - + Moldova, Republic of 摩爾多瓦共和國 - + Madagascar 馬達加斯加 - + Marshall Islands 馬紹爾群島 - + Macedonia 馬其頓 - + Mali 馬利共和國 - + Myanmar 緬甸 - + Mongolia 蒙古 - + Macau 澳門 - + Northern Mariana Islands 北馬利安納群島 - + Martinique 馬丁尼克 - + Mauritania 茅利塔尼亞 - + Montserrat 蒙哲臘 - + Malta 馬爾他 - + Mauritius 模里西斯 - + Maldives 馬爾地夫 - + Malawi 馬拉威 - + Mexico 墨西哥 - + Malaysia 馬來西亞 - + Mozambique 莫三比克 - + Namibia 納米比亞 - + New Caledonia 新喀里多尼亞 - + Niger 尼日 - + Norfolk Island 諾福克島 - + Nigeria 奈及利亞 - + Nicaragua 尼加拉瓜 - + Netherlands 荷蘭 - + Norway 挪威 - + Nepal 尼泊爾 - + Nauru 諾魯 - + Niue 紐埃 - + New Zealand 紐西蘭 - + Oman 阿曼 - + Panama 巴拿馬 - + Peru 秘魯 - + French Polynesia 法屬玻里尼西亞 - + Papua New Guinea 巴布亞紐幾內亞 - + Philippines 菲律賓 - + Pakistan 巴基斯坦 - + Poland 波蘭 - + Saint Pierre and Miquelon 聖皮耶與密克隆群島 - + Pitcairn Islands 皮特肯群島 - + Puerto Rico 波多黎各 - + Palestinian Territory 巴勒斯坦領土 - + Portugal 葡萄牙 - + Palau 帛琉 - + Paraguay 巴拉圭 - + Qatar 卡達 - + Reunion 留尼旺 - + Romania 羅馬尼亞 - + Russian Federation 俄羅斯聯邦 - + Rwanda 盧安達 - + Saudi Arabia 沙烏地阿拉伯 - + Solomon Islands 索羅門群島 - + Seychelles 塞席爾 - + Sudan 蘇丹 - + Sweden 瑞典 - + Singapore 新加坡 - + Saint Helena 聖赫勒拿 - + Slovenia 斯洛維尼亞 - + Svalbard and Jan Mayen 斯瓦巴和揚馬延 - + Slovakia 斯洛伐克 - + Sierra Leone 獅子山共和國 - + San Marino 聖馬利諾 - + Senegal 塞內加爾 - + Somalia 索馬利亞 - + Suriname 蘇利南 - + Sao Tome and Principe 聖多美普林西比 - + El Salvador 薩爾瓦多 - + Syrian Arab Republic 阿拉伯敘利亞共和國 - + Swaziland 史瓦茲蘭 - + Turks and Caicos Islands 特克斯和凱科斯群島 - + Chad 查德 - + French Southern Territories 法屬南部領地 - + Togo 多哥 - + Thailand 泰國 - + Tajikistan 塔吉克斯坦 - + Tokelau 托克勞 - + Turkmenistan 土庫曼 - + Tunisia 突尼西亞 - + Tonga 東加 - + Timor-Leste 東帝汶 - + Turkey 土耳其 - + Trinidad and Tobago 千里達及托巴哥 - + Tuvalu 吐瓦魯 - + Taiwan 臺灣 - + Tanzania, United Republic of 坦尚尼亞 - + Ukraine 烏克蘭 - + Uganda 烏甘達 - + United States Minor Outlying Islands 美國本土外小島嶼 - + United States 美國 - + Uruguay 烏拉圭 - + Uzbekistan 烏茲別克斯坦 - + Holy See (Vatican City State) 聖座(梵蒂岡城國) - + Saint Vincent and the Grenadines 聖文森及格瑞那丁 - + Venezuela 委內瑞拉 - + Virgin Islands, British 英屬維京群島 - + Virgin Islands, U.S. 美屬維京群島 - + Vietnam 越南 - + Vanuatu 萬那杜 - + Wallis and Futuna 瓦利斯和富圖納 - + Samoa 薩摩亞 - + Yemen 葉門 - + Mayotte 馬約特 - + Serbia 塞爾維亞 - + South Africa 南非 - + Zambia 尚比亞 - + Montenegro 蒙特內格魯 - + Zimbabwe 辛巴威 - + Anonymous Proxy 匿名代理伺服器 - + Satellite Provider 衛星供應商 - + Other 其他 - + Aland Islands 奧蘭群島 - + Guernsey 格恩西 - + Isle of Man 曼島 - + Jersey 澤西 - + Saint Barthelemy 聖巴瑟米 - + Saint Martin 聖馬丁 - + Could not uncompress GeoIP database file. 無法解壓縮 GeoIP 資料庫檔案。 - + Couldn't save downloaded GeoIP database file. 無法儲存已下載的 GeoIP 資料庫檔案。 - + Successfully updated GeoIP database. 成功更新 GeoIP 資料庫。 - + Couldn't download GeoIP database file. Reason: %1 無法下載 GeoIP 資料庫檔案。理由:%1 @@ -3786,12 +3815,12 @@ Are you sure you want to quit qBittorrent? Net::PortForwarder - + UPnP / NAT-PMP support [ON] UPnP / NAT-PMP 支援 [開啟] - + UPnP / NAT-PMP support [OFF] UPnP / NAT-PMP 支援 [關閉] @@ -3799,206 +3828,265 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: 電子郵件通知錯誤: + + PeerInfo + + + interested(local) and choked(peer) + interested(本機) 及 choked(點) + + + + interested(local) and unchoked(peer) + interested(本機) 及 unchoked(點) + + + + interested(peer) and choked(local) + interested(點) 及 choked(本機) + + + + interested(peer) and unchoked(local) + interested(點) 及 unchoked(本機) + + + + optimistic unchoke + 樂觀的 unchoke + + + + peer snubbed + 點突然停止 + + + + incoming connection + 連入的連線 + + + + not interested(local) and unchoked(peer) + not interested(本機) 及 unchoked(點) + + + + not interested(peer) and unchoked(local) + not interested(點) 及 unchoked(本機) + + + + peer from PEX + 來自 PeX 的 peer + + + + peer from DHT + 來自 DHT 的 peer + + + + encrypted traffic + 加密的流量 + + + + encrypted handshake + 加密的溝通 + + + + peer from LSD + 來自 LSD 的 peer + + PeerListWidget - + IP IP - + Port - + Flags 旗標 - + Connection 連線 - + Client i.e.: Client application 客戶端 - + Progress i.e: % downloaded 進度 - + Down Speed i.e: Download speed 下載速度 - + Up Speed i.e: Upload speed 上傳速度 - + Downloaded i.e: total data downloaded 已下載 - + Uploaded i.e: total data uploaded 已上傳 - + Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. 關聯 - + Add a new peer... 增加新下載者... - + Copy selected 複製已選取的 - - + + Ban peer permanently 永遠封鎖下載者 - + Manually adding peer '%1'... 正在手動加入下載者「%1」... - + The peer '%1' could not be added to this torrent. 下載者「%1」無法新增到此 torrent 中。 - + Manually banning peer '%1'... 正在手動封鎖下載者「%1」... - + Peer addition 增加下載者 - + Some peers could not be added. Check the Log for details. 有些下載者無法被新增。檢查記錄檔以取得更多資訊。 - + The peers were added to this torrent. 下載者已新增到此 torrent 中。 - + Are you sure you want to ban permanently the selected peers? 你確定要永遠封鎖所選擇的下載者嗎? - + &Yes 是(&Y) - + &No 否(&N) - interested(local) and choked(peer) - interested(本機) 及 choked(點) + interested(本機) 及 choked(點) - interested(local) and unchoked(peer) - interested(本機) 及 unchoked(點) + interested(本機) 及 unchoked(點) - interested(peer) and choked(local) - interested(點) 及 choked(本機) + interested(點) 及 choked(本機) - interested(peer) and unchoked(local) - interested(點) 及 unchoked(本機) + interested(點) 及 unchoked(本機) - optimistic unchoke - 樂觀的 unchoke + 樂觀的 unchoke - peer snubbed - 點突然停止 + 點突然停止 - incoming connection - 連入的連線 + 連入的連線 - not interested(local) and unchoked(peer) - not interested(本機) 及 unchoked(點) + not interested(本機) 及 unchoked(點) - not interested(peer) and unchoked(local) - not interested(點) 及 unchoked(本機) + not interested(點) 及 unchoked(本機) - peer from PEX - 來自 PeX 的 peer + 來自 PeX 的 peer - peer from DHT - 來自 DHT 的 peer + 來自 DHT 的 peer - encrypted traffic - 加密的流量 + 加密的流量 - encrypted handshake - 加密的溝通 + 加密的溝通 - peer from LSD - 來自 LSD 的 peer + 來自 LSD 的 peer @@ -4772,17 +4860,17 @@ Are you sure you want to quit qBittorrent? 過濾路徑 (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. 已偵測到不清潔的程式退出。正在使用後備檔案來復原設定。 - + An access error occurred while trying to write the configuration file. 嘗試寫入設定檔時發生存取錯誤。 - + A format error occurred while trying to write the configuration file. 嘗試寫入設定檔時有格式錯誤。 @@ -4888,299 +4976,298 @@ Are you sure you want to quit qBittorrent? PropertiesWidget - + Downloaded: 已下載: - + Availability: 可得性: - + Progress: 進度: - + Transfer 傳輸 - + Time Active: Time (duration) the torrent is active (not paused) 經過時間: - + ETA: 預估剩餘時間: - + Uploaded: 已上傳: - + Seeds: 種子: - + Download Speed: 下載速度: - + Upload Speed: 上傳速度: - + Peers: 下載者: - + Download Limit: 下載限制: - + Upload Limit: 上傳限制: - + Wasted: 已丟棄: - + Connections: 連線: - + Information 資訊 - + Comment: 註解: - Torrent content: - Torrent 內容: + Torrent 內容: - + Select All 全部選擇 - + Select None 全部不選 - + Normal 一般 - + High - + Share Ratio: 分享率: - + Reannounce In: 重新公告於: - + Last Seen Complete: 最後完整可見: - + Total Size: 總大小: - + Pieces: 分塊: - + Created By: 建立由: - + Added On: 增加於: - + Completed On: 完成於: - + Created On: 建立於: - + Torrent Hash: Torrent 驗證碼: - + Save Path: 儲存路徑: - + Maximum 最高 - - + + Do not download 不要下載 - + Never 永不 - + %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) %1 x %2 (有 %3) - + %1 (%2 this session) %1(%2 此作業階段) - + %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) %1(已做種 %2) - + %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) %1(%2 最大) - - + + %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) %1(總共 %2 個) - - + + %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) %1(平均 %2) - + Open 開啟 - + Open Containing Folder 開啟包含的目錄 - + Rename... 重新命名... - + Priority 優先度 - + New Web seed 新網頁種子 - + Remove Web seed 移除網頁種子 - + Copy Web seed URL 複製網頁種子 URL - + Edit Web seed URL 編輯網頁種子 URL - + Rename the file 重新命名檔案 - + New name: 新名稱: - - + + The file could not be renamed 檔案無法重命名 - + This file name contains forbidden characters, please choose a different one. 檔案名稱包含禁止使用之字元,請選擇其他名稱。 - - + + This name is already in use in this folder. Please use a different name. 此名稱已在此資料夾中使用。請選擇另一個名稱。 - + The folder could not be renamed 此資料夾無法被重新命名 - + qBittorrent qBittorrent @@ -5190,29 +5277,29 @@ Are you sure you want to quit qBittorrent? 過濾檔案... - + New URL seed New HTTP source 新的 URL 種子 - + New URL seed: 新的 URL 種子: - - + + This URL seed is already in the list. 此 URL 種子已經在清單裡了。. - + Web seed editing 編輯網頁種子中 - + Web seed URL: 網頁種子 URL: @@ -5225,19 +5312,19 @@ Are you sure you want to quit qBittorrent? 經過多次授權要求失敗之後,您的 IP 已經被封鎖了。 - + Error: '%1' is not a valid torrent file. 錯誤:「%1」不是一個有效的 torrent 檔案。 - + Error: Could not add torrent to session. 錯誤:無法加入種子到工作階段中。 - + I/O Error: Could not create temporary file. I/O 錯誤:無法建立暫存檔。 @@ -5390,138 +5477,138 @@ No further notices will be issued. [qBittorrent] 「%1」已下載完成 - + The remote host name was not found (invalid hostname) 找不到遠端主機的名稱(無效的主機名) - + The operation was canceled 操作已取消 - + The remote server closed the connection prematurely, before the entire reply was received and processed 在回應被接收及處理之前,遠端伺服器已關閉連線 - + The connection to the remote server timed out 連線到遠端伺服器逾時 - + SSL/TLS handshake failed SSL/TLS 握手失敗 - + The remote server refused the connection 遠端伺服器拒絕連線 - + The connection to the proxy server was refused 連線到代理伺服器被拒絕 - + The proxy server closed the connection prematurely 代理伺服器過早關閉連線 - + The proxy host name was not found 找不到代理伺服器主機名稱 - + The connection to the proxy timed out or the proxy did not reply in time to the request sent 連線到代理伺服器逾時或是在要求的時間內沒有回應 - + The proxy requires authentication in order to honor the request but did not accept any credentials offered 為了執行要求,代理伺服器需要認證但是不接受任何提供的憑證 - + The access to the remote content was denied (401) 存取遠端內容被拒絕 (401) - + The operation requested on the remote content is not permitted 對遠端內容要求的操作不被允許 - + The remote content was not found at the server (404) 遠端內容在伺服器上找不到 (404) - + The remote server requires authentication to serve the content but the credentials provided were not accepted 為了提供內容,遠端代理伺服器需要認證,但是不接受所提供的憑證 - + The Network Access API cannot honor the request because the protocol is not known 因為未知的協定,網路存取 API 無法執行要求 - + The requested operation is invalid for this protocol 要求的操作對於此協定是無效的 - + An unknown network-related error was detected 偵測到一個未知的網路相關錯誤 - + An unknown proxy-related error was detected 偵測到一個未知的代理伺服器相關錯誤 - + An unknown error related to the remote content was detected 偵測到一個未知的遠端內容相關錯誤 - + A breakdown in protocol was detected 偵測到一個協定錯誤 - + Unknown error 未知的錯誤 - - + + Upgrade 更新 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] 您從喔個較舊且以完全不同的方式儲存的版本更新。您必須遷移到新的儲存系統。您將無法再次使用比 v3.3.0 更舊的版本。要繼續嗎?[y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. 您從喔個較舊且以完全不同的方式儲存的版本更新。您必須遷移到新的儲存系統。如果要繼續,您將無法再次使用比 v3.3.0 更舊的版本。 - + Couldn't migrate torrent with hash: %1 無法遷移驗證碼值為 %1 的 torrent - + Couldn't migrate torrent. Invalid fastresume file name: %1 無法遷移 torrent。無效的快速恢復檔案名稱:%1 @@ -5710,12 +5797,12 @@ No further notices will be issued. RssFeed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... - + Automatically downloading '%1' torrent from '%2' RSS feed... 正在從「%2」RSS feed 自動下載「%1」torrent... @@ -5759,17 +5846,17 @@ No further notices will be issued. ScanFoldersModel - + Watched Folder 監視資料夾 - + Download here 下載到此 - + Download path 下載路徑 @@ -7827,11 +7914,11 @@ Those plugins were disabled. fsutils - - - - - + + + + + Downloads 下載 @@ -7839,103 +7926,103 @@ Those plugins were disabled. misc - + B bytes B - + KiB kibibytes (1024 bytes) KiB - + MiB mebibytes (1024 kibibytes) MiB - + GiB gibibytes (1024 mibibytes) GiB - + TiB tebibytes (1024 gibibytes) TiB - + Python not detected 未偵測到 Python - + Python version: %1 Python 版本:%1 - + /s per second /s - + %1h %2m e.g: 3hours 5minutes %1 小時 %2 分鐘 - + %1d %2h e.g: 2days 10hours %1 天 %2 小時 - + Unknown Unknown (size) 未知 - + qBittorrent will shutdown the computer now because all downloads are complete. 因為所有下載已經完成,qBittorrent 現在會將電腦關機。 - + < 1m < 1 minute < 1 分鐘 - + %1m e.g: 10minutes %1 分鐘 - + Working 有效 - + Updating... 更新中... - + Not working 無效 - + Not contacted yet 尚未連接 From 41dbb82cc25c9252d9fe3e77df7292724b2ff7a7 Mon Sep 17 00:00:00 2001 From: Jesse Connop Date: Fri, 4 Dec 2015 08:22:56 +1300 Subject: [PATCH 030/238] Always update native session's announce_ip setting --- src/base/bittorrent/session.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 899a6e29d..b6d91e09d 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -369,9 +369,7 @@ void Session::setSessionSettings() // Include overhead in transfer limits sessionSettings.rate_limit_ip_overhead = pref->includeOverheadInLimits(); // IP address to announce to trackers - QString announce_ip = pref->getNetworkAddress(); - if (!announce_ip.isEmpty()) - sessionSettings.announce_ip = Utils::String::toStdString(announce_ip); + sessionSettings.announce_ip = Utils::String::toStdString(pref->getNetworkAddress()); // Super seeding sessionSettings.strict_super_seeding = pref->isSuperSeedingEnabled(); // * Max Half-open connections From 07599b5923ee08aa4fe4d7eeb5c37f9f784e62b3 Mon Sep 17 00:00:00 2001 From: d3fault Date: Wed, 9 Dec 2015 01:01:48 -0700 Subject: [PATCH 031/238] Add 'never show again' checkbox/pref to auto-exit confirm dialog --- src/app/application.cpp | 20 +++++++-- src/base/preferences.cpp | 10 +++++ src/base/preferences.h | 2 + src/gui/options.ui | 10 +++++ src/gui/options_imp.cpp | 3 ++ src/gui/shutdownconfirm.cpp | 84 +++++++++++++++++++++++-------------- src/gui/shutdownconfirm.h | 16 +++---- 7 files changed, 103 insertions(+), 42 deletions(-) diff --git a/src/app/application.cpp b/src/app/application.cpp index 9bdb62713..285f3830c 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -167,12 +167,12 @@ void Application::allTorrentsFinished() Preferences *const pref = Preferences::instance(); bool will_shutdown = (pref->shutdownWhenDownloadsComplete() - || pref->shutdownqBTWhenDownloadsComplete() || pref->suspendWhenDownloadsComplete() || pref->hibernateWhenDownloadsComplete()); + bool will_exit_only = pref->shutdownqBTWhenDownloadsComplete(); // Auto-Shutdown - if (will_shutdown) { + if (will_exit_only || will_shutdown) { bool suspend = pref->suspendWhenDownloadsComplete(); bool hibernate = pref->hibernateWhenDownloadsComplete(); bool shutdown = pref->shutdownWhenDownloadsComplete(); @@ -186,7 +186,21 @@ void Application::allTorrentsFinished() else if (shutdown) action = ShutdownAction::Shutdown; - if (!ShutdownConfirmDlg::askForConfirmation(action)) return; + if (will_exit_only) { + if (!pref->dontConfirmAutoExit()) { + bool exitConfirmed = false; + bool neverAskForExitConfirmationAgain = false; + ShutdownConfirmDlg::askForConfirmation(action, &exitConfirmed, &neverAskForExitConfirmationAgain); + if (neverAskForExitConfirmationAgain && exitConfirmed/*discard the request to never show again if dialog not accepted*/) + pref->setDontConfirmAutoExit(true); + if (!exitConfirmed) return; + } + } + else { //exit and shutdown + bool shutdownConfirmed = false; + ShutdownConfirmDlg::askForConfirmation(action, &shutdownConfirmed); + if (!shutdownConfirmed) return; + } // Actually shut down if (suspend || hibernate || shutdown) { diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 590039380..a67e82be0 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -1385,6 +1385,16 @@ void Preferences::setShutdownqBTWhenDownloadsComplete(bool shutdown) setValue("Preferences/Downloads/AutoShutDownqBTOnCompletion", shutdown); } +bool Preferences::dontConfirmAutoExit() const +{ + return value("Preferences/Downloads/DontConfirmAutoExit", false).toBool(); +} + +void Preferences::setDontConfirmAutoExit(bool dontConfirmAutoExit) +{ + setValue("Preferences/Downloads/DontConfirmAutoExit", dontConfirmAutoExit); +} + uint Preferences::diskCacheSize() const { uint size = value("Preferences/Downloads/DiskWriteCacheSize", 0).toUInt(); diff --git a/src/base/preferences.h b/src/base/preferences.h index 4767a1d59..61fa58969 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -360,6 +360,8 @@ public: void setHibernateWhenDownloadsComplete(bool hibernate); bool shutdownqBTWhenDownloadsComplete() const; void setShutdownqBTWhenDownloadsComplete(bool shutdown); + bool dontConfirmAutoExit() const; + void setDontConfirmAutoExit(bool dontConfirmAutoExit); uint diskCacheSize() const; void setDiskCacheSize(uint size); uint diskCacheTTL() const; diff --git a/src/gui/options.ui b/src/gui/options.ui index 22a5ebea1..067892d6d 100644 --- a/src/gui/options.ui +++ b/src/gui/options.ui @@ -379,6 +379,16 @@ + + + + Confirmation on auto-exit when downloads finish + + + true + + + diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index 64b0a6cfa..415d1980b 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -144,6 +144,7 @@ options_imp::options_imp(QWidget *parent) #endif connect(checkShowSplash, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton())); connect(checkProgramExitConfirm, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton())); + connect(checkProgramAutoExitConfirm, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton())); connect(checkPreventFromSuspend, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton())); connect(comboTrayIcon, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton())); #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && !defined(QT_DBUS_LIB) @@ -396,6 +397,7 @@ void options_imp::saveOptions() pref->setStartMinimized(startMinimized()); pref->setSplashScreenDisabled(isSlashScreenDisabled()); pref->setConfirmOnExit(checkProgramExitConfirm->isChecked()); + pref->setDontConfirmAutoExit(!checkProgramAutoExitConfirm->isChecked()); pref->setPreventFromSuspend(preventFromSuspend()); #ifdef Q_OS_WIN pref->setWinStartup(WinStartup()); @@ -559,6 +561,7 @@ void options_imp::loadOptions() checkShowSplash->setChecked(!pref->isSplashScreenDisabled()); checkStartMinimized->setChecked(pref->startMinimized()); checkProgramExitConfirm->setChecked(pref->confirmOnExit()); + checkProgramAutoExitConfirm->setChecked(!pref->dontConfirmAutoExit()); checkShowSystray->setChecked(pref->systrayIntegration()); if (checkShowSystray->isChecked()) { diff --git a/src/gui/shutdownconfirm.cpp b/src/gui/shutdownconfirm.cpp index 8fc204320..d1579f7c8 100644 --- a/src/gui/shutdownconfirm.cpp +++ b/src/gui/shutdownconfirm.cpp @@ -33,50 +33,81 @@ #include "base/types.h" #include "shutdownconfirm.h" +#include +#include +#include +#include +#include +#include +#include #include ShutdownConfirmDlg::ShutdownConfirmDlg(const ShutdownAction &action) - : m_exitNow(0) + : m_neverShowAgain(false) , m_timeout(15) , m_action(action) { - // Title and button + QVBoxLayout *myLayout = new QVBoxLayout(); + //Warning Icon and Text + QHBoxLayout *messageRow = new QHBoxLayout(); + QLabel *warningLabel = new QLabel(); + QIcon warningIcon(style()->standardIcon(QStyle::SP_MessageBoxWarning, 0, this)); + warningLabel->setPixmap(warningIcon.pixmap(warningIcon.actualSize(QSize(32, 32)))); + messageRow->addWidget(warningLabel); + m_text = new QLabel(); + messageRow->addWidget(m_text); + myLayout->addLayout(messageRow); + updateText(); + QDialogButtonBox *buttons = new QDialogButtonBox(Qt::Horizontal); + // Never show again checkbox, Title, and button if (m_action == ShutdownAction::None) { + //Never show again checkbox (shown only when exitting without shutdown) + QCheckBox *neverShowAgainCheckbox = new QCheckBox(tr("Never show again")); + myLayout->addWidget(neverShowAgainCheckbox, 0, Qt::AlignHCenter); + //Title and button + connect(neverShowAgainCheckbox, SIGNAL(clicked(bool)), this, SLOT(handleNeverShowAgainCheckboxToggled(bool))); setWindowTitle(tr("Exit confirmation")); - m_exitNow = addButton(tr("Exit now"), QMessageBox::AcceptRole); + buttons->addButton(new QPushButton(tr("Exit Now")), QDialogButtonBox::AcceptRole); } else { setWindowTitle(tr("Shutdown confirmation")); - m_exitNow = addButton(tr("Shutdown now"), QMessageBox::AcceptRole); + buttons->addButton(new QPushButton(tr("Shutdown Now")), QDialogButtonBox::AcceptRole); } // Cancel Button - addButton(QMessageBox::Cancel); - // Text - updateText(); - // Icon - setIcon(QMessageBox::Warning); + QPushButton *cancelButton = buttons->addButton(QDialogButtonBox::Cancel); + cancelButton->setDefault(true); + myLayout->addWidget(buttons, 0, Qt::AlignHCenter); + connect(buttons, SIGNAL(accepted()), this, SLOT(accept())); + connect(buttons, SIGNAL(rejected()), this, SLOT(reject())); // Always on top setWindowFlags(windowFlags()|Qt::WindowStaysOnTopHint); // Set 'Cancel' as default button. - setDefaultButton(QMessageBox::Cancel); m_timer.setInterval(1000); // 1sec connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateSeconds())); - show(); // Move to center move(Utils::Misc::screenCenter(this)); + setLayout(myLayout); + cancelButton->setFocus(); +} + +bool ShutdownConfirmDlg::neverShowAgain() const +{ + return m_neverShowAgain; } void ShutdownConfirmDlg::showEvent(QShowEvent *event) { - QMessageBox::showEvent(event); + QDialog::showEvent(event); m_timer.start(); } -bool ShutdownConfirmDlg::askForConfirmation(const ShutdownAction &action) +void ShutdownConfirmDlg::askForConfirmation(const ShutdownAction &action, bool *shutdownConfirmed, bool *neverShowAgain) { ShutdownConfirmDlg dlg(action); dlg.exec(); - return dlg.shutdown(); + *shutdownConfirmed = dlg.shutdown(); + if (neverShowAgain) + *neverShowAgain = dlg.neverShowAgain(); } void ShutdownConfirmDlg::updateSeconds() @@ -89,15 +120,14 @@ void ShutdownConfirmDlg::updateSeconds() } } +void ShutdownConfirmDlg::handleNeverShowAgainCheckboxToggled(bool checked) +{ + m_neverShowAgain = checked; +} + bool ShutdownConfirmDlg::shutdown() const { - // This is necessary because result() in the case of QMessageBox - // returns a type of StandardButton, but since we use a custom button - // it will return 0 instead, even though we set the 'accept' role on it. - if (result() != QDialog::Accepted) - return (clickedButton() == m_exitNow); - else - return true; + return (result() == QDialog::Accepted); } void ShutdownConfirmDlg::updateText() @@ -119,15 +149,5 @@ void ShutdownConfirmDlg::updateText() break; } - setText(text); -} - -QAbstractButton *ShutdownConfirmDlg::getExit_now() const -{ - return m_exitNow; -} - -void ShutdownConfirmDlg::setExit_now(QAbstractButton *value) -{ - m_exitNow = value; + m_text->setText(text); } diff --git a/src/gui/shutdownconfirm.h b/src/gui/shutdownconfirm.h index b28792945..a365fd27e 100644 --- a/src/gui/shutdownconfirm.h +++ b/src/gui/shutdownconfirm.h @@ -31,35 +31,37 @@ #ifndef SHUTDOWNCONFIRM_H #define SHUTDOWNCONFIRM_H -#include +#include #include #include "base/utils/misc.h" -class ShutdownConfirmDlg : public QMessageBox +class QLabel; + +class ShutdownConfirmDlg : public QDialog { Q_OBJECT public: ShutdownConfirmDlg(const ShutdownAction &action); + bool neverShowAgain() const; bool shutdown() const; - static bool askForConfirmation(const ShutdownAction &action); - - QAbstractButton *getExit_now() const; - void setExit_now(QAbstractButton *value); + static void askForConfirmation(const ShutdownAction &action, bool *shutdownConfirmed, bool *neverShowAgain = 0); protected: void showEvent(QShowEvent *event); private slots: void updateSeconds(); + void handleNeverShowAgainCheckboxToggled(bool checked); private: // Methods void updateText(); // Vars - QAbstractButton *m_exitNow; + QLabel *m_text; + bool m_neverShowAgain; QTimer m_timer; int m_timeout; ShutdownAction m_action; From ebe6d1b603cc4db6b315a7f7fa2e82dc5c3579f8 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Wed, 9 Dec 2015 17:52:34 +0200 Subject: [PATCH 032/238] Fix resolution of peer host names. Closes #4307. --- src/gui/properties/peerlistwidget.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/properties/peerlistwidget.h b/src/gui/properties/peerlistwidget.h index b5af9530c..7ec0669fe 100644 --- a/src/gui/properties/peerlistwidget.h +++ b/src/gui/properties/peerlistwidget.h @@ -70,7 +70,6 @@ public: void loadPeers(BitTorrent::TorrentHandle *const torrent, bool forceHostnameResolution = false); QStandardItem *addPeer(const QString &ip, const BitTorrent::PeerInfo &peer); void updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer); - void handleResolved(const QString &ip, const QString &hostname); void updatePeerHostNameResolutionState(); void updatePeerCountryResolutionState(); void clear(); @@ -82,6 +81,7 @@ private slots: void banSelectedPeers(); void copySelectedPeers(); void handleSortColumnChanged(int col); + void handleResolved(const QString &ip, const QString &hostname); private: QStandardItemModel *m_listModel; From fa92a10f15d186d729438f778fdc5c02692d5c95 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 7 Dec 2015 10:14:39 +0800 Subject: [PATCH 033/238] Turn off warning on OSX builds: unused-local-typedefs Reorder option list, sort by lt_branch then qt then gui --- .travis.yml | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/.travis.yml b/.travis.yml index 460b43717..f236a22b2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,12 +8,13 @@ osx_image: xcode7 env: matrix: # Uncomment when Travis upgraded "Ubuntu 12.04 LTS" to a newer version whose repo will have a more up-to-date libtorrent package - #- lt_branch=dist gui=true - #- lt_branch=dist gui=false - - lt_branch=RC_1_0 gui=true qt=4 - - lt_branch=RC_1_0 gui=true qt=5 - - lt_branch=RC_1_0 gui=false qt=4 - - lt_branch=RC_1_0 gui=false qt=5 + #- lt_branch=dist gui=true + #- lt_branch=dist gui=false + - lt_branch=RC_1_0 qt=5 gui=true + - lt_branch=RC_1_0 qt=5 gui=false + - lt_branch=RC_1_0 qt=4 gui=true + - lt_branch=RC_1_0 qt=4 gui=false + global: - secure: "OI9CUjj4lTb0HwwIZU5PbECU3hLlAL6KC8KsbwohG8/O3j5fLcnmDsK4Ad9us5cC39sS11Jcd1kDP2qRcCuST/glVNhLkcjKkiQerOfd5nQ/qL4JYfz/1mfP5mdpz9jHKzpLUIG+TXkbSTjP6VVmsb5KPT+3pKEdRFZB+Pu9+J8=" - coverity_branch: coverity_scan @@ -21,9 +22,9 @@ env: matrix: exclude: - os: linux - env: lt_branch=RC_1_0 gui=true qt=5 + env: lt_branch=RC_1_0 qt=5 gui=true - os: linux - env: lt_branch=RC_1_0 gui=false qt=5 + env: lt_branch=RC_1_0 qt=5 gui=false branches: except: @@ -89,7 +90,8 @@ before_install: elif [ "$TRAVIS_OS_NAME" = "linux" ]; then export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi - if [ "$TRAVIS_OS_NAME" = "osx" ]; then qbtconf="$qbtconf --disable-qt-dbus" ; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$qt" = 5 ]; then qbtconf="$qbtconf --with-qt4=no" ; fi + - if [ "$TRAVIS_OS_NAME" = "osx" -a "$qt" = 4 ]; then brew install qt; fi + - if [ "$TRAVIS_OS_NAME" = "osx" -a "$qt" = 5 ]; then qbtconf="$qbtconf --with-qt4=no" ; fi # Print settings - echo $lt_branch @@ -101,14 +103,14 @@ before_install: install: - if [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" != "dist" ]; then cd "$HOME" && pwd && git clone --depth 1 https://github.com/arvidn/libtorrent.git --branch $lt_branch ; fi - if [ "$TRAVIS_OS_NAME" = "linux" -a "$lt_branch" != "dist" ]; then cd libtorrent && ./autotool.sh && ./configure $ltconf && make install && cd "$TRAVIS_BUILD_DIR" ; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update > /dev/null && brew install colormake libtorrent-rasterbar; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$qt" = 4 ]; then brew install qt; fi - - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$qt" = 5 ]; then brew install qt5 && brew link --force qt5; fi + - if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update > /dev/null && brew install colormake libtorrent-rasterbar ; fi + - if [ "$TRAVIS_OS_NAME" = "osx" -a "$qt" = 5 ]; then brew install qt5 && brew link --force qt5 ; fi script: - if [ "$TRAVIS_BRANCH" = "$coverity_branch" ]; then exit ; fi # Skip usual build when running coverity scan - ./bootstrap.sh && ./configure $qbtconf - - if [ "$TRAVIS_OS_NAME" = "linux" ]; then echo QMAKE_CC=$CC >> conf.pri && echo QMAKE_CXX=$CXX >> conf.pri ; fi + - if [ "$TRAVIS_OS_NAME" = "linux" ]; then echo "QMAKE_CC=$CC" >> conf.pri && echo "QMAKE_CXX=$CXX" >> conf.pri ; fi + - if [ "$TRAVIS_OS_NAME" = "osx" ]; then sed -i "" -e 's/^\(CXXFLAGS.*\)$/\1 -Wno-unused-local-typedefs/' src/Makefile ; fi - make && make install after_success: From 2d25edd4d65374706697045fa96b1b26e1e79d6b Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 13 Dec 2015 14:33:16 +0200 Subject: [PATCH 034/238] Don't recheck twice after 'Force Recheck' with 'Recheck torrents on completion' enabled. Closes #4274. --- src/base/bittorrent/torrenthandle.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/base/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp index de6ca9c5e..707c1b08a 100644 --- a/src/base/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -1368,6 +1368,8 @@ void TorrentHandle::handleTorrentCheckedAlert(libtorrent::torrent_checked_alert if (progress() < 1.0 && wantedSize() > 0) m_hasSeedStatus = false; + else if (progress() == 1.0) + m_hasSeedStatus = true; if (m_pauseAfterRecheck) { m_pauseAfterRecheck = false; From 82e02f71189a195afdd5a88d739a39969566ae12 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 13 Dec 2015 16:41:58 +0200 Subject: [PATCH 035/238] Don't apply some settings again if they weren't changed. Closes #4278. --- src/gui/mainwindow.cpp | 21 ++++++++++++--------- src/gui/mainwindow.h | 1 + src/gui/options_imp.cpp | 4 +--- src/gui/options_imp.h | 4 ---- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index ac9bbd729..84d6ab074 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -104,6 +104,7 @@ MainWindow::MainWindow(QWidget *parent) , m_posInitialized(false) , force_exit(false) , unlockDlgShowing(false) + , m_wasUpdateCheckEnabled(false) , has_python(false) { setupUi(this); @@ -337,6 +338,8 @@ MainWindow::MainWindow(QWidget *parent) connect(transferList->getSourceModel(), SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(updateNbTorrents())); connect(transferList->getSourceModel(), SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(updateNbTorrents())); + connect(pref, SIGNAL(changed()), this, SLOT(optionsSaved())); + qDebug("GUI Built"); #ifdef Q_OS_WIN if (!pref->neverCheckFileAssoc() && (!Preferences::isTorrentFileAssocSet() || !Preferences::isMagnetLinkAssocSet())) { @@ -1108,7 +1111,7 @@ void MainWindow::loadPreferences(bool configure_session) toolBar->setVisible(false); } - if (pref->preventFromSuspend()) { + if (pref->preventFromSuspend() && !preventTimer->isActive()) { preventTimer->start(PREVENT_SUSPEND_INTERVAL); } else { @@ -1149,10 +1152,14 @@ void MainWindow::loadPreferences(bool configure_session) properties->reloadPreferences(); #if defined(Q_OS_WIN) || defined(Q_OS_MAC) - if (pref->isUpdateCheckEnabled()) + if (pref->isUpdateCheckEnabled() && !m_wasUpdateCheckEnabled) { + m_wasUpdateCheckEnabled = true; checkProgramUpdate(); - else + } + else if (!pref->isUpdateCheckEnabled() && m_wasUpdateCheckEnabled) { + m_wasUpdateCheckEnabled = false; programUpdateTimer.stop(); + } #endif qDebug("GUI settings loaded"); @@ -1336,14 +1343,10 @@ void MainWindow::createTrayIcon() // Display Program Options void MainWindow::on_actionOptions_triggered() { - if (options) { - // Get focus + if (options) options->setFocus(); - } - else { + else options = new options_imp(this); - connect(options, SIGNAL(status_changed()), this, SLOT(optionsSaved())); - } } void MainWindow::on_actionTop_tool_bar_triggered() diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index a8cd49944..3fc5bdf81 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -202,6 +202,7 @@ private: QTimer *preventTimer; #if defined(Q_OS_WIN) || defined(Q_OS_MAC) QTimer programUpdateTimer; + bool m_wasUpdateCheckEnabled; #endif bool has_python; QMenu* toolbarMenu; diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index 64b0a6cfa..6ef0283a3 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -1000,10 +1000,9 @@ void options_imp::on_buttonBox_accepted() tabSelection->setCurrentRow(TAB_SPEED); return; } - saveOptions(); applyButton->setEnabled(false); this->hide(); - emit status_changed(); + saveOptions(); } saveWindowState(); accept(); @@ -1017,7 +1016,6 @@ void options_imp::applySettings(QAbstractButton* button) return; } saveOptions(); - emit status_changed(); } } diff --git a/src/gui/options_imp.h b/src/gui/options_imp.h index 1b8884c1f..4b7d7ffea 100644 --- a/src/gui/options_imp.h +++ b/src/gui/options_imp.h @@ -70,10 +70,6 @@ public: public slots: void showConnectionTab(); -signals: - void status_changed() const; - void exitWithCancel(); - private slots: void enableProxy(int comboIndex); void on_buttonBox_accepted(); From 450b1e75c9c30126d4435f93d7aa5804f03c7170 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 13 Dec 2015 17:29:55 +0200 Subject: [PATCH 036/238] Fix linux build. --- src/gui/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 84d6ab074..478dcedb8 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -104,7 +104,9 @@ MainWindow::MainWindow(QWidget *parent) , m_posInitialized(false) , force_exit(false) , unlockDlgShowing(false) +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) , m_wasUpdateCheckEnabled(false) +#endif , has_python(false) { setupUi(this); From 981bbae75fa22d741313c8bf6a74425cd4663a20 Mon Sep 17 00:00:00 2001 From: Fabio Alessandro Locati Date: Tue, 8 Dec 2015 12:40:54 +0100 Subject: [PATCH 037/238] Fix lrelease version due to the default Qt5 build As title --- qm_gen.pri | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qm_gen.pri b/qm_gen.pri index ed29b7686..54544407e 100644 --- a/qm_gen.pri +++ b/qm_gen.pri @@ -5,7 +5,12 @@ isEmpty(QMAKE_LRELEASE) { win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease unix { + equals(QT_MAJOR_VERSION, 4) { !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt4 } + } + equals(QT_MAJOR_VERSION, 5) { + !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt5 } + } } else { !exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease } } From efed388402e15b3c3445b3271816fa8d793cd41e Mon Sep 17 00:00:00 2001 From: Eugene Shalygin Date: Tue, 8 Dec 2015 14:11:58 +0100 Subject: [PATCH 038/238] Revert "Remove unused parameter." This reverts commit 87347cf0e53756f6e1a2e4984e167e4be5bbd06f. --- src/gui/properties/peerlistwidget.cpp | 8 ++++---- src/gui/properties/peerlistwidget.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 96fefa3b4..14729cb38 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -282,14 +282,14 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo QString peerIp = addr.ip.toString(); if (m_peerItems.contains(peerIp)) { // Update existing peer - updatePeer(peerIp, peer); + updatePeer(peerIp, torrent, peer); oldeersSet.remove(peerIp); if (forceHostnameResolution && m_resolver) m_resolver->resolve(peerIp); } else { // Add new peer - m_peerItems[peerIp] = addPeer(peerIp, peer); + m_peerItems[peerIp] = addPeer(peerIp, torrent, peer); m_peerAddresses[peerIp] = addr; // Resolve peer host name is asked if (m_resolver) @@ -307,7 +307,7 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo } } -QStandardItem* PeerListWidget::addPeer(const QString &ip, const BitTorrent::PeerInfo &peer) +QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer) { int row = m_listModel->rowCount(); // Adding Peer to peer list @@ -340,7 +340,7 @@ QStandardItem* PeerListWidget::addPeer(const QString &ip, const BitTorrent::Peer return m_listModel->item(row, PeerListDelegate::IP); } -void PeerListWidget::updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer) +void PeerListWidget::updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer) { QStandardItem *item = m_peerItems.value(ip); int row = item->row(); diff --git a/src/gui/properties/peerlistwidget.h b/src/gui/properties/peerlistwidget.h index 7ec0669fe..d73037b34 100644 --- a/src/gui/properties/peerlistwidget.h +++ b/src/gui/properties/peerlistwidget.h @@ -68,8 +68,8 @@ public: ~PeerListWidget(); void loadPeers(BitTorrent::TorrentHandle *const torrent, bool forceHostnameResolution = false); - QStandardItem *addPeer(const QString &ip, const BitTorrent::PeerInfo &peer); - void updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer); + QStandardItem *addPeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer); + void updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer); void updatePeerHostNameResolutionState(); void updatePeerCountryResolutionState(); void clear(); From 0a92cb74a5b4339a8f9079d79a79691e65ae7de8 Mon Sep 17 00:00:00 2001 From: Eugene Shalygin Date: Wed, 21 Oct 2015 17:12:19 +0200 Subject: [PATCH 039/238] functions for retrieving list of currently downloading files --- src/base/bittorrent/peerinfo.cpp | 5 +++++ src/base/bittorrent/peerinfo.h | 1 + src/base/bittorrent/torrentinfo.cpp | 14 ++++++++++++++ src/base/bittorrent/torrentinfo.h | 1 + 4 files changed, 21 insertions(+) diff --git a/src/base/bittorrent/peerinfo.cpp b/src/base/bittorrent/peerinfo.cpp index 857424aee..4ea3f9f10 100644 --- a/src/base/bittorrent/peerinfo.cpp +++ b/src/base/bittorrent/peerinfo.cpp @@ -408,3 +408,8 @@ QString PeerInfo::flagsDescription() const { return m_flagsDescription; } + +int PeerInfo::downloadingPieceIndex() const +{ + return m_nativeInfo.downloading_piece_index; +} diff --git a/src/base/bittorrent/peerinfo.h b/src/base/bittorrent/peerinfo.h index ae63e2d54..0c7a06570 100644 --- a/src/base/bittorrent/peerinfo.h +++ b/src/base/bittorrent/peerinfo.h @@ -100,6 +100,7 @@ namespace BitTorrent #ifndef DISABLE_COUNTRIES_RESOLUTION QString country() const; #endif + int downloadingPieceIndex() const; private: void calcRelevance(const TorrentHandle *torrent); diff --git a/src/base/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp index d7da2f517..3eea6ab03 100644 --- a/src/base/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -211,6 +211,20 @@ QByteArray TorrentInfo::metadata() const return QByteArray(m_nativeInfo->metadata().get(), m_nativeInfo->metadata_size()); } +QStringList TorrentInfo::filesForPiece(int pieceIndex) const +{ + if (pieceIndex < 0) + return QStringList(); + + std::vector files( + nativeInfo()->map_block(pieceIndex, 0, nativeInfo()->piece_length())); + QStringList res; + for (const libtorrent::file_slice& s: files) { + res.append(filePath(s.file_index)); + } + return res; +} + void TorrentInfo::renameFile(uint index, const QString &newPath) { if (!isValid()) return; diff --git a/src/base/bittorrent/torrentinfo.h b/src/base/bittorrent/torrentinfo.h index 392fa8b46..802e9882d 100644 --- a/src/base/bittorrent/torrentinfo.h +++ b/src/base/bittorrent/torrentinfo.h @@ -75,6 +75,7 @@ namespace BitTorrent QList trackers() const; QList urlSeeds() const; QByteArray metadata() const; + QStringList filesForPiece(int pieceIndex) const; void renameFile(uint index, const QString &newPath); boost::intrusive_ptr nativeInfo() const; From 768b67d2751334c90d553386b312eb8844fde66a Mon Sep 17 00:00:00 2001 From: Eugene Shalygin Date: Fri, 17 Apr 2015 15:00:29 +0200 Subject: [PATCH 040/238] Add column with list of currently downloading files Add a new column to peers list that shows list of files which are downloaded right now from a peer. The column is empty if we do not download anything from the given peer. --- src/gui/properties/peerlistdelegate.h | 2 +- src/gui/properties/peerlistwidget.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/gui/properties/peerlistdelegate.h b/src/gui/properties/peerlistdelegate.h index 1c5be0cb5..864a6f424 100644 --- a/src/gui/properties/peerlistdelegate.h +++ b/src/gui/properties/peerlistdelegate.h @@ -41,7 +41,7 @@ class PeerListDelegate: public QItemDelegate { public: enum PeerListColumns {COUNTRY, IP, PORT, CONNECTION, FLAGS, CLIENT, PROGRESS, DOWN_SPEED, UP_SPEED, - TOT_DOWN, TOT_UP, RELEVANCE, IP_HIDDEN, COL_COUNT}; + TOT_DOWN, TOT_UP, RELEVANCE, DOWNLOADING_PIECE, IP_HIDDEN, COL_COUNT}; public: PeerListDelegate(QObject *parent) : QItemDelegate(parent) {} diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 14729cb38..cf9606cf4 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -78,6 +78,7 @@ PeerListWidget::PeerListWidget(PropertiesWidget *parent) m_listModel->setHeaderData(PeerListDelegate::TOT_DOWN, Qt::Horizontal, tr("Downloaded", "i.e: total data downloaded")); m_listModel->setHeaderData(PeerListDelegate::TOT_UP, Qt::Horizontal, tr("Uploaded", "i.e: total data uploaded")); m_listModel->setHeaderData(PeerListDelegate::RELEVANCE, Qt::Horizontal, tr("Relevance", "i.e: How relevant this peer is to us. How many pieces it has that we don't.")); + m_listModel->setHeaderData(PeerListDelegate::DOWNLOADING_PIECE, Qt::Horizontal, tr("Files", "i.e. files that are being downloaded right now")); // Proxy model to support sorting without actually altering the underlying model m_proxyModel = new PeerListSortModel(); m_proxyModel->setDynamicSortFilter(true); @@ -337,6 +338,10 @@ QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHan m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_DOWN), peer.totalDownload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_UP), peer.totalUpload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::RELEVANCE), peer.relevance()); + QStringList downloadingFiles(torrent->info().filesForPiece(peer.downloadingPieceIndex())); + m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String(";"))); + m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String("\n")), Qt::ToolTipRole); + return m_listModel->item(row, PeerListDelegate::IP); } @@ -364,6 +369,9 @@ void PeerListWidget::updatePeer(const QString &ip, BitTorrent::TorrentHandle *co m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_DOWN), peer.totalDownload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_UP), peer.totalUpload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::RELEVANCE), peer.relevance()); + QStringList downloadingFiles(torrent->info().filesForPiece(peer.downloadingPieceIndex())); + m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String(";"))); + m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String("\n")), Qt::ToolTipRole); } void PeerListWidget::handleResolved(const QString &ip, const QString &hostname) From 54979e6b53f8e3a3528f032baaeafdd5278bec64 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Thu, 27 Aug 2015 14:25:14 +0300 Subject: [PATCH 041/238] Move basic search-related code into Core. Also use qBittorrent torrent file download routines instead of nova2dl.py script. --- src/base/base.pri | 6 +- src/base/bittorrent/session.cpp | 4 + src/base/searchengine.cpp | 657 ++++++++++++++++++ src/base/searchengine.h | 136 ++++ src/base/utils/fs.cpp | 12 - src/base/utils/fs.h | 2 +- src/gui/addnewtorrentdialog.cpp | 4 + src/gui/gui.pri | 7 +- src/gui/mainwindow.cpp | 2 + src/gui/search/engineselectdlg.cpp | 519 -------------- src/gui/search/pluginselectdlg.cpp | 408 +++++++++++ .../{engineselectdlg.h => pluginselectdlg.h} | 64 +- ...{engineselectdlg.ui => pluginselectdlg.ui} | 10 +- src/gui/search/searchtab.cpp | 3 +- src/gui/search/searchwidget.cpp | 398 +++-------- src/gui/search/searchwidget.h | 64 +- src/gui/search/searchwidget.ui | 6 +- src/gui/search/supportedengines.h | 186 ----- src/searchengine.qrc | 2 - src/searchengine/nova/nova2dl.py | 61 -- src/searchengine/nova3/nova2dl.py | 61 -- src/src.pro | 2 +- 22 files changed, 1379 insertions(+), 1235 deletions(-) create mode 100644 src/base/searchengine.cpp create mode 100644 src/base/searchengine.h delete mode 100644 src/gui/search/engineselectdlg.cpp create mode 100644 src/gui/search/pluginselectdlg.cpp rename src/gui/search/{engineselectdlg.h => pluginselectdlg.h} (61%) rename src/gui/search/{engineselectdlg.ui => pluginselectdlg.ui} (93%) delete mode 100644 src/gui/search/supportedengines.h delete mode 100644 src/searchengine/nova/nova2dl.py delete mode 100644 src/searchengine/nova3/nova2dl.py diff --git a/src/base/base.pri b/src/base/base.pri index bb4643dd9..3ce02d04d 100644 --- a/src/base/base.pri +++ b/src/base/base.pri @@ -42,7 +42,8 @@ HEADERS += \ $$PWD/utils/string.h \ $$PWD/unicodestrings.h \ $$PWD/torrentfilter.h \ - $$PWD/scanfoldersmodel.h + $$PWD/scanfoldersmodel.h \ + $$PWD/searchengine.h SOURCES += \ $$PWD/tristatebool.cpp \ @@ -83,4 +84,5 @@ SOURCES += \ $$PWD/utils/misc.cpp \ $$PWD/utils/string.cpp \ $$PWD/torrentfilter.cpp \ - $$PWD/scanfoldersmodel.cpp + $$PWD/scanfoldersmodel.cpp \ + $$PWD/searchengine.cpp diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 71fd9fe62..5b15a99ec 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -968,6 +968,10 @@ bool Session::addTorrent(QString source, const AddTorrentParams ¶ms) qDebug("Converting bc link to magnet link"); source = Utils::Misc::bcLinkToMagnet(source); } + else if (((source.size() == 40) && !source.contains(QRegExp("[^0-9A-Fa-f]"))) + || ((source.size() == 32) && !source.contains(QRegExp("[^2-7A-Za-z]")))) { + source = "magnet:?xt=urn:btih:" + source; + } if (Utils::Misc::isUrl(source)) { Logger::instance()->addMessage(tr("Downloading '%1', please wait...", "e.g: Downloading 'xxx.torrent', please wait...").arg(source)); diff --git a/src/base/searchengine.cpp b/src/base/searchengine.cpp new file mode 100644 index 000000000..19d056fdf --- /dev/null +++ b/src/base/searchengine.cpp @@ -0,0 +1,657 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2006 Christophe Dumez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +#include +#include +#include +#include +#include +#include + +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/preferences.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "searchengine.h" + +enum SearchResultColumn +{ + PL_DL_LINK, + PL_NAME, + PL_SIZE, + PL_SEEDS, + PL_LEECHS, + PL_ENGINE_URL, + PL_DESC_LINK, + NB_PLUGIN_COLUMNS +}; + +static inline void removePythonScriptIfExists(const QString &scriptPath) +{ + Utils::Fs::forceRemove(scriptPath); + Utils::Fs::forceRemove(scriptPath + "c"); +} + +const QHash SearchEngine::m_categoryNames = SearchEngine::initializeCategoryNames(); + +SearchEngine::SearchEngine() + : m_searchStopped(false) + , m_updateUrl(QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/%1/engines/").arg(Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova")) +{ + updateNova(); + + m_searchProcess = new QProcess(this); + m_searchProcess->setEnvironment(QProcess::systemEnvironment()); + connect(m_searchProcess, SIGNAL(started()), this, SIGNAL(searchStarted())); + connect(m_searchProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readSearchOutput())); + connect(m_searchProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished(int, QProcess::ExitStatus))); + + m_searchTimeout = new QTimer(this); + m_searchTimeout->setSingleShot(true); + connect(m_searchTimeout, SIGNAL(timeout()), this, SLOT(onTimeout())); + + update(); +} + +SearchEngine::~SearchEngine() +{ + qDeleteAll(m_plugins.values()); + cancelSearch(); +} + +QStringList SearchEngine::allPlugins() const +{ + return m_plugins.keys(); +} + +QStringList SearchEngine::enabledPlugins() const +{ + QStringList plugins; + foreach (const PluginInfo *plugin, m_plugins.values()) { + if (plugin->enabled) + plugins << plugin->name; + } + + return plugins; +} + +QStringList SearchEngine::supportedCategories() const +{ + QStringList result; + foreach (const PluginInfo *plugin, m_plugins.values()) { + if (plugin->enabled) { + foreach (QString cat, plugin->supportedCategories) { + if (!result.contains(cat)) + result << cat; + } + } + } + + return result; +} + +PluginInfo *SearchEngine::pluginInfo(const QString &name) const +{ + return m_plugins.value(name, 0); +} + +bool SearchEngine::isActive() const +{ + return (m_searchProcess->state() != QProcess::NotRunning); +} + +void SearchEngine::enablePlugin(const QString &name, bool enabled) +{ + PluginInfo *plugin = m_plugins.value(name, 0); + if (plugin) { + plugin->enabled = enabled; + // Save to Hard disk + Preferences *const pref = Preferences::instance(); + QStringList disabledPlugins = pref->getSearchEngDisabled(); + if (enabled) + disabledPlugins.removeAll(name); + else if (!disabledPlugins.contains(name)) + disabledPlugins.append(name); + pref->setSearchEngDisabled(disabledPlugins); + } +} + +// Updates shipped plugin +void SearchEngine::updatePlugin(const QString &name) +{ + installPlugin(QString("%1%2.py").arg(m_updateUrl).arg(name)); +} + +// Install or update plugin from file or url +void SearchEngine::installPlugin(const QString &source) +{ + qDebug("Asked to install plugin at %s", qPrintable(source)); + + if (Utils::Misc::isUrl(source)) { + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(source, true); + connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(pluginDownloaded(QString, QString))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(pluginDownloadFailed(QString, QString))); + } + else { + QString path = source; + if (path.startsWith("file:", Qt::CaseInsensitive)) + path = QUrl(path).toLocalFile(); + + QString pluginName = Utils::Fs::fileName(path); + pluginName.chop(pluginName.size() - pluginName.lastIndexOf(".")); + + if (!path.endsWith(".py", Qt::CaseInsensitive)) + emit pluginInstallationFailed(pluginName, tr("Unknown search engine plugin file format.")); + else + installPlugin_impl(pluginName, path); + } +} + +void SearchEngine::installPlugin_impl(const QString &name, const QString &path) +{ + qreal newVersion = getPluginVersion(path); + qDebug("Version to be installed: %.2f", newVersion); + + PluginInfo *plugin = pluginInfo(name); + if (plugin && (plugin->version >= newVersion)) { + qDebug("Apparently update is not needed, we have a more recent version"); + emit pluginUpdateFailed(name, tr("A more recent version of this plugin is already installed.")); + return; + } + + // Process with install + QString destPath = pluginPath(name); + bool updated = false; + if (QFile::exists(destPath)) { + // Backup in case install fails + QFile::copy(destPath, destPath + ".bak"); + Utils::Fs::forceRemove(destPath); + Utils::Fs::forceRemove(destPath + "c"); + updated = true; + } + // Copy the plugin + QFile::copy(path, destPath); + // Update supported plugins + update(); + // Check if this was correctly installed + if (!m_plugins.contains(name)) { + // Remove broken file + Utils::Fs::forceRemove(destPath); + if (updated) { + // restore backup + QFile::copy(destPath + ".bak", destPath); + Utils::Fs::forceRemove(destPath + ".bak"); + // Update supported plugins + update(); + emit pluginUpdateFailed(name, tr("Plugin is not supported.")); + } + else { + emit pluginInstallationFailed(name, tr("Plugin is not supported.")); + } + } + else { + // Install was successful, remove backup + if (updated) + Utils::Fs::forceRemove(destPath + ".bak"); + } +} + +bool SearchEngine::uninstallPlugin(const QString &name) +{ + if (QFile::exists(":/nova/engines/" + name + ".py")) + return false; + + // Proceed with uninstall + // remove it from hard drive + QDir pluginsFolder(pluginsLocation()); + QStringList filters; + filters << name + ".*"; + QStringList files = pluginsFolder.entryList(filters, QDir::Files, QDir::Unsorted); + QString file; + foreach (file, files) + Utils::Fs::forceRemove(pluginsFolder.absoluteFilePath(file)); + // Remove it from supported engines + delete m_plugins.take(name); + + return true; +} + +void SearchEngine::checkForUpdates() +{ + // Download version file from update server on sourceforge + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_updateUrl + "versions.txt"); + connect(handler, SIGNAL(downloadFinished(QString, QByteArray)), this, SLOT(versionInfoDownloaded(QString, QByteArray))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(versionInfoDownloadFailed(QString, QString))); +} + +void SearchEngine::cancelSearch() +{ + if (m_searchProcess->state() != QProcess::NotRunning) { +#ifdef Q_OS_WIN + m_searchProcess->kill(); +#else + m_searchProcess->terminate(); +#endif + m_searchStopped = true; + m_searchTimeout->stop(); + + m_searchProcess->waitForFinished(1000); + } +} + +void SearchEngine::startSearch(const QString &pattern, const QString &category, const QStringList &usedPlugins) +{ + // Search process already running or + // No search pattern entered + if ((m_searchProcess->state() != QProcess::NotRunning) || pattern.isEmpty()) { + emit searchFailed(); + return; + } + + // Reload environment variables (proxy) + m_searchProcess->setEnvironment(QProcess::systemEnvironment()); + + QStringList params; + m_searchStopped = false; + params << Utils::Fs::toNativePath(engineLocation() + "/nova2.py"); + params << usedPlugins.join(","); + params << category; + params << pattern.split(" "); + + // Launch search + m_searchProcess->start(Utils::Misc::pythonExecutable(), params, QIODevice::ReadOnly); + m_searchTimeout->start(180000); // 3min +} + +QString SearchEngine::categoryFullName(const QString &categoryName) +{ + return tr(m_categoryNames.value(categoryName).toUtf8().constData()); +} + +QString SearchEngine::pluginsLocation() +{ + return QString("%1/engines").arg(engineLocation()); +} + +QString SearchEngine::engineLocation() +{ + QString folder = "nova"; + if (Utils::Misc::pythonVersion() >= 3) + folder = "nova3"; + const QString location = Utils::Fs::expandPathAbs(Utils::Fs::QDesktopServicesDataLocation() + folder); + QDir locationDir(location); + if (!locationDir.exists()) + locationDir.mkpath(locationDir.absolutePath()); + return location; +} + +// Slot called when QProcess is Finished +// QProcess can be finished for 3 reasons : +// Error | Stopped by user | Finished normally +void SearchEngine::processFinished(int exitcode, QProcess::ExitStatus) +{ + m_searchTimeout->stop(); + + if (exitcode == 0) + emit searchFinished(m_searchStopped); + else + emit searchFailed(); +} + +void SearchEngine::versionInfoDownloaded(const QString &url, const QByteArray &data) +{ + Q_UNUSED(url) + parseVersionInfo(data); +} + +void SearchEngine::versionInfoDownloadFailed(const QString &url, const QString &reason) +{ + Q_UNUSED(url) + emit checkForUpdatesFailed(tr("Update server is temporarily unavailable. %1").arg(reason)); +} + +void SearchEngine::pluginDownloaded(const QString &url, QString filePath) +{ + filePath = Utils::Fs::fromNativePath(filePath); + + QString pluginName = Utils::Fs::fileName(url); + pluginName.chop(pluginName.size() - pluginName.lastIndexOf(".")); // Remove extension + installPlugin_impl(pluginName, filePath); + Utils::Fs::forceRemove(filePath); +} + +void SearchEngine::pluginDownloadFailed(const QString &url, const QString &reason) +{ + QString pluginName = url.split('/').last(); + pluginName.replace(".py", "", Qt::CaseInsensitive); + if (pluginInfo(pluginName)) + emit pluginUpdateFailed(pluginName, tr("Failed to download the plugin file. %1").arg(reason)); + else + emit pluginInstallationFailed(pluginName, tr("Failed to download the plugin file. %1").arg(reason)); +} + +// Update nova.py search plugin if necessary +void SearchEngine::updateNova() +{ + qDebug("Updating nova"); + + // create nova directory if necessary + QDir searchDir(engineLocation()); + QString novaFolder = Utils::Misc::pythonVersion() >= 3 ? "searchengine/nova3" : "searchengine/nova"; + QFile packageFile(searchDir.absoluteFilePath("__init__.py")); + packageFile.open(QIODevice::WriteOnly | QIODevice::Text); + packageFile.close(); + if (!searchDir.exists("engines")) + searchDir.mkdir("engines"); + Utils::Fs::removeDirRecursive(searchDir.absoluteFilePath("__pycache__")); + + QFile packageFile2(searchDir.absolutePath() + "/engines/__init__.py"); + packageFile2.open(QIODevice::WriteOnly | QIODevice::Text); + packageFile2.close(); + + // Copy search plugin files (if necessary) + QString filePath = searchDir.absoluteFilePath("nova2.py"); + if (getPluginVersion(":/" + novaFolder + "/nova2.py") > getPluginVersion(filePath)) { + removePythonScriptIfExists(filePath); + QFile::copy(":/" + novaFolder + "/nova2.py", filePath); + } + + filePath = searchDir.absoluteFilePath("fix_encoding.py"); + QFile::copy(":/" + novaFolder + "/fix_encoding.py", filePath); + + filePath = searchDir.absoluteFilePath("novaprinter.py"); + if (getPluginVersion(":/" + novaFolder + "/novaprinter.py") > getPluginVersion(filePath)) { + removePythonScriptIfExists(filePath); + QFile::copy(":/" + novaFolder + "/novaprinter.py", filePath); + } + + filePath = searchDir.absoluteFilePath("helpers.py"); + if (getPluginVersion(":/" + novaFolder + "/helpers.py") > getPluginVersion(filePath)) { + removePythonScriptIfExists(filePath); + QFile::copy(":/" + novaFolder + "/helpers.py", filePath); + } + + filePath = searchDir.absoluteFilePath("socks.py"); + removePythonScriptIfExists(filePath); + QFile::copy(":/" + novaFolder + "/socks.py", filePath); + + if (novaFolder.endsWith("nova")) { + filePath = searchDir.absoluteFilePath("fix_encoding.py"); + removePythonScriptIfExists(filePath); + QFile::copy(":/" + novaFolder + "/fix_encoding.py", filePath); + } + else if (novaFolder.endsWith("nova3")) { + filePath = searchDir.absoluteFilePath("sgmllib3.py"); + removePythonScriptIfExists(filePath); + QFile::copy(":/" + novaFolder + "/sgmllib3.py", filePath); + } + + QDir destDir(pluginsLocation()); + Utils::Fs::removeDirRecursive(destDir.absoluteFilePath("__pycache__")); + QDir shippedSubdir(":/" + novaFolder + "/engines/"); + QStringList files = shippedSubdir.entryList(); + foreach (const QString &file, files) { + QString shippedFile = shippedSubdir.absoluteFilePath(file); + // Copy python classes + if (file.endsWith(".py")) { + const QString destFile = destDir.absoluteFilePath(file); + if (getPluginVersion(shippedFile) > getPluginVersion(destFile) ) { + qDebug("shipped %s is more recent then local plugin, updating...", qPrintable(file)); + removePythonScriptIfExists(destFile); + qDebug("%s copied to %s", qPrintable(shippedFile), qPrintable(destFile)); + QFile::copy(shippedFile, destFile); + } + } + else { + // Copy icons + if (file.endsWith(".png")) + if (!QFile::exists(destDir.absoluteFilePath(file))) + QFile::copy(shippedFile, destDir.absoluteFilePath(file)); + } + } +} + +void SearchEngine::onTimeout() +{ + cancelSearch(); +} + +// search QProcess return output as soon as it gets new +// stuff to read. We split it into lines and parse each +// line to SearchResult calling parseSearchResult(). +void SearchEngine::readSearchOutput() +{ + QByteArray output = m_searchProcess->readAllStandardOutput(); + output.replace("\r", ""); + QList lines = output.split('\n'); + if (!m_searchResultLineTruncated.isEmpty()) + lines.prepend(m_searchResultLineTruncated + lines.takeFirst()); + m_searchResultLineTruncated = lines.takeLast().trimmed(); + + QList searchResultList; + foreach (const QByteArray &line, lines) { + SearchResult searchResult; + if (parseSearchResult(QString::fromUtf8(line), searchResult)) + searchResultList << searchResult; + } + + if (!searchResultList.isEmpty()) + emit newSearchResults(searchResultList); +} + +void SearchEngine::update() +{ + QProcess nova; + nova.setEnvironment(QProcess::systemEnvironment()); + QStringList params; + params << Utils::Fs::toNativePath(engineLocation() + "/nova2.py"); + params << "--capabilities"; + nova.start(Utils::Misc::pythonExecutable(), params, QIODevice::ReadOnly); + nova.waitForStarted(); + nova.waitForFinished(); + + QString capabilities = QString(nova.readAll()); + QDomDocument xmlDoc; + if (!xmlDoc.setContent(capabilities)) { + qWarning() << "Could not parse Nova search engine capabilities, msg: " << capabilities.toLocal8Bit().data(); + qWarning() << "Error: " << nova.readAllStandardError().constData(); + return; + } + + QDomElement root = xmlDoc.documentElement(); + if (root.tagName() != "capabilities") { + qWarning() << "Invalid XML file for Nova search engine capabilities, msg: " << capabilities.toLocal8Bit().data(); + return; + } + + for (QDomNode engineNode = root.firstChild(); !engineNode.isNull(); engineNode = engineNode.nextSibling()) { + QDomElement engineElem = engineNode.toElement(); + if (!engineElem.isNull()) { + QString pluginName = engineElem.tagName(); + + PluginInfo *plugin = new PluginInfo; + plugin->name = pluginName; + plugin->version = getPluginVersion(pluginPath(pluginName)); + plugin->fullName = engineElem.elementsByTagName("name").at(0).toElement().text(); + plugin->url = engineElem.elementsByTagName("url").at(0).toElement().text(); + + foreach (QString cat, engineElem.elementsByTagName("categories").at(0).toElement().text().split(" ")) { + cat = cat.trimmed(); + if (!cat.isEmpty()) + plugin->supportedCategories << cat; + } + + QStringList disabledEngines = Preferences::instance()->getSearchEngDisabled(); + plugin->enabled = !disabledEngines.contains(pluginName); + + // Handle icon + QString iconPath = QString("%1/%2.png").arg(pluginsLocation()).arg(pluginName); + if (QFile::exists(iconPath)) { + plugin->iconPath = iconPath; + } + else { + iconPath = QString("%1/%2.ico").arg(pluginsLocation()).arg(pluginName); + if (QFile::exists(iconPath)) + plugin->iconPath = iconPath; + } + + if (!m_plugins.contains(pluginName)) { + m_plugins[pluginName] = plugin; + emit pluginInstalled(pluginName); + } + else if (m_plugins[pluginName]->version != plugin->version) { + delete m_plugins.take(pluginName); + m_plugins[pluginName] = plugin; + emit pluginUpdated(pluginName); + } + } + } +} + +// Parse one line of search results list +// Line is in the following form: +// file url | file name | file size | nb seeds | nb leechers | Search engine url +bool SearchEngine::parseSearchResult(const QString &line, SearchResult &searchResult) +{ + const QStringList parts = line.split("|"); + const int nbFields = parts.size(); + if (nbFields < (NB_PLUGIN_COLUMNS - 1)) return false; // -1 because desc_link is optional + + searchResult = SearchResult(); + searchResult.fileUrl = parts.at(PL_DL_LINK).trimmed(); // download URL + searchResult.fileName = parts.at(PL_NAME).trimmed(); // Name + searchResult.fileSize = parts.at(PL_SIZE).trimmed().toLongLong(); // Size + bool ok = false; + searchResult.nbSeeders = parts.at(PL_SEEDS).trimmed().toLongLong(&ok); // Seeders + if (!ok || (searchResult.nbSeeders < 0)) + searchResult.nbSeeders = -1; + searchResult.nbLeechers = parts.at(PL_LEECHS).trimmed().toLongLong(&ok); // Leechers + if (!ok || (searchResult.nbLeechers < 0)) + searchResult.nbLeechers = -1; + searchResult.siteUrl = parts.at(PL_ENGINE_URL).trimmed(); // Search site URL + if (nbFields == NB_PLUGIN_COLUMNS) + searchResult.descrLink = parts.at(PL_DESC_LINK).trimmed(); // Description Link + + return true; +} + +void SearchEngine::parseVersionInfo(const QByteArray &info) +{ + qDebug("Checking if update is needed"); + + QHash updateInfo; + bool dataCorrect = false; + QList lines = info.split('\n'); + foreach (QByteArray line, lines) { + line = line.trimmed(); + if (line.isEmpty()) continue; + if (line.startsWith("#")) continue; + + QList list = line.split(' '); + if (list.size() != 2) continue; + + QString pluginName = QString(list.first()); + if (!pluginName.endsWith(":")) continue; + + pluginName.chop(1); // remove trailing ':' + bool ok; + qreal version = list.last().toFloat(&ok); + qDebug("read line %s: %.2f", qPrintable(pluginName), version); + if (!ok) continue; + + dataCorrect = true; + if (isUpdateNeeded(pluginName, version)) { + qDebug("Plugin: %s is outdated", qPrintable(pluginName)); + updateInfo[pluginName] = version; + } + } + + if (!dataCorrect) + emit checkForUpdatesFailed(tr("An incorrect update info received.")); + else + emit checkForUpdatesFinished(updateInfo); +} + +bool SearchEngine::isUpdateNeeded(QString pluginName, qreal newVersion) const +{ + PluginInfo *plugin = pluginInfo(pluginName); + if (!plugin) return true; + + qreal oldVersion = plugin->version; + qDebug("IsUpdate needed? to be installed: %.2f, already installed: %.2f", newVersion, oldVersion); + return (newVersion > oldVersion); +} + +QString SearchEngine::pluginPath(const QString &name) +{ + return QString("%1/%2.py").arg(pluginsLocation()).arg(name); +} + +QHash SearchEngine::initializeCategoryNames() +{ + QHash result; + + result["all"] = QT_TRANSLATE_NOOP("SearchEngine", "All categories"); + result["movies"] = QT_TRANSLATE_NOOP("SearchEngine", "Movies"); + result["tv"] = QT_TRANSLATE_NOOP("SearchEngine", "TV shows"); + result["music"] = QT_TRANSLATE_NOOP("SearchEngine", "Music"); + result["games"] = QT_TRANSLATE_NOOP("SearchEngine", "Games"); + result["anime"] = QT_TRANSLATE_NOOP("SearchEngine", "Anime"); + result["software"] = QT_TRANSLATE_NOOP("SearchEngine", "Software"); + result["pictures"] = QT_TRANSLATE_NOOP("SearchEngine", "Pictures"); + result["books"] = QT_TRANSLATE_NOOP("SearchEngine", "Books"); + + return result; +} + +qreal SearchEngine::getPluginVersion(QString filePath) +{ + QFile plugin(filePath); + if (!plugin.exists()) { + qDebug("%s plugin does not exist, returning 0.0", qPrintable(filePath)); + return 0.0; + } + + if (!plugin.open(QIODevice::ReadOnly | QIODevice::Text)) + return 0.0; + + qreal version = 0.0; + while (!plugin.atEnd()) { + QByteArray line = plugin.readLine(); + if (line.startsWith("#VERSION: ")) { + line = line.split(' ').last().trimmed(); + version = line.toFloat(); + qDebug("plugin %s version: %.2f", qPrintable(filePath), version); + break; + } + } + + return version; +} diff --git a/src/base/searchengine.h b/src/base/searchengine.h new file mode 100644 index 000000000..908e3d0d5 --- /dev/null +++ b/src/base/searchengine.h @@ -0,0 +1,136 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2006 Christophe Dumez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +#ifndef SEARCHENGINE_H +#define SEARCHENGINE_H + +#include +#include +#include +#include + +class QTimer; + +struct PluginInfo +{ + QString name; + qreal version; + QString fullName; + QString url; + QStringList supportedCategories; + QString iconPath; + bool enabled; +}; + +struct SearchResult +{ + QString fileName; + QString fileUrl; + qlonglong fileSize; + qlonglong nbSeeders; + qlonglong nbLeechers; + QString siteUrl; + QString descrLink; +}; + +class SearchEngine: public QObject +{ + Q_OBJECT + +public: + SearchEngine(); + ~SearchEngine(); + + QStringList allPlugins() const; + QStringList enabledPlugins() const; + QStringList supportedCategories() const; + PluginInfo *pluginInfo(const QString &name) const; + + bool isActive() const; + + void enablePlugin(const QString &name, bool enabled = true); + void updatePlugin(const QString &name); + void installPlugin(const QString &source); + bool uninstallPlugin(const QString &name); + void checkForUpdates(); + + void startSearch(const QString &pattern, const QString &category, const QStringList &usedPlugins); + void cancelSearch(); + + static qreal getPluginVersion(QString filePath); + static QString categoryFullName(const QString &categoryName); + static QString pluginsLocation(); + +signals: + void searchStarted(); + void searchFinished(bool cancelled); + void searchFailed(); + void newSearchResults(const QList &results); + + void pluginInstalled(const QString &name); + void pluginInstallationFailed(const QString &name, const QString &reason); + void pluginUpdated(const QString &name); + void pluginUpdateFailed(const QString &name, const QString &reason); + + void checkForUpdatesFinished(const QHash &updateInfo); + void checkForUpdatesFailed(const QString &reason); + +private slots: + void onTimeout(); + void readSearchOutput(); + void processFinished(int exitcode, QProcess::ExitStatus); + void versionInfoDownloaded(const QString &url, const QByteArray &data); + void versionInfoDownloadFailed(const QString &url, const QString &reason); + void pluginDownloaded(const QString &url, QString filePath); + void pluginDownloadFailed(const QString &url, const QString &reason); + +private: + void update(); + void updateNova(); + bool parseSearchResult(const QString &line, SearchResult &searchResult); + void parseVersionInfo(const QByteArray &info); + void installPlugin_impl(const QString &name, const QString &path); + bool isUpdateNeeded(QString pluginName, qreal newVersion) const; + + static QString engineLocation(); + static QString pluginPath(const QString &name); + static QHash initializeCategoryNames(); + + static const QHash m_categoryNames; + + const QString m_updateUrl; + + QHash m_plugins; + QProcess *m_searchProcess; + bool m_searchStopped; + QTimer *m_searchTimeout; + QByteArray m_searchResultLineTruncated; +}; + +#endif // SEARCHENGINE_H diff --git a/src/base/utils/fs.cpp b/src/base/utils/fs.cpp index da5349511..f411e8668 100644 --- a/src/base/utils/fs.cpp +++ b/src/base/utils/fs.cpp @@ -509,18 +509,6 @@ QString Utils::Fs::QDesktopServicesDownloadLocation() #endif } -QString Utils::Fs::searchEngineLocation() -{ - QString folder = "nova"; - if (Utils::Misc::pythonVersion() >= 3) - folder = "nova3"; - const QString location = expandPathAbs(QDesktopServicesDataLocation() + folder); - QDir locationDir(location); - if (!locationDir.exists()) - locationDir.mkpath(locationDir.absolutePath()); - return location; -} - QString Utils::Fs::cacheLocation() { QString location = expandPathAbs(QDesktopServicesCacheLocation()); diff --git a/src/base/utils/fs.h b/src/base/utils/fs.h index 9f04a2726..77d0833d5 100644 --- a/src/base/utils/fs.h +++ b/src/base/utils/fs.h @@ -65,7 +65,7 @@ namespace Utils QString QDesktopServicesCacheLocation(); QString QDesktopServicesDownloadLocation(); /* End of Qt4 code */ - QString searchEngineLocation(); + QString cacheLocation(); } } diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index 7bee8afa5..fe7ff46b3 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -137,6 +137,10 @@ void AddNewTorrentDialog::show(QString source, QWidget *parent) qDebug("Converting bc link to magnet link"); source = Utils::Misc::bcLinkToMagnet(source); } + else if (((source.size() == 40) && !source.contains(QRegExp("[^0-9A-Fa-f]"))) + || ((source.size() == 32) && !source.contains(QRegExp("[^2-7A-Za-z]")))) { + source = "magnet:?xt=urn:btih:" + source; + } AddNewTorrentDialog *dlg = new AddNewTorrentDialog(parent); diff --git a/src/gui/gui.pri b/src/gui/gui.pri index 847373a85..13ab015f4 100644 --- a/src/gui/gui.pri +++ b/src/gui/gui.pri @@ -44,10 +44,9 @@ HEADERS += \ $$PWD/torrentcreatordlg.h \ $$PWD/search/searchwidget.h \ $$PWD/search/searchtab.h \ - $$PWD/search/engineselectdlg.h \ + $$PWD/search/pluginselectdlg.h \ $$PWD/search/pluginsourcedlg.h \ $$PWD/search/searchlistdelegate.h \ - $$PWD/search/supportedengines.h \ $$PWD/search/searchsortmodel.h SOURCES += \ @@ -82,7 +81,7 @@ SOURCES += \ $$PWD/torrentcreatordlg.cpp \ $$PWD/search/searchwidget.cpp \ $$PWD/search/searchtab.cpp \ - $$PWD/search/engineselectdlg.cpp + $$PWD/search/pluginselectdlg.cpp win32|macx { HEADERS += $$PWD/programupdater.h @@ -106,7 +105,7 @@ FORMS += \ $$PWD/options.ui \ $$PWD/torrentcreatordlg.ui \ $$PWD/search/searchwidget.ui \ - $$PWD/search/engineselectdlg.ui \ + $$PWD/search/pluginselectdlg.ui \ $$PWD/search/pluginsourcedlg.ui RESOURCES += $$PWD/about.qrc diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index b2c121285..25ba17446 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -34,6 +34,7 @@ #include "notifications.h" #endif +#include #include #include #include @@ -50,6 +51,7 @@ #include "mainwindow.h" #include "transferlistwidget.h" #include "base/utils/misc.h" +#include "base/utils/fs.h" #include "torrentcreatordlg.h" #include "downloadfromurldlg.h" #include "addnewtorrentdialog.h" diff --git a/src/gui/search/engineselectdlg.cpp b/src/gui/search/engineselectdlg.cpp deleted file mode 100644 index d51f4cb2d..000000000 --- a/src/gui/search/engineselectdlg.cpp +++ /dev/null @@ -1,519 +0,0 @@ -/* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2006 Christophe Dumez - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * In addition, as a special exception, the copyright holders give permission to - * link this program with the OpenSSL project's "OpenSSL" library (or with - * modified versions of it that use the same license as the "OpenSSL" library), - * and distribute the linked executables. You must obey the GNU General Public - * License in all respects for all of the code used other than "OpenSSL". If you - * modify file(s), you may extend this exception to your version of the file(s), - * but you are not obligated to do so. If you do not wish to do so, delete this - * exception statement from your version. - * - * Contact : chris@qbittorrent.org - */ - -#include "engineselectdlg.h" -#include "base/net/downloadmanager.h" -#include "base/net/downloadhandler.h" -#include "base/utils/fs.h" -#include "base/utils/misc.h" -#include "ico.h" -#include "searchwidget.h" -#include "pluginsourcedlg.h" -#include "guiiconprovider.h" -#include "autoexpandabledialog.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef QBT_USES_QT5 -#include -#endif - -enum EngineColumns {ENGINE_NAME, ENGINE_VERSION, ENGINE_URL, ENGINE_STATE, ENGINE_ID}; - -EngineSelectDlg::EngineSelectDlg(QWidget *parent, SupportedEngines *supported_engines) - : QDialog(parent) - , supported_engines(supported_engines) - , m_updateUrl(QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/") + (Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova") + "/engines/") -{ - setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); -#ifdef QBT_USES_QT5 - // This hack fixes reordering of first column with Qt5. - // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 - QTableView unused; - unused.setVerticalHeader(pluginsTree->header()); - pluginsTree->header()->setParent(pluginsTree); - unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); -#endif - pluginsTree->setRootIsDecorated(false); - pluginsTree->header()->resizeSection(0, 160); - pluginsTree->header()->resizeSection(1, 80); - pluginsTree->header()->resizeSection(2, 200); - pluginsTree->hideColumn(ENGINE_ID); - actionUninstall->setIcon(GuiIconProvider::instance()->getIcon("list-remove")); - connect(actionEnable, SIGNAL(toggled(bool)), this, SLOT(enableSelection(bool))); - connect(pluginsTree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayContextMenu(const QPoint&))); - loadSupportedSearchEngines(); - connect(supported_engines, SIGNAL(newSupportedEngine(QString)), this, SLOT(addNewEngine(QString))); - connect(pluginsTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(toggleEngineState(QTreeWidgetItem*, int))); - show(); -} - -EngineSelectDlg::~EngineSelectDlg() { - qDebug("Destroying engineSelectDlg"); - emit enginesChanged(); - qDebug("Engine plugins dialog destroyed"); -} - -void EngineSelectDlg::dropEvent(QDropEvent *event) { - event->acceptProposedAction(); - QStringList files; - if (event->mimeData()->hasUrls()) { - const QList urls = event->mimeData()->urls(); - foreach (const QUrl &url, urls) { - if (!url.isEmpty()) { - if (url.scheme().compare("file", Qt::CaseInsensitive) == 0) - files << url.toLocalFile(); - else - files << url.toString(); - } - } - } - else { - files = event->mimeData()->text().split(QString::fromUtf8("\n")); - } - foreach (QString file, files) { - qDebug("dropped %s", qPrintable(file)); - if (Utils::Misc::isUrl(file)) { - setCursor(QCursor(Qt::WaitCursor)); - downloadFromUrl(file); - continue; - } - if (file.endsWith(".py", Qt::CaseInsensitive)) { - if (file.startsWith("file:", Qt::CaseInsensitive)) - file = QUrl(file).toLocalFile(); - QString plugin_name = Utils::Fs::fileName(file); - plugin_name.chop(3); // Remove extension - installPlugin(file, plugin_name); - } - } -} - -// Decode if we accept drag 'n drop or not -void EngineSelectDlg::dragEnterEvent(QDragEnterEvent *event) { - QString mime; - foreach (mime, event->mimeData()->formats()) { - qDebug("mimeData: %s", qPrintable(mime)); - } - if (event->mimeData()->hasFormat(QString::fromUtf8("text/plain")) || event->mimeData()->hasFormat(QString::fromUtf8("text/uri-list"))) { - event->acceptProposedAction(); - } -} - -void EngineSelectDlg::on_updateButton_clicked() { - // Download version file from update server on sourceforge - setCursor(QCursor(Qt::WaitCursor)); - downloadFromUrl(m_updateUrl + "versions.txt"); -} - -void EngineSelectDlg::toggleEngineState(QTreeWidgetItem *item, int) { - SupportedEngine *engine = supported_engines->value(item->text(ENGINE_ID)); - engine->setEnabled(!engine->isEnabled()); - if (engine->isEnabled()) { - item->setText(ENGINE_STATE, tr("Yes")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); - } else { - item->setText(ENGINE_STATE, tr("No")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); - } -} - -void EngineSelectDlg::displayContextMenu(const QPoint&) { - QMenu myContextMenu(this); - // Enable/disable pause/start action given the DL state - QList items = pluginsTree->selectedItems(); - if (items.isEmpty()) return; - QString first_id = items.first()->text(ENGINE_ID); - actionEnable->setChecked(supported_engines->value(first_id)->isEnabled()); - myContextMenu.addAction(actionEnable); - myContextMenu.addSeparator(); - myContextMenu.addAction(actionUninstall); - myContextMenu.exec(QCursor::pos()); -} - -void EngineSelectDlg::on_closeButton_clicked() { - close(); -} - -void EngineSelectDlg::on_actionUninstall_triggered() { - QList items = pluginsTree->selectedItems(); - QTreeWidgetItem *item; - bool error = false; - foreach (item, items) { - int index = pluginsTree->indexOfTopLevelItem(item); - Q_ASSERT(index != -1); - QString id = item->text(ENGINE_ID); - if (QFile::exists(":/nova/engines/"+id+".py")) { - error = true; - // Disable it instead - supported_engines->value(id)->setEnabled(false); - item->setText(ENGINE_STATE, tr("No")); - setRowColor(index, "red"); - continue; - }else { - // Proceed with uninstall - // remove it from hard drive - QDir enginesFolder(Utils::Fs::searchEngineLocation() + "/engines"); - QStringList filters; - filters << id+".*"; - QStringList files = enginesFolder.entryList(filters, QDir::Files, QDir::Unsorted); - QString file; - foreach (file, files) { - enginesFolder.remove(file); - } - // Remove it from supported engines - delete supported_engines->take(id); - delete item; - } - } - if (error) - QMessageBox::warning(0, tr("Uninstall warning"), tr("Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled.\nThose plugins were disabled.")); - else - QMessageBox::information(0, tr("Uninstall success"), tr("All selected plugins were uninstalled successfully")); -} - -void EngineSelectDlg::enableSelection(bool enable) { - QList items = pluginsTree->selectedItems(); - QTreeWidgetItem *item; - foreach (item, items) { - int index = pluginsTree->indexOfTopLevelItem(item); - Q_ASSERT(index != -1); - QString id = item->text(ENGINE_ID); - supported_engines->value(id)->setEnabled(enable); - if (enable) { - item->setText(ENGINE_STATE, tr("Yes")); - setRowColor(index, "green"); - } else { - item->setText(ENGINE_STATE, tr("No")); - setRowColor(index, "red"); - } - } -} - -// Set the color of a row in data model -void EngineSelectDlg::setRowColor(int row, QString color) { - QTreeWidgetItem *item = pluginsTree->topLevelItem(row); - for (int i=0; icolumnCount(); ++i) { - item->setData(i, Qt::ForegroundRole, QVariant(QColor(color))); - } -} - -QList EngineSelectDlg::findItemsWithUrl(QString url) { - QList res; - for (int i=0; itopLevelItemCount(); ++i) { - QTreeWidgetItem *item = pluginsTree->topLevelItem(i); - if (url.startsWith(item->text(ENGINE_URL), Qt::CaseInsensitive)) - res << item; - } - return res; -} - -QTreeWidgetItem* EngineSelectDlg::findItemWithID(QString id) { - QList res; - for (int i=0; itopLevelItemCount(); ++i) { - QTreeWidgetItem *item = pluginsTree->topLevelItem(i); - if (id == item->text(ENGINE_ID)) - return item; - } - return 0; -} - -bool EngineSelectDlg::isUpdateNeeded(QString plugin_name, qreal new_version) const { - qreal old_version = SearchWidget::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"); - qDebug("IsUpdate needed? tobeinstalled: %.2f, alreadyinstalled: %.2f", new_version, old_version); - return (new_version > old_version); -} - -void EngineSelectDlg::installPlugin(QString path, QString plugin_name) { - qDebug("Asked to install plugin at %s", qPrintable(path)); - qreal new_version = SearchWidget::getPluginVersion(path); - if (new_version == 0.0) { - QMessageBox::warning(this, tr("Invalid plugin"), tr("The search engine plugin is invalid, please contact the author.")); - return; - } - qDebug("Version to be installed: %.2f", new_version); - if (!isUpdateNeeded(plugin_name, new_version)) { - qDebug("Apparently update is not needed, we have a more recent version"); - QMessageBox::information(this, tr("Search plugin install"), tr("A more recent version of '%1' search engine plugin is already installed.", "%1 is the name of the search engine").arg(plugin_name)); - return; - } - // Process with install - QString dest_path = Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"; - bool update = false; - if (QFile::exists(dest_path)) { - // Backup in case install fails - QFile::copy(dest_path, dest_path+".bak"); - Utils::Fs::forceRemove(dest_path); - Utils::Fs::forceRemove(dest_path+"c"); - update = true; - } - // Copy the plugin - QFile::copy(path, dest_path); - // Update supported plugins - supported_engines->update(); - // Check if this was correctly installed - if (!supported_engines->contains(plugin_name)) { - if (update) { - // Remove broken file - Utils::Fs::forceRemove(dest_path); - // restore backup - QFile::copy(dest_path+".bak", dest_path); - Utils::Fs::forceRemove(dest_path+".bak"); - QMessageBox::warning(this, tr("Search plugin install"), tr("'%1' search engine plugin could not be updated, keeping old version.", "%1 is the name of the search engine").arg(plugin_name)); - return; - } else { - // Remove broken file - Utils::Fs::forceRemove(dest_path); - QMessageBox::warning(this, tr("Search plugin install"), tr("'%1' search engine plugin could not be installed.", "%1 is the name of the search engine").arg(plugin_name)); - return; - } - } - // Install was successful, remove backup and update plugin version - if (update) { - Utils::Fs::forceRemove(dest_path+".bak"); - qreal version = SearchWidget::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + plugin_name + ".py"); - QTreeWidgetItem *item = findItemWithID(plugin_name); - item->setText(ENGINE_VERSION, QString::number(version, 'f', 2)); - QMessageBox::information(this, tr("Search plugin install"), tr("'%1' search engine plugin was successfully updated.", "%1 is the name of the search engine").arg(plugin_name)); - return; - } else { - QMessageBox::information(this, tr("Search plugin install"), tr("'%1' search engine plugin was successfully installed.", "%1 is the name of the search engine").arg(plugin_name)); - return; - } -} - -void EngineSelectDlg::loadSupportedSearchEngines() { - // Some clean up first - pluginsTree->clear(); - foreach (QString name, supported_engines->keys()) { - addNewEngine(name); - } -} - -void EngineSelectDlg::addNewEngine(QString engine_name) { - QTreeWidgetItem *item = new QTreeWidgetItem(pluginsTree); - SupportedEngine *engine = supported_engines->value(engine_name); - item->setText(ENGINE_NAME, engine->getFullName()); - item->setText(ENGINE_URL, engine->getUrl()); - item->setText(ENGINE_ID, engine->getName()); - if (engine->isEnabled()) { - item->setText(ENGINE_STATE, tr("Yes")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); - } else { - item->setText(ENGINE_STATE, tr("No")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); - } - // Handle icon - QString iconPath = Utils::Fs::searchEngineLocation() + "/engines/" + engine->getName() + ".png"; - if (QFile::exists(iconPath)) { - // Good, we already have the icon - item->setData(ENGINE_NAME, Qt::DecorationRole, QVariant(QIcon(iconPath))); - } else { - iconPath = Utils::Fs::searchEngineLocation() + "/engines/" + engine->getName() + ".ico"; - if (QFile::exists(iconPath)) { // ICO support - item->setData(ENGINE_NAME, Qt::DecorationRole, QVariant(QIcon(iconPath))); - } else { - // Icon is missing, we must download it - downloadFromUrl(engine->getUrl() + "/favicon.ico"); - } - } - // Load version - qreal version = SearchWidget::getPluginVersion(Utils::Fs::searchEngineLocation() + "/engines/" + engine->getName() + ".py"); - item->setText(ENGINE_VERSION, QString::number(version, 'f', 2)); -} - -void EngineSelectDlg::on_installButton_clicked() { - PluginSourceDlg *dlg = new PluginSourceDlg(this); - connect(dlg, SIGNAL(askForLocalFile()), this, SLOT(askForLocalPlugin())); - connect(dlg, SIGNAL(askForUrl()), this, SLOT(askForPluginUrl())); -} - -void EngineSelectDlg::askForPluginUrl() { - bool ok(false); - QString clipTxt = qApp->clipboard()->text(); - QString defaultUrl = "http://"; - if ((clipTxt.startsWith("http://", Qt::CaseInsensitive) - || clipTxt.startsWith("https://", Qt::CaseInsensitive) - || clipTxt.startsWith("ftp://", Qt::CaseInsensitive)) - && clipTxt.endsWith(".py")) - defaultUrl = clipTxt; - QString url = AutoExpandableDialog::getText(this, tr("New search engine plugin URL"), - tr("URL:"), QLineEdit::Normal, - defaultUrl, &ok); - - while(true) { - if (!ok || url.isEmpty()) - return; - if (!url.endsWith(".py")) { - QMessageBox::warning(this, tr("Invalid link"), tr("The link doesn't seem to point to a search engine plugin.")); - url = AutoExpandableDialog::getText(this, tr("New search engine plugin URL"), - tr("URL:"), QLineEdit::Normal, - url, &ok); - } - else - break; - } - - setCursor(QCursor(Qt::WaitCursor)); - downloadFromUrl(url); -} - -void EngineSelectDlg::askForLocalPlugin() { - QStringList pathsList = QFileDialog::getOpenFileNames(0, - tr("Select search plugins"), QDir::homePath(), - tr("qBittorrent search plugin")+QString::fromUtf8(" (*.py)")); - foreach (QString path, pathsList) { - if (path.endsWith(".py", Qt::CaseInsensitive)) { - QString plugin_name = Utils::Fs::fileName(path); - plugin_name.chop(3); // Remove extension - installPlugin(path, plugin_name); - } - } -} - -bool EngineSelectDlg::parseVersionsFile(QString versions_file) { - qDebug("Checking if update is needed"); - bool file_correct = false; - QFile versions(versions_file); - if (!versions.open(QIODevice::ReadOnly | QIODevice::Text)) { - qDebug("* Error: Could not read versions.txt file"); - return false; - } - bool updated = false; - while(!versions.atEnd()) { - QByteArray line = versions.readLine(); - line.replace("\n", ""); - line = line.trimmed(); - if (line.isEmpty()) continue; - if (line.startsWith("#")) continue; - QList list = line.split(' '); - if (list.size() != 2) continue; - QString plugin_name = QString(list.first()); - if (!plugin_name.endsWith(":")) continue; - plugin_name.chop(1); // remove trailing ':' - bool ok; - qreal version = list.last().toFloat(&ok); - qDebug("read line %s: %.2f", qPrintable(plugin_name), version); - if (!ok) continue; - file_correct = true; - if (isUpdateNeeded(plugin_name, version)) { - qDebug("Plugin: %s is outdated", qPrintable(plugin_name)); - // Downloading update - setCursor(QCursor(Qt::WaitCursor)); - downloadFromUrl(m_updateUrl + plugin_name + ".py"); - //downloadFromUrl(m_updateUrl + plugin_name + ".png"); - updated = true; - }else { - qDebug("Plugin: %s is up to date", qPrintable(plugin_name)); - } - } - // Close file - versions.close(); - // Clean up tmp file - Utils::Fs::forceRemove(versions_file); - if (file_correct && !updated) { - QMessageBox::information(this, tr("Search plugin update"), tr("All your plugins are already up to date.")); - } - return file_correct; -} - -void EngineSelectDlg::downloadFromUrl(const QString &url) -{ - Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(url, true); - connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString))); - connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); -} - -void EngineSelectDlg::processDownloadedFile(const QString &url, QString filePath) { - filePath = Utils::Fs::fromNativePath(filePath); - setCursor(QCursor(Qt::ArrowCursor)); - qDebug("engineSelectDlg received %s", qPrintable(url)); - if (url.endsWith("favicon.ico", Qt::CaseInsensitive)) { - // Icon downloaded - QImage fileIcon; - if (fileIcon.load(filePath)) { - QList items = findItemsWithUrl(url); - QTreeWidgetItem *item; - foreach (item, items) { - QString id = item->text(ENGINE_ID); - QString iconPath; - QFile icon(filePath); - icon.open(QIODevice::ReadOnly); - if (ICOHandler::canRead(&icon)) - iconPath = Utils::Fs::searchEngineLocation() + "/engines/" + id + ".ico"; - else - iconPath = Utils::Fs::searchEngineLocation() + "/engines/" + id + ".png"; - QFile::copy(filePath, iconPath); - item->setData(ENGINE_NAME, Qt::DecorationRole, QVariant(QIcon(iconPath))); - } - } - // Delete tmp file - Utils::Fs::forceRemove(filePath); - return; - } - if (url.endsWith("versions.txt")) { - if (!parseVersionsFile(filePath)) { - QMessageBox::warning(this, tr("Search plugin update"), tr("Sorry, update server is temporarily unavailable.")); - } - Utils::Fs::forceRemove(filePath); - return; - } - if (url.endsWith(".py", Qt::CaseInsensitive)) { - QString plugin_name = Utils::Fs::fileName(url); - plugin_name.chop(3); // Remove extension - installPlugin(filePath, plugin_name); - Utils::Fs::forceRemove(filePath); - return; - } -} - -void EngineSelectDlg::handleDownloadFailure(const QString &url, const QString &reason) { - setCursor(QCursor(Qt::ArrowCursor)); - if (url.endsWith("favicon.ico", Qt::CaseInsensitive)) { - qDebug("Could not download favicon: %s, reason: %s", qPrintable(url), qPrintable(reason)); - return; - } - if (url.endsWith("versions.txt")) { - QMessageBox::warning(this, tr("Search plugin update"), tr("Sorry, update server is temporarily unavailable.")); - return; - } - if (url.endsWith(".py", Qt::CaseInsensitive)) { - // a plugin update download has been failed - QString plugin_name = url.split('/').last(); - plugin_name.replace(".py", "", Qt::CaseInsensitive); - QMessageBox::warning(this, tr("Search plugin update"), tr("Sorry, '%1' search plugin installation failed.", "%1 is the name of the search engine").arg(plugin_name)); - } -} diff --git a/src/gui/search/pluginselectdlg.cpp b/src/gui/search/pluginselectdlg.cpp new file mode 100644 index 000000000..9f5c5e175 --- /dev/null +++ b/src/gui/search/pluginselectdlg.cpp @@ -0,0 +1,408 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2006 Christophe Dumez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + * + * Contact : chris@qbittorrent.org + */ + +#include "pluginselectdlg.h" +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/searchengine.h" +#include "ico.h" +#include "searchwidget.h" +#include "pluginsourcedlg.h" +#include "guiiconprovider.h" +#include "autoexpandabledialog.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef QBT_USES_QT5 +#include +#endif + +enum PluginColumns {PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_URL, PLUGIN_STATE, PLUGIN_ID}; + +PluginSelectDlg::PluginSelectDlg(SearchEngine *pluginManager, QWidget *parent) + : QDialog(parent) + , m_pluginManager(pluginManager) + , m_asyncOps(0) +{ + setupUi(this); + setAttribute(Qt::WA_DeleteOnClose); +#ifdef QBT_USES_QT5 + // This hack fixes reordering of first column with Qt5. + // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 + QTableView unused; + unused.setVerticalHeader(pluginsTree->header()); + pluginsTree->header()->setParent(pluginsTree); + unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); +#endif + pluginsTree->setRootIsDecorated(false); + pluginsTree->header()->resizeSection(0, 160); + pluginsTree->header()->resizeSection(1, 80); + pluginsTree->header()->resizeSection(2, 200); + pluginsTree->hideColumn(PLUGIN_ID); + actionUninstall->setIcon(GuiIconProvider::instance()->getIcon("list-remove")); + + connect(actionEnable, SIGNAL(toggled(bool)), this, SLOT(enableSelection(bool))); + connect(pluginsTree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayContextMenu(const QPoint&))); + connect(pluginsTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(togglePluginState(QTreeWidgetItem*, int))); + + loadSupportedSearchPlugins(); + + connect(m_pluginManager, SIGNAL(pluginInstalled(QString)), SLOT(pluginInstalled(QString))); + connect(m_pluginManager, SIGNAL(pluginInstallationFailed(QString, QString)), SLOT(pluginInstallationFailed(QString, QString))); + connect(m_pluginManager, SIGNAL(pluginUpdated(QString)), SLOT(pluginUpdated(QString))); + connect(m_pluginManager, SIGNAL(pluginUpdateFailed(QString, QString)), SLOT(pluginUpdateFailed(QString, QString))); + connect(m_pluginManager, SIGNAL(checkForUpdatesFinished(QHash)), SLOT(checkForUpdatesFinished(QHash))); + connect(m_pluginManager, SIGNAL(checkForUpdatesFailed(QString)), SLOT(checkForUpdatesFailed(QString))); + + show(); +} + +PluginSelectDlg::~PluginSelectDlg() { + emit pluginsChanged(); +} + +void PluginSelectDlg::dropEvent(QDropEvent *event) { + event->acceptProposedAction(); + QStringList files; + if (event->mimeData()->hasUrls()) { + const QList urls = event->mimeData()->urls(); + foreach (const QUrl &url, urls) { + if (!url.isEmpty()) { + if (url.scheme().compare("file", Qt::CaseInsensitive) == 0) + files << url.toLocalFile(); + else + files << url.toString(); + } + } + } + else { + files = event->mimeData()->text().split(QString::fromUtf8("\n")); + } + + if (files.isEmpty()) return; + + foreach (QString file, files) { + qDebug("dropped %s", qPrintable(file)); + startAsyncOp(); + m_pluginManager->installPlugin(file); + } +} + +// Decode if we accept drag 'n drop or not +void PluginSelectDlg::dragEnterEvent(QDragEnterEvent *event) { + QString mime; + foreach (mime, event->mimeData()->formats()) { + qDebug("mimeData: %s", qPrintable(mime)); + } + if (event->mimeData()->hasFormat(QString::fromUtf8("text/plain")) || event->mimeData()->hasFormat(QString::fromUtf8("text/uri-list"))) { + event->acceptProposedAction(); + } +} + +void PluginSelectDlg::on_updateButton_clicked() { + startAsyncOp(); + m_pluginManager->checkForUpdates(); +} + +void PluginSelectDlg::togglePluginState(QTreeWidgetItem *item, int) { + PluginInfo *plugin = m_pluginManager->pluginInfo(item->text(PLUGIN_ID)); + m_pluginManager->enablePlugin(plugin->name, !plugin->enabled); + if (plugin->enabled) { + item->setText(PLUGIN_STATE, tr("Yes")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); + } else { + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); + } +} + +void PluginSelectDlg::displayContextMenu(const QPoint&) { + QMenu myContextMenu(this); + // Enable/disable pause/start action given the DL state + QList items = pluginsTree->selectedItems(); + if (items.isEmpty()) return; + QString first_id = items.first()->text(PLUGIN_ID); + actionEnable->setChecked(m_pluginManager->pluginInfo(first_id)->enabled); + myContextMenu.addAction(actionEnable); + myContextMenu.addSeparator(); + myContextMenu.addAction(actionUninstall); + myContextMenu.exec(QCursor::pos()); +} + +void PluginSelectDlg::on_closeButton_clicked() { + close(); +} + +void PluginSelectDlg::on_actionUninstall_triggered() { + QList items = pluginsTree->selectedItems(); + QTreeWidgetItem *item; + bool error = false; + foreach (item, items) { + int index = pluginsTree->indexOfTopLevelItem(item); + Q_ASSERT(index != -1); + QString id = item->text(PLUGIN_ID); + if (m_pluginManager->uninstallPlugin(id)) { + delete item; + } + else { + error = true; + // Disable it instead + m_pluginManager->enablePlugin(id, false); + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(index, "red"); + continue; + } + } + if (error) + QMessageBox::warning(0, tr("Uninstall warning"), tr("Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled.\nThose plugins were disabled.")); + else + QMessageBox::information(0, tr("Uninstall success"), tr("All selected plugins were uninstalled successfully")); +} + +void PluginSelectDlg::enableSelection(bool enable) { + QList items = pluginsTree->selectedItems(); + QTreeWidgetItem *item; + foreach (item, items) { + int index = pluginsTree->indexOfTopLevelItem(item); + Q_ASSERT(index != -1); + QString id = item->text(PLUGIN_ID); + m_pluginManager->enablePlugin(id, enable); + if (enable) { + item->setText(PLUGIN_STATE, tr("Yes")); + setRowColor(index, "green"); + } else { + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(index, "red"); + } + } +} + +// Set the color of a row in data model +void PluginSelectDlg::setRowColor(int row, QString color) { + QTreeWidgetItem *item = pluginsTree->topLevelItem(row); + for (int i=0; icolumnCount(); ++i) { + item->setData(i, Qt::ForegroundRole, QVariant(QColor(color))); + } +} + +QList PluginSelectDlg::findItemsWithUrl(QString url) { + QList res; + for (int i=0; itopLevelItemCount(); ++i) { + QTreeWidgetItem *item = pluginsTree->topLevelItem(i); + if (url.startsWith(item->text(PLUGIN_URL), Qt::CaseInsensitive)) + res << item; + } + return res; +} + +QTreeWidgetItem* PluginSelectDlg::findItemWithID(QString id) { + for (int i=0; itopLevelItemCount(); ++i) { + QTreeWidgetItem *item = pluginsTree->topLevelItem(i); + if (id == item->text(PLUGIN_ID)) + return item; + } + return 0; +} + +void PluginSelectDlg::loadSupportedSearchPlugins() { + // Some clean up first + pluginsTree->clear(); + foreach (QString name, m_pluginManager->allPlugins()) + addNewPlugin(name); +} + +void PluginSelectDlg::addNewPlugin(QString engine_name) { + QTreeWidgetItem *item = new QTreeWidgetItem(pluginsTree); + PluginInfo *plugin = m_pluginManager->pluginInfo(engine_name); + item->setText(PLUGIN_NAME, plugin->fullName); + item->setText(PLUGIN_URL, plugin->url); + item->setText(PLUGIN_ID, plugin->name); + if (plugin->enabled) { + item->setText(PLUGIN_STATE, tr("Yes")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); + } else { + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); + } + // Handle icon + if (QFile::exists(plugin->iconPath)) { + // Good, we already have the icon + item->setData(PLUGIN_NAME, Qt::DecorationRole, QVariant(QIcon(plugin->iconPath))); + } else { + // Icon is missing, we must download it + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(plugin->url + "/favicon.ico", true); + connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(iconDownloaded(QString, QString))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(iconDownloadFailed(QString, QString))); + } + item->setText(PLUGIN_VERSION, QString::number(plugin->version, 'f', 2)); +} + +void PluginSelectDlg::startAsyncOp() +{ + ++m_asyncOps; + if (m_asyncOps == 1) + setCursor(QCursor(Qt::WaitCursor)); +} + +void PluginSelectDlg::finishAsyncOp() +{ + --m_asyncOps; + if (m_asyncOps == 0) + setCursor(QCursor(Qt::ArrowCursor)); +} + +void PluginSelectDlg::on_installButton_clicked() { + PluginSourceDlg *dlg = new PluginSourceDlg(this); + connect(dlg, SIGNAL(askForLocalFile()), this, SLOT(askForLocalPlugin())); + connect(dlg, SIGNAL(askForUrl()), this, SLOT(askForPluginUrl())); +} + +void PluginSelectDlg::askForPluginUrl() { + bool ok(false); + QString clipTxt = qApp->clipboard()->text(); + QString defaultUrl = "http://"; + if (Utils::Misc::isUrl(clipTxt) && clipTxt.endsWith(".py")) + defaultUrl = clipTxt; + QString url = AutoExpandableDialog::getText(this, tr("New search engine plugin URL"), + tr("URL:"), QLineEdit::Normal, + defaultUrl, &ok); + + while(true) { + if (!ok || url.isEmpty()) + return; + if (!url.endsWith(".py")) { + QMessageBox::warning(this, tr("Invalid link"), tr("The link doesn't seem to point to a search engine plugin.")); + url = AutoExpandableDialog::getText(this, tr("New search engine plugin URL"), + tr("URL:"), QLineEdit::Normal, + url, &ok); + } + else + break; + } + + startAsyncOp(); + m_pluginManager->installPlugin(url); +} + +void PluginSelectDlg::askForLocalPlugin() { + QStringList pathsList = QFileDialog::getOpenFileNames(0, + tr("Select search plugins"), QDir::homePath(), + tr("qBittorrent search plugin")+QString::fromUtf8(" (*.py)")); + foreach (QString path, pathsList) { + startAsyncOp(); + m_pluginManager->installPlugin(path); + } +} + +void PluginSelectDlg::iconDownloaded(const QString &url, QString filePath) { + filePath = Utils::Fs::fromNativePath(filePath); + + // Icon downloaded + QImage fileIcon; + if (fileIcon.load(filePath)) { + QList items = findItemsWithUrl(url); + QTreeWidgetItem *item; + foreach (item, items) { + QString id = item->text(PLUGIN_ID); + PluginInfo *plugin = m_pluginManager->pluginInfo(id); + if (!plugin) continue; + + QFile icon(filePath); + icon.open(QIODevice::ReadOnly); + QString iconPath = QString("%1/%2.%3").arg(SearchEngine::pluginsLocation()).arg(id).arg(ICOHandler::canRead(&icon) ? "ico" : "png"); + if (QFile::copy(filePath, iconPath)) + item->setData(PLUGIN_NAME, Qt::DecorationRole, QVariant(QIcon(iconPath))); + } + } + // Delete tmp file + Utils::Fs::forceRemove(filePath); +} + +void PluginSelectDlg::iconDownloadFailed(const QString &url, const QString &reason) { + qDebug("Could not download favicon: %s, reason: %s", qPrintable(url), qPrintable(reason)); +} + +void PluginSelectDlg::checkForUpdatesFinished(const QHash &updateInfo) +{ + finishAsyncOp(); + if (updateInfo.isEmpty()) { + QMessageBox::information(this, tr("Search plugin update"), tr("All your plugins are already up to date.")); + return; + } + + foreach (const QString &pluginName, updateInfo.keys()) { + startAsyncOp(); + m_pluginManager->updatePlugin(pluginName); + } +} + +void PluginSelectDlg::checkForUpdatesFailed(const QString &reason) +{ + finishAsyncOp(); + QMessageBox::warning(this, tr("Search plugin update"), tr("Sorry, couldn't check for plugin updates. %1").arg(reason)); +} + +void PluginSelectDlg::pluginInstalled(const QString &name) +{ + addNewPlugin(name); + finishAsyncOp(); + QMessageBox::information(this, tr("Search plugin install"), tr("\"%1\" search engine plugin was successfully installed.", "%1 is the name of the search engine").arg(name)); +} + +void PluginSelectDlg::pluginInstallationFailed(const QString &name, const QString &reason) +{ + finishAsyncOp(); + QMessageBox::information(this, tr("Search plugin install"), tr("Couldn't install \"%1\" search engine plugin. %2").arg(name).arg(reason)); +} + +void PluginSelectDlg::pluginUpdated(const QString &name) +{ + finishAsyncOp(); + qreal version = m_pluginManager->pluginInfo(name)->version; + QTreeWidgetItem *item = findItemWithID(name); + item->setText(PLUGIN_VERSION, QString::number(version, 'f', 2)); + QMessageBox::information(this, tr("Search plugin install"), tr("\"%1\" search engine plugin was successfully updated.", "%1 is the name of the search engine").arg(name)); + +} + +void PluginSelectDlg::pluginUpdateFailed(const QString &name, const QString &reason) +{ + finishAsyncOp(); + QMessageBox::information(this, tr("Search plugin update"), tr("Couldn't update \"%1\" search engine plugin. %2").arg(name).arg(reason)); +} diff --git a/src/gui/search/engineselectdlg.h b/src/gui/search/pluginselectdlg.h similarity index 61% rename from src/gui/search/engineselectdlg.h rename to src/gui/search/pluginselectdlg.h index a98f54bad..1292bfe49 100644 --- a/src/gui/search/engineselectdlg.h +++ b/src/gui/search/pluginselectdlg.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2006 Christophe Dumez + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -28,57 +29,64 @@ * Contact : chris@qbittorrent.org */ -#ifndef ENGINE_SELECT_DLG_H -#define ENGINE_SELECT_DLG_H +#ifndef PLUGINSELECTDLG_H +#define PLUGINSELECTDLG_H -#include "ui_engineselectdlg.h" -#include "supportedengines.h" +#include "ui_pluginselectdlg.h" QT_BEGIN_NAMESPACE class QDropEvent; QT_END_NAMESPACE -class EngineSelectDlg : public QDialog, public Ui::EngineSelectDlg +class SearchEngine; + +class PluginSelectDlg : public QDialog, public Ui::PluginSelectDlg { Q_OBJECT private: - void downloadFromUrl(const QString &url); - - SupportedEngines *supported_engines; - const QString m_updateUrl; + SearchEngine *m_pluginManager; + int m_asyncOps; public: - EngineSelectDlg(QWidget *parent, SupportedEngines *supported_engines); - ~EngineSelectDlg(); + PluginSelectDlg(SearchEngine *pluginManager, QWidget *parent = 0); + ~PluginSelectDlg(); QList findItemsWithUrl(QString url); QTreeWidgetItem* findItemWithID(QString id); - protected: - bool parseVersionsFile(QString versions_file); - bool isUpdateNeeded(QString plugin_name, qreal new_version) const; - signals: - void enginesChanged(); + void pluginsChanged(); - protected slots: + protected: + void dropEvent(QDropEvent *event); + void dragEnterEvent(QDragEnterEvent *event); + + private slots: void on_closeButton_clicked(); - void loadSupportedSearchEngines(); - void addNewEngine(QString engine_name); - void toggleEngineState(QTreeWidgetItem*, int); + void togglePluginState(QTreeWidgetItem*, int); void setRowColor(int row, QString color); - void processDownloadedFile(const QString &url, QString filePath); - void handleDownloadFailure(const QString &url, const QString &reason); void displayContextMenu(const QPoint& pos); void enableSelection(bool enable); void on_actionUninstall_triggered(); void on_updateButton_clicked(); void on_installButton_clicked(); - void dropEvent(QDropEvent *event); - void dragEnterEvent(QDragEnterEvent *event); - void installPlugin(QString plugin_path, QString plugin_name); void askForLocalPlugin(); void askForPluginUrl(); + void iconDownloaded(const QString &url, QString filePath); + void iconDownloadFailed(const QString &url, const QString &reason); + + void checkForUpdatesFinished(const QHash &updateInfo); + void checkForUpdatesFailed(const QString &reason); + void pluginInstalled(const QString &name); + void pluginInstallationFailed(const QString &name, const QString &reason); + void pluginUpdated(const QString &name); + void pluginUpdateFailed(const QString &name, const QString &reason); + + private: + void loadSupportedSearchPlugins(); + void addNewPlugin(QString engine_name); + void startAsyncOp(); + void finishAsyncOp(); }; -#endif +#endif // PLUGINSELECTDLG_H diff --git a/src/gui/search/engineselectdlg.ui b/src/gui/search/pluginselectdlg.ui similarity index 93% rename from src/gui/search/engineselectdlg.ui rename to src/gui/search/pluginselectdlg.ui index 4ba4f2f54..a87d23c6c 100644 --- a/src/gui/search/engineselectdlg.ui +++ b/src/gui/search/pluginselectdlg.ui @@ -1,7 +1,7 @@ - EngineSelectDlg - + PluginSelectDlg + 0 @@ -18,7 +18,7 @@ - + 75 @@ -27,7 +27,7 @@ - Installed search engines: + Installed search plugins: @@ -73,7 +73,7 @@ - + true diff --git a/src/gui/search/searchtab.cpp b/src/gui/search/searchtab.cpp index 5d2d69624..dba224ff1 100644 --- a/src/gui/search/searchtab.cpp +++ b/src/gui/search/searchtab.cpp @@ -97,10 +97,9 @@ SearchTab::SearchTab(SearchWidget *parent) : QWidget(), parent(parent) } void SearchTab::downloadSelectedItem(const QModelIndex& index) { - QString engine_url = proxyModel->data(proxyModel->index(index.row(), SearchSortModel::ENGINE_URL)).toString(); QString torrent_url = proxyModel->data(proxyModel->index(index.row(), SearchSortModel::DL_LINK)).toString(); setRowColor(index.row(), "blue"); - parent->downloadTorrent(engine_url, torrent_url); + parent->downloadTorrent(torrent_url); } SearchTab::~SearchTab() { diff --git a/src/gui/search/searchwidget.cpp b/src/gui/search/searchwidget.cpp index b28c6857a..c4b70931d 100644 --- a/src/gui/search/searchwidget.cpp +++ b/src/gui/search/searchwidget.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2006 Christophe Dumez + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -43,6 +44,8 @@ #include #include #include +#include +#include #ifdef Q_OS_WIN #include @@ -52,6 +55,7 @@ #include "base/utils/fs.h" #include "base/utils/misc.h" #include "base/preferences.h" +#include "base/searchengine.h" #include "searchlistdelegate.h" #include "mainwindow.h" #include "addnewtorrentdialog.h" @@ -74,52 +78,44 @@ SearchWidget::SearchWidget(MainWindow* parent) search_button->setIcon(GuiIconProvider::instance()->getIcon("edit-find")); download_button->setIcon(GuiIconProvider::instance()->getIcon("download")); goToDescBtn->setIcon(GuiIconProvider::instance()->getIcon("application-x-mswinurl")); - enginesButton->setIcon(GuiIconProvider::instance()->getIcon("preferences-system-network")); + pluginsButton->setIcon(GuiIconProvider::instance()->getIcon("preferences-system-network")); copyURLBtn->setIcon(GuiIconProvider::instance()->getIcon("edit-copy")); tabWidget->setTabsClosable(true); connect(tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); - // Boolean initialization - search_stopped = false; - // Creating Search Process - searchProcess = new QProcess(this); - searchProcess->setEnvironment(QProcess::systemEnvironment()); - connect(searchProcess, SIGNAL(started()), this, SLOT(searchStarted())); - connect(searchProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readSearchOutput())); - connect(searchProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(searchFinished(int,QProcess::ExitStatus))); - connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tab_changed(int))); - searchTimeout = new QTimer(this); - searchTimeout->setSingleShot(true); - connect(searchTimeout, SIGNAL(timeout()), this, SLOT(on_search_button_clicked())); - // Update nova.py search plugin if necessary - updateNova(); - supported_engines = new SupportedEngines(); + + m_searchEngine = new SearchEngine; + connect(m_searchEngine, SIGNAL(searchStarted()), SLOT(searchStarted())); + connect(m_searchEngine, SIGNAL(newSearchResults(QList)), SLOT(appendSearchResults(QList))); + connect(m_searchEngine, SIGNAL(searchFinished(bool)), SLOT(searchFinished(bool))); + connect(m_searchEngine, SIGNAL(searchFailed()), SLOT(searchFailed())); + // Fill in category combobox fillCatCombobox(); - fillEngineComboBox(); + fillPluginComboBox(); connect(search_pattern, SIGNAL(textEdited(QString)), this, SLOT(searchTextEdited(QString))); - connect(selectEngine, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(selectMultipleBox(const QString &))); + connect(selectPlugin, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(selectMultipleBox(const QString &))); } void SearchWidget::fillCatCombobox() { comboCategory->clear(); - comboCategory->addItem(full_cat_names["all"], QVariant("all")); - QStringList supported_cat = supported_engines->supportedCategories(); + comboCategory->addItem(SearchEngine::categoryFullName("all"), QVariant("all")); + QStringList supported_cat = m_searchEngine->supportedCategories(); foreach (QString cat, supported_cat) { qDebug("Supported category: %s", qPrintable(cat)); - comboCategory->addItem(full_cat_names[cat], QVariant(cat)); + comboCategory->addItem(SearchEngine::categoryFullName(cat), QVariant(cat)); } } -void SearchWidget::fillEngineComboBox() +void SearchWidget::fillPluginComboBox() { - selectEngine->clear(); - selectEngine->addItem(tr("All enabled"), QVariant("enabled")); - selectEngine->addItem(tr("All engines"), QVariant("all")); - foreach (QString engi, supported_engines->enginesEnabled()) - selectEngine->addItem(engi, QVariant(engi)); - selectEngine->addItem(tr("Multiple..."), QVariant("multi")); + selectPlugin->clear(); + selectPlugin->addItem(tr("All enabled"), QVariant("enabled")); + selectPlugin->addItem(tr("All plugins"), QVariant("all")); + foreach (QString name, m_searchEngine->enabledPlugins()) + selectPlugin->addItem(name, QVariant(name)); + selectPlugin->addItem(tr("Multiple..."), QVariant("multi")); } QString SearchWidget::selectedCategory() const @@ -129,26 +125,15 @@ QString SearchWidget::selectedCategory() const QString SearchWidget::selectedEngine() const { - return selectEngine->itemData(selectEngine->currentIndex()).toString(); + return selectPlugin->itemData(selectPlugin->currentIndex()).toString(); } SearchWidget::~SearchWidget() { qDebug("Search destruction"); - searchProcess->kill(); - searchProcess->waitForFinished(); - foreach (QProcess *downloader, downloaders) { - // Make sure we disconnect the SIGNAL/SLOT first - // To avoid qreal free - downloader->disconnect(); - downloader->kill(); - downloader->waitForFinished(); - delete downloader; - } + delete search_pattern; - delete searchTimeout; - delete searchProcess; - delete supported_engines; + delete m_searchEngine; } void SearchWidget::tab_changed(int t) @@ -174,14 +159,14 @@ void SearchWidget::tab_changed(int t) void SearchWidget::selectMultipleBox(const QString &text) { - if (text == tr("Multiple...")) on_enginesButton_clicked(); + if (text == tr("Multiple...")) on_pluginsButton_clicked(); } -void SearchWidget::on_enginesButton_clicked() +void SearchWidget::on_pluginsButton_clicked() { - EngineSelectDlg *dlg = new EngineSelectDlg(this, supported_engines); - connect(dlg, SIGNAL(enginesChanged()), this, SLOT(fillCatCombobox())); - connect(dlg, SIGNAL(enginesChanged()), this, SLOT(fillEngineComboBox())); + PluginSelectDlg *dlg = new PluginSelectDlg(m_searchEngine, this); + connect(dlg, SIGNAL(pluginsChanged()), this, SLOT(fillCatCombobox())); + connect(dlg, SIGNAL(pluginsChanged()), this, SLOT(fillPluginComboBox())); } void SearchWidget::searchTextEdited(QString) @@ -204,17 +189,8 @@ void SearchWidget::on_search_button_clicked() return; } - if (searchProcess->state() != QProcess::NotRunning) { -#ifdef Q_OS_WIN - searchProcess->kill(); -#else - searchProcess->terminate(); -#endif - search_stopped = true; - if (searchTimeout->isActive()) - searchTimeout->stop(); - - searchProcess->waitForFinished(1000); + if (m_searchEngine->isActive()) { + m_searchEngine->cancelSearch(); if (!newQueryString) { search_button->setText(tr("Search")); @@ -224,15 +200,13 @@ void SearchWidget::on_search_button_clicked() newQueryString = false; - // Reload environment variables (proxy) - searchProcess->setEnvironment(QProcess::systemEnvironment()); - const QString pattern = search_pattern->text().trimmed(); // No search pattern entered if (pattern.isEmpty()) { QMessageBox::critical(0, tr("Empty search pattern"), tr("Please type a search pattern first")); return; } + // Tab Addition currentSearchTab = new SearchTab(this); activeSearchTab = currentSearchTab; @@ -243,26 +217,23 @@ void SearchWidget::on_search_button_clicked() tabWidget->addTab(currentSearchTab, tabName); tabWidget->setCurrentWidget(currentSearchTab); - // Getting checked search engines - QStringList params; - search_stopped = false; - params << Utils::Fs::toNativePath(Utils::Fs::searchEngineLocation() + "/nova2.py"); - if (selectedEngine() == "all") params << supported_engines->enginesAll().join(","); - else if (selectedEngine() == "enabled") params << supported_engines->enginesEnabled().join(","); - else if (selectedEngine() == "multi") params << supported_engines->enginesEnabled().join(","); - else params << selectedEngine(); + QStringList plugins; + if (selectedEngine() == "all") plugins = m_searchEngine->allPlugins(); + else if (selectedEngine() == "enabled") plugins = m_searchEngine->enabledPlugins(); + else if (selectedEngine() == "multi") plugins = m_searchEngine->enabledPlugins(); + else plugins << selectedEngine(); + qDebug("Search with category: %s", qPrintable(selectedCategory())); - params << selectedCategory(); - params << pattern.split(" "); + // Update SearchEngine widgets no_search_results = true; nb_search_results = 0; - search_result_line_truncated.clear(); + // Changing the text of the current label activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(0)); + // Launch search - searchProcess->start(Utils::Misc::pythonExecutable(), params, QIODevice::ReadOnly); - searchTimeout->start(180000); // 3min + m_searchEngine->startSearch(pattern, selectedCategory(), plugins); } void SearchWidget::saveResultsColumnsWidth() @@ -281,30 +252,12 @@ void SearchWidget::saveResultsColumnsWidth() pref->setSearchColsWidth(new_width_list.join(" ")); } -void SearchWidget::downloadTorrent(QString engine_url, QString torrent_url) +void SearchWidget::downloadTorrent(QString url) { - if (torrent_url.startsWith("bc://bt/", Qt::CaseInsensitive)) { - qDebug("Converting bc link to magnet link"); - torrent_url = Utils::Misc::bcLinkToMagnet(torrent_url); - } - qDebug() << Q_FUNC_INFO << torrent_url; - if (torrent_url.startsWith("magnet:")) { - QStringList urls; - urls << torrent_url; - mp_mainWindow->downloadFromURLList(urls); - } - else { - QProcess *downloadProcess = new QProcess(this); - downloadProcess->setEnvironment(QProcess::systemEnvironment()); - connect(downloadProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(downloadFinished(int,QProcess::ExitStatus))); - downloaders << downloadProcess; - QStringList params; - params << Utils::Fs::toNativePath(Utils::Fs::searchEngineLocation() + "/nova2dl.py"); - params << engine_url; - params << torrent_url; - // Launch search - downloadProcess->start(Utils::Misc::pythonExecutable(), params, QIODevice::ReadOnly); - } + if (Preferences::instance()->useAdditionDialog()) + AddNewTorrentDialog::show(url, this); + else + BitTorrent::Session::instance()->addTorrent(url); } void SearchWidget::searchStarted() @@ -316,220 +269,75 @@ void SearchWidget::searchStarted() search_button->setText(tr("Stop")); } -// search Qprocess return output as soon as it gets new -// stuff to read. We split it into lines and add each -// line to search results calling appendSearchResult(). -void SearchWidget::readSearchOutput() -{ - QByteArray output = searchProcess->readAllStandardOutput(); - output.replace("\r", ""); - QList lines_list = output.split('\n'); - if (!search_result_line_truncated.isEmpty()) { - QByteArray end_of_line = lines_list.takeFirst(); - lines_list.prepend(search_result_line_truncated + end_of_line); - } - search_result_line_truncated = lines_list.takeLast().trimmed(); - foreach (const QByteArray &line, lines_list) - appendSearchResult(QString::fromUtf8(line)); - activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(nb_search_results)); -} - -void SearchWidget::downloadFinished(int exitcode, QProcess::ExitStatus) -{ - QProcess *downloadProcess = (QProcess*)sender(); - if (exitcode == 0) { - QString line = QString::fromUtf8(downloadProcess->readAllStandardOutput()).trimmed(); - QStringList parts = line.split(' '); - if (parts.size() == 2) { - QString path = parts[0]; - - if (Preferences::instance()->useAdditionDialog()) - AddNewTorrentDialog::show(path, mp_mainWindow); - else - BitTorrent::Session::instance()->addTorrent(path); - } - } - qDebug("Deleting downloadProcess"); - downloaders.removeOne(downloadProcess); - delete downloadProcess; -} - -static inline void removePythonScriptIfExists(const QString& script_path) -{ - Utils::Fs::forceRemove(script_path); - Utils::Fs::forceRemove(script_path + "c"); -} - -// Update nova.py search plugin if necessary -void SearchWidget::updateNova() -{ - qDebug("Updating nova"); - // create nova directory if necessary - QDir search_dir(Utils::Fs::searchEngineLocation()); - QString nova_folder = Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova"; - QFile package_file(search_dir.absoluteFilePath("__init__.py")); - package_file.open(QIODevice::WriteOnly | QIODevice::Text); - package_file.close(); - if (!search_dir.exists("engines")) - search_dir.mkdir("engines"); - Utils::Fs::removeDirRecursive(search_dir.absoluteFilePath("__pycache__")); - - QFile package_file2(search_dir.absolutePath() + "/engines/__init__.py"); - package_file2.open(QIODevice::WriteOnly | QIODevice::Text); - package_file2.close(); - // Copy search plugin files (if necessary) - QString filePath = search_dir.absoluteFilePath("nova2.py"); - if (getPluginVersion(":/" + nova_folder + "/nova2.py") > getPluginVersion(filePath)) { - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/nova2.py", filePath); - } - - filePath = search_dir.absoluteFilePath("nova2dl.py"); - if (getPluginVersion(":/" + nova_folder + "/nova2dl.py") > getPluginVersion(filePath)) { - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/nova2dl.py", filePath); - } - - filePath = search_dir.absoluteFilePath("novaprinter.py"); - if (getPluginVersion(":/" + nova_folder + "/novaprinter.py") > getPluginVersion(filePath)) { - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/novaprinter.py", filePath); - } - - filePath = search_dir.absoluteFilePath("helpers.py"); - if (getPluginVersion(":/" + nova_folder + "/helpers.py") > getPluginVersion(filePath)) { - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/helpers.py", filePath); - } - - filePath = search_dir.absoluteFilePath("socks.py"); - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/socks.py", filePath); - - if (nova_folder == "nova") { - filePath = search_dir.absoluteFilePath("fix_encoding.py"); - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/fix_encoding.py", filePath); - } - else if (nova_folder == "nova3") { - filePath = search_dir.absoluteFilePath("sgmllib3.py"); - removePythonScriptIfExists(filePath); - QFile::copy(":/" + nova_folder + "/sgmllib3.py", filePath); - } - QDir destDir(QDir(Utils::Fs::searchEngineLocation()).absoluteFilePath("engines")); - Utils::Fs::removeDirRecursive(destDir.absoluteFilePath("__pycache__")); - QDir shipped_subDir(":/" + nova_folder + "/engines/"); - QStringList files = shipped_subDir.entryList(); - foreach (const QString &file, files) { - QString shipped_file = shipped_subDir.absoluteFilePath(file); - // Copy python classes - if (file.endsWith(".py")) { - const QString dest_file = destDir.absoluteFilePath(file); - if (getPluginVersion(shipped_file) > getPluginVersion(dest_file) ) { - qDebug("shipped %s is more recent then local plugin, updating...", qPrintable(file)); - removePythonScriptIfExists(dest_file); - qDebug("%s copied to %s", qPrintable(shipped_file), qPrintable(dest_file)); - QFile::copy(shipped_file, dest_file); - } - } - else { - // Copy icons - if (file.endsWith(".png")) - if (!QFile::exists(destDir.absoluteFilePath(file))) - QFile::copy(shipped_file, destDir.absoluteFilePath(file)); - } - } -} - // Slot called when search is Finished // Search can be finished for 3 reasons : // Error | Stopped by user | Finished normally -void SearchWidget::searchFinished(int exitcode, QProcess::ExitStatus) +void SearchWidget::searchFinished(bool cancelled) { - if (searchTimeout->isActive()) - searchTimeout->stop(); bool useNotificationBalloons = Preferences::instance()->useProgramNotification(); if (useNotificationBalloons && mp_mainWindow->getCurrentTabWidget() != this) mp_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has finished")); - if (activeSearchTab.isNull()) - // The active tab was closed - return; + if (activeSearchTab.isNull()) return; // The active tab was closed - if (exitcode) { -#ifdef Q_OS_WIN + if (cancelled) activeSearchTab->status = tr("Search aborted"); -#else - activeSearchTab->status = tr("An error occurred during search..."); -#endif - } - else { - if (search_stopped) { - activeSearchTab->status = tr("Search aborted"); - } - else { - if (no_search_results) - activeSearchTab->status = tr("Search returned no results"); - else - activeSearchTab->status = tr("Search has finished"); - } - } + else if (no_search_results) + activeSearchTab->status = tr("Search returned no results"); + else + activeSearchTab->status = tr("Search has finished"); + search_status->setText(currentSearchTab->status); activeSearchTab = 0; search_button->setText(tr("Search")); } +void SearchWidget::searchFailed() +{ + bool useNotificationBalloons = Preferences::instance()->useProgramNotification(); + if (useNotificationBalloons && mp_mainWindow->getCurrentTabWidget() != this) + mp_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has failed")); + + if (activeSearchTab.isNull()) return; // The active tab was closed + +#ifdef Q_OS_WIN + activeSearchTab->status = tr("Search aborted"); +#else + activeSearchTab->status = tr("An error occurred during search..."); +#endif +} + // SLOT to append one line to search results list -// Line is in the following form : -// file url | file name | file size | nb seeds | nb leechers | Search engine url -void SearchWidget::appendSearchResult(const QString &line) +void SearchWidget::appendSearchResults(const QList &results) { if (activeSearchTab.isNull()) { - if (searchProcess->state() != QProcess::NotRunning) { -#ifdef Q_OS_WIN - searchProcess->kill(); -#else - searchProcess->terminate(); -#endif - searchProcess->waitForFinished(1000); - } - if (searchTimeout->isActive()) - searchTimeout->stop(); - search_stopped = true; + m_searchEngine->cancelSearch(); return; } - const QStringList parts = line.split("|"); - const int nb_fields = parts.size(); - if (nb_fields < NB_PLUGIN_COLUMNS - 1) //-1 because desc_link is optional - return; + Q_ASSERT(activeSearchTab); - // Add item to search result list + QStandardItemModel* cur_model = activeSearchTab->getCurrentSearchListModel(); Q_ASSERT(cur_model); - int row = cur_model->rowCount(); - cur_model->insertRow(row); - cur_model->setData(cur_model->index(row, SearchSortModel::DL_LINK), parts.at(PL_DL_LINK).trimmed()); // download URL - cur_model->setData(cur_model->index(row, SearchSortModel::NAME), parts.at(PL_NAME).trimmed()); // Name - cur_model->setData(cur_model->index(row, SearchSortModel::SIZE), parts.at(PL_SIZE).trimmed().toLongLong()); // Size - bool ok = false; - qlonglong nb_seeders = parts.at(PL_SEEDS).trimmed().toLongLong(&ok); - if (!ok || nb_seeders < 0) - cur_model->setData(cur_model->index(row, SearchSortModel::SEEDS), -1); // Seeders - else - cur_model->setData(cur_model->index(row, SearchSortModel::SEEDS), nb_seeders); // Seeders - qlonglong nb_leechers = parts.at(PL_LEECHS).trimmed().toLongLong(&ok); - if (!ok || nb_leechers < 0) - cur_model->setData(cur_model->index(row, SearchSortModel::LEECHS), -1); // Leechers - else - cur_model->setData(cur_model->index(row, SearchSortModel::LEECHS), nb_leechers); // Leechers - cur_model->setData(cur_model->index(row, SearchSortModel::ENGINE_URL), parts.at(PL_ENGINE_URL).trimmed()); // Engine URL - // Description Link - if (nb_fields == NB_PLUGIN_COLUMNS) - cur_model->setData(cur_model->index(row, SearchSortModel::DESC_LINK), parts.at(PL_DESC_LINK).trimmed()); + foreach (const SearchResult &result, results) { + // Add item to search result list + int row = cur_model->rowCount(); + cur_model->insertRow(row); + + cur_model->setData(cur_model->index(row, SearchSortModel::DL_LINK), result.fileUrl); // download URL + cur_model->setData(cur_model->index(row, SearchSortModel::NAME), result.fileName); // Name + cur_model->setData(cur_model->index(row, SearchSortModel::SIZE), result.fileSize); // Size + cur_model->setData(cur_model->index(row, SearchSortModel::SEEDS), result.nbSeeders); // Seeders + cur_model->setData(cur_model->index(row, SearchSortModel::LEECHS), result.nbLeechers); // Leechers + cur_model->setData(cur_model->index(row, SearchSortModel::ENGINE_URL), result.siteUrl); // Search site URL + cur_model->setData(cur_model->index(row, SearchSortModel::DESC_LINK), result.descrLink); // Description Link + } no_search_results = false; - ++nb_search_results; + nb_search_results += results.size(); + activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(nb_search_results)); + // Enable clear & download buttons download_button->setEnabled(true); goToDescBtn->setEnabled(true); @@ -541,17 +349,8 @@ void SearchWidget::closeTab(int index) // Search is run for active tab so if user decided to close it, then stop search if (!activeSearchTab.isNull() && index == tabWidget->indexOf(activeSearchTab)) { qDebug("Closed active search Tab"); - if (searchProcess->state() != QProcess::NotRunning) { -#ifdef Q_OS_WIN - searchProcess->kill(); -#else - searchProcess->terminate(); -#endif - searchProcess->waitForFinished(1000); - } - if (searchTimeout->isActive()) - searchTimeout->stop(); - search_stopped = true; + if (m_searchEngine->isActive()) + m_searchEngine->cancelSearch(); activeSearchTab = 0; } delete all_tab.takeAt(index); @@ -573,8 +372,7 @@ void SearchWidget::on_download_button_clicked() // Get Item url QSortFilterProxyModel* model = all_tab.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); QString torrent_url = model->data(model->index(index.row(), URL_COLUMN)).toString(); - QString engine_url = model->data(model->index(index.row(), ENGINE_URL_COLUMN)).toString(); - downloadTorrent(engine_url, torrent_url); + downloadTorrent(torrent_url); all_tab.at(tabWidget->currentIndex())->setRowColor(index.row(), "blue"); } } diff --git a/src/gui/search/searchwidget.h b/src/gui/search/searchwidget.h index 9751a620b..c77ac1e6e 100644 --- a/src/gui/search/searchwidget.h +++ b/src/gui/search/searchwidget.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2006 Christophe Dumez + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -31,19 +32,19 @@ #ifndef SEARCHWIDGET_H #define SEARCHWIDGET_H -#include #include #include #include #include #include "ui_searchwidget.h" -#include "engineselectdlg.h" +#include "pluginselectdlg.h" #include "searchtab.h" -#include "supportedengines.h" class SearchWidget; class MainWindow; class LineEdit; +class SearchEngine; +struct SearchResult; QT_BEGIN_NAMESPACE class QTimer; @@ -53,79 +54,46 @@ class SearchWidget : public QWidget, private Ui::SearchWidget{ Q_OBJECT Q_DISABLE_COPY(SearchWidget) -private: - enum PluginColumn { PL_DL_LINK, PL_NAME, PL_SIZE, PL_SEEDS, PL_LEECHS, PL_ENGINE_URL, PL_DESC_LINK, NB_PLUGIN_COLUMNS }; - public: SearchWidget(MainWindow *mp_mainWindow); ~SearchWidget(); QString selectedCategory() const; QString selectedEngine() const; - static qreal getPluginVersion(QString filePath) { - QFile plugin(filePath); - if (!plugin.exists()) { - qDebug("%s plugin does not exist, returning 0.0", qPrintable(filePath)); - return 0.0; - } - if (!plugin.open(QIODevice::ReadOnly | QIODevice::Text)) { - return 0.0; - } - qreal version = 0.0; - while (!plugin.atEnd()) { - QByteArray line = plugin.readLine(); - if (line.startsWith("#VERSION: ")) { - line = line.split(' ').last().trimmed(); - version = line.toFloat(); - qDebug("plugin %s version: %.2f", qPrintable(filePath), version); - break; - } - } - return version; - } - public slots: - void on_download_button_clicked(); - void downloadTorrent(QString engine_url, QString torrent_url); + void downloadTorrent(QString url); void giveFocusToSearchInput(); -protected slots: +private slots: // Search slots void tab_changed(int);//to prevent the use of the download button when the tab is empty void on_search_button_clicked(); + void on_download_button_clicked(); void closeTab(int index); - void appendSearchResult(const QString &line); - void searchFinished(int exitcode,QProcess::ExitStatus); - void readSearchOutput(); + void appendSearchResults(const QList &results); void searchStarted(); - void updateNova(); + void searchFinished(bool cancelled); + void searchFailed(); void selectMultipleBox(const QString &text); - void on_enginesButton_clicked(); + void on_pluginsButton_clicked(); void saveResultsColumnsWidth(); - void downloadFinished(int exitcode, QProcess::ExitStatus); void fillCatCombobox(); - void fillEngineComboBox(); + void fillPluginComboBox(); void searchTextEdited(QString); - -private slots: void on_goToDescBtn_clicked(); void on_copyURLBtn_clicked(); private: // Search related LineEdit* search_pattern; - QProcess *searchProcess; - QList downloaders; - bool search_stopped; + bool no_search_results; QByteArray search_result_line_truncated; unsigned long nb_search_results; - SupportedEngines *supported_engines; - QTimer *searchTimeout; + SearchEngine *m_searchEngine; QPointer currentSearchTab; // Selected tab QPointer activeSearchTab; // Tab with running search QList > all_tab; // To store all tabs - const SearchCategories full_cat_names; MainWindow *mp_mainWindow; bool newQueryString; }; diff --git a/src/gui/search/searchwidget.ui b/src/gui/search/searchwidget.ui index 03e422c28..d6bfa5877 100644 --- a/src/gui/search/searchwidget.ui +++ b/src/gui/search/searchwidget.ui @@ -20,7 +20,7 @@ - + @@ -142,9 +142,9 @@ - + - Search engines... + Search plugins... diff --git a/src/gui/search/supportedengines.h b/src/gui/search/supportedengines.h deleted file mode 100644 index 7835aefdb..000000000 --- a/src/gui/search/supportedengines.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2006 Christophe Dumez - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * In addition, as a special exception, the copyright holders give permission to - * link this program with the OpenSSL project's "OpenSSL" library (or with - * modified versions of it that use the same license as the "OpenSSL" library), - * and distribute the linked executables. You must obey the GNU General Public - * License in all respects for all of the code used other than "OpenSSL". If you - * modify file(s), you may extend this exception to your version of the file(s), - * but you are not obligated to do so. If you do not wish to do so, delete this - * exception statement from your version. - * - * Contact : chris@qbittorrent.org - */ - -#ifndef SEARCHENGINES_H -#define SEARCHENGINES_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "base/utils/fs.h" -#include "base/utils/misc.h" -#include "base/preferences.h" - -class SearchCategories: public QObject, public QHash { - Q_OBJECT - -public: - SearchCategories() { - (*this)["all"] = tr("All categories"); - (*this)["movies"] = tr("Movies"); - (*this)["tv"] = tr("TV shows"); - (*this)["music"] = tr("Music"); - (*this)["games"] = tr("Games"); - (*this)["anime"] = tr("Anime"); - (*this)["software"] = tr("Software"); - (*this)["pictures"] = tr("Pictures"); - (*this)["books"] = tr("Books"); - } -}; - -class SupportedEngine { -private: - QString name; - QString full_name; - QString url; - QStringList supported_categories; - bool enabled; - -public: - SupportedEngine(QDomElement engine_elem) { - name = engine_elem.tagName(); - full_name = engine_elem.elementsByTagName("name").at(0).toElement().text(); - url = engine_elem.elementsByTagName("url").at(0).toElement().text(); - supported_categories = engine_elem.elementsByTagName("categories").at(0).toElement().text().split(" "); - QStringList disabled_engines = Preferences::instance()->getSearchEngDisabled(); - enabled = !disabled_engines.contains(name); - } - - QString getName() const { return name; } - QString getUrl() const { return url; } - QString getFullName() const { return full_name; } - QStringList getSupportedCategories() const { return supported_categories; } - bool isEnabled() const { return enabled; } - void setEnabled(bool _enabled) { - enabled = _enabled; - // Save to Hard disk - Preferences* const pref = Preferences::instance(); - QStringList disabled_engines = pref->getSearchEngDisabled(); - if (enabled) { - disabled_engines.removeAll(name); - } else { - disabled_engines.append(name); - } - pref->setSearchEngDisabled(disabled_engines); - } -}; - -class SupportedEngines: public QObject, public QHash { - Q_OBJECT - -signals: - void newSupportedEngine(QString name); - -public: - SupportedEngines() { - update(); - } - - ~SupportedEngines() { - qDeleteAll(this->values()); - } - - QStringList enginesAll() const { - QStringList engines; - foreach (const SupportedEngine *engine, values()) engines << engine->getName(); - return engines; - } - - QStringList enginesEnabled() const { - QStringList engines; - foreach (const SupportedEngine *engine, values()) { - if (engine->isEnabled()) - engines << engine->getName(); - } - return engines; - } - - QStringList supportedCategories() const { - QStringList supported_cat; - foreach (const SupportedEngine *engine, values()) { - if (engine->isEnabled()) { - const QStringList &s = engine->getSupportedCategories(); - foreach (QString cat, s) { - cat = cat.trimmed(); - if (!cat.isEmpty() && !supported_cat.contains(cat)) - supported_cat << cat; - } - } - } - return supported_cat; - } - -public slots: - void update() { - QProcess nova; - nova.setEnvironment(QProcess::systemEnvironment()); - QStringList params; - params << Utils::Fs::toNativePath(Utils::Fs::searchEngineLocation()+"/nova2.py"); - params << "--capabilities"; - nova.start(Utils::Misc::pythonExecutable(), params, QIODevice::ReadOnly); - nova.waitForStarted(); - nova.waitForFinished(); - QString capabilities = QString(nova.readAll()); - QDomDocument xml_doc; - if (!xml_doc.setContent(capabilities)) { - qWarning() << "Could not parse Nova search engine capabilities, msg: " << capabilities.toLocal8Bit().data(); - qWarning() << "Error: " << nova.readAllStandardError().constData(); - return; - } - QDomElement root = xml_doc.documentElement(); - if (root.tagName() != "capabilities") { - qWarning() << "Invalid XML file for Nova search engine capabilities, msg: " << capabilities.toLocal8Bit().data(); - return; - } - for (QDomNode engine_node = root.firstChild(); !engine_node.isNull(); engine_node = engine_node.nextSibling()) { - QDomElement engine_elem = engine_node.toElement(); - if (!engine_elem.isNull()) { - SupportedEngine *s = new SupportedEngine(engine_elem); - if (this->contains(s->getName())) { - // Already in the list - delete s; - } else { - qDebug("Supported search engine: %s", s->getFullName().toLocal8Bit().data()); - (*this)[s->getName()] = s; - emit newSupportedEngine(s->getName()); - } - } - } - } -}; - -#endif // SEARCHENGINES_H diff --git a/src/searchengine.qrc b/src/searchengine.qrc index a3022d37f..e9fe88c57 100644 --- a/src/searchengine.qrc +++ b/src/searchengine.qrc @@ -3,7 +3,6 @@ searchengine/nova/fix_encoding.py searchengine/nova/helpers.py searchengine/nova/nova2.py - searchengine/nova/nova2dl.py searchengine/nova/novaprinter.py searchengine/nova/socks.py searchengine/nova/engines/btdigg.png @@ -26,7 +25,6 @@ searchengine/nova/engines/torrentz.py searchengine/nova3/helpers.py searchengine/nova3/nova2.py - searchengine/nova3/nova2dl.py searchengine/nova3/novaprinter.py searchengine/nova3/sgmllib3.py searchengine/nova3/socks.py diff --git a/src/searchengine/nova/nova2dl.py b/src/searchengine/nova/nova2dl.py deleted file mode 100644 index 31681a268..000000000 --- a/src/searchengine/nova/nova2dl.py +++ /dev/null @@ -1,61 +0,0 @@ -#VERSION: 1.20 - -# Author: -# Christophe DUMEZ (chris@qbittorrent.org) - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the author nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -import sys -import os -import glob -from helpers import download_file - -supported_engines = dict() - -engines = glob.glob(os.path.join(os.path.dirname(__file__), 'engines','*.py')) -for engine in engines: - e = engine.split(os.sep)[-1][:-3] - if len(e.strip()) == 0: continue - if e.startswith('_'): continue - try: - exec("from engines.%s import %s"%(e,e)) - exec("engine_url = %s.url"%e) - supported_engines[engine_url] = e - except: - pass - -if __name__ == '__main__': - if len(sys.argv) < 3: - raise SystemExit('./nova2dl.py engine_url download_parameter') - engine_url = sys.argv[1].strip() - download_param = sys.argv[2].strip() - if engine_url not in list(supported_engines.keys()): - raise SystemExit('./nova2dl.py: this engine_url was not recognized') - exec("engine = %s()"%supported_engines[engine_url]) - if hasattr(engine, 'download_torrent'): - engine.download_torrent(download_param) - else: - print(download_file(download_param)) - sys.exit(0) diff --git a/src/searchengine/nova3/nova2dl.py b/src/searchengine/nova3/nova2dl.py deleted file mode 100644 index 31681a268..000000000 --- a/src/searchengine/nova3/nova2dl.py +++ /dev/null @@ -1,61 +0,0 @@ -#VERSION: 1.20 - -# Author: -# Christophe DUMEZ (chris@qbittorrent.org) - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of the author nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. - -import sys -import os -import glob -from helpers import download_file - -supported_engines = dict() - -engines = glob.glob(os.path.join(os.path.dirname(__file__), 'engines','*.py')) -for engine in engines: - e = engine.split(os.sep)[-1][:-3] - if len(e.strip()) == 0: continue - if e.startswith('_'): continue - try: - exec("from engines.%s import %s"%(e,e)) - exec("engine_url = %s.url"%e) - supported_engines[engine_url] = e - except: - pass - -if __name__ == '__main__': - if len(sys.argv) < 3: - raise SystemExit('./nova2dl.py engine_url download_parameter') - engine_url = sys.argv[1].strip() - download_param = sys.argv[2].strip() - if engine_url not in list(supported_engines.keys()): - raise SystemExit('./nova2dl.py: this engine_url was not recognized') - exec("engine = %s()"%supported_engines[engine_url]) - if hasattr(engine, 'download_torrent'): - engine.download_torrent(download_param) - else: - print(download_file(download_param)) - sys.exit(0) diff --git a/src/src.pro b/src/src.pro index b1cd75c7e..5ced20049 100644 --- a/src/src.pro +++ b/src/src.pro @@ -34,7 +34,7 @@ nogui { } nowebui: DEFINES += DISABLE_WEBUI strace_win: DEFINES += STACKTRACE_WIN -QT += network +QT += network xml greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # Vars From ac365c5efba27e26aed01e617124d6fc4c058178 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Thu, 24 Sep 2015 10:33:02 +0300 Subject: [PATCH 042/238] Fix coding style (Issue #2192). --- src/base/searchengine.cpp | 10 +- src/base/searchengine.h | 5 +- src/gui/gui.pri | 5 +- src/gui/search/pluginselectdlg.cpp | 524 ++++++++++++++------------ src/gui/search/pluginselectdlg.h | 35 +- src/gui/search/pluginsourcedlg.cpp | 51 +++ src/gui/search/pluginsourcedlg.h | 34 +- src/gui/search/searchlistdelegate.cpp | 74 ++++ src/gui/search/searchlistdelegate.h | 47 +-- src/gui/search/searchsortmodel.cpp | 54 +++ src/gui/search/searchsortmodel.h | 65 ++-- src/gui/search/searchtab.cpp | 148 ++++---- src/gui/search/searchtab.h | 60 +-- src/gui/search/searchwidget.cpp | 227 +++++------ src/gui/search/searchwidget.h | 56 ++- src/gui/search/searchwidget.ui | 6 +- 16 files changed, 797 insertions(+), 604 deletions(-) create mode 100644 src/gui/search/pluginsourcedlg.cpp create mode 100644 src/gui/search/searchlistdelegate.cpp create mode 100644 src/gui/search/searchsortmodel.cpp diff --git a/src/base/searchengine.cpp b/src/base/searchengine.cpp index 19d056fdf..624f47d5a 100644 --- a/src/base/searchengine.cpp +++ b/src/base/searchengine.cpp @@ -30,8 +30,8 @@ #include #include #include -#include #include +#include #include #include "base/utils/fs.h" @@ -62,8 +62,8 @@ static inline void removePythonScriptIfExists(const QString &scriptPath) const QHash SearchEngine::m_categoryNames = SearchEngine::initializeCategoryNames(); SearchEngine::SearchEngine() - : m_searchStopped(false) - , m_updateUrl(QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/%1/engines/").arg(Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova")) + : m_updateUrl(QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/%1/engines/").arg(Utils::Misc::pythonVersion() >= 3 ? "nova3" : "nova")) + , m_searchStopped(false) { updateNova(); @@ -71,7 +71,7 @@ SearchEngine::SearchEngine() m_searchProcess->setEnvironment(QProcess::systemEnvironment()); connect(m_searchProcess, SIGNAL(started()), this, SIGNAL(searchStarted())); connect(m_searchProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(readSearchOutput())); - connect(m_searchProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(processFinished(int, QProcess::ExitStatus))); + connect(m_searchProcess, SIGNAL(finished(int)), this, SLOT(processFinished(int))); m_searchTimeout = new QTimer(this); m_searchTimeout->setSingleShot(true); @@ -315,7 +315,7 @@ QString SearchEngine::engineLocation() // Slot called when QProcess is Finished // QProcess can be finished for 3 reasons : // Error | Stopped by user | Finished normally -void SearchEngine::processFinished(int exitcode, QProcess::ExitStatus) +void SearchEngine::processFinished(int exitcode) { m_searchTimeout->stop(); diff --git a/src/base/searchengine.h b/src/base/searchengine.h index 908e3d0d5..084affdf3 100644 --- a/src/base/searchengine.h +++ b/src/base/searchengine.h @@ -30,11 +30,12 @@ #ifndef SEARCHENGINE_H #define SEARCHENGINE_H +#include #include #include -#include #include +class QProcess; class QTimer; struct PluginInfo @@ -104,7 +105,7 @@ signals: private slots: void onTimeout(); void readSearchOutput(); - void processFinished(int exitcode, QProcess::ExitStatus); + void processFinished(int exitcode); void versionInfoDownloaded(const QString &url, const QByteArray &data); void versionInfoDownloadFailed(const QString &url, const QString &reason); void pluginDownloaded(const QString &url, QString filePath); diff --git a/src/gui/gui.pri b/src/gui/gui.pri index 13ab015f4..d5c285fef 100644 --- a/src/gui/gui.pri +++ b/src/gui/gui.pri @@ -81,7 +81,10 @@ SOURCES += \ $$PWD/torrentcreatordlg.cpp \ $$PWD/search/searchwidget.cpp \ $$PWD/search/searchtab.cpp \ - $$PWD/search/pluginselectdlg.cpp + $$PWD/search/pluginselectdlg.cpp \ + $$PWD/search/pluginsourcedlg.cpp \ + $$PWD/search/searchlistdelegate.cpp \ + $$PWD/search/searchsortmodel.cpp win32|macx { HEADERS += $$PWD/programupdater.h diff --git a/src/gui/search/pluginselectdlg.cpp b/src/gui/search/pluginselectdlg.cpp index 9f5c5e175..ecea3068f 100644 --- a/src/gui/search/pluginselectdlg.cpp +++ b/src/gui/search/pluginselectdlg.cpp @@ -29,18 +29,6 @@ * Contact : chris@qbittorrent.org */ -#include "pluginselectdlg.h" -#include "base/utils/fs.h" -#include "base/utils/misc.h" -#include "base/net/downloadmanager.h" -#include "base/net/downloadhandler.h" -#include "base/searchengine.h" -#include "ico.h" -#include "searchwidget.h" -#include "pluginsourcedlg.h" -#include "guiiconprovider.h" -#include "autoexpandabledialog.h" -#include #include #include #include @@ -53,224 +41,264 @@ #include #endif -enum PluginColumns {PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_URL, PLUGIN_STATE, PLUGIN_ID}; +#include "base/utils/fs.h" +#include "base/utils/misc.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "base/searchengine.h" +#include "ico.h" +#include "searchwidget.h" +#include "pluginsourcedlg.h" +#include "guiiconprovider.h" +#include "autoexpandabledialog.h" +#include "pluginselectdlg.h" + +enum PluginColumns +{ + PLUGIN_NAME, + PLUGIN_VERSION, + PLUGIN_URL, + PLUGIN_STATE, + PLUGIN_ID +}; PluginSelectDlg::PluginSelectDlg(SearchEngine *pluginManager, QWidget *parent) : QDialog(parent) , m_pluginManager(pluginManager) , m_asyncOps(0) { - setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); + setupUi(this); + setAttribute(Qt::WA_DeleteOnClose); + #ifdef QBT_USES_QT5 - // This hack fixes reordering of first column with Qt5. - // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 - QTableView unused; - unused.setVerticalHeader(pluginsTree->header()); - pluginsTree->header()->setParent(pluginsTree); - unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); + // This hack fixes reordering of first column with Qt5. + // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 + QTableView unused; + unused.setVerticalHeader(pluginsTree->header()); + pluginsTree->header()->setParent(pluginsTree); + unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); #endif - pluginsTree->setRootIsDecorated(false); - pluginsTree->header()->resizeSection(0, 160); - pluginsTree->header()->resizeSection(1, 80); - pluginsTree->header()->resizeSection(2, 200); - pluginsTree->hideColumn(PLUGIN_ID); - actionUninstall->setIcon(GuiIconProvider::instance()->getIcon("list-remove")); + pluginsTree->setRootIsDecorated(false); + pluginsTree->header()->resizeSection(0, 160); + pluginsTree->header()->resizeSection(1, 80); + pluginsTree->header()->resizeSection(2, 200); + pluginsTree->hideColumn(PLUGIN_ID); - connect(actionEnable, SIGNAL(toggled(bool)), this, SLOT(enableSelection(bool))); - connect(pluginsTree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayContextMenu(const QPoint&))); - connect(pluginsTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(togglePluginState(QTreeWidgetItem*, int))); + actionUninstall->setIcon(GuiIconProvider::instance()->getIcon("list-remove")); - loadSupportedSearchPlugins(); + connect(actionEnable, SIGNAL(toggled(bool)), this, SLOT(enableSelection(bool))); + connect(pluginsTree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayContextMenu(const QPoint&))); + connect(pluginsTree, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(togglePluginState(QTreeWidgetItem*, int))); - connect(m_pluginManager, SIGNAL(pluginInstalled(QString)), SLOT(pluginInstalled(QString))); - connect(m_pluginManager, SIGNAL(pluginInstallationFailed(QString, QString)), SLOT(pluginInstallationFailed(QString, QString))); - connect(m_pluginManager, SIGNAL(pluginUpdated(QString)), SLOT(pluginUpdated(QString))); - connect(m_pluginManager, SIGNAL(pluginUpdateFailed(QString, QString)), SLOT(pluginUpdateFailed(QString, QString))); - connect(m_pluginManager, SIGNAL(checkForUpdatesFinished(QHash)), SLOT(checkForUpdatesFinished(QHash))); - connect(m_pluginManager, SIGNAL(checkForUpdatesFailed(QString)), SLOT(checkForUpdatesFailed(QString))); + loadSupportedSearchPlugins(); - show(); + connect(m_pluginManager, SIGNAL(pluginInstalled(QString)), SLOT(pluginInstalled(QString))); + connect(m_pluginManager, SIGNAL(pluginInstallationFailed(QString, QString)), SLOT(pluginInstallationFailed(QString, QString))); + connect(m_pluginManager, SIGNAL(pluginUpdated(QString)), SLOT(pluginUpdated(QString))); + connect(m_pluginManager, SIGNAL(pluginUpdateFailed(QString, QString)), SLOT(pluginUpdateFailed(QString, QString))); + connect(m_pluginManager, SIGNAL(checkForUpdatesFinished(QHash)), SLOT(checkForUpdatesFinished(QHash))); + connect(m_pluginManager, SIGNAL(checkForUpdatesFailed(QString)), SLOT(checkForUpdatesFailed(QString))); + + show(); } -PluginSelectDlg::~PluginSelectDlg() { - emit pluginsChanged(); +PluginSelectDlg::~PluginSelectDlg() +{ + emit pluginsChanged(); } -void PluginSelectDlg::dropEvent(QDropEvent *event) { - event->acceptProposedAction(); - QStringList files; - if (event->mimeData()->hasUrls()) { - const QList urls = event->mimeData()->urls(); - foreach (const QUrl &url, urls) { - if (!url.isEmpty()) { - if (url.scheme().compare("file", Qt::CaseInsensitive) == 0) - files << url.toLocalFile(); - else - files << url.toString(); - } +void PluginSelectDlg::dropEvent(QDropEvent *event) +{ + event->acceptProposedAction(); + + QStringList files; + if (event->mimeData()->hasUrls()) { + foreach (const QUrl &url, event->mimeData()->urls()) { + if (!url.isEmpty()) { + if (url.scheme().compare("file", Qt::CaseInsensitive) == 0) + files << url.toLocalFile(); + else + files << url.toString(); + } + } + } + else { + files = event->mimeData()->text().split(QLatin1String("\n")); } - } - else { - files = event->mimeData()->text().split(QString::fromUtf8("\n")); - } - if (files.isEmpty()) return; + if (files.isEmpty()) return; - foreach (QString file, files) { - qDebug("dropped %s", qPrintable(file)); - startAsyncOp(); - m_pluginManager->installPlugin(file); - } + foreach (QString file, files) { + qDebug("dropped %s", qPrintable(file)); + startAsyncOp(); + m_pluginManager->installPlugin(file); + } } // Decode if we accept drag 'n drop or not -void PluginSelectDlg::dragEnterEvent(QDragEnterEvent *event) { - QString mime; - foreach (mime, event->mimeData()->formats()) { - qDebug("mimeData: %s", qPrintable(mime)); - } - if (event->mimeData()->hasFormat(QString::fromUtf8("text/plain")) || event->mimeData()->hasFormat(QString::fromUtf8("text/uri-list"))) { - event->acceptProposedAction(); - } +void PluginSelectDlg::dragEnterEvent(QDragEnterEvent *event) +{ + QString mime; + foreach (mime, event->mimeData()->formats()) { + qDebug("mimeData: %s", qPrintable(mime)); + } + + if (event->mimeData()->hasFormat(QLatin1String("text/plain")) || event->mimeData()->hasFormat(QLatin1String("text/uri-list"))) { + event->acceptProposedAction(); + } } -void PluginSelectDlg::on_updateButton_clicked() { - startAsyncOp(); - m_pluginManager->checkForUpdates(); +void PluginSelectDlg::on_updateButton_clicked() +{ + startAsyncOp(); + m_pluginManager->checkForUpdates(); } -void PluginSelectDlg::togglePluginState(QTreeWidgetItem *item, int) { - PluginInfo *plugin = m_pluginManager->pluginInfo(item->text(PLUGIN_ID)); - m_pluginManager->enablePlugin(plugin->name, !plugin->enabled); - if (plugin->enabled) { - item->setText(PLUGIN_STATE, tr("Yes")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); - } else { - item->setText(PLUGIN_STATE, tr("No")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); - } -} - -void PluginSelectDlg::displayContextMenu(const QPoint&) { - QMenu myContextMenu(this); - // Enable/disable pause/start action given the DL state - QList items = pluginsTree->selectedItems(); - if (items.isEmpty()) return; - QString first_id = items.first()->text(PLUGIN_ID); - actionEnable->setChecked(m_pluginManager->pluginInfo(first_id)->enabled); - myContextMenu.addAction(actionEnable); - myContextMenu.addSeparator(); - myContextMenu.addAction(actionUninstall); - myContextMenu.exec(QCursor::pos()); -} - -void PluginSelectDlg::on_closeButton_clicked() { - close(); -} - -void PluginSelectDlg::on_actionUninstall_triggered() { - QList items = pluginsTree->selectedItems(); - QTreeWidgetItem *item; - bool error = false; - foreach (item, items) { - int index = pluginsTree->indexOfTopLevelItem(item); - Q_ASSERT(index != -1); - QString id = item->text(PLUGIN_ID); - if (m_pluginManager->uninstallPlugin(id)) { - delete item; +void PluginSelectDlg::togglePluginState(QTreeWidgetItem *item, int) +{ + PluginInfo *plugin = m_pluginManager->pluginInfo(item->text(PLUGIN_ID)); + m_pluginManager->enablePlugin(plugin->name, !plugin->enabled); + if (plugin->enabled) { + item->setText(PLUGIN_STATE, tr("Yes")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); } else { - error = true; - // Disable it instead - m_pluginManager->enablePlugin(id, false); item->setText(PLUGIN_STATE, tr("No")); - setRowColor(index, "red"); - continue; + setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); } - } - if (error) - QMessageBox::warning(0, tr("Uninstall warning"), tr("Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled.\nThose plugins were disabled.")); - else - QMessageBox::information(0, tr("Uninstall success"), tr("All selected plugins were uninstalled successfully")); } -void PluginSelectDlg::enableSelection(bool enable) { - QList items = pluginsTree->selectedItems(); - QTreeWidgetItem *item; - foreach (item, items) { - int index = pluginsTree->indexOfTopLevelItem(item); - Q_ASSERT(index != -1); - QString id = item->text(PLUGIN_ID); - m_pluginManager->enablePlugin(id, enable); - if (enable) { - item->setText(PLUGIN_STATE, tr("Yes")); - setRowColor(index, "green"); - } else { - item->setText(PLUGIN_STATE, tr("No")); - setRowColor(index, "red"); +void PluginSelectDlg::displayContextMenu(const QPoint&) +{ + QMenu myContextMenu(this); + // Enable/disable pause/start action given the DL state + QList items = pluginsTree->selectedItems(); + if (items.isEmpty()) return; + + QString first_id = items.first()->text(PLUGIN_ID); + actionEnable->setChecked(m_pluginManager->pluginInfo(first_id)->enabled); + myContextMenu.addAction(actionEnable); + myContextMenu.addSeparator(); + myContextMenu.addAction(actionUninstall); + myContextMenu.exec(QCursor::pos()); +} + +void PluginSelectDlg::on_closeButton_clicked() +{ + close(); +} + +void PluginSelectDlg::on_actionUninstall_triggered() +{ + bool error = false; + foreach (QTreeWidgetItem *item, pluginsTree->selectedItems()) { + int index = pluginsTree->indexOfTopLevelItem(item); + Q_ASSERT(index != -1); + QString id = item->text(PLUGIN_ID); + if (m_pluginManager->uninstallPlugin(id)) { + delete item; + } + else { + error = true; + // Disable it instead + m_pluginManager->enablePlugin(id, false); + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(index, "red"); + } + } + + if (error) + QMessageBox::warning(0, tr("Uninstall warning"), tr("Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled.\nThose plugins were disabled.")); + else + QMessageBox::information(0, tr("Uninstall success"), tr("All selected plugins were uninstalled successfully")); +} + +void PluginSelectDlg::enableSelection(bool enable) +{ + foreach (QTreeWidgetItem *item, pluginsTree->selectedItems()) { + int index = pluginsTree->indexOfTopLevelItem(item); + Q_ASSERT(index != -1); + QString id = item->text(PLUGIN_ID); + m_pluginManager->enablePlugin(id, enable); + if (enable) { + item->setText(PLUGIN_STATE, tr("Yes")); + setRowColor(index, "green"); + } + else { + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(index, "red"); + } } - } } // Set the color of a row in data model -void PluginSelectDlg::setRowColor(int row, QString color) { - QTreeWidgetItem *item = pluginsTree->topLevelItem(row); - for (int i=0; icolumnCount(); ++i) { - item->setData(i, Qt::ForegroundRole, QVariant(QColor(color))); - } +void PluginSelectDlg::setRowColor(int row, QString color) +{ + QTreeWidgetItem *item = pluginsTree->topLevelItem(row); + for (int i = 0; i < pluginsTree->columnCount(); ++i) { + item->setData(i, Qt::ForegroundRole, QVariant(QColor(color))); + } } -QList PluginSelectDlg::findItemsWithUrl(QString url) { - QList res; - for (int i=0; itopLevelItemCount(); ++i) { - QTreeWidgetItem *item = pluginsTree->topLevelItem(i); - if (url.startsWith(item->text(PLUGIN_URL), Qt::CaseInsensitive)) - res << item; - } - return res; +QList PluginSelectDlg::findItemsWithUrl(QString url) +{ + QList res; + + for (int i = 0; i < pluginsTree->topLevelItemCount(); ++i) { + QTreeWidgetItem *item = pluginsTree->topLevelItem(i); + if (url.startsWith(item->text(PLUGIN_URL), Qt::CaseInsensitive)) + res << item; + } + + return res; } -QTreeWidgetItem* PluginSelectDlg::findItemWithID(QString id) { - for (int i=0; itopLevelItemCount(); ++i) { - QTreeWidgetItem *item = pluginsTree->topLevelItem(i); - if (id == item->text(PLUGIN_ID)) - return item; - } - return 0; +QTreeWidgetItem* PluginSelectDlg::findItemWithID(QString id) +{ + for (int i = 0; i < pluginsTree->topLevelItemCount(); ++i) { + QTreeWidgetItem *item = pluginsTree->topLevelItem(i); + if (id == item->text(PLUGIN_ID)) + return item; + } + + return 0; } -void PluginSelectDlg::loadSupportedSearchPlugins() { - // Some clean up first - pluginsTree->clear(); - foreach (QString name, m_pluginManager->allPlugins()) - addNewPlugin(name); +void PluginSelectDlg::loadSupportedSearchPlugins() +{ + // Some clean up first + pluginsTree->clear(); + foreach (QString name, m_pluginManager->allPlugins()) + addNewPlugin(name); } -void PluginSelectDlg::addNewPlugin(QString engine_name) { - QTreeWidgetItem *item = new QTreeWidgetItem(pluginsTree); - PluginInfo *plugin = m_pluginManager->pluginInfo(engine_name); - item->setText(PLUGIN_NAME, plugin->fullName); - item->setText(PLUGIN_URL, plugin->url); - item->setText(PLUGIN_ID, plugin->name); - if (plugin->enabled) { - item->setText(PLUGIN_STATE, tr("Yes")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); - } else { - item->setText(PLUGIN_STATE, tr("No")); - setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); - } - // Handle icon - if (QFile::exists(plugin->iconPath)) { - // Good, we already have the icon - item->setData(PLUGIN_NAME, Qt::DecorationRole, QVariant(QIcon(plugin->iconPath))); - } else { - // Icon is missing, we must download it - Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(plugin->url + "/favicon.ico", true); - connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(iconDownloaded(QString, QString))); - connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(iconDownloadFailed(QString, QString))); - } - item->setText(PLUGIN_VERSION, QString::number(plugin->version, 'f', 2)); +void PluginSelectDlg::addNewPlugin(QString pluginName) +{ + QTreeWidgetItem *item = new QTreeWidgetItem(pluginsTree); + PluginInfo *plugin = m_pluginManager->pluginInfo(pluginName); + item->setText(PLUGIN_NAME, plugin->fullName); + item->setText(PLUGIN_URL, plugin->url); + item->setText(PLUGIN_ID, plugin->name); + if (plugin->enabled) { + item->setText(PLUGIN_STATE, tr("Yes")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "green"); + } + else { + item->setText(PLUGIN_STATE, tr("No")); + setRowColor(pluginsTree->indexOfTopLevelItem(item), "red"); + } + // Handle icon + if (QFile::exists(plugin->iconPath)) { + // Good, we already have the icon + item->setData(PLUGIN_NAME, Qt::DecorationRole, QVariant(QIcon(plugin->iconPath))); + } + else { + // Icon is missing, we must download it + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(plugin->url + "/favicon.ico", true); + connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(iconDownloaded(QString, QString))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(iconDownloadFailed(QString, QString))); + } + item->setText(PLUGIN_VERSION, QString::number(plugin->version, 'f', 2)); } void PluginSelectDlg::startAsyncOp() @@ -287,75 +315,77 @@ void PluginSelectDlg::finishAsyncOp() setCursor(QCursor(Qt::ArrowCursor)); } -void PluginSelectDlg::on_installButton_clicked() { - PluginSourceDlg *dlg = new PluginSourceDlg(this); - connect(dlg, SIGNAL(askForLocalFile()), this, SLOT(askForLocalPlugin())); - connect(dlg, SIGNAL(askForUrl()), this, SLOT(askForPluginUrl())); +void PluginSelectDlg::on_installButton_clicked() +{ + PluginSourceDlg *dlg = new PluginSourceDlg(this); + connect(dlg, SIGNAL(askForLocalFile()), this, SLOT(askForLocalPlugin())); + connect(dlg, SIGNAL(askForUrl()), this, SLOT(askForPluginUrl())); } -void PluginSelectDlg::askForPluginUrl() { - bool ok(false); - QString clipTxt = qApp->clipboard()->text(); - QString defaultUrl = "http://"; - if (Utils::Misc::isUrl(clipTxt) && clipTxt.endsWith(".py")) - defaultUrl = clipTxt; - QString url = AutoExpandableDialog::getText(this, tr("New search engine plugin URL"), - tr("URL:"), QLineEdit::Normal, - defaultUrl, &ok); +void PluginSelectDlg::askForPluginUrl() +{ + bool ok = false; + QString clipTxt = qApp->clipboard()->text(); + QString defaultUrl = "http://"; + if (Utils::Misc::isUrl(clipTxt) && clipTxt.endsWith(".py")) + defaultUrl = clipTxt; + QString url = AutoExpandableDialog::getText( + this, tr("New search engine plugin URL"), + tr("URL:"), QLineEdit::Normal, defaultUrl, &ok + ); - while(true) { - if (!ok || url.isEmpty()) - return; - if (!url.endsWith(".py")) { - QMessageBox::warning(this, tr("Invalid link"), tr("The link doesn't seem to point to a search engine plugin.")); - url = AutoExpandableDialog::getText(this, tr("New search engine plugin URL"), - tr("URL:"), QLineEdit::Normal, - url, &ok); + while (ok && !url.isEmpty() && !url.endsWith(".py")) { + QMessageBox::warning(this, tr("Invalid link"), tr("The link doesn't seem to point to a search engine plugin.")); + url = AutoExpandableDialog::getText( + this, tr("New search engine plugin URL"), + tr("URL:"), QLineEdit::Normal, url, &ok + ); } - else - break; - } - startAsyncOp(); - m_pluginManager->installPlugin(url); -} - -void PluginSelectDlg::askForLocalPlugin() { - QStringList pathsList = QFileDialog::getOpenFileNames(0, - tr("Select search plugins"), QDir::homePath(), - tr("qBittorrent search plugin")+QString::fromUtf8(" (*.py)")); - foreach (QString path, pathsList) { - startAsyncOp(); - m_pluginManager->installPlugin(path); - } -} - -void PluginSelectDlg::iconDownloaded(const QString &url, QString filePath) { - filePath = Utils::Fs::fromNativePath(filePath); - - // Icon downloaded - QImage fileIcon; - if (fileIcon.load(filePath)) { - QList items = findItemsWithUrl(url); - QTreeWidgetItem *item; - foreach (item, items) { - QString id = item->text(PLUGIN_ID); - PluginInfo *plugin = m_pluginManager->pluginInfo(id); - if (!plugin) continue; - - QFile icon(filePath); - icon.open(QIODevice::ReadOnly); - QString iconPath = QString("%1/%2.%3").arg(SearchEngine::pluginsLocation()).arg(id).arg(ICOHandler::canRead(&icon) ? "ico" : "png"); - if (QFile::copy(filePath, iconPath)) - item->setData(PLUGIN_NAME, Qt::DecorationRole, QVariant(QIcon(iconPath))); + if (ok && !url.isEmpty()) { + startAsyncOp(); + m_pluginManager->installPlugin(url); } - } - // Delete tmp file - Utils::Fs::forceRemove(filePath); } -void PluginSelectDlg::iconDownloadFailed(const QString &url, const QString &reason) { - qDebug("Could not download favicon: %s, reason: %s", qPrintable(url), qPrintable(reason)); +void PluginSelectDlg::askForLocalPlugin() +{ + QStringList pathsList = QFileDialog::getOpenFileNames( + 0, tr("Select search plugins"), QDir::homePath(), + tr("qBittorrent search plugin") + QLatin1String(" (*.py)") + ); + foreach (QString path, pathsList) { + startAsyncOp(); + m_pluginManager->installPlugin(path); + } +} + +void PluginSelectDlg::iconDownloaded(const QString &url, QString filePath) +{ + filePath = Utils::Fs::fromNativePath(filePath); + + // Icon downloaded + QImage fileIcon; + if (fileIcon.load(filePath)) { + foreach (QTreeWidgetItem *item, findItemsWithUrl(url)) { + QString id = item->text(PLUGIN_ID); + PluginInfo *plugin = m_pluginManager->pluginInfo(id); + if (!plugin) continue; + + QFile icon(filePath); + icon.open(QIODevice::ReadOnly); + QString iconPath = QString("%1/%2.%3").arg(SearchEngine::pluginsLocation()).arg(id).arg(ICOHandler::canRead(&icon) ? "ico" : "png"); + if (QFile::copy(filePath, iconPath)) + item->setData(PLUGIN_NAME, Qt::DecorationRole, QVariant(QIcon(iconPath))); + } + } + // Delete tmp file + Utils::Fs::forceRemove(filePath); +} + +void PluginSelectDlg::iconDownloadFailed(const QString &url, const QString &reason) +{ + qDebug("Could not download favicon: %s, reason: %s", qPrintable(url), qPrintable(reason)); } void PluginSelectDlg::checkForUpdatesFinished(const QHash &updateInfo) diff --git a/src/gui/search/pluginselectdlg.h b/src/gui/search/pluginselectdlg.h index 1292bfe49..85accdab8 100644 --- a/src/gui/search/pluginselectdlg.h +++ b/src/gui/search/pluginselectdlg.h @@ -34,42 +34,36 @@ #include "ui_pluginselectdlg.h" -QT_BEGIN_NAMESPACE class QDropEvent; -QT_END_NAMESPACE - class SearchEngine; -class PluginSelectDlg : public QDialog, public Ui::PluginSelectDlg +class PluginSelectDlg: public QDialog, private Ui::PluginSelectDlg { - Q_OBJECT + Q_OBJECT - private: - SearchEngine *m_pluginManager; - int m_asyncOps; - - public: - PluginSelectDlg(SearchEngine *pluginManager, QWidget *parent = 0); +public: + explicit PluginSelectDlg(SearchEngine *pluginManager, QWidget *parent = 0); ~PluginSelectDlg(); + QList findItemsWithUrl(QString url); QTreeWidgetItem* findItemWithID(QString id); - signals: +signals: void pluginsChanged(); - protected: +protected: void dropEvent(QDropEvent *event); void dragEnterEvent(QDragEnterEvent *event); - private slots: +private slots: + void on_actionUninstall_triggered(); + void on_updateButton_clicked(); + void on_installButton_clicked(); void on_closeButton_clicked(); void togglePluginState(QTreeWidgetItem*, int); void setRowColor(int row, QString color); void displayContextMenu(const QPoint& pos); void enableSelection(bool enable); - void on_actionUninstall_triggered(); - void on_updateButton_clicked(); - void on_installButton_clicked(); void askForLocalPlugin(); void askForPluginUrl(); void iconDownloaded(const QString &url, QString filePath); @@ -82,11 +76,14 @@ class PluginSelectDlg : public QDialog, public Ui::PluginSelectDlg void pluginUpdated(const QString &name); void pluginUpdateFailed(const QString &name, const QString &reason); - private: +private: void loadSupportedSearchPlugins(); - void addNewPlugin(QString engine_name); + void addNewPlugin(QString pluginName); void startAsyncOp(); void finishAsyncOp(); + + SearchEngine *m_pluginManager; + int m_asyncOps; }; #endif // PLUGINSELECTDLG_H diff --git a/src/gui/search/pluginsourcedlg.cpp b/src/gui/search/pluginsourcedlg.cpp new file mode 100644 index 000000000..8e3e6aa44 --- /dev/null +++ b/src/gui/search/pluginsourcedlg.cpp @@ -0,0 +1,51 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2006 Christophe Dumez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + * + * Contact : chris@qbittorrent.org + */ + +#include "pluginsourcedlg.h" + +PluginSourceDlg::PluginSourceDlg(QWidget *parent) + : QDialog(parent) +{ + setupUi(this); + setAttribute(Qt::WA_DeleteOnClose); + show(); +} + +void PluginSourceDlg::on_localButton_clicked() +{ + emit askForLocalFile(); + close(); +} + +void PluginSourceDlg::on_urlButton_clicked() +{ + emit askForUrl(); + close(); +} diff --git a/src/gui/search/pluginsourcedlg.h b/src/gui/search/pluginsourcedlg.h index cfabee362..4bfa514e1 100644 --- a/src/gui/search/pluginsourcedlg.h +++ b/src/gui/search/pluginsourcedlg.h @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -34,32 +34,20 @@ #include #include "ui_pluginsourcedlg.h" -class PluginSourceDlg: public QDialog, private Ui::PluginSourceDlg { - Q_OBJECT +class PluginSourceDlg: public QDialog, private Ui::PluginSourceDlg +{ + Q_OBJECT - signals: +public: + explicit PluginSourceDlg(QWidget *parent = 0); + +signals: void askForUrl(); void askForLocalFile(); - protected slots: - void on_localButton_clicked() { - emit askForLocalFile(); - close(); - } - - void on_urlButton_clicked() { - emit askForUrl(); - close(); - } - - public: - PluginSourceDlg(QWidget* parent): QDialog(parent) { - setupUi(this); - setAttribute(Qt::WA_DeleteOnClose); - show(); - } - - ~PluginSourceDlg() {} +private slots: + void on_localButton_clicked(); + void on_urlButton_clicked(); }; #endif // PLUGINSOURCEDLG_H diff --git a/src/gui/search/searchlistdelegate.cpp b/src/gui/search/searchlistdelegate.cpp new file mode 100644 index 000000000..95250d99d --- /dev/null +++ b/src/gui/search/searchlistdelegate.cpp @@ -0,0 +1,74 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2006 Christophe Dumez + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + * + * Contact : chris@qbittorrent.org + */ + +#include +#include +#include +#include + +#include "base/utils/misc.h" +#include "searchsortmodel.h" +#include "searchlistdelegate.h" + +SearchListDelegate::SearchListDelegate(QObject *parent) + : QItemDelegate(parent) +{ +} + +void SearchListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + painter->save(); + + QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); + switch(index.column()) { + case SearchSortModel::SIZE: + QItemDelegate::drawBackground(painter, opt, index); + QItemDelegate::drawDisplay(painter, opt, option.rect, Utils::Misc::friendlyUnit(index.data().toLongLong())); + break; + case SearchSortModel::SEEDS: + QItemDelegate::drawBackground(painter, opt, index); + QItemDelegate::drawDisplay(painter, opt, option.rect, (index.data().toLongLong() >= 0) ? index.data().toString() : tr("Unknown")); + break; + case SearchSortModel::LEECHS: + QItemDelegate::drawBackground(painter, opt, index); + QItemDelegate::drawDisplay(painter, opt, option.rect, (index.data().toLongLong() >= 0) ? index.data().toString() : tr("Unknown")); + break; + default: + QItemDelegate::paint(painter, option, index); + } + + painter->restore(); +} + +QWidget *SearchListDelegate::createEditor(QWidget *, const QStyleOptionViewItem &, const QModelIndex &) const +{ + // No editor here + return 0; +} diff --git a/src/gui/search/searchlistdelegate.h b/src/gui/search/searchlistdelegate.h index 2986e6d41..27d813735 100644 --- a/src/gui/search/searchlistdelegate.h +++ b/src/gui/search/searchlistdelegate.h @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2006 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -32,47 +32,14 @@ #define SEARCHLISTDELEGATE_H #include -#include -#include -#include -#include -#include "base/utils/misc.h" -#include "searchwidget.h" -class SearchListDelegate: public QItemDelegate { - Q_OBJECT +class SearchListDelegate: public QItemDelegate +{ +public: + explicit SearchListDelegate(QObject *parent = 0); - public: - SearchListDelegate(QObject *parent=0) : QItemDelegate(parent) {} - - ~SearchListDelegate() {} - - void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const { - painter->save(); - QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); - switch(index.column()) { - case SearchSortModel::SIZE: - QItemDelegate::drawBackground(painter, opt, index); - QItemDelegate::drawDisplay(painter, opt, option.rect, Utils::Misc::friendlyUnit(index.data().toLongLong())); - break; - case SearchSortModel::SEEDS: - QItemDelegate::drawBackground(painter, opt, index); - QItemDelegate::drawDisplay(painter, opt, option.rect, (index.data().toLongLong() >= 0) ? index.data().toString() : tr("Unknown")); - break; - case SearchSortModel::LEECHS: - QItemDelegate::drawBackground(painter, opt, index); - QItemDelegate::drawDisplay(painter, opt, option.rect, (index.data().toLongLong() >= 0) ? index.data().toString() : tr("Unknown")); - break; - default: - QItemDelegate::paint(painter, option, index); - } - painter->restore(); - } - - QWidget* createEditor(QWidget*, const QStyleOptionViewItem &, const QModelIndex &) const { - // No editor here - return 0; - } + void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; + QWidget* createEditor(QWidget*, const QStyleOptionViewItem &, const QModelIndex &) const; }; #endif diff --git a/src/gui/search/searchsortmodel.cpp b/src/gui/search/searchsortmodel.cpp new file mode 100644 index 000000000..4245fe389 --- /dev/null +++ b/src/gui/search/searchsortmodel.cpp @@ -0,0 +1,54 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2013 sledgehammer999 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +#include "searchsortmodel.h" + +SearchSortModel::SearchSortModel(QObject *parent) + : QSortFilterProxyModel(parent) +{ +} + +bool SearchSortModel::lessThan(const QModelIndex &left, const QModelIndex &right) const +{ + if ((sortColumn() == NAME) || (sortColumn() == ENGINE_URL)) { + QVariant vL = sourceModel()->data(left); + QVariant vR = sourceModel()->data(right); + if (!(vL.isValid() && vR.isValid())) + return QSortFilterProxyModel::lessThan(left, right); + Q_ASSERT(vL.isValid()); + Q_ASSERT(vR.isValid()); + + bool res = false; + if (Utils::String::naturalSort(vL.toString(), vR.toString(), res)) + return res; + + return QSortFilterProxyModel::lessThan(left, right); + } + + return QSortFilterProxyModel::lessThan(left, right); +} diff --git a/src/gui/search/searchsortmodel.h b/src/gui/search/searchsortmodel.h index 9b58e9964..6f85fa449 100644 --- a/src/gui/search/searchsortmodel.h +++ b/src/gui/search/searchsortmodel.h @@ -1,35 +1,56 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2013 sledgehammer999 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + #ifndef SEARCHSORTMODEL_H #define SEARCHSORTMODEL_H #include #include "base/utils/string.h" -class SearchSortModel : public QSortFilterProxyModel { - Q_OBJECT - +class SearchSortModel: public QSortFilterProxyModel +{ public: - enum SearchColumn { NAME, SIZE, SEEDS, LEECHS, ENGINE_URL, DL_LINK, DESC_LINK, NB_SEARCH_COLUMNS }; + enum SearchColumn + { + NAME, + SIZE, + SEEDS, + LEECHS, + ENGINE_URL, + DL_LINK, + DESC_LINK, + NB_SEARCH_COLUMNS + }; - SearchSortModel(QObject *parent = 0) : QSortFilterProxyModel(parent) {} + explicit SearchSortModel(QObject *parent = 0); protected: - virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const { - if (sortColumn() == NAME || sortColumn() == ENGINE_URL) { - QVariant vL = sourceModel()->data(left); - QVariant vR = sourceModel()->data(right); - if (!(vL.isValid() && vR.isValid())) - return QSortFilterProxyModel::lessThan(left, right); - Q_ASSERT(vL.isValid()); - Q_ASSERT(vR.isValid()); - - bool res = false; - if (Utils::String::naturalSort(vL.toString(), vR.toString(), res)) - return res; - - return QSortFilterProxyModel::lessThan(left, right); - } - return QSortFilterProxyModel::lessThan(left, right); - } + virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const; }; #endif // SEARCHSORTMODEL_H diff --git a/src/gui/search/searchtab.cpp b/src/gui/search/searchtab.cpp index dba224ff1..8717924ea 100644 --- a/src/gui/search/searchtab.cpp +++ b/src/gui/search/searchtab.cpp @@ -33,132 +33,140 @@ #include #include #include +#include +#include #ifdef QBT_USES_QT5 #include #endif -#include "searchtab.h" -#include "searchlistdelegate.h" #include "base/utils/misc.h" -#include "searchwidget.h" #include "base/preferences.h" +#include "searchsortmodel.h" +#include "searchlistdelegate.h" +#include "searchwidget.h" +#include "searchtab.h" -SearchTab::SearchTab(SearchWidget *parent) : QWidget(), parent(parent) +SearchTab::SearchTab(SearchWidget *parent) + : QWidget(parent) + , m_parent(parent) { - box = new QVBoxLayout(); - results_lbl = new QLabel(); - resultsBrowser = new QTreeView(); + m_box = new QVBoxLayout(this); + m_resultsLbl = new QLabel(this); + m_resultsBrowser = new QTreeView(this); #ifdef QBT_USES_QT5 // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; - unused.setVerticalHeader(resultsBrowser->header()); - resultsBrowser->header()->setParent(resultsBrowser); + unused.setVerticalHeader(m_resultsBrowser->header()); + m_resultsBrowser->header()->setParent(m_resultsBrowser); unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); #endif - resultsBrowser->setSelectionMode(QAbstractItemView::ExtendedSelection); - box->addWidget(results_lbl); - box->addWidget(resultsBrowser); + m_resultsBrowser->setSelectionMode(QAbstractItemView::ExtendedSelection); + m_box->addWidget(m_resultsLbl); + m_box->addWidget(m_resultsBrowser); + + setLayout(m_box); - setLayout(box); // Set Search results list model - SearchListModel = new QStandardItemModel(0, SearchSortModel::NB_SEARCH_COLUMNS); - SearchListModel->setHeaderData(SearchSortModel::NAME, Qt::Horizontal, tr("Name", "i.e: file name")); - SearchListModel->setHeaderData(SearchSortModel::SIZE, Qt::Horizontal, tr("Size", "i.e: file size")); - SearchListModel->setHeaderData(SearchSortModel::SEEDS, Qt::Horizontal, tr("Seeders", "i.e: Number of full sources")); - SearchListModel->setHeaderData(SearchSortModel::LEECHS, Qt::Horizontal, tr("Leechers", "i.e: Number of partial sources")); - SearchListModel->setHeaderData(SearchSortModel::ENGINE_URL, Qt::Horizontal, tr("Search engine")); + m_searchListModel = new QStandardItemModel(0, SearchSortModel::NB_SEARCH_COLUMNS, this); + m_searchListModel->setHeaderData(SearchSortModel::NAME, Qt::Horizontal, tr("Name", "i.e: file name")); + m_searchListModel->setHeaderData(SearchSortModel::SIZE, Qt::Horizontal, tr("Size", "i.e: file size")); + m_searchListModel->setHeaderData(SearchSortModel::SEEDS, Qt::Horizontal, tr("Seeders", "i.e: Number of full sources")); + m_searchListModel->setHeaderData(SearchSortModel::LEECHS, Qt::Horizontal, tr("Leechers", "i.e: Number of partial sources")); + m_searchListModel->setHeaderData(SearchSortModel::ENGINE_URL, Qt::Horizontal, tr("Search engine")); - proxyModel = new SearchSortModel(); - proxyModel->setDynamicSortFilter(true); - proxyModel->setSourceModel(SearchListModel); - resultsBrowser->setModel(proxyModel); + m_proxyModel = new SearchSortModel(this); + m_proxyModel->setDynamicSortFilter(true); + m_proxyModel->setSourceModel(m_searchListModel); + m_resultsBrowser->setModel(m_proxyModel); - SearchDelegate = new SearchListDelegate(); - resultsBrowser->setItemDelegate(SearchDelegate); + m_searchDelegate = new SearchListDelegate(this); + m_resultsBrowser->setItemDelegate(m_searchDelegate); - resultsBrowser->hideColumn(SearchSortModel::DL_LINK); // Hide url column - resultsBrowser->hideColumn(SearchSortModel::DESC_LINK); + m_resultsBrowser->hideColumn(SearchSortModel::DL_LINK); // Hide url column + m_resultsBrowser->hideColumn(SearchSortModel::DESC_LINK); - resultsBrowser->setRootIsDecorated(false); - resultsBrowser->setAllColumnsShowFocus(true); - resultsBrowser->setSortingEnabled(true); + m_resultsBrowser->setRootIsDecorated(false); + m_resultsBrowser->setAllColumnsShowFocus(true); + m_resultsBrowser->setSortingEnabled(true); // Connect signals to slots (search part) - connect(resultsBrowser, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(downloadSelectedItem(const QModelIndex&))); + connect(m_resultsBrowser, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(downloadSelectedItem(const QModelIndex&))); // Load last columns width for search results list - if (!loadColWidthResultsList()) { - resultsBrowser->header()->resizeSection(0, 275); - } + if (!loadColWidthResultsList()) + m_resultsBrowser->header()->resizeSection(0, 275); // Sort by Seeds - resultsBrowser->sortByColumn(SearchSortModel::SEEDS, Qt::DescendingOrder); + m_resultsBrowser->sortByColumn(SearchSortModel::SEEDS, Qt::DescendingOrder); } -void SearchTab::downloadSelectedItem(const QModelIndex& index) { - QString torrent_url = proxyModel->data(proxyModel->index(index.row(), SearchSortModel::DL_LINK)).toString(); +void SearchTab::downloadSelectedItem(const QModelIndex &index) +{ + QString torrentUrl = m_proxyModel->data(m_proxyModel->index(index.row(), SearchSortModel::DL_LINK)).toString(); setRowColor(index.row(), "blue"); - parent->downloadTorrent(torrent_url); + m_parent->downloadTorrent(torrentUrl); } -SearchTab::~SearchTab() { - delete box; - delete results_lbl; - delete resultsBrowser; - delete SearchListModel; - delete proxyModel; - delete SearchDelegate; +QHeaderView* SearchTab::header() const +{ + return m_resultsBrowser->header(); } -QHeaderView* SearchTab::header() const { - return resultsBrowser->header(); -} - -bool SearchTab::loadColWidthResultsList() { +bool SearchTab::loadColWidthResultsList() +{ QString line = Preferences::instance()->getSearchColsWidth(); - if (line.isEmpty()) + if (line.isEmpty()) return false; + + QStringList widthList = line.split(' '); + if (widthList.size() > m_searchListModel->columnCount()) return false; - QStringList width_list = line.split(' '); - if (width_list.size() > SearchListModel->columnCount()) - return false; - - unsigned int listSize = width_list.size(); - for (unsigned int i=0; iheader()->resizeSection(i, width_list.at(i).toInt()); + unsigned int listSize = widthList.size(); + for (unsigned int i = 0; i < listSize; ++i) { + m_resultsBrowser->header()->resizeSection(i, widthList.at(i).toInt()); } return true; } -QLabel* SearchTab::getCurrentLabel() +QLabel* SearchTab::getCurrentLabel() const { - return results_lbl; + return m_resultsLbl; } -QTreeView* SearchTab::getCurrentTreeView() +QTreeView* SearchTab::getCurrentTreeView() const { - return resultsBrowser; + return m_resultsBrowser; } QSortFilterProxyModel* SearchTab::getCurrentSearchListProxy() const { - return proxyModel; + return m_proxyModel; } QStandardItemModel* SearchTab::getCurrentSearchListModel() const { - return SearchListModel; + return m_searchListModel; } // Set the color of a row in data model -void SearchTab::setRowColor(int row, QString color) { - proxyModel->setDynamicSortFilter(false); - for (int i=0; icolumnCount(); ++i) { - proxyModel->setData(proxyModel->index(row, i), QVariant(QColor(color)), Qt::ForegroundRole); - } - proxyModel->setDynamicSortFilter(true); +void SearchTab::setRowColor(int row, QString color) +{ + m_proxyModel->setDynamicSortFilter(false); + for (int i = 0; i < m_proxyModel->columnCount(); ++i) { + m_proxyModel->setData(m_proxyModel->index(row, i), QVariant(QColor(color)), Qt::ForegroundRole); + } + + m_proxyModel->setDynamicSortFilter(true); } +QString SearchTab::status() const +{ + return m_status; +} +void SearchTab::setStatus(const QString &value) +{ + m_status = value; +} diff --git a/src/gui/search/searchtab.h b/src/gui/search/searchtab.h index cab2ab714..5d92afeb5 100644 --- a/src/gui/search/searchtab.h +++ b/src/gui/search/searchtab.h @@ -31,48 +31,50 @@ #ifndef SEARCHTAB_H #define SEARCHTAB_H -#include -#include - -#include "searchsortmodel.h" - -#define ENGINE_URL_COLUMN 4 -#define URL_COLUMN 5 - -class SearchListDelegate; -class SearchWidget; +#include +class QLabel; class QTreeView; class QHeaderView; class QStandardItemModel; +class QSortFilterProxyModel; +class QModelIndex; +class QVBoxLayout; + +class SearchSortModel; +class SearchListDelegate; +class SearchWidget; class SearchTab: public QWidget { Q_OBJECT -private: - QVBoxLayout *box; - QLabel *results_lbl; - QTreeView *resultsBrowser; - QStandardItemModel *SearchListModel; - SearchSortModel *proxyModel; - SearchListDelegate *SearchDelegate; - SearchWidget *parent; - -protected slots: - void downloadSelectedItem(const QModelIndex& index); - public: - SearchTab(SearchWidget *parent); - ~SearchTab(); - bool loadColWidthResultsList(); - QLabel * getCurrentLabel(); + explicit SearchTab(SearchWidget *m_parent); + + QLabel* getCurrentLabel() const; QStandardItemModel* getCurrentSearchListModel() const; QSortFilterProxyModel* getCurrentSearchListProxy() const; - QTreeView * getCurrentTreeView(); - void setRowColor(int row, QString color); + QTreeView* getCurrentTreeView() const; QHeaderView* header() const; - QString status; + QString status() const; + + bool loadColWidthResultsList(); + void setRowColor(int row, QString color); + void setStatus(const QString &value); + +private slots: + void downloadSelectedItem(const QModelIndex &index); + +private: + QVBoxLayout *m_box; + QLabel *m_resultsLbl; + QTreeView *m_resultsBrowser; + QStandardItemModel *m_searchListModel; + SearchSortModel *m_proxyModel; + SearchListDelegate *m_searchDelegate; + SearchWidget *m_parent; + QString m_status; }; #endif // SEARCHTAB_H diff --git a/src/gui/search/searchwidget.cpp b/src/gui/search/searchwidget.cpp index c4b70931d..e7e403933 100644 --- a/src/gui/search/searchwidget.cpp +++ b/src/gui/search/searchwidget.cpp @@ -29,17 +29,16 @@ * Contact : chris@qbittorrent.org */ -#include #include #include #include #include -#include #include #include #include #include #include +#include #include #include #include @@ -47,6 +46,7 @@ #include #include +#include #ifdef Q_OS_WIN #include #endif @@ -61,22 +61,27 @@ #include "addnewtorrentdialog.h" #include "guiiconprovider.h" #include "lineedit.h" +#include "pluginselectdlg.h" +#include "searchsortmodel.h" +#include "searchtab.h" #include "searchwidget.h" #define SEARCHHISTORY_MAXSIZE 50 +#define URL_COLUMN 5 -/*SEARCH ENGINE START*/ -SearchWidget::SearchWidget(MainWindow* parent) - : QWidget(parent) - , search_pattern(new LineEdit(this)) - , mp_mainWindow(parent) +SearchWidget::SearchWidget(MainWindow *mainWindow) + : QWidget(mainWindow) + , m_mainWindow(mainWindow) { setupUi(this); - searchBarLayout->insertWidget(0, search_pattern); - connect(search_pattern, SIGNAL(returnPressed()), search_button, SLOT(click())); + + m_searchPattern = new LineEdit(this); + searchBarLayout->insertWidget(0, m_searchPattern); + connect(m_searchPattern, SIGNAL(returnPressed()), searchButton, SLOT(click())); + // Icons - search_button->setIcon(GuiIconProvider::instance()->getIcon("edit-find")); - download_button->setIcon(GuiIconProvider::instance()->getIcon("download")); + searchButton->setIcon(GuiIconProvider::instance()->getIcon("edit-find")); + downloadButton->setIcon(GuiIconProvider::instance()->getIcon("download")); goToDescBtn->setIcon(GuiIconProvider::instance()->getIcon("application-x-mswinurl")); pluginsButton->setIcon(GuiIconProvider::instance()->getIcon("preferences-system-network")); copyURLBtn->setIcon(GuiIconProvider::instance()->getIcon("edit-copy")); @@ -93,7 +98,7 @@ SearchWidget::SearchWidget(MainWindow* parent) fillCatCombobox(); fillPluginComboBox(); - connect(search_pattern, SIGNAL(textEdited(QString)), this, SLOT(searchTextEdited(QString))); + connect(m_searchPattern, SIGNAL(textEdited(QString)), this, SLOT(searchTextEdited(QString))); connect(selectPlugin, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(selectMultipleBox(const QString &))); } @@ -101,8 +106,7 @@ void SearchWidget::fillCatCombobox() { comboCategory->clear(); comboCategory->addItem(SearchEngine::categoryFullName("all"), QVariant("all")); - QStringList supported_cat = m_searchEngine->supportedCategories(); - foreach (QString cat, supported_cat) { + foreach (QString cat, m_searchEngine->supportedCategories()) { qDebug("Supported category: %s", qPrintable(cat)); comboCategory->addItem(SearchEngine::categoryFullName(cat), QVariant(cat)); } @@ -123,7 +127,7 @@ QString SearchWidget::selectedCategory() const return comboCategory->itemData(comboCategory->currentIndex()).toString(); } -QString SearchWidget::selectedEngine() const +QString SearchWidget::selectedPlugin() const { return selectPlugin->itemData(selectPlugin->currentIndex()).toString(); } @@ -131,8 +135,6 @@ QString SearchWidget::selectedEngine() const SearchWidget::~SearchWidget() { qDebug("Search destruction"); - - delete search_pattern; delete m_searchEngine; } @@ -142,24 +144,25 @@ void SearchWidget::tab_changed(int t) //doesn't have to be available if (t > -1) { //-1 = no more tab - currentSearchTab = all_tab.at(tabWidget->currentIndex()); - if (currentSearchTab->getCurrentSearchListModel()->rowCount()) { - download_button->setEnabled(true); + m_currentSearchTab = m_allTabs.at(tabWidget->currentIndex()); + if (m_currentSearchTab->getCurrentSearchListModel()->rowCount()) { + downloadButton->setEnabled(true); goToDescBtn->setEnabled(true); copyURLBtn->setEnabled(true); } else { - download_button->setEnabled(false); + downloadButton->setEnabled(false); goToDescBtn->setEnabled(false); copyURLBtn->setEnabled(false); } - search_status->setText(currentSearchTab->status); + searchStatus->setText(m_currentSearchTab->status()); } } void SearchWidget::selectMultipleBox(const QString &text) { - if (text == tr("Multiple...")) on_pluginsButton_clicked(); + if (text == tr("Multiple...")) + on_pluginsButton_clicked(); } void SearchWidget::on_pluginsButton_clicked() @@ -172,35 +175,35 @@ void SearchWidget::on_pluginsButton_clicked() void SearchWidget::searchTextEdited(QString) { // Enable search button - search_button->setText(tr("Search")); - newQueryString = true; + searchButton->setText(tr("Search")); + m_isNewQueryString = true; } void SearchWidget::giveFocusToSearchInput() { - search_pattern->setFocus(); + m_searchPattern->setFocus(); } // Function called when we click on search button -void SearchWidget::on_search_button_clicked() +void SearchWidget::on_searchButton_clicked() { if (Utils::Misc::pythonVersion() < 0) { - mp_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Please install Python to use the Search Engine.")); + m_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Please install Python to use the Search Engine.")); return; } if (m_searchEngine->isActive()) { m_searchEngine->cancelSearch(); - if (!newQueryString) { - search_button->setText(tr("Search")); + if (!m_isNewQueryString) { + searchButton->setText(tr("Search")); return; } } - newQueryString = false; + m_isNewQueryString = false; - const QString pattern = search_pattern->text().trimmed(); + const QString pattern = m_searchPattern->text().trimmed(); // No search pattern entered if (pattern.isEmpty()) { QMessageBox::critical(0, tr("Empty search pattern"), tr("Please type a search pattern first")); @@ -208,29 +211,29 @@ void SearchWidget::on_search_button_clicked() } // Tab Addition - currentSearchTab = new SearchTab(this); - activeSearchTab = currentSearchTab; - connect(currentSearchTab->header(), SIGNAL(sectionResized(int, int, int)), this, SLOT(saveResultsColumnsWidth())); - all_tab.append(currentSearchTab); + m_currentSearchTab = new SearchTab(this); + m_activeSearchTab = m_currentSearchTab; + connect(m_currentSearchTab->header(), SIGNAL(sectionResized(int, int, int)), this, SLOT(saveResultsColumnsWidth())); + m_allTabs.append(m_currentSearchTab); QString tabName = pattern; tabName.replace(QRegExp("&{1}"), "&&"); - tabWidget->addTab(currentSearchTab, tabName); - tabWidget->setCurrentWidget(currentSearchTab); + tabWidget->addTab(m_currentSearchTab, tabName); + tabWidget->setCurrentWidget(m_currentSearchTab); QStringList plugins; - if (selectedEngine() == "all") plugins = m_searchEngine->allPlugins(); - else if (selectedEngine() == "enabled") plugins = m_searchEngine->enabledPlugins(); - else if (selectedEngine() == "multi") plugins = m_searchEngine->enabledPlugins(); - else plugins << selectedEngine(); + if (selectedPlugin() == "all") plugins = m_searchEngine->allPlugins(); + else if (selectedPlugin() == "enabled") plugins = m_searchEngine->enabledPlugins(); + else if (selectedPlugin() == "multi") plugins = m_searchEngine->enabledPlugins(); + else plugins << selectedPlugin(); qDebug("Search with category: %s", qPrintable(selectedCategory())); // Update SearchEngine widgets - no_search_results = true; - nb_search_results = 0; + m_noSearchResults = true; + m_nbSearchResults = 0; // Changing the text of the current label - activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(0)); + m_activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(0)); // Launch search m_searchEngine->startSearch(pattern, selectedCategory(), plugins); @@ -238,18 +241,17 @@ void SearchWidget::on_search_button_clicked() void SearchWidget::saveResultsColumnsWidth() { - if (all_tab.isEmpty()) - return; - QTreeView* treeview = all_tab.first()->getCurrentTreeView(); - Preferences* const pref = Preferences::instance(); - QStringList new_width_list; - short nbColumns = all_tab.first()->getCurrentSearchListModel()->columnCount(); + if (m_allTabs.isEmpty()) return; + + QTreeView *treeview = m_allTabs.first()->getCurrentTreeView(); + QStringList newWidthList; + short nbColumns = m_allTabs.first()->getCurrentSearchListModel()->columnCount(); for (short i = 0; i < nbColumns; ++i) if (treeview->columnWidth(i) > 0) - new_width_list << QString::number(treeview->columnWidth(i)); + newWidthList << QString::number(treeview->columnWidth(i)); // Don't save the width of the last column (auto column width) - new_width_list.removeLast(); - pref->setSearchColsWidth(new_width_list.join(" ")); + newWidthList.removeLast(); + Preferences::instance()->setSearchColsWidth(newWidthList.join(" ")); } void SearchWidget::downloadTorrent(QString url) @@ -263,10 +265,10 @@ void SearchWidget::downloadTorrent(QString url) void SearchWidget::searchStarted() { // Update SearchEngine widgets - activeSearchTab->status = tr("Searching..."); - search_status->setText(currentSearchTab->status); - search_status->repaint(); - search_button->setText(tr("Stop")); + m_activeSearchTab->setStatus(tr("Searching...")); + searchStatus->setText(m_currentSearchTab->status()); + searchStatus->repaint(); + searchButton->setText(tr("Stop")); } // Slot called when search is Finished @@ -274,72 +276,69 @@ void SearchWidget::searchStarted() // Error | Stopped by user | Finished normally void SearchWidget::searchFinished(bool cancelled) { - bool useNotificationBalloons = Preferences::instance()->useProgramNotification(); - if (useNotificationBalloons && mp_mainWindow->getCurrentTabWidget() != this) - mp_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has finished")); + if (Preferences::instance()->useProgramNotification() && (m_mainWindow->getCurrentTabWidget() != this)) + m_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has finished")); - if (activeSearchTab.isNull()) return; // The active tab was closed + if (m_activeSearchTab.isNull()) return; // The active tab was closed if (cancelled) - activeSearchTab->status = tr("Search aborted"); - else if (no_search_results) - activeSearchTab->status = tr("Search returned no results"); + m_activeSearchTab->setStatus(tr("Search aborted")); + else if (m_noSearchResults) + m_activeSearchTab->setStatus(tr("Search returned no results")); else - activeSearchTab->status = tr("Search has finished"); + m_activeSearchTab->setStatus(tr("Search has finished")); - search_status->setText(currentSearchTab->status); - activeSearchTab = 0; - search_button->setText(tr("Search")); + searchStatus->setText(m_currentSearchTab->status()); + m_activeSearchTab = 0; + searchButton->setText(tr("Search")); } void SearchWidget::searchFailed() { - bool useNotificationBalloons = Preferences::instance()->useProgramNotification(); - if (useNotificationBalloons && mp_mainWindow->getCurrentTabWidget() != this) - mp_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has failed")); + if (Preferences::instance()->useProgramNotification() && (m_mainWindow->getCurrentTabWidget() != this)) + m_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has failed")); - if (activeSearchTab.isNull()) return; // The active tab was closed + if (m_activeSearchTab.isNull()) return; // The active tab was closed #ifdef Q_OS_WIN - activeSearchTab->status = tr("Search aborted"); + m_activeSearchTab->setStatus(tr("Search aborted")); #else - activeSearchTab->status = tr("An error occurred during search..."); + m_activeSearchTab->setStatus(tr("An error occurred during search...")); #endif } -// SLOT to append one line to search results list void SearchWidget::appendSearchResults(const QList &results) { - if (activeSearchTab.isNull()) { + if (m_activeSearchTab.isNull()) { m_searchEngine->cancelSearch(); return; } - Q_ASSERT(activeSearchTab); + Q_ASSERT(m_activeSearchTab); - QStandardItemModel* cur_model = activeSearchTab->getCurrentSearchListModel(); - Q_ASSERT(cur_model); + QStandardItemModel *curModel = m_activeSearchTab->getCurrentSearchListModel(); + Q_ASSERT(curModel); foreach (const SearchResult &result, results) { // Add item to search result list - int row = cur_model->rowCount(); - cur_model->insertRow(row); + int row = curModel->rowCount(); + curModel->insertRow(row); - cur_model->setData(cur_model->index(row, SearchSortModel::DL_LINK), result.fileUrl); // download URL - cur_model->setData(cur_model->index(row, SearchSortModel::NAME), result.fileName); // Name - cur_model->setData(cur_model->index(row, SearchSortModel::SIZE), result.fileSize); // Size - cur_model->setData(cur_model->index(row, SearchSortModel::SEEDS), result.nbSeeders); // Seeders - cur_model->setData(cur_model->index(row, SearchSortModel::LEECHS), result.nbLeechers); // Leechers - cur_model->setData(cur_model->index(row, SearchSortModel::ENGINE_URL), result.siteUrl); // Search site URL - cur_model->setData(cur_model->index(row, SearchSortModel::DESC_LINK), result.descrLink); // Description Link + curModel->setData(curModel->index(row, SearchSortModel::DL_LINK), result.fileUrl); // download URL + curModel->setData(curModel->index(row, SearchSortModel::NAME), result.fileName); // Name + curModel->setData(curModel->index(row, SearchSortModel::SIZE), result.fileSize); // Size + curModel->setData(curModel->index(row, SearchSortModel::SEEDS), result.nbSeeders); // Seeders + curModel->setData(curModel->index(row, SearchSortModel::LEECHS), result.nbLeechers); // Leechers + curModel->setData(curModel->index(row, SearchSortModel::ENGINE_URL), result.siteUrl); // Search site URL + curModel->setData(curModel->index(row, SearchSortModel::DESC_LINK), result.descrLink); // Description Link } - no_search_results = false; - nb_search_results += results.size(); - activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(nb_search_results)); + m_noSearchResults = false; + m_nbSearchResults += results.size(); + m_activeSearchTab->getCurrentLabel()->setText(tr("Results (%1):", "i.e: Search results").arg(m_nbSearchResults)); // Enable clear & download buttons - download_button->setEnabled(true); + downloadButton->setEnabled(true); goToDescBtn->setEnabled(true); copyURLBtn->setEnabled(true); } @@ -347,46 +346,48 @@ void SearchWidget::appendSearchResults(const QList &results) void SearchWidget::closeTab(int index) { // Search is run for active tab so if user decided to close it, then stop search - if (!activeSearchTab.isNull() && index == tabWidget->indexOf(activeSearchTab)) { + if (!m_activeSearchTab.isNull() && index == tabWidget->indexOf(m_activeSearchTab)) { qDebug("Closed active search Tab"); if (m_searchEngine->isActive()) m_searchEngine->cancelSearch(); - activeSearchTab = 0; + m_activeSearchTab = 0; } - delete all_tab.takeAt(index); - if (!all_tab.size()) { - download_button->setEnabled(false); + + delete m_allTabs.takeAt(index); + + if (!m_allTabs.size()) { + downloadButton->setEnabled(false); goToDescBtn->setEnabled(false); - search_status->setText(tr("Stopped")); + searchStatus->setText(tr("Stopped")); copyURLBtn->setEnabled(false); } } // Download selected items in search results list -void SearchWidget::on_download_button_clicked() +void SearchWidget::on_downloadButton_clicked() { //QModelIndexList selectedIndexes = currentSearchTab->getCurrentTreeView()->selectionModel()->selectedIndexes(); - QModelIndexList selectedIndexes = all_tab.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); + QModelIndexList selectedIndexes = m_allTabs.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); foreach (const QModelIndex &index, selectedIndexes) { if (index.column() == SearchSortModel::NAME) { // Get Item url - QSortFilterProxyModel* model = all_tab.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); - QString torrent_url = model->data(model->index(index.row(), URL_COLUMN)).toString(); - downloadTorrent(torrent_url); - all_tab.at(tabWidget->currentIndex())->setRowColor(index.row(), "blue"); + QSortFilterProxyModel *model = m_allTabs.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); + QString torrentUrl = model->data(model->index(index.row(), URL_COLUMN)).toString(); + downloadTorrent(torrentUrl); + m_allTabs.at(tabWidget->currentIndex())->setRowColor(index.row(), "blue"); } } } void SearchWidget::on_goToDescBtn_clicked() { - QModelIndexList selectedIndexes = all_tab.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); + QModelIndexList selectedIndexes = m_allTabs.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); foreach (const QModelIndex &index, selectedIndexes) { if (index.column() == SearchSortModel::NAME) { - QSortFilterProxyModel* model = all_tab.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); - const QString desc_url = model->data(model->index(index.row(), SearchSortModel::DESC_LINK)).toString(); - if (!desc_url.isEmpty()) - QDesktopServices::openUrl(QUrl::fromEncoded(desc_url.toUtf8())); + QSortFilterProxyModel *model = m_allTabs.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); + const QString descUrl = model->data(model->index(index.row(), SearchSortModel::DESC_LINK)).toString(); + if (!descUrl.isEmpty()) + QDesktopServices::openUrl(QUrl::fromEncoded(descUrl.toUtf8())); } } } @@ -394,15 +395,17 @@ void SearchWidget::on_goToDescBtn_clicked() void SearchWidget::on_copyURLBtn_clicked() { QStringList urls; - QModelIndexList selectedIndexes = all_tab.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); + QModelIndexList selectedIndexes = m_allTabs.at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); + foreach (const QModelIndex &index, selectedIndexes) { if (index.column() == SearchSortModel::NAME) { - QSortFilterProxyModel* model = all_tab.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); + QSortFilterProxyModel *model = m_allTabs.at(tabWidget->currentIndex())->getCurrentSearchListProxy(); const QString descUrl = model->data(model->index(index.row(), SearchSortModel::DESC_LINK)).toString(); if (!descUrl.isEmpty()) urls << descUrl.toUtf8(); } } + if (!urls.empty()) { QClipboard *clipboard = QApplication::clipboard(); clipboard->setText(urls.join("\n")); diff --git a/src/gui/search/searchwidget.h b/src/gui/search/searchwidget.h index c77ac1e6e..f52742e9e 100644 --- a/src/gui/search/searchwidget.h +++ b/src/gui/search/searchwidget.h @@ -33,69 +33,63 @@ #define SEARCHWIDGET_H #include -#include #include -#include -#include "ui_searchwidget.h" -#include "pluginselectdlg.h" -#include "searchtab.h" -class SearchWidget; +#include "ui_searchwidget.h" + class MainWindow; class LineEdit; class SearchEngine; struct SearchResult; +class SearchTab; -QT_BEGIN_NAMESPACE -class QTimer; -QT_END_NAMESPACE - -class SearchWidget : public QWidget, private Ui::SearchWidget{ +class SearchWidget: public QWidget, private Ui::SearchWidget +{ Q_OBJECT Q_DISABLE_COPY(SearchWidget) public: - SearchWidget(MainWindow *mp_mainWindow); + explicit SearchWidget(MainWindow *mainWindow); ~SearchWidget(); - QString selectedCategory() const; - QString selectedEngine() const; -public slots: void downloadTorrent(QString url); void giveFocusToSearchInput(); private slots: // Search slots - void tab_changed(int);//to prevent the use of the download button when the tab is empty - void on_search_button_clicked(); - void on_download_button_clicked(); + void tab_changed(int); //to prevent the use of the download button when the tab is empty + void on_searchButton_clicked(); + void on_downloadButton_clicked(); + void on_goToDescBtn_clicked(); + void on_copyURLBtn_clicked(); + void on_pluginsButton_clicked(); + void closeTab(int index); void appendSearchResults(const QList &results); void searchStarted(); void searchFinished(bool cancelled); void searchFailed(); void selectMultipleBox(const QString &text); - void on_pluginsButton_clicked(); + void saveResultsColumnsWidth(); void fillCatCombobox(); void fillPluginComboBox(); void searchTextEdited(QString); - void on_goToDescBtn_clicked(); - void on_copyURLBtn_clicked(); private: - // Search related - LineEdit* search_pattern; + QString selectedCategory() const; + QString selectedPlugin() const; - bool no_search_results; - QByteArray search_result_line_truncated; - unsigned long nb_search_results; + LineEdit *m_searchPattern; SearchEngine *m_searchEngine; - QPointer currentSearchTab; // Selected tab - QPointer activeSearchTab; // Tab with running search - QList > all_tab; // To store all tabs - MainWindow *mp_mainWindow; - bool newQueryString; + QPointer m_currentSearchTab; // Selected tab + QPointer m_activeSearchTab; // Tab with running search + QList > m_allTabs; // To store all tabs + MainWindow *m_mainWindow; + bool m_isNewQueryString; + bool m_noSearchResults; + QByteArray m_searchResultLineTruncated; + unsigned long m_nbSearchResults; }; #endif // SEARCHWIDGET_H diff --git a/src/gui/search/searchwidget.ui b/src/gui/search/searchwidget.ui index d6bfa5877..a9c543c5a 100644 --- a/src/gui/search/searchwidget.ui +++ b/src/gui/search/searchwidget.ui @@ -23,7 +23,7 @@ - + Search @@ -53,7 +53,7 @@ - + 200 @@ -99,7 +99,7 @@ - + false From 07de39ff1760057a7c1d4f67f97a46b2e24d90c6 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Tue, 22 Dec 2015 12:38:18 +0800 Subject: [PATCH 043/238] Add check for null. Fix provided by glassez. Closes #4280. --- src/gui/transferlistfilterswidget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index b695d0565..267537884 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -626,6 +626,8 @@ void TrackerFiltersList::handleFavicoDownload(const QString& url, const QString& } QListWidgetItem *trackerItem = item(rowFromTracker(host)); + if (!trackerItem) return; + QIcon icon(filePath); //Detect a non-decodable icon QList sizes = icon.availableSizes(); From deb9a6b37fcb1cced94f50f28bb5e7c1fa35f990 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Tue, 22 Dec 2015 12:40:51 +0800 Subject: [PATCH 044/238] Simplify statement --- src/gui/transferlistfilterswidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index 267537884..456308188 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -631,7 +631,7 @@ void TrackerFiltersList::handleFavicoDownload(const QString& url, const QString& QIcon icon(filePath); //Detect a non-decodable icon QList sizes = icon.availableSizes(); - bool invalid = (sizes.size() > 0 ? icon.pixmap(sizes.first()).isNull() : true); + bool invalid = (sizes.isEmpty() || icon.pixmap(sizes.first()).isNull()); if (invalid) { if (url.endsWith(".ico", Qt::CaseInsensitive)) { Logger::instance()->addMessage(tr("Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format.").arg(url), From edbfff62e8c04aa183d3d4a5cb37d3af6c52910d Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Tue, 22 Dec 2015 12:43:38 +0800 Subject: [PATCH 045/238] Fix typo --- src/gui/transferlistfilterswidget.cpp | 4 ++-- src/gui/transferlistfilterswidget.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index 456308188..1453d6311 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -733,9 +733,9 @@ int TrackerFiltersList::rowFromTracker(const QString &tracker) const return -1; } -QString TrackerFiltersList::getHost(const QString &trakcer) const +QString TrackerFiltersList::getHost(const QString &tracker) const { - QUrl url(trakcer); + QUrl url(tracker); QString longHost = url.host(); QString tld = url.topLevelDomain(); // We get empty tld when it is invalid or an IPv4/IPv6 address, diff --git a/src/gui/transferlistfilterswidget.h b/src/gui/transferlistfilterswidget.h index 5f9a42b4a..28336f77a 100644 --- a/src/gui/transferlistfilterswidget.h +++ b/src/gui/transferlistfilterswidget.h @@ -154,7 +154,7 @@ private: virtual void torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const torrent); QString trackerFromRow(int row) const; int rowFromTracker(const QString &tracker) const; - QString getHost(const QString &trakcer) const; + QString getHost(const QString &tracker) const; QStringList getHashes(int row); void downloadFavicon(const QString &url); From 0bffa066db7c228ef4da666f7eae33582c4dd480 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Fri, 18 Dec 2015 14:30:31 +0300 Subject: [PATCH 046/238] Make DownloadManager to save/load cookies --- src/app/application.cpp | 2 +- src/base/net/downloadmanager.cpp | 81 +++++++++++++++++++++++++++++--- src/base/net/downloadmanager.h | 8 ++-- src/base/preferences.cpp | 29 ++++++++++-- src/base/preferences.h | 4 ++ 5 files changed, 108 insertions(+), 16 deletions(-) diff --git a/src/app/application.cpp b/src/app/application.cpp index 9bdb62713..624bcb664 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -462,10 +462,10 @@ void Application::cleanup() #ifndef DISABLE_COUNTRIES_RESOLUTION Net::GeoIPManager::freeInstance(); #endif + Net::DownloadManager::freeInstance(); Preferences::freeInstance(); Logger::freeInstance(); IconProvider::freeInstance(); - Net::DownloadManager::freeInstance(); #ifndef DISABLE_GUI #ifdef Q_OS_WIN typedef BOOL (WINAPI *PSHUTDOWNBRDESTROY)(HWND); diff --git a/src/base/net/downloadmanager.cpp b/src/base/net/downloadmanager.cpp index c21fb813a..21672274d 100644 --- a/src/base/net/downloadmanager.cpp +++ b/src/base/net/downloadmanager.cpp @@ -27,11 +27,13 @@ * exception statement from your version. */ +#include #include #include #include #include #include +#include #include #include #include @@ -40,6 +42,71 @@ #include "downloadhandler.h" #include "downloadmanager.h" +namespace +{ + class NetworkCookieJar: public QNetworkCookieJar + { + public: + explicit NetworkCookieJar(QObject *parent = 0) + : QNetworkCookieJar(parent) + { + QDateTime now = QDateTime::currentDateTime(); + QList cookies = Preferences::instance()->getNetworkCookies(); + foreach (const QNetworkCookie &cookie, Preferences::instance()->getNetworkCookies()) { + if (cookie.isSessionCookie() || (cookie.expirationDate() <= now)) + cookies.removeAll(cookie); + } + + setAllCookies(cookies); + } + + ~NetworkCookieJar() + { + QDateTime now = QDateTime::currentDateTime(); + QList cookies = allCookies(); + foreach (const QNetworkCookie &cookie, allCookies()) { + if (cookie.isSessionCookie() || (cookie.expirationDate() <= now)) + cookies.removeAll(cookie); + } + + Preferences::instance()->setNetworkCookies(cookies); + } + +#ifndef QBT_USES_QT5 + virtual bool deleteCookie(const QNetworkCookie &cookie) + { + auto myCookies = allCookies(); + myCookies.removeAll(cookie); + setAllCookies(myCookies); + } +#endif + + QList cookiesForUrl(const QUrl &url) const override + { + QDateTime now = QDateTime::currentDateTime(); + QList cookies = QNetworkCookieJar::cookiesForUrl(url); + foreach (const QNetworkCookie &cookie, QNetworkCookieJar::cookiesForUrl(url)) { + if (!cookie.isSessionCookie() && (cookie.expirationDate() <= now)) + cookies.removeAll(cookie); + } + + return cookies; + } + + bool setCookiesFromUrl(const QList &cookieList, const QUrl &url) override + { + QDateTime now = QDateTime::currentDateTime(); + QList cookies = cookieList; + foreach (const QNetworkCookie &cookie, cookieList) { + if (!cookie.isSessionCookie() && (cookie.expirationDate() <= now)) + cookies.removeAll(cookie); + } + + return QNetworkCookieJar::setCookiesFromUrl(cookies, url); + } + }; +} + using namespace Net; DownloadManager *DownloadManager::m_instance = 0; @@ -50,10 +117,7 @@ DownloadManager::DownloadManager(QObject *parent) #ifndef QT_NO_OPENSSL connect(&m_networkManager, SIGNAL(sslErrors(QNetworkReply *, QList)), this, SLOT(ignoreSslErrors(QNetworkReply *, QList))); #endif -} - -DownloadManager::~DownloadManager() -{ + m_networkManager.setCookieJar(new NetworkCookieJar(this)); } void DownloadManager::initInstance() @@ -92,22 +156,27 @@ DownloadHandler *DownloadManager::downloadUrl(const QString &url, bool saveToFil request.setRawHeader("Referer", request.url().toEncoded().data()); qDebug("Downloading %s...", request.url().toEncoded().data()); + qDebug() << "Cookies:" << m_networkManager.cookieJar()->cookiesForUrl(request.url()); // accept gzip request.setRawHeader("Accept-Encoding", "gzip"); return new DownloadHandler(m_networkManager.get(request), this, saveToFile, limit, handleRedirectToMagnet); } -QList DownloadManager::cookiesForUrl(const QString &url) const +QList DownloadManager::cookiesForUrl(const QUrl &url) const { return m_networkManager.cookieJar()->cookiesForUrl(url); } bool DownloadManager::setCookiesFromUrl(const QList &cookieList, const QUrl &url) { - qDebug("Setting %d cookies for url: %s", cookieList.size(), qPrintable(url.toString())); return m_networkManager.cookieJar()->setCookiesFromUrl(cookieList, url); } +bool DownloadManager::deleteCookie(const QNetworkCookie &cookie) +{ + return static_cast(m_networkManager.cookieJar())->deleteCookie(cookie); +} + void DownloadManager::applyProxySettings() { QNetworkProxy proxy; diff --git a/src/base/net/downloadmanager.h b/src/base/net/downloadmanager.h index d5fe6b367..8621f70bd 100644 --- a/src/base/net/downloadmanager.h +++ b/src/base/net/downloadmanager.h @@ -33,12 +33,10 @@ #include #include -QT_BEGIN_NAMESPACE class QNetworkReply; class QNetworkCookie; class QSslError; class QUrl; -QT_END_NAMESPACE namespace Net { @@ -54,8 +52,9 @@ namespace Net static DownloadManager *instance(); DownloadHandler *downloadUrl(const QString &url, bool saveToFile = false, qint64 limit = 0, bool handleRedirectToMagnet = false); - QList cookiesForUrl(const QString &url) const; + QList cookiesForUrl(const QUrl &url) const; bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); + bool deleteCookie(const QNetworkCookie &cookie); private slots: #ifndef QT_NO_OPENSSL @@ -63,8 +62,7 @@ namespace Net #endif private: - DownloadManager(QObject *parent = 0); - ~DownloadManager(); + explicit DownloadManager(QObject *parent = 0); void applyProxySettings(); diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 590039380..783fcc6a9 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -1027,12 +1027,12 @@ void Preferences::setFilteringEnabled(bool enabled) bool Preferences::isFilteringTrackerEnabled() const { - return value("Preferences/IPFilter/FilterTracker", false).toBool(); + return value("Preferences/IPFilter/FilterTracker", false).toBool(); } void Preferences::setFilteringTrackerEnabled(bool enabled) { - setValue("Preferences/IPFilter/FilterTracker", enabled); + setValue("Preferences/IPFilter/FilterTracker", enabled); } QString Preferences::getFilter() const @@ -2559,11 +2559,32 @@ void Preferences::setHostNameCookies(const QString &host_name, const QList Preferences::getNetworkCookies() const +{ + QList cookies; + QStringList rawCookies = value("Network/Cookies").toStringList(); + foreach (const QString &rawCookie, rawCookies) + cookies << QNetworkCookie::parseCookies(rawCookie.toUtf8()); + + return cookies; +} + +void Preferences::setNetworkCookies(const QList &cookies) +{ + QStringList rawCookies; + foreach (const QNetworkCookie &cookie, cookies) + rawCookies << cookie.toRawForm(); + + setValue("Network/Cookies", rawCookies); +} + +int Preferences::getSpeedWidgetPeriod() const +{ return value("SpeedWidget/period", 1).toInt(); } -void Preferences::setSpeedWidgetPeriod(const int period) { +void Preferences::setSpeedWidgetPeriod(const int period) +{ setValue("SpeedWidget/period", period); } diff --git a/src/base/preferences.h b/src/base/preferences.h index 4767a1d59..96fe22fb7 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -542,6 +542,10 @@ public: QList getHostNameQNetworkCookies(const QString& host_name) const; void setHostNameCookies(const QString &host_name, const QList &cookies); + // Network + QList getNetworkCookies() const; + void setNetworkCookies(const QList &cookies); + // SpeedWidget int getSpeedWidgetPeriod() const; void setSpeedWidgetPeriod(const int period); From 405b06319df2360cee9e4ae4b08453e435aa3925 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 14 Oct 2015 12:31:44 +0300 Subject: [PATCH 047/238] Move base RSS code to Core. --- src/base/base.pri | 16 ++++++++++++++++ src/{gui => base}/rss/rssarticle.cpp | 2 +- src/{gui => base}/rss/rssarticle.h | 0 src/{gui => base}/rss/rssdownloadrule.cpp | 4 ++-- src/{gui => base}/rss/rssdownloadrule.h | 0 src/{gui => base}/rss/rssdownloadrulelist.cpp | 2 +- src/{gui => base}/rss/rssdownloadrulelist.h | 0 src/{gui => base}/rss/rssfeed.cpp | 19 ++++++++++--------- src/{gui => base}/rss/rssfeed.h | 2 +- src/{gui => base}/rss/rssfile.cpp | 2 +- src/{gui => base}/rss/rssfile.h | 3 +-- src/{gui => base}/rss/rssfolder.cpp | 10 +++++----- src/{gui => base}/rss/rssfolder.h | 3 ++- src/{gui => base}/rss/rssmanager.cpp | 3 ++- src/{gui => base}/rss/rssmanager.h | 0 src/{gui => base}/rss/rssparser.cpp | 12 ++++-------- src/{gui => base}/rss/rssparser.h | 3 ++- src/gui/rss/automatedrssdownloader.cpp | 6 +++--- src/gui/rss/automatedrssdownloader.h | 3 ++- src/gui/rss/feedlistwidget.cpp | 6 +++--- src/gui/rss/feedlistwidget.h | 6 +++--- src/gui/rss/rss.pri | 16 ---------------- src/gui/rss/rss_imp.cpp | 14 +++++++------- src/gui/rss/rss_imp.h | 4 ++-- 24 files changed, 68 insertions(+), 68 deletions(-) rename src/{gui => base}/rss/rssarticle.cpp (100%) rename src/{gui => base}/rss/rssarticle.h (100%) rename src/{gui => base}/rss/rssdownloadrule.cpp (100%) rename src/{gui => base}/rss/rssdownloadrule.h (100%) rename src/{gui => base}/rss/rssdownloadrulelist.cpp (100%) rename src/{gui => base}/rss/rssdownloadrulelist.h (100%) rename src/{gui => base}/rss/rssfeed.cpp (99%) rename src/{gui => base}/rss/rssfeed.h (99%) rename src/{gui => base}/rss/rssfile.cpp (100%) rename src/{gui => base}/rss/rssfile.h (98%) rename src/{gui => base}/rss/rssfolder.cpp (98%) rename src/{gui => base}/rss/rssfolder.h (98%) rename src/{gui => base}/rss/rssmanager.cpp (99%) rename src/{gui => base}/rss/rssmanager.h (100%) rename src/{gui => base}/rss/rssparser.cpp (98%) rename src/{gui => base}/rss/rssparser.h (99%) diff --git a/src/base/base.pri b/src/base/base.pri index 3ce02d04d..ccea8efe1 100644 --- a/src/base/base.pri +++ b/src/base/base.pri @@ -36,6 +36,14 @@ HEADERS += \ $$PWD/bittorrent/private/bandwidthscheduler.h \ $$PWD/bittorrent/private/filterparserthread.h \ $$PWD/bittorrent/private/statistics.h \ + $$PWD/rss/rssmanager.h \ + $$PWD/rss/rssfeed.h \ + $$PWD/rss/rssfolder.h \ + $$PWD/rss/rssfile.h \ + $$PWD/rss/rssarticle.h \ + $$PWD/rss/rssdownloadrule.h \ + $$PWD/rss/rssdownloadrulelist.h \ + $$PWD/rss/rssparser.h \ $$PWD/utils/fs.h \ $$PWD/utils/gzip.h \ $$PWD/utils/misc.h \ @@ -79,6 +87,14 @@ SOURCES += \ $$PWD/bittorrent/private/bandwidthscheduler.cpp \ $$PWD/bittorrent/private/filterparserthread.cpp \ $$PWD/bittorrent/private/statistics.cpp \ + $$PWD/rss/rssmanager.cpp \ + $$PWD/rss/rssfeed.cpp \ + $$PWD/rss/rssfolder.cpp \ + $$PWD/rss/rssarticle.cpp \ + $$PWD/rss/rssdownloadrule.cpp \ + $$PWD/rss/rssdownloadrulelist.cpp \ + $$PWD/rss/rssfile.cpp \ + $$PWD/rss/rssparser.cpp \ $$PWD/utils/fs.cpp \ $$PWD/utils/gzip.cpp \ $$PWD/utils/misc.cpp \ diff --git a/src/gui/rss/rssarticle.cpp b/src/base/rss/rssarticle.cpp similarity index 100% rename from src/gui/rss/rssarticle.cpp rename to src/base/rss/rssarticle.cpp index fbc7218bf..34ab247eb 100644 --- a/src/gui/rss/rssarticle.cpp +++ b/src/base/rss/rssarticle.cpp @@ -32,8 +32,8 @@ #include #include -#include "rssarticle.h" #include "rssfeed.h" +#include "rssarticle.h" // public constructor RssArticle::RssArticle(RssFeed* parent, const QString& guid): diff --git a/src/gui/rss/rssarticle.h b/src/base/rss/rssarticle.h similarity index 100% rename from src/gui/rss/rssarticle.h rename to src/base/rss/rssarticle.h diff --git a/src/gui/rss/rssdownloadrule.cpp b/src/base/rss/rssdownloadrule.cpp similarity index 100% rename from src/gui/rss/rssdownloadrule.cpp rename to src/base/rss/rssdownloadrule.cpp index cd37a3a56..132166e06 100644 --- a/src/gui/rss/rssdownloadrule.cpp +++ b/src/base/rss/rssdownloadrule.cpp @@ -32,11 +32,11 @@ #include #include -#include "rssdownloadrule.h" #include "base/preferences.h" +#include "base/utils/fs.h" #include "rssfeed.h" #include "rssarticle.h" -#include "base/utils/fs.h" +#include "rssdownloadrule.h" RssDownloadRule::RssDownloadRule(): m_enabled(false), m_useRegex(false), m_apstate(USE_GLOBAL) { diff --git a/src/gui/rss/rssdownloadrule.h b/src/base/rss/rssdownloadrule.h similarity index 100% rename from src/gui/rss/rssdownloadrule.h rename to src/base/rss/rssdownloadrule.h diff --git a/src/gui/rss/rssdownloadrulelist.cpp b/src/base/rss/rssdownloadrulelist.cpp similarity index 100% rename from src/gui/rss/rssdownloadrulelist.cpp rename to src/base/rss/rssdownloadrulelist.cpp index 12f6a9710..c1d450769 100644 --- a/src/gui/rss/rssdownloadrulelist.cpp +++ b/src/base/rss/rssdownloadrulelist.cpp @@ -32,9 +32,9 @@ #include #include -#include "rssdownloadrulelist.h" #include "base/preferences.h" #include "base/qinisettings.h" +#include "rssdownloadrulelist.h" RssDownloadRuleList::RssDownloadRuleList() { diff --git a/src/gui/rss/rssdownloadrulelist.h b/src/base/rss/rssdownloadrulelist.h similarity index 100% rename from src/gui/rss/rssdownloadrulelist.h rename to src/base/rss/rssdownloadrulelist.h diff --git a/src/gui/rss/rssfeed.cpp b/src/base/rss/rssfeed.cpp similarity index 99% rename from src/gui/rss/rssfeed.cpp rename to src/base/rss/rssfeed.cpp index 7659ecae1..72bcb8993 100644 --- a/src/gui/rss/rssfeed.cpp +++ b/src/base/rss/rssfeed.cpp @@ -29,21 +29,22 @@ */ #include -#include "rssfeed.h" -#include "rssmanager.h" + #include "base/bittorrent/session.h" #include "base/bittorrent/magneturi.h" -#include "rssfolder.h" #include "base/preferences.h" #include "base/qinisettings.h" -#include "rssarticle.h" -#include "rssparser.h" #include "base/utils/misc.h" -#include "rssdownloadrulelist.h" #include "base/net/downloadmanager.h" #include "base/net/downloadhandler.h" #include "base/utils/fs.h" #include "base/logger.h" +#include "rssdownloadrulelist.h" +#include "rssarticle.h" +#include "rssparser.h" +#include "rssfolder.h" +#include "rssmanager.h" +#include "rssfeed.h" bool rssArticleDateRecentThan(const RssArticlePtr& left, const RssArticlePtr& right) { @@ -227,12 +228,12 @@ QString RssFeed::url() const return m_url; } -QIcon RssFeed::icon() const +QString RssFeed::iconPath() const { if (m_inErrorState) - return QIcon(":/icons/oxygen/unavailable.png"); + return QLatin1String(":/icons/oxygen/unavailable.png"); - return QIcon(m_icon); + return m_icon; } bool RssFeed::hasCustomIcon() const diff --git a/src/gui/rss/rssfeed.h b/src/base/rss/rssfeed.h similarity index 99% rename from src/gui/rss/rssfeed.h rename to src/base/rss/rssfeed.h index 81e53a5b2..84e95119f 100644 --- a/src/gui/rss/rssfeed.h +++ b/src/base/rss/rssfeed.h @@ -66,7 +66,7 @@ public: virtual void rename(const QString &alias); virtual QString displayName() const; QString url() const; - virtual QIcon icon() const; + virtual QString iconPath() const; bool hasCustomIcon() const; void setIconPath(const QString &pathHierarchy); RssArticlePtr getItem(const QString &guid) const; diff --git a/src/gui/rss/rssfile.cpp b/src/base/rss/rssfile.cpp similarity index 100% rename from src/gui/rss/rssfile.cpp rename to src/base/rss/rssfile.cpp index f41912484..ac090e0ee 100644 --- a/src/gui/rss/rssfile.cpp +++ b/src/base/rss/rssfile.cpp @@ -28,8 +28,8 @@ * Contact: chris@qbittorrent.org, arnaud@qbittorrent.org */ -#include "rssfile.h" #include "rssfolder.h" +#include "rssfile.h" QStringList RssFile::pathHierarchy() const { QStringList path; diff --git a/src/gui/rss/rssfile.h b/src/base/rss/rssfile.h similarity index 98% rename from src/gui/rss/rssfile.h rename to src/base/rss/rssfile.h index 3d8d95f4e..9b08d00f9 100644 --- a/src/gui/rss/rssfile.h +++ b/src/base/rss/rssfile.h @@ -31,7 +31,6 @@ #ifndef RSSFILE_H #define RSSFILE_H -#include #include #include #include @@ -55,7 +54,7 @@ public: virtual uint unreadCount() const = 0; virtual QString displayName() const = 0; virtual QString id() const = 0; - virtual QIcon icon() const = 0; + virtual QString iconPath() const = 0; virtual void rename(const QString &new_name) = 0; virtual void markAsRead() = 0; virtual RssFolder* parent() const = 0; diff --git a/src/gui/rss/rssfolder.cpp b/src/base/rss/rssfolder.cpp similarity index 98% rename from src/gui/rss/rssfolder.cpp rename to src/base/rss/rssfolder.cpp index 12b16e6df..a76357623 100644 --- a/src/gui/rss/rssfolder.cpp +++ b/src/base/rss/rssfolder.cpp @@ -30,12 +30,12 @@ #include -#include "guiiconprovider.h" -#include "rssfolder.h" -#include "rssarticle.h" +#include "base/iconprovider.h" #include "base/bittorrent/session.h" #include "rssmanager.h" #include "rssfeed.h" +#include "rssarticle.h" +#include "rssfolder.h" RssFolder::RssFolder(RssFolder *parent, const QString &name): m_parent(parent), m_name(name) { } @@ -231,9 +231,9 @@ QString RssFolder::id() const return m_name; } -QIcon RssFolder::icon() const +QString RssFolder::iconPath() const { - return GuiIconProvider::instance()->getIcon("inode-directory"); + return IconProvider::instance()->getIconPath("inode-directory"); } bool RssFolder::hasChild(const QString &childId) { diff --git a/src/gui/rss/rssfolder.h b/src/base/rss/rssfolder.h similarity index 98% rename from src/gui/rss/rssfolder.h rename to src/base/rss/rssfolder.h index b3210fbac..85e8c7ca0 100644 --- a/src/gui/rss/rssfolder.h +++ b/src/base/rss/rssfolder.h @@ -33,6 +33,7 @@ #include #include + #include "rssfile.h" class RssFolder; @@ -61,7 +62,7 @@ public: QHash getAllFeedsAsHash() const; virtual QString displayName() const; virtual QString id() const; - virtual QIcon icon() const; + virtual QString iconPath() const; bool hasChild(const QString &childId); virtual RssArticleList articleListByDateDesc() const; virtual RssArticleList unreadArticleListByDateDesc() const; diff --git a/src/gui/rss/rssmanager.cpp b/src/base/rss/rssmanager.cpp similarity index 99% rename from src/gui/rss/rssmanager.cpp rename to src/base/rss/rssmanager.cpp index 338c82d17..f00457189 100644 --- a/src/gui/rss/rssmanager.cpp +++ b/src/base/rss/rssmanager.cpp @@ -29,13 +29,14 @@ */ #include -#include "rssmanager.h" + #include "base/preferences.h" #include "base/bittorrent/session.h" #include "rssfeed.h" #include "rssarticle.h" #include "rssdownloadrulelist.h" #include "rssparser.h" +#include "rssmanager.h" static const int MSECS_PER_MIN = 60000; diff --git a/src/gui/rss/rssmanager.h b/src/base/rss/rssmanager.h similarity index 100% rename from src/gui/rss/rssmanager.h rename to src/base/rss/rssmanager.h diff --git a/src/gui/rss/rssparser.cpp b/src/base/rss/rssparser.cpp similarity index 98% rename from src/gui/rss/rssparser.cpp rename to src/base/rss/rssparser.cpp index e09023cea..5929684e4 100644 --- a/src/gui/rss/rssparser.cpp +++ b/src/base/rss/rssparser.cpp @@ -28,15 +28,14 @@ * Contact : chris@qbittorrent.org */ -#include "rssparser.h" -#include "base/utils/fs.h" - #include #include #include #include #include -#include + +#include "base/utils/fs.h" +#include "rssparser.h" struct ParsingJob { QString feedUrl; @@ -343,10 +342,7 @@ void RssParser::parseAtomArticle(QXmlStreamReader& xml, const QString& feedUrl, if (xml.isStartElement()) { if (xml.name() == "title") { - // Workaround for CDATA (QString cannot parse html escapes on it's own) - QTextDocument doc; - doc.setHtml(xml.readElementText()); - article["title"] = doc.toPlainText().trimmed(); + article["title"] = xml.readElementText().trimmed(); } else if (xml.name() == "link") { QString link = ( xml.attributes().isEmpty() ? diff --git a/src/gui/rss/rssparser.h b/src/base/rss/rssparser.h similarity index 99% rename from src/gui/rss/rssparser.h rename to src/base/rss/rssparser.h index bb3b2466f..23608127b 100644 --- a/src/gui/rss/rssparser.h +++ b/src/base/rss/rssparser.h @@ -31,12 +31,13 @@ #ifndef RSSPARSER_H #define RSSPARSER_H -#include "rssarticle.h" #include #include #include #include +#include "rssarticle.h" + struct ParsingJob; class RssParser : public QThread diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index bf5684a57..f087c9bec 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -36,10 +36,10 @@ #include "automatedrssdownloader.h" #include "ui_automatedrssdownloader.h" -#include "rssdownloadrulelist.h" +#include "base/rss/rssdownloadrulelist.h" #include "base/preferences.h" -#include "rssmanager.h" -#include "rssfeed.h" +#include "base/rss/rssmanager.h" +#include "base/rss/rssfeed.h" #include "guiiconprovider.h" #include "autoexpandabledialog.h" #include "base/utils/fs.h" diff --git a/src/gui/rss/automatedrssdownloader.h b/src/gui/rss/automatedrssdownloader.h index b3e409a88..ad7338ed5 100644 --- a/src/gui/rss/automatedrssdownloader.h +++ b/src/gui/rss/automatedrssdownloader.h @@ -35,7 +35,8 @@ #include #include #include -#include "rssdownloadrule.h" + +#include "base/rss/rssdownloadrule.h" QT_BEGIN_NAMESPACE namespace Ui { diff --git a/src/gui/rss/feedlistwidget.cpp b/src/gui/rss/feedlistwidget.cpp index f86ac9864..9c30274f0 100644 --- a/src/gui/rss/feedlistwidget.cpp +++ b/src/gui/rss/feedlistwidget.cpp @@ -28,10 +28,10 @@ * Contact: chris@qbittorrent.org, arnaud@qbittorrent.org */ -#include "feedlistwidget.h" -#include "rssmanager.h" -#include "rssfeed.h" +#include "core/rss/rssmanager.h" +#include "core/rss/rssfeed.h" #include "guiiconprovider.h" +#include "feedlistwidget.h" FeedListWidget::FeedListWidget(QWidget *parent, const RssManagerPtr& rssmanager): QTreeWidget(parent), m_rssManager(rssmanager) { setContextMenuPolicy(Qt::CustomContextMenu); diff --git a/src/gui/rss/feedlistwidget.h b/src/gui/rss/feedlistwidget.h index 89f99eb98..8e69df244 100644 --- a/src/gui/rss/feedlistwidget.h +++ b/src/gui/rss/feedlistwidget.h @@ -39,9 +39,9 @@ #include #include -#include "rssfile.h" -#include "rssfeed.h" -#include "rssmanager.h" +#include "base/rss/rssfile.h" +#include "base/rss/rssfeed.h" +#include "base/rss/rssmanager.h" class FeedListWidget: public QTreeWidget { Q_OBJECT diff --git a/src/gui/rss/rss.pri b/src/gui/rss/rss.pri index e4d91389b..01df487de 100644 --- a/src/gui/rss/rss.pri +++ b/src/gui/rss/rss.pri @@ -3,31 +3,15 @@ INCLUDEPATH += $$PWD HEADERS += $$PWD/rss_imp.h \ $$PWD/rsssettingsdlg.h \ $$PWD/feedlistwidget.h \ - $$PWD/rssmanager.h \ - $$PWD/rssfeed.h \ - $$PWD/rssfolder.h \ - $$PWD/rssfile.h \ - $$PWD/rssarticle.h \ $$PWD/automatedrssdownloader.h \ - $$PWD/rssdownloadrule.h \ - $$PWD/rssdownloadrulelist.h \ $$PWD/cookiesdlg.h \ - $$PWD/rssparser.h \ $$PWD/htmlbrowser.h SOURCES += $$PWD/rss_imp.cpp \ $$PWD/rsssettingsdlg.cpp \ $$PWD/feedlistwidget.cpp \ - $$PWD/rssmanager.cpp \ - $$PWD/rssfeed.cpp \ - $$PWD/rssfolder.cpp \ - $$PWD/rssarticle.cpp \ $$PWD/automatedrssdownloader.cpp \ - $$PWD/rssdownloadrule.cpp \ - $$PWD/rssdownloadrulelist.cpp \ $$PWD/cookiesdlg.cpp \ - $$PWD/rssfile.cpp \ - $$PWD/rssparser.cpp \ $$PWD/htmlbrowser.cpp FORMS += $$PWD/rss.ui \ diff --git a/src/gui/rss/rss_imp.cpp b/src/gui/rss/rss_imp.cpp index 2cda0096c..c5aa670bf 100644 --- a/src/gui/rss/rss_imp.cpp +++ b/src/gui/rss/rss_imp.cpp @@ -44,11 +44,11 @@ #include "cookiesdlg.h" #include "base/preferences.h" #include "rsssettingsdlg.h" -#include "rssmanager.h" -#include "rssfolder.h" -#include "rssarticle.h" -#include "rssparser.h" -#include "rssfeed.h" +#include "base/rss/rssmanager.h" +#include "base/rss/rssfolder.h" +#include "base/rss/rssarticle.h" +#include "base/rss/rssparser.h" +#include "base/rss/rssfeed.h" #include "automatedrssdownloader.h" #include "guiiconprovider.h" #include "autoexpandabledialog.h" @@ -478,7 +478,7 @@ QTreeWidgetItem* RSSImp::createFolderListItem(const RssFilePtr& rssFile) Q_ASSERT(rssFile); QTreeWidgetItem* item = new QTreeWidgetItem; item->setData(0, Qt::DisplayRole, QVariant(rssFile->displayName() + QString::fromUtf8(" (") + QString::number(rssFile->unreadCount()) + QString(")"))); - item->setData(0, Qt::DecorationRole, rssFile->icon()); + item->setData(0, Qt::DecorationRole, QIcon(rssFile->iconPath())); return item; } @@ -680,7 +680,7 @@ void RSSImp::updateFeedInfos(const QString& url, const QString& display_name, ui RssFeedPtr stream = qSharedPointerCast(m_feedList->getRSSItem(item)); item->setText(0, display_name + QString::fromUtf8(" (") + QString::number(nbUnread) + QString(")")); if (!stream->isLoading()) - item->setData(0, Qt::DecorationRole, QVariant(stream->icon())); + item->setData(0, Qt::DecorationRole, QIcon(stream->iconPath())); // Update parent if (item->parent()) updateItemInfos(item->parent()); diff --git a/src/gui/rss/rss_imp.h b/src/gui/rss/rss_imp.h index 5754effd6..966de0006 100644 --- a/src/gui/rss/rss_imp.h +++ b/src/gui/rss/rss_imp.h @@ -35,9 +35,9 @@ #include #include +#include "base/rss/rssfolder.h" +#include "base/rss/rssmanager.h" #include "ui_rss.h" -#include "rssfolder.h" -#include "rssmanager.h" class FeedListWidget; From 30f4036c97e5d2639cb9cf754296aa2fff8efa94 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Wed, 23 Dec 2015 14:13:49 +0300 Subject: [PATCH 048/238] Fix moving torrents to Temp after app restart Closes #4434 --- src/base/bittorrent/torrenthandle.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/base/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp index 707c1b08a..1d1b2ea05 100644 --- a/src/base/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -1364,13 +1364,14 @@ void TorrentHandle::handleTorrentCheckedAlert(libtorrent::torrent_checked_alert qDebug("%s have just finished checking", qPrintable(hash())); updateStatus(); - adjustActualSavePath(); - if (progress() < 1.0 && wantedSize() > 0) + if ((progress() < 1.0) && (wantedSize() > 0)) m_hasSeedStatus = false; else if (progress() == 1.0) m_hasSeedStatus = true; + adjustActualSavePath(); + if (m_pauseAfterRecheck) { m_pauseAfterRecheck = false; pause(); @@ -1696,7 +1697,7 @@ bool TorrentHandle::isMoveInProgress() const bool TorrentHandle::useTempPath() const { - return !m_tempPathDisabled && m_session->isTempPathEnabled() && !isSeed(); + return !m_tempPathDisabled && m_session->isTempPathEnabled() && !(isSeed() || m_hasSeedStatus); } void TorrentHandle::updateStatus() From d3b47f45abbfaf137ae02ce3dce98d5fdb93b914 Mon Sep 17 00:00:00 2001 From: filipporig8 Date: Mon, 7 Dec 2015 14:10:43 +0100 Subject: [PATCH 049/238] Update webui run program parameters --- src/webui/www/public/preferences_content.html | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/webui/www/public/preferences_content.html b/src/webui/www/public/preferences_content.html index 745b02271..865895976 100644 --- a/src/webui/www/public/preferences_content.html +++ b/src/webui/www/public/preferences_content.html @@ -55,12 +55,19 @@
- +
- QBT_TR(The following parameters are supported:)QBT_TR + QBT_TR(Supported parameters (case sensitive):)QBT_TR
    -
  • %f: QBT_TR(Torrent path)QBT_TR
  • -
  • %n: QBT_TR(Torrent name)QBT_TR
  • +
  • QBT_TR(%N: Torrent name)QBT_TR
  • +
  • QBT_TR(%L: Label)QBT_TR
  • +
  • QBT_TR(%F: Content path (same as root path for multifile torrent))QBT_TR
  • +
  • QBT_TR(%R: Root path (first torrent subdirectory path))QBT_TR
  • +
  • QBT_TR(%D: Save path)QBT_TR
  • +
  • QBT_TR(%C: Number of files)QBT_TR
  • +
  • QBT_TR(%Z: Torrent size (bytes))QBT_TR
  • +
  • QBT_TR(%T: Current tracker)QBT_TR
  • +
  • QBT_TR(%I: Info hash)QBT_TR
From c9293dd2d13b6401665bc749af89d332c05be42e Mon Sep 17 00:00:00 2001 From: Naikel Aparicio Date: Wed, 23 Dec 2015 12:23:51 -0430 Subject: [PATCH 050/238] Fixed bug when uploading several files and only the last one was considered. --- src/base/http/requestparser.cpp | 2 +- src/base/http/types.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/base/http/requestparser.cpp b/src/base/http/requestparser.cpp index eb26dbc5c..220272590 100644 --- a/src/base/http/requestparser.cpp +++ b/src/base/http/requestparser.cpp @@ -319,7 +319,7 @@ bool RequestParser::parseFormData(const QByteArray& data) ufile.type = disposition["content-type"]; ufile.data = data.mid(header_end + EOH.length()); - m_request.files[disposition["name"]] = ufile; + m_request.files.append(ufile); } else { m_request.posts[disposition["name"]] = QString::fromUtf8(data.mid(header_end + EOH.length())); diff --git a/src/base/http/types.h b/src/base/http/types.h index e86330fec..28743e83f 100644 --- a/src/base/http/types.h +++ b/src/base/http/types.h @@ -32,6 +32,7 @@ #include #include #include +#include typedef QMap QStringMap; @@ -70,7 +71,7 @@ namespace Http QStringMap headers; QStringMap gets; QStringMap posts; - QMap files; + QVector files; }; struct ResponseStatus From 2691bb15403e39477373d60721386a3b31b2c8eb Mon Sep 17 00:00:00 2001 From: buinsky Date: Sun, 27 Dec 2015 09:22:45 +0300 Subject: [PATCH 051/238] Fix paused, active and inactive filters --- src/webui/www/public/scripts/dynamicTable.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index 0184eb050..aa1aa9cea 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -616,6 +616,9 @@ var TorrentsTable = new Class({ applyFilter : function (row, filterName, labelName) { var state = row['full_data'].state; + var inactive = false; + var r; + switch(filterName) { case 'downloading': if (state != 'downloading' && !~state.indexOf('DL')) @@ -630,19 +633,21 @@ var TorrentsTable = new Class({ return false; break; case 'paused': - if (state != 'pausedDL') + if (!~state.indexOf('paused')) return false; break; case 'resumed': if (~state.indexOf('paused')) return false; break; - case 'active': - if (state != 'downloading' && state != 'forcedDL' && state != 'uploading' && state != 'forcedUP') - return false; - break; case 'inactive': - if (state == 'downloading' || state == 'forcedDL' || state == 'uploading' || state == 'forcedUP') + inactive = true; + case 'active': + if (state == 'stalledDL') + r = (row['full_data'].upspeed > 0) + else + r = state == 'metaDL' || state == 'downloading' || state == 'forcedDL' || state == 'uploading' || state == 'forcedUP'; + if (r == inactive) return false; break; case 'errored': From a564b96ccfbd89f83a4f64480c941e43b4716f92 Mon Sep 17 00:00:00 2001 From: Dmitry Victorov Date: Sun, 27 Dec 2015 07:02:31 +0300 Subject: [PATCH 052/238] Set qBittorrent as default torrent app in Mac OS --- src/base/preferences.cpp | 60 ++++++++++++++++++++++++++++++++++++++++ src/base/preferences.h | 6 ++++ src/gui/options_imp.cpp | 23 ++++++++++++++- 3 files changed, 88 insertions(+), 1 deletion(-) diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 590039380..3e3fdaef2 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -51,6 +51,10 @@ #include #endif +#ifdef Q_OS_MAC +#include +#endif + #include #include "base/utils/fs.h" #include "base/utils/misc.h" @@ -1910,6 +1914,62 @@ void Preferences::setMagnetLinkAssoc(bool set) } #endif +#ifdef Q_OS_MAC +namespace +{ + CFStringRef torrentExtension = CFSTR("torrent"); + CFStringRef magnetUrlScheme = CFSTR("magnet"); +} + +bool Preferences::isTorrentFileAssocSet() +{ + bool isSet = false; + CFStringRef torrentId = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, torrentExtension, NULL); + if (torrentId != NULL) { + CFStringRef defaultHandlerId = LSCopyDefaultRoleHandlerForContentType(torrentId, kLSRolesViewer); + if (defaultHandlerId != NULL) { + CFStringRef myBundleId = CFBundleGetIdentifier(CFBundleGetMainBundle()); + isSet = CFStringCompare(myBundleId, defaultHandlerId, 0) == kCFCompareEqualTo; + CFRelease(defaultHandlerId); + } + CFRelease(torrentId); + } + return isSet; +} + +bool Preferences::isMagnetLinkAssocSet() +{ + bool isSet = false; + CFStringRef defaultHandlerId = LSCopyDefaultHandlerForURLScheme(magnetUrlScheme); + if (defaultHandlerId != NULL) { + CFStringRef myBundleId = CFBundleGetIdentifier(CFBundleGetMainBundle()); + isSet = CFStringCompare(myBundleId, defaultHandlerId, 0) == kCFCompareEqualTo; + CFRelease(defaultHandlerId); + } + return isSet; +} + +void Preferences::setTorrentFileAssoc() +{ + if (isTorrentFileAssocSet()) + return; + CFStringRef torrentId = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, torrentExtension, NULL); + if (torrentId != NULL) { + CFStringRef myBundleId = CFBundleGetIdentifier(CFBundleGetMainBundle()); + LSSetDefaultRoleHandlerForContentType(torrentId, kLSRolesViewer, myBundleId); + CFRelease(torrentId); + } +} + +void Preferences::setMagnetLinkAssoc() +{ + if (isMagnetLinkAssocSet()) + return; + CFStringRef myBundleId = CFBundleGetIdentifier(CFBundleGetMainBundle()); + LSSetDefaultHandlerForURLScheme(magnetUrlScheme, myBundleId); +} +#endif + bool Preferences::isTrackerEnabled() const { return value("Preferences/Advanced/trackerEnabled", false).toBool(); diff --git a/src/base/preferences.h b/src/base/preferences.h index 4767a1d59..ce5f1f644 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -421,6 +421,12 @@ public: static bool isMagnetLinkAssocSet(); static void setTorrentFileAssoc(bool set); static void setMagnetLinkAssoc(bool set); +#endif +#ifdef Q_OS_MAC + static bool isTorrentFileAssocSet(); + static bool isMagnetLinkAssocSet(); + static void setTorrentFileAssoc(); + static void setMagnetLinkAssoc(); #endif bool isTrackerEnabled() const; void setTrackerEnabled(bool enabled); diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index 6ef0283a3..0dcab7b0c 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -123,6 +123,9 @@ options_imp::options_imp(QWidget *parent) #ifndef Q_OS_WIN checkStartup->setVisible(false); +#endif + +#if !(defined(Q_OS_WIN) || defined(Q_OS_MAC)) groupFileAssociation->setVisible(false); #endif @@ -149,7 +152,7 @@ options_imp::options_imp(QWidget *parent) #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) && !defined(QT_DBUS_LIB) checkPreventFromSuspend->setDisabled(true); #endif -#ifdef Q_OS_WIN +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) connect(checkAssociateTorrents, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton())); connect(checkAssociateMagnetLinks, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton())); #endif @@ -402,6 +405,18 @@ void options_imp::saveOptions() // Windows: file association settings Preferences::setTorrentFileAssoc(checkAssociateTorrents->isChecked()); Preferences::setMagnetLinkAssoc(checkAssociateMagnetLinks->isChecked()); +#endif +#ifdef Q_OS_MAC + if (checkAssociateTorrents->isChecked()) { + Preferences::setTorrentFileAssoc(); + checkAssociateTorrents->setChecked(Preferences::isTorrentFileAssocSet()); + checkAssociateTorrents->setEnabled(!checkAssociateTorrents->isChecked()); + } + if (checkAssociateMagnetLinks->isChecked()) { + Preferences::setMagnetLinkAssoc(); + checkAssociateMagnetLinks->setChecked(Preferences::isMagnetLinkAssocSet()); + checkAssociateMagnetLinks->setEnabled(!checkAssociateMagnetLinks->isChecked()); + } #endif // End General preferences @@ -573,6 +588,12 @@ void options_imp::loadOptions() checkStartup->setChecked(pref->WinStartup()); checkAssociateTorrents->setChecked(Preferences::isTorrentFileAssocSet()); checkAssociateMagnetLinks->setChecked(Preferences::isMagnetLinkAssocSet()); +#endif +#ifdef Q_OS_MAC + checkAssociateTorrents->setChecked(Preferences::isTorrentFileAssocSet()); + checkAssociateTorrents->setEnabled(!checkAssociateTorrents->isChecked()); + checkAssociateMagnetLinks->setChecked(Preferences::isMagnetLinkAssocSet()); + checkAssociateMagnetLinks->setEnabled(!checkAssociateMagnetLinks->isChecked()); #endif // End General preferences From 15652025d350fad6620bd04ade2d6c157d7b8a69 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 2 Jan 2016 18:54:37 +0200 Subject: [PATCH 053/238] Update native names for Chinese locales. Closes #4381. --- src/base/unicodestrings.h | 4 ++-- src/webui/www/public/preferences_content.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/base/unicodestrings.h b/src/base/unicodestrings.h index c9c7691b7..24268544b 100644 --- a/src/base/unicodestrings.h +++ b/src/base/unicodestrings.h @@ -80,7 +80,7 @@ const char C_LOCALE_GEORGIAN[] = "ქართული"; const char C_LOCALE_BYELORUSSIAN[] = "Беларуская"; const char C_LOCALE_BASQUE[] = "Euskara"; const char C_LOCALE_VIETNAMESE[] = "tiếng Việt"; -const char C_LOCALE_CHINESE_TRADITIONAL_TW[] = "正體中文 (臺灣)"; -const char C_LOCALE_CHINESE_TRADITIONAL_HK[] = "繁體中文 (香港)"; +const char C_LOCALE_CHINESE_TRADITIONAL_TW[] = "正體中文"; +const char C_LOCALE_CHINESE_TRADITIONAL_HK[] = "香港正體字"; const char C_LOCALE_CHINESE_SIMPLIFIED[] = "简体中文"; const char C_LOCALE_KOREAN[] = "한글"; diff --git a/src/webui/www/public/preferences_content.html b/src/webui/www/public/preferences_content.html index 745b02271..7fcb3ecc3 100644 --- a/src/webui/www/public/preferences_content.html +++ b/src/webui/www/public/preferences_content.html @@ -336,8 +336,8 @@ - - + + From c700b8c5c5ea522ffeedd4950d2e89f81f67cfb4 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 3 Jan 2016 16:25:18 +0200 Subject: [PATCH 054/238] Move the 'qBittorrent-resume' file even when no magnets were recovered. Also make sure to rename it with a unique name. Closes #4334. --- src/app/upgrade.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/app/upgrade.h b/src/app/upgrade.h index 0a9ff75c8..7af4be152 100644 --- a/src/app/upgrade.h +++ b/src/app/upgrade.h @@ -118,14 +118,15 @@ bool upgrade(bool ask = true) QString oldResumeFilename = oldResumeSettings->fileName(); QVariantHash oldResumeData = oldResumeSettings->value("torrents").toHash(); delete oldResumeSettings; - if (oldResumeData.isEmpty()) + bool oldResumeWasEmpty = oldResumeData.isEmpty(); + if (oldResumeWasEmpty) Utils::Fs::forceRemove(oldResumeFilename); QString backupFolderPath = Utils::Fs::expandPathAbs(Utils::Fs::QDesktopServicesDataLocation() + "BT_backup"); QDir backupFolderDir(backupFolderPath); QStringList backupFiles = backupFolderDir.entryList(QStringList() << QLatin1String("*.fastresume"), QDir::Files, QDir::Unsorted); - if (backupFiles.isEmpty() && oldResumeData.isEmpty()) return true; + if (backupFiles.isEmpty() && oldResumeWasEmpty) return true; if (ask && !userAcceptsUpgrade()) return false; int maxPrio = 0; @@ -168,8 +169,17 @@ bool upgrade(bool ask = true) } } - if (!oldResumeData.isEmpty()) - QFile(oldResumeFilename).rename(oldResumeFilename + ".bak"); + if (!oldResumeWasEmpty) { + int counter = 0; + QString backupResumeFilename = oldResumeFilename + ".bak"; + + while (QFile::exists(backupResumeFilename)) { + ++counter; + backupResumeFilename = oldResumeFilename + ".bak" + QString::number(counter); + } + + QFile::rename(oldResumeFilename, backupResumeFilename); + } return true; } From e9547f7a1c0f86b208aa1e688ee5c46c5194c260 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 3 Jan 2016 17:38:50 +0200 Subject: [PATCH 055/238] Indicate to the user that he's going to download the new version. Indicate from the installer that the old version was detected and no settings will be deleted. Closes #4320. --- .../installer-translations/afrikaans.nsi | 2 ++ .../installer-translations/albanian.nsi | 2 ++ .../windows/installer-translations/arabic.nsi | 2 ++ .../windows/installer-translations/basque.nsi | 2 ++ .../installer-translations/belarusian.nsi | 2 ++ .../installer-translations/bosnian.nsi | 2 ++ .../windows/installer-translations/breton.nsi | 2 ++ .../installer-translations/bulgarian.nsi | 2 ++ .../installer-translations/catalan.nsi | 2 ++ .../installer-translations/croatian.nsi | 2 ++ dist/windows/installer-translations/czech.nsi | 2 ++ .../windows/installer-translations/danish.nsi | 2 ++ dist/windows/installer-translations/dutch.nsi | 2 ++ .../installer-translations/english.nsi | 2 ++ .../installer-translations/esperanto.nsi | 2 ++ .../installer-translations/estonian.nsi | 2 ++ dist/windows/installer-translations/farsi.nsi | 2 ++ .../installer-translations/finnish.nsi | 2 ++ .../windows/installer-translations/french.nsi | 2 ++ .../installer-translations/galician.nsi | 2 ++ .../windows/installer-translations/german.nsi | 2 ++ dist/windows/installer-translations/greek.nsi | 2 ++ .../windows/installer-translations/hebrew.nsi | 2 ++ .../installer-translations/hungarian.nsi | 2 ++ .../installer-translations/icelandic.nsi | 2 ++ .../installer-translations/indonesian.nsi | 2 ++ dist/windows/installer-translations/irish.nsi | 2 ++ .../installer-translations/italian.nsi | 2 ++ .../installer-translations/japanese.nsi | 2 ++ .../windows/installer-translations/korean.nsi | 2 ++ .../installer-translations/kurdish.nsi | 2 ++ .../installer-translations/latvian.nsi | 2 ++ .../installer-translations/lithuanian.nsi | 2 ++ .../installer-translations/luxembourgish.nsi | 2 ++ .../installer-translations/macedonian.nsi | 2 ++ dist/windows/installer-translations/malay.nsi | 2 ++ .../installer-translations/mongolian.nsi | 2 ++ .../installer-translations/norwegian.nsi | 2 ++ .../norwegiannynorsk.nsi | 2 ++ .../windows/installer-translations/polish.nsi | 2 ++ .../installer-translations/portuguese.nsi | 2 ++ .../installer-translations/portugueseBR.nsi | 2 ++ .../installer-translations/romanian.nsi | 2 ++ .../installer-translations/russian.nsi | 2 ++ .../installer-translations/serbian.nsi | 2 ++ .../installer-translations/serbianlatin.nsi | 2 ++ .../installer-translations/simpchinese.nsi | 2 ++ .../windows/installer-translations/slovak.nsi | 2 ++ .../installer-translations/slovenian.nsi | 2 ++ .../installer-translations/spanish.nsi | 2 ++ .../spanishinternational.nsi | 2 ++ .../installer-translations/swedish.nsi | 2 ++ dist/windows/installer-translations/thai.nsi | 2 ++ .../installer-translations/tradchinese.nsi | 2 ++ .../installer-translations/turkish.nsi | 2 ++ .../installer-translations/ukrainian.nsi | 2 ++ dist/windows/installer-translations/uzbek.nsi | 2 ++ dist/windows/installer-translations/welsh.nsi | 2 ++ dist/windows/installer.nsi | 20 ++++++++++++++----- src/gui/mainwindow.cpp | 2 +- 60 files changed, 132 insertions(+), 6 deletions(-) diff --git a/dist/windows/installer-translations/afrikaans.nsi b/dist/windows/installer-translations/afrikaans.nsi index 78b9f04d5..4eafc5636 100644 --- a/dist/windows/installer-translations/afrikaans.nsi +++ b/dist/windows/installer-translations/afrikaans.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_AFRIKAANS} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_AFRIKAANS} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_AFRIKAANS} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_AFRIKAANS} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_AFRIKAANS} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/albanian.nsi b/dist/windows/installer-translations/albanian.nsi index f10354a74..158746fb3 100644 --- a/dist/windows/installer-translations/albanian.nsi +++ b/dist/windows/installer-translations/albanian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ALBANIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_ALBANIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ALBANIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ALBANIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ALBANIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/arabic.nsi b/dist/windows/installer-translations/arabic.nsi index 5e8098598..525415a6b 100644 --- a/dist/windows/installer-translations/arabic.nsi +++ b/dist/windows/installer-translations/arabic.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ARABIC} "اضافة قاعدة للجدار ال LangString inst_firewallinfo ${LANG_ARABIC} "جاري اضافة القاعدة للجدار الناري" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ARABIC} "البرنامج يعمل. يرجى اغلاقه قبل البدء في التنصيب" +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ARABIC} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ARABIC} "جاري ازالة النسخة السابقة من البرنامج" ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/basque.nsi b/dist/windows/installer-translations/basque.nsi index 07c33a51e..b30566456 100644 --- a/dist/windows/installer-translations/basque.nsi +++ b/dist/windows/installer-translations/basque.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_BASQUE} "Gehitu Windows Suhesi araua" LangString inst_firewallinfo ${LANG_BASQUE} "Windows Suhesi araua gehitzen" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_BASQUE} "qBittorrent ekinean dago. Mesedez itxi aplikazioa ezarri aurretik." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_BASQUE} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_BASQUE} "Aurreko bertsioa kentzen." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/belarusian.nsi b/dist/windows/installer-translations/belarusian.nsi index 19624855a..a039fba81 100644 --- a/dist/windows/installer-translations/belarusian.nsi +++ b/dist/windows/installer-translations/belarusian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_BELARUSIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_BELARUSIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_BELARUSIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_BELARUSIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_BELARUSIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/bosnian.nsi b/dist/windows/installer-translations/bosnian.nsi index 3b254b122..10d5ab526 100644 --- a/dist/windows/installer-translations/bosnian.nsi +++ b/dist/windows/installer-translations/bosnian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_BOSNIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_BOSNIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_BOSNIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_BOSNIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_BOSNIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/breton.nsi b/dist/windows/installer-translations/breton.nsi index 5d19e3c52..6c808b277 100644 --- a/dist/windows/installer-translations/breton.nsi +++ b/dist/windows/installer-translations/breton.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_BRETON} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_BRETON} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_BRETON} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_BRETON} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_BRETON} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/bulgarian.nsi b/dist/windows/installer-translations/bulgarian.nsi index ba57163da..b34cbcdf9 100644 --- a/dist/windows/installer-translations/bulgarian.nsi +++ b/dist/windows/installer-translations/bulgarian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_BULGARIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_BULGARIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_BULGARIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_BULGARIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_BULGARIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/catalan.nsi b/dist/windows/installer-translations/catalan.nsi index c8264243c..376cd7bef 100644 --- a/dist/windows/installer-translations/catalan.nsi +++ b/dist/windows/installer-translations/catalan.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_CATALAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_CATALAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_CATALAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_CATALAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_CATALAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/croatian.nsi b/dist/windows/installer-translations/croatian.nsi index a19ce971b..dcef2dccc 100644 --- a/dist/windows/installer-translations/croatian.nsi +++ b/dist/windows/installer-translations/croatian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_CROATIAN} "Dodaj Windows Firewall pravilo" LangString inst_firewallinfo ${LANG_CROATIAN} "Dodavanje Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_CROATIAN} "qBittorrent je pokrenut. Zatvorite ga prije instalacije." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_CROATIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_CROATIAN} "Deinstaliraj prethodnu verziju." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/czech.nsi b/dist/windows/installer-translations/czech.nsi index a80ad79b5..dbdb88078 100644 --- a/dist/windows/installer-translations/czech.nsi +++ b/dist/windows/installer-translations/czech.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_CZECH} "Vytvořit pravidlo ve Windows Firewall" LangString inst_firewallinfo ${LANG_CZECH} "Vytváření pravidla ve Windows Firewall" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_CZECH} "qBittorrent je spuštěn. Před instalací aplikaci ukončete, prosím." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_CZECH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_CZECH} "Odebírání předchozí verze." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/danish.nsi b/dist/windows/installer-translations/danish.nsi index 3fbae8c1a..95154e35d 100644 --- a/dist/windows/installer-translations/danish.nsi +++ b/dist/windows/installer-translations/danish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_DANISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_DANISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_DANISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_DANISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_DANISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/dutch.nsi b/dist/windows/installer-translations/dutch.nsi index df8e9e56c..658949e7e 100644 --- a/dist/windows/installer-translations/dutch.nsi +++ b/dist/windows/installer-translations/dutch.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_DUTCH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_DUTCH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_DUTCH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_DUTCH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_DUTCH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/english.nsi b/dist/windows/installer-translations/english.nsi index 5761c3d78..f2799a335 100644 --- a/dist/windows/installer-translations/english.nsi +++ b/dist/windows/installer-translations/english.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ENGLISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_ENGLISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/esperanto.nsi b/dist/windows/installer-translations/esperanto.nsi index 7643900eb..adc2e1798 100644 --- a/dist/windows/installer-translations/esperanto.nsi +++ b/dist/windows/installer-translations/esperanto.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ESPERANTO} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_ESPERANTO} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ESPERANTO} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ESPERANTO} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ESPERANTO} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/estonian.nsi b/dist/windows/installer-translations/estonian.nsi index bc9768162..9e807ad0f 100644 --- a/dist/windows/installer-translations/estonian.nsi +++ b/dist/windows/installer-translations/estonian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ESTONIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_ESTONIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ESTONIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ESTONIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ESTONIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/farsi.nsi b/dist/windows/installer-translations/farsi.nsi index fee9487ca..7d9ce2734 100644 --- a/dist/windows/installer-translations/farsi.nsi +++ b/dist/windows/installer-translations/farsi.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_FARSI} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_FARSI} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_FARSI} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_FARSI} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_FARSI} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/finnish.nsi b/dist/windows/installer-translations/finnish.nsi index 47563ad27..5fa4942e9 100644 --- a/dist/windows/installer-translations/finnish.nsi +++ b/dist/windows/installer-translations/finnish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_FINNISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_FINNISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_FINNISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_FINNISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_FINNISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/french.nsi b/dist/windows/installer-translations/french.nsi index f5435f0c1..1e776b4b5 100644 --- a/dist/windows/installer-translations/french.nsi +++ b/dist/windows/installer-translations/french.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_FRENCH} "Ajouter régle Pare-Feu Windows" LangString inst_firewallinfo ${LANG_FRENCH} "Ajout régle Pare-Feu Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_FRENCH} "qBittorrent est en exécution. Veuillez fermer l'application avant l'installation." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_FRENCH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_FRENCH} "Désinstallation de la version précédente." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/galician.nsi b/dist/windows/installer-translations/galician.nsi index 019aa17d9..eb340949c 100644 --- a/dist/windows/installer-translations/galician.nsi +++ b/dist/windows/installer-translations/galician.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_GALICIAN} "Engadir unha regra á devasa (firewal LangString inst_firewallinfo ${LANG_GALICIAN} "Engadindo unha regra á devasa de Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_GALICIAN} "qBittorrent está en execución. Peche o aplicativo antes da instalación." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_GALICIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_GALICIAN} "Desinstalando a versión anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/german.nsi b/dist/windows/installer-translations/german.nsi index af64537b9..e71257e87 100644 --- a/dist/windows/installer-translations/german.nsi +++ b/dist/windows/installer-translations/german.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_GERMAN} "Regel in der Windows Firewall hinzufüg LangString inst_firewallinfo ${LANG_GERMAN} "Füge Regel in der Windows Firewall hinzu" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_GERMAN} "qBittorrent läuft gerade. Bitte das Programm vor der Installation beenden." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_GERMAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_GERMAN} "Vorherige Version wird deinstalliert." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/greek.nsi b/dist/windows/installer-translations/greek.nsi index cbc172184..008399152 100644 --- a/dist/windows/installer-translations/greek.nsi +++ b/dist/windows/installer-translations/greek.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_GREEK} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_GREEK} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_GREEK} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_GREEK} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_GREEK} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/hebrew.nsi b/dist/windows/installer-translations/hebrew.nsi index 6410c0a2d..a2d0fc139 100644 --- a/dist/windows/installer-translations/hebrew.nsi +++ b/dist/windows/installer-translations/hebrew.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_HEBREW} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_HEBREW} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_HEBREW} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_HEBREW} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_HEBREW} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/hungarian.nsi b/dist/windows/installer-translations/hungarian.nsi index f2b0203a5..d2c636ecb 100644 --- a/dist/windows/installer-translations/hungarian.nsi +++ b/dist/windows/installer-translations/hungarian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_HUNGARIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_HUNGARIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_HUNGARIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_HUNGARIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_HUNGARIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/icelandic.nsi b/dist/windows/installer-translations/icelandic.nsi index 6ae496045..69094a9b8 100644 --- a/dist/windows/installer-translations/icelandic.nsi +++ b/dist/windows/installer-translations/icelandic.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ICELANDIC} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_ICELANDIC} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ICELANDIC} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ICELANDIC} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ICELANDIC} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/indonesian.nsi b/dist/windows/installer-translations/indonesian.nsi index eb2c2cacc..a38574a45 100644 --- a/dist/windows/installer-translations/indonesian.nsi +++ b/dist/windows/installer-translations/indonesian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_INDONESIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_INDONESIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_INDONESIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_INDONESIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_INDONESIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/irish.nsi b/dist/windows/installer-translations/irish.nsi index b775b01a9..70bad066d 100644 --- a/dist/windows/installer-translations/irish.nsi +++ b/dist/windows/installer-translations/irish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_IRISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_IRISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_IRISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_IRISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_IRISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/italian.nsi b/dist/windows/installer-translations/italian.nsi index 6aeb0d686..a6aa64515 100644 --- a/dist/windows/installer-translations/italian.nsi +++ b/dist/windows/installer-translations/italian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ITALIAN} "Aggiungi regola al firewall di Windows LangString inst_firewallinfo ${LANG_ITALIAN} "Aggiunta regola al firewall di Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ITALIAN} "qBittorrent è in esecuzione. Chiudi l'applicazione prima dell'installazione." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ITALIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ITALIAN} "Disinstallazione versione precedente." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/japanese.nsi b/dist/windows/installer-translations/japanese.nsi index c6accbc8b..e7e087279 100644 --- a/dist/windows/installer-translations/japanese.nsi +++ b/dist/windows/installer-translations/japanese.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_JAPANESE} "Windows ファイアウォールの LangString inst_firewallinfo ${LANG_JAPANESE} "Windows ファイアウォールのルールを追加しています" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_JAPANESE} "qBittorrent が起動されています。インストールの前にアプリケーションを終了してください。" +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_JAPANESE} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_JAPANESE} "以前のバージョンをアンインストールしています。" ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/korean.nsi b/dist/windows/installer-translations/korean.nsi index 3ea830fe7..bf50cba55 100644 --- a/dist/windows/installer-translations/korean.nsi +++ b/dist/windows/installer-translations/korean.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_KOREAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_KOREAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_KOREAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_KOREAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_KOREAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/kurdish.nsi b/dist/windows/installer-translations/kurdish.nsi index ec7bb16ae..f2eb19abd 100644 --- a/dist/windows/installer-translations/kurdish.nsi +++ b/dist/windows/installer-translations/kurdish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_KURDISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_KURDISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_KURDISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_KURDISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_KURDISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/latvian.nsi b/dist/windows/installer-translations/latvian.nsi index cf4af4462..82fae45ef 100644 --- a/dist/windows/installer-translations/latvian.nsi +++ b/dist/windows/installer-translations/latvian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_LATVIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_LATVIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_LATVIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_LATVIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_LATVIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/lithuanian.nsi b/dist/windows/installer-translations/lithuanian.nsi index 0a0714468..64ebdccf6 100644 --- a/dist/windows/installer-translations/lithuanian.nsi +++ b/dist/windows/installer-translations/lithuanian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_LITHUANIAN} "Sukurti Windows užkardos leidimą" LangString inst_firewallinfo ${LANG_LITHUANIAN} "Pridedu Windows užkardos leidimą" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_LITHUANIAN} "qBittorrent yra paleistas. Prašau uždaryti programą prieš įdiegiant." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_LITHUANIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_LITHUANIAN} "Šalinu ankstesnę versiją." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/luxembourgish.nsi b/dist/windows/installer-translations/luxembourgish.nsi index 5503b28a2..27f5fddde 100644 --- a/dist/windows/installer-translations/luxembourgish.nsi +++ b/dist/windows/installer-translations/luxembourgish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_LUXEMBOURGISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_LUXEMBOURGISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_LUXEMBOURGISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_LUXEMBOURGISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_LUXEMBOURGISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/macedonian.nsi b/dist/windows/installer-translations/macedonian.nsi index cb709728f..699a154ef 100644 --- a/dist/windows/installer-translations/macedonian.nsi +++ b/dist/windows/installer-translations/macedonian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_MACEDONIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_MACEDONIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_MACEDONIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_MACEDONIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_MACEDONIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/malay.nsi b/dist/windows/installer-translations/malay.nsi index 2418b6dc9..95d2e4d1a 100644 --- a/dist/windows/installer-translations/malay.nsi +++ b/dist/windows/installer-translations/malay.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_MALAY} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_MALAY} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_MALAY} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_MALAY} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_MALAY} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/mongolian.nsi b/dist/windows/installer-translations/mongolian.nsi index 1a17959bb..bbc366483 100644 --- a/dist/windows/installer-translations/mongolian.nsi +++ b/dist/windows/installer-translations/mongolian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_MONGOLIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_MONGOLIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_MONGOLIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_MONGOLIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_MONGOLIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/norwegian.nsi b/dist/windows/installer-translations/norwegian.nsi index b8a2e8fb3..9faf6d911 100644 --- a/dist/windows/installer-translations/norwegian.nsi +++ b/dist/windows/installer-translations/norwegian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_NORWEGIAN} "Legg til Windows-brannmursregel" LangString inst_firewallinfo ${LANG_NORWEGIAN} "Legger til Windows-brannmursregel" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_NORWEGIAN} "qBittorrent kjører. Vennligst steng applikasjonen før installering." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_NORWEGIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_NORWEGIAN} "Avinstallerer forrige versjon." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/norwegiannynorsk.nsi b/dist/windows/installer-translations/norwegiannynorsk.nsi index 842fdbc99..33f657b1e 100644 --- a/dist/windows/installer-translations/norwegiannynorsk.nsi +++ b/dist/windows/installer-translations/norwegiannynorsk.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_NORWEGIANNYNORSK} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_NORWEGIANNYNORSK} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_NORWEGIANNYNORSK} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_NORWEGIANNYNORSK} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_NORWEGIANNYNORSK} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/polish.nsi b/dist/windows/installer-translations/polish.nsi index bb3c58448..7470dc667 100644 --- a/dist/windows/installer-translations/polish.nsi +++ b/dist/windows/installer-translations/polish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_POLISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_POLISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_POLISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_POLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_POLISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/portuguese.nsi b/dist/windows/installer-translations/portuguese.nsi index c9e342c81..db481a979 100644 --- a/dist/windows/installer-translations/portuguese.nsi +++ b/dist/windows/installer-translations/portuguese.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_PORTUGUESE} "Adicionar regra à firewall do Wind LangString inst_firewallinfo ${LANG_PORTUGUESE} "Adicionando regra à firewall do Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_PORTUGUESE} "O qBittorrent está a ser executado. Feche a aplicação antes de instalar esta versão." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_PORTUGUESE} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_PORTUGUESE} "A desinstalar versão anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/portugueseBR.nsi b/dist/windows/installer-translations/portugueseBR.nsi index 5cc4a1d69..01b2e83d4 100644 --- a/dist/windows/installer-translations/portugueseBR.nsi +++ b/dist/windows/installer-translations/portugueseBR.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_PORTUGUESEBR} "Adicionar regra no firewall do Wi LangString inst_firewallinfo ${LANG_PORTUGUESEBR} "Adicionando regra no firewall do Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_PORTUGUESEBR} "qBittorrent está rodando. Por favor feche a aplicação antes de instalar." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_PORTUGUESEBR} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_PORTUGUESEBR} "Desinstalando versão anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/romanian.nsi b/dist/windows/installer-translations/romanian.nsi index 025f93807..3560ebbc8 100644 --- a/dist/windows/installer-translations/romanian.nsi +++ b/dist/windows/installer-translations/romanian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_ROMANIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_ROMANIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_ROMANIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_ROMANIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_ROMANIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/russian.nsi b/dist/windows/installer-translations/russian.nsi index 4165cbaef..8e5eab2d3 100644 --- a/dist/windows/installer-translations/russian.nsi +++ b/dist/windows/installer-translations/russian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_RUSSIAN} "Добавить в список ис LangString inst_firewallinfo ${LANG_RUSSIAN} "Добавление в список исключений брандмауера" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_RUSSIAN} "qBittorrent запущен. Пожалуйста, закройте qBittorrent и перезапустите программу установки." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_RUSSIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_RUSSIAN} "Деинсталлируем старую версию." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/serbian.nsi b/dist/windows/installer-translations/serbian.nsi index b8c5c41ae..d17c214a3 100644 --- a/dist/windows/installer-translations/serbian.nsi +++ b/dist/windows/installer-translations/serbian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SERBIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_SERBIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SERBIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SERBIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SERBIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/serbianlatin.nsi b/dist/windows/installer-translations/serbianlatin.nsi index 29cec2706..5470944cc 100644 --- a/dist/windows/installer-translations/serbianlatin.nsi +++ b/dist/windows/installer-translations/serbianlatin.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SERBIANLATIN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_SERBIANLATIN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SERBIANLATIN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SERBIANLATIN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SERBIANLATIN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/simpchinese.nsi b/dist/windows/installer-translations/simpchinese.nsi index 80702318a..7e41ea642 100644 --- a/dist/windows/installer-translations/simpchinese.nsi +++ b/dist/windows/installer-translations/simpchinese.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SIMPCHINESE} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_SIMPCHINESE} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SIMPCHINESE} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SIMPCHINESE} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SIMPCHINESE} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/slovak.nsi b/dist/windows/installer-translations/slovak.nsi index c7faca72f..13ad79652 100644 --- a/dist/windows/installer-translations/slovak.nsi +++ b/dist/windows/installer-translations/slovak.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SLOVAK} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_SLOVAK} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SLOVAK} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SLOVAK} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SLOVAK} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/slovenian.nsi b/dist/windows/installer-translations/slovenian.nsi index 83f022f32..b53dd93eb 100644 --- a/dist/windows/installer-translations/slovenian.nsi +++ b/dist/windows/installer-translations/slovenian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SLOVENIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_SLOVENIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SLOVENIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SLOVENIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SLOVENIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/spanish.nsi b/dist/windows/installer-translations/spanish.nsi index 26fd7fc0b..ee4422066 100644 --- a/dist/windows/installer-translations/spanish.nsi +++ b/dist/windows/installer-translations/spanish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SPANISH} "Añadir regla al Firewall de Windows" LangString inst_firewallinfo ${LANG_SPANISH} "Añadiendo regla al Firewall de Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SPANISH} "qBittorrent se está ejecutando. Ciérrelo antes de continuar." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SPANISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SPANISH} "Desinstalando la versión anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/spanishinternational.nsi b/dist/windows/installer-translations/spanishinternational.nsi index cc135884b..c83a66e86 100644 --- a/dist/windows/installer-translations/spanishinternational.nsi +++ b/dist/windows/installer-translations/spanishinternational.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SPANISHINTERNATIONAL} "Añadir regla al Firewall LangString inst_firewallinfo ${LANG_SPANISHINTERNATIONAL} "Añadiendo regla al Firewall de Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SPANISHINTERNATIONAL} "qBittorrent se está ejecutando. Ciérrelo antes de continuar." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SPANISHINTERNATIONAL} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SPANISHINTERNATIONAL} "Desinstalando la versión anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/swedish.nsi b/dist/windows/installer-translations/swedish.nsi index d45a8747b..2ccd6ddee 100644 --- a/dist/windows/installer-translations/swedish.nsi +++ b/dist/windows/installer-translations/swedish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_SWEDISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_SWEDISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SWEDISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SWEDISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SWEDISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/thai.nsi b/dist/windows/installer-translations/thai.nsi index b6dffdfc7..25437c7fa 100644 --- a/dist/windows/installer-translations/thai.nsi +++ b/dist/windows/installer-translations/thai.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_THAI} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_THAI} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_THAI} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_THAI} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_THAI} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/tradchinese.nsi b/dist/windows/installer-translations/tradchinese.nsi index bb2ac376f..6820cea82 100644 --- a/dist/windows/installer-translations/tradchinese.nsi +++ b/dist/windows/installer-translations/tradchinese.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_TRADCHINESE} "建立 Windows 防火牆規則" LangString inst_firewallinfo ${LANG_TRADCHINESE} "正在建立 Windows 防火牆規則" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_TRADCHINESE} "qBittorrent 正在執行中,請先關閉後再進行安裝。" +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_TRADCHINESE} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_TRADCHINESE} "正在移除先前版本" ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/turkish.nsi b/dist/windows/installer-translations/turkish.nsi index 336c929dd..c4d0a0c33 100644 --- a/dist/windows/installer-translations/turkish.nsi +++ b/dist/windows/installer-translations/turkish.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_TURKISH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_TURKISH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_TURKISH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_TURKISH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_TURKISH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/ukrainian.nsi b/dist/windows/installer-translations/ukrainian.nsi index 902c2fbe6..99e5782ed 100644 --- a/dist/windows/installer-translations/ukrainian.nsi +++ b/dist/windows/installer-translations/ukrainian.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_UKRAINIAN} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_UKRAINIAN} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_UKRAINIAN} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_UKRAINIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_UKRAINIAN} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/uzbek.nsi b/dist/windows/installer-translations/uzbek.nsi index 220997095..bc54ce6b1 100644 --- a/dist/windows/installer-translations/uzbek.nsi +++ b/dist/windows/installer-translations/uzbek.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_UZBEK} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_UZBEK} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_UZBEK} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_UZBEK} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_UZBEK} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/welsh.nsi b/dist/windows/installer-translations/welsh.nsi index 0302d6932..5cb5d10e0 100644 --- a/dist/windows/installer-translations/welsh.nsi +++ b/dist/windows/installer-translations/welsh.nsi @@ -16,6 +16,8 @@ LangString inst_firewall ${LANG_WELSH} "Add Windows Firewall rule" LangString inst_firewallinfo ${LANG_WELSH} "Adding Windows Firewall rule" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_WELSH} "qBittorrent is running. Please close the application before installing." +;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_WELSH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_WELSH} "Uninstalling previous version." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer.nsi b/dist/windows/installer.nsi index 801e7b178..1c7822456 100644 --- a/dist/windows/installer.nsi +++ b/dist/windows/installer.nsi @@ -4,13 +4,12 @@ FindFirst $0 $1 "$INSTDIR\uninst.exe" FindClose $0 StrCmp $1 "" done - + ;Run the uninstaller of the previous install. - DetailPrint $(inst_unist) + DetailPrint $(inst_unist) ExecWait '"$INSTDIR\uninst.exe" /S _?=$INSTDIR' Delete "$INSTDIR\uninst.exe" - - + done: SectionEnd @@ -177,7 +176,18 @@ Function .onInit !insertmacro Init "installer" !insertmacro MUI_LANGDLL_DISPLAY - + + ;Search if qBittorrent is already installed. + FindFirst $0 $1 "$INSTDIR\uninst.exe" + FindClose $0 + StrCmp $1 "" done + + ;Inform the user + MessageBox MB_OKCANCEL|MB_ICONINFORMATION $(inst_uninstall_question) /SD IDOK IDOK done + Quit + + done: + FunctionEnd Function check_instance diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index ef84650d9..c38d4eea8 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -1469,7 +1469,7 @@ void MainWindow::handleUpdateCheckFinished(bool update_available, QString new_ve QMessageBox::StandardButton answer = QMessageBox::Yes; if (update_available) { answer = QMessageBox::question(this, tr("qBittorrent Update Available"), - tr("A new version is available.\nUpdate to version %1?").arg(new_version), + tr("A new version is available.\nDo you want to download %1?").arg(new_version), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); if (answer == QMessageBox::Yes) { // The user want to update, let's download the update From bc92f156c135c64e8b7c4768912aa944144fec43 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 12 Dec 2015 22:26:17 +0200 Subject: [PATCH 056/238] Improve the "Watch folders" UI. Closes #4300. --- src/base/preferences.cpp | 39 +----- src/base/preferences.h | 8 +- src/base/scanfoldersmodel.cpp | 232 ++++++++++++++------------------ src/base/scanfoldersmodel.h | 32 +++-- src/gui/gui.pri | 2 + src/gui/options.ui | 24 ++-- src/gui/options_imp.cpp | 18 ++- src/gui/scanfoldersdelegate.cpp | 183 +++++++++++++++++++++++++ src/gui/scanfoldersdelegate.h | 65 +++++++++ src/webui/prefjson.cpp | 8 +- 10 files changed, 405 insertions(+), 206 deletions(-) create mode 100644 src/gui/scanfoldersdelegate.cpp create mode 100644 src/gui/scanfoldersdelegate.h diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 590039380..6a417922a 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -475,46 +475,15 @@ void Preferences::addTorrentsInPause(bool b) setValue("Preferences/Downloads/StartInPause", b); } -QStringList Preferences::getScanDirs() const +QVariantHash Preferences::getScanDirs() const { - QStringList originalList = value("Preferences/Downloads/ScanDirs").toStringList(); - if (originalList.isEmpty()) - return originalList; - - QStringList newList; - foreach (const QString& s, originalList) - newList << Utils::Fs::fromNativePath(s); - return newList; + return value("Preferences/Downloads/ScanDirsV2").toHash(); } // This must be called somewhere with data from the model -void Preferences::setScanDirs(const QStringList &dirs) +void Preferences::setScanDirs(const QVariantHash &dirs) { - QStringList newList; - if (!dirs.isEmpty()) - foreach (const QString& s, dirs) - newList << Utils::Fs::fromNativePath(s); - setValue("Preferences/Downloads/ScanDirs", newList); -} - -QList Preferences::getDownloadInScanDirs() const -{ - return Utils::Misc::boolListfromStringList(value("Preferences/Downloads/DownloadInScanDirs").toStringList()); -} - -void Preferences::setDownloadInScanDirs(const QList &list) -{ - setValue("Preferences/Downloads/DownloadInScanDirs", Utils::Misc::toStringList(list)); -} - -void Preferences::setScanDirsDownloadPaths(const QStringList &downloadpaths) -{ - setValue("Preferences/Downloads/ScanDirsDownloadPaths", downloadpaths); -} - -QStringList Preferences::getScanDirsDownloadPaths() const -{ - return value("Preferences/Downloads/ScanDirsDownloadPaths").toStringList(); + setValue("Preferences/Downloads/ScanDirsV2", dirs); } QString Preferences::getScanDirsLastPath() const diff --git a/src/base/preferences.h b/src/base/preferences.h index 4767a1d59..0a4fb41bd 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -176,13 +176,9 @@ public: void additionDialogFront(bool b); bool addTorrentsInPause() const; void addTorrentsInPause(bool b); - QStringList getScanDirs() const; - void setScanDirs(const QStringList &dirs); - QList getDownloadInScanDirs() const; - void setDownloadInScanDirs(const QList &list); + QVariantHash getScanDirs() const; + void setScanDirs(const QVariantHash &dirs); QString getScanDirsLastPath() const; - void setScanDirsDownloadPaths(const QStringList &downloadpaths); - QStringList getScanDirsDownloadPaths() const; void setScanDirsLastPath(const QString &path); bool isTorrentExportEnabled() const; QString getTorrentExportDir() const; diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index 7c544fd63..784077741 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -37,37 +37,25 @@ #include "utils/misc.h" #include "utils/fs.h" #include "preferences.h" +#include "logger.h" #include "filesystemwatcher.h" #include "bittorrent/session.h" #include "scanfoldersmodel.h" -namespace +struct ScanFoldersModel::PathData { - const int PathColumn = 0; - const int DownloadAtTorrentColumn = 1; - const int DownloadPath = 2; -} - -class ScanFoldersModel::PathData -{ -public: - PathData(const QString &path) - : path(path) - , downloadAtPath(false) - , downloadPath(path) - { - } - - PathData(const QString &path, bool downloadAtPath, const QString &downloadPath) - : path(path) - , downloadAtPath(downloadAtPath) + PathData(const QString &watchPath, const PathType &type, const QString &downloadPath) + : watchPath(watchPath) + , downloadType(type) , downloadPath(downloadPath) { + if (this->downloadPath.isEmpty() && downloadType == CUSTOM_LOCATION) + downloadType = DEFAULT_LOCATION; } - const QString path; //watching directory - bool downloadAtPath; //if TRUE save data to watching directory - QString downloadPath; //if 'downloadAtPath' FALSE use this path for save data + QString watchPath; + PathType downloadType; + QString downloadPath; // valid for CUSTOM_LOCATION }; ScanFoldersModel *ScanFoldersModel::m_instance = 0; @@ -96,7 +84,7 @@ ScanFoldersModel *ScanFoldersModel::instance() } ScanFoldersModel::ScanFoldersModel(QObject *parent) - : QAbstractTableModel(parent) + : QAbstractListModel(parent) , m_fsWatcher(0) { configure(); @@ -116,7 +104,7 @@ int ScanFoldersModel::rowCount(const QModelIndex &parent) const int ScanFoldersModel::columnCount(const QModelIndex &parent) const { Q_UNUSED(parent); - return 3; + return NB_COLUMNS; } QVariant ScanFoldersModel::data(const QModelIndex &index, int role) const @@ -128,17 +116,17 @@ QVariant ScanFoldersModel::data(const QModelIndex &index, int role) const QVariant value; switch (index.column()) { - case PathColumn: + case WATCH: if (role == Qt::DisplayRole) - value = Utils::Fs::toNativePath(pathData->path); + value = Utils::Fs::toNativePath(pathData->watchPath); break; - case DownloadAtTorrentColumn: - if (role == Qt::CheckStateRole) - value = pathData->downloadAtPath ? Qt::Checked : Qt::Unchecked; - break; - case DownloadPath: - if (role == Qt::DisplayRole || role == Qt::EditRole || role == Qt::ToolTipRole) - value = Utils::Fs::toNativePath(pathData->downloadPath); + case DOWNLOAD: + if (role == Qt::DisplayRole) { + value = pathData->downloadType; + } + else if ((role == Qt::UserRole) && (pathData->downloadType == CUSTOM_LOCATION)) { + value = pathData->downloadPath; + } break; } @@ -153,14 +141,11 @@ QVariant ScanFoldersModel::headerData(int section, Qt::Orientation orientation, QVariant title; switch (section) { - case PathColumn: + case WATCH: title = tr("Watched Folder"); break; - case DownloadAtTorrentColumn: - title = tr("Download here"); - break; - case DownloadPath: - title = tr("Download path"); + case DOWNLOAD: + title = tr("Save Files to"); break; } @@ -170,23 +155,16 @@ QVariant ScanFoldersModel::headerData(int section, Qt::Orientation orientation, Qt::ItemFlags ScanFoldersModel::flags(const QModelIndex &index) const { if (!index.isValid() || (index.row() >= rowCount())) - return QAbstractTableModel::flags(index); + return QAbstractListModel::flags(index); - const PathData *pathData = m_pathList.at(index.row()); Qt::ItemFlags flags; switch (index.column()) { - case PathColumn: - flags = QAbstractTableModel::flags(index); + case WATCH: + flags = QAbstractListModel::flags(index); break; - case DownloadAtTorrentColumn: - flags = QAbstractTableModel::flags(index) | Qt::ItemIsUserCheckable; - break; - case DownloadPath: - if (pathData->downloadAtPath == false) - flags = QAbstractTableModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsEnabled; - else - flags = QAbstractTableModel::flags(index) ^ Qt::ItemIsEnabled; //dont edit DownloadPath if checked 'downloadAtPath' + case DOWNLOAD: + flags = QAbstractListModel::flags(index) | Qt::ItemIsEditable; break; } @@ -195,42 +173,46 @@ Qt::ItemFlags ScanFoldersModel::flags(const QModelIndex &index) const bool ScanFoldersModel::setData(const QModelIndex &index, const QVariant &value, int role) { - if (!index.isValid() || (index.row() >= rowCount()) || (index.column() > DownloadPath)) + if (!index.isValid() || (index.row() >= rowCount()) || (index.column() >= columnCount()) + || (index.column() != DOWNLOAD)) return false; - bool success = true; + if (role == Qt::DisplayRole) { + PathType type = static_cast(value.toInt()); + if (type == CUSTOM_LOCATION) + return false; - switch (index.column()) { - case PathColumn: - success = false; - break; - case DownloadAtTorrentColumn: - if (role == Qt::CheckStateRole) { - Q_ASSERT(index.column() == DownloadAtTorrentColumn); - m_pathList[index.row()]->downloadAtPath = (value.toInt() == Qt::Checked); - emit dataChanged(index, index); - success = true; - } - break; - case DownloadPath: - Q_ASSERT(index.column() == DownloadPath); - m_pathList[index.row()]->downloadPath = value.toString(); + m_pathList[index.row()]->downloadType = type; + m_pathList[index.row()]->downloadPath.clear(); emit dataChanged(index, index); - success = true; - break; + } + else if (role == Qt::UserRole) { + QString path = value.toString(); + if (path.isEmpty()) // means we didn't pass CUSTOM_LOCATION type + return false; + + m_pathList[index.row()]->downloadType = CUSTOM_LOCATION; + m_pathList[index.row()]->downloadPath = Utils::Fs::toNativePath(path); + emit dataChanged(index, index); + } + else { + return false; } - return success; + return true; } -ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &path, bool downloadAtPath, const QString &downloadPath) +ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &watchPath, const PathType &downloadType, const QString &downloadPath) { - QDir dir(path); - if (!dir.exists()) return DoesNotExist; - if (!dir.isReadable()) return CannotRead; + QDir watchDir(watchPath); + if (!watchDir.exists()) return DoesNotExist; + if (!watchDir.isReadable()) return CannotRead; - const QString &canonicalPath = dir.canonicalPath(); - if (findPathData(canonicalPath) != -1) return AlreadyInList; + const QString &canonicalWatchPath = watchDir.canonicalPath(); + if (findPathData(canonicalWatchPath) != -1) return AlreadyInList; + + QDir downloadDir(downloadPath); + const QString &canonicalDownloadPath = downloadDir.canonicalPath(); if (!m_fsWatcher) { m_fsWatcher = new FileSystemWatcher(this); @@ -238,12 +220,11 @@ ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &path, bool } beginInsertRows(QModelIndex(), rowCount(), rowCount()); - QString downloadToPath = downloadPath.isEmpty() ? path : downloadPath; - m_pathList << new PathData(canonicalPath, downloadAtPath, downloadToPath); + m_pathList << new PathData(Utils::Fs::toNativePath(canonicalWatchPath), downloadType, Utils::Fs::toNativePath(canonicalDownloadPath)); endInsertRows(); // Start scanning - m_fsWatcher->addPath(canonicalPath); + m_fsWatcher->addPath(canonicalWatchPath); return Ok; } @@ -251,8 +232,8 @@ void ScanFoldersModel::removePath(int row) { Q_ASSERT((row >= 0) && (row < rowCount())); beginRemoveRows(QModelIndex(), row, row); - m_fsWatcher->removePath(m_pathList.at(row)->path); - m_pathList.removeAt(row); + m_fsWatcher->removePath(m_pathList.at(row)->watchPath); + delete m_pathList.takeAt(row); endRemoveRows(); } @@ -265,43 +246,37 @@ bool ScanFoldersModel::removePath(const QString &path) return true; } -ScanFoldersModel::PathStatus ScanFoldersModel::setDownloadAtPath(int row, bool downloadAtPath) -{ - Q_ASSERT((row >= 0) && (row < rowCount())); - - bool &oldValue = m_pathList[row]->downloadAtPath; - if (oldValue != downloadAtPath) { - if (downloadAtPath) { - QTemporaryFile testFile(m_pathList[row]->path + "/tmpFile"); - if (!testFile.open()) return CannotWrite; - } - - oldValue = downloadAtPath; - const QModelIndex changedIndex = index(row, DownloadAtTorrentColumn); - emit dataChanged(changedIndex, changedIndex); - } - - return Ok; -} - -bool ScanFoldersModel::downloadInTorrentFolder(const QString &filePath) const +bool ScanFoldersModel::downloadInWatchFolder(const QString &filePath) const { const int row = findPathData(QFileInfo(filePath).dir().path()); Q_ASSERT(row != -1); - return m_pathList.at(row)->downloadAtPath; + PathData *data = m_pathList.at(row); + return (data->downloadType == DOWNLOAD_IN_WATCH_FOLDER); +} + +bool ScanFoldersModel::downloadInDefaultFolder(const QString &filePath) const +{ + const int row = findPathData(QFileInfo(filePath).dir().path()); + Q_ASSERT(row != -1); + PathData *data = m_pathList.at(row); + return (data->downloadType == DEFAULT_LOCATION); } QString ScanFoldersModel::downloadPathTorrentFolder(const QString &filePath) const { const int row = findPathData(QFileInfo(filePath).dir().path()); Q_ASSERT(row != -1); - return m_pathList.at(row)->downloadPath; + PathData *data = m_pathList.at(row); + if (data->downloadType == CUSTOM_LOCATION) + return data->downloadPath; + + return QString(); } int ScanFoldersModel::findPathData(const QString &path) const { for (int i = 0; i < m_pathList.count(); ++i) - if (m_pathList.at(i)->path == Utils::Fs::fromNativePath(path)) + if (m_pathList.at(i)->watchPath == Utils::Fs::toNativePath(path)) return i; return -1; @@ -309,33 +284,27 @@ int ScanFoldersModel::findPathData(const QString &path) const void ScanFoldersModel::makePersistent() { - Preferences *const pref = Preferences::instance(); - QStringList paths; - QList downloadInFolderInfo; - QStringList downloadPaths; + QVariantHash dirs; + foreach (const PathData *pathData, m_pathList) { - paths << pathData->path; - downloadInFolderInfo << pathData->downloadAtPath; - downloadPaths << pathData->downloadPath; + if (pathData->downloadType == CUSTOM_LOCATION) + dirs.insert(Utils::Fs::fromNativePath(pathData->watchPath), Utils::Fs::fromNativePath(pathData->downloadPath)); + else + dirs.insert(Utils::Fs::fromNativePath(pathData->watchPath), pathData->downloadType); } - pref->setScanDirs(paths); - pref->setDownloadInScanDirs(downloadInFolderInfo); - pref->setScanDirsDownloadPaths(downloadPaths); + Preferences::instance()->setScanDirs(dirs); } void ScanFoldersModel::configure() { - Preferences *const pref = Preferences::instance(); + QVariantHash dirs = Preferences::instance()->getScanDirs(); - int i = 0; - QStringList downloadPaths = pref->getScanDirsDownloadPaths(); - QList downloadInDirList = pref->getDownloadInScanDirs(); - foreach (const QString &dir, pref->getScanDirs()) { - bool downloadInDir = downloadInDirList.value(i, true); - QString downloadPath = downloadPaths.value(i); //empty string if out-of-bounds - addPath(dir, downloadInDir, downloadPath); - ++i; + for (QVariantHash::const_iterator i = dirs.begin(), e = dirs.end(); i != e; ++i) { + if (i.value().type() == QVariant::Int) + addPath(i.key(), static_cast(i.value().toInt()), QString()); + else + addPath(i.key(), CUSTOM_LOCATION, i.value().toString()); } } @@ -343,10 +312,17 @@ void ScanFoldersModel::addTorrentsToSession(const QStringList &pathList) { foreach (const QString &file, pathList) { qDebug("File %s added", qPrintable(file)); + + BitTorrent::AddTorrentParams params; + if (downloadInWatchFolder(file)) + params.savePath = QFileInfo(file).dir().path(); + else if (!downloadInDefaultFolder(file)) + params.savePath = downloadPathTorrentFolder(file); + if (file.endsWith(".magnet")) { QFile f(file); if (f.open(QIODevice::ReadOnly)) { - BitTorrent::Session::instance()->addTorrent(QString::fromLocal8Bit(f.readAll())); + BitTorrent::Session::instance()->addTorrent(QString::fromLocal8Bit(f.readAll()), params); f.remove(); } else { @@ -354,12 +330,6 @@ void ScanFoldersModel::addTorrentsToSession(const QStringList &pathList) } } else { - BitTorrent::AddTorrentParams params; - if (downloadInTorrentFolder(file)) - params.savePath = QFileInfo(file).dir().path(); - else - params.savePath = downloadPathTorrentFolder(file); //if empty it will use the default savePath - BitTorrent::TorrentInfo torrentInfo = BitTorrent::TorrentInfo::loadFromFile(file); if (torrentInfo.isValid()) { BitTorrent::Session::instance()->addTorrent(torrentInfo, params); diff --git a/src/base/scanfoldersmodel.h b/src/base/scanfoldersmodel.h index ecbac4820..31959ca75 100644 --- a/src/base/scanfoldersmodel.h +++ b/src/base/scanfoldersmodel.h @@ -31,7 +31,7 @@ #ifndef SCANFOLDERSMODEL_H #define SCANFOLDERSMODEL_H -#include +#include #include QT_BEGIN_NAMESPACE @@ -40,7 +40,7 @@ QT_END_NAMESPACE class FileSystemWatcher; -class ScanFoldersModel : public QAbstractTableModel +class ScanFoldersModel : public QAbstractListModel { Q_OBJECT Q_DISABLE_COPY(ScanFoldersModel) @@ -55,6 +55,20 @@ public: AlreadyInList }; + enum Column + { + WATCH, + DOWNLOAD, + NB_COLUMNS + }; + + enum PathType + { + DOWNLOAD_IN_WATCH_FOLDER, + DEFAULT_LOCATION, + CUSTOM_LOCATION + }; + static bool initInstance(QObject *parent = 0); static void freeInstance(); static ScanFoldersModel *instance(); @@ -67,13 +81,10 @@ public: // TODO: removePaths(); singular version becomes private helper functions; // also: remove functions should take modelindexes - PathStatus addPath(const QString &path, bool downloadAtPath, const QString &downloadPath); + PathStatus addPath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath); void removePath(int row); bool removePath(const QString &path); - PathStatus setDownloadAtPath(int row, bool downloadAtPath); - bool downloadInTorrentFolder(const QString &filePath) const; - QString downloadPathTorrentFolder(const QString &filePath) const; void makePersistent(); private slots: @@ -85,10 +96,15 @@ private: ~ScanFoldersModel(); virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); - static ScanFoldersModel *m_instance; - class PathData; + bool downloadInWatchFolder(const QString &filePath) const; + bool downloadInDefaultFolder(const QString &filePath) const; + QString downloadPathTorrentFolder(const QString &filePath) const; int findPathData(const QString &path) const; +private: + static ScanFoldersModel *m_instance; + struct PathData; + QList m_pathList; FileSystemWatcher *m_fsWatcher; }; diff --git a/src/gui/gui.pri b/src/gui/gui.pri index d5c285fef..b586e7050 100644 --- a/src/gui/gui.pri +++ b/src/gui/gui.pri @@ -42,6 +42,7 @@ HEADERS += \ $$PWD/shutdownconfirm.h \ $$PWD/torrentmodel.h \ $$PWD/torrentcreatordlg.h \ + $$PWD/scanfoldersdelegate.h \ $$PWD/search/searchwidget.h \ $$PWD/search/searchtab.h \ $$PWD/search/pluginselectdlg.h \ @@ -79,6 +80,7 @@ SOURCES += \ $$PWD/shutdownconfirm.cpp \ $$PWD/torrentmodel.cpp \ $$PWD/torrentcreatordlg.cpp \ + $$PWD/scanfoldersdelegate.cpp \ $$PWD/search/searchwidget.cpp \ $$PWD/search/searchtab.cpp \ $$PWD/search/pluginselectdlg.cpp \ diff --git a/src/gui/options.ui b/src/gui/options.ui index 22a5ebea1..684033f21 100644 --- a/src/gui/options.ui +++ b/src/gui/options.ui @@ -714,7 +714,7 @@ - + 0 @@ -727,30 +727,24 @@ 150
+ + QAbstractItemView::AllEditTriggers + QAbstractItemView::SingleSelection QAbstractItemView::SelectRows - + + Qt::ElideNone + + false - - true - - + 80 - - false - - - true - - - false -
diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index 6ef0283a3..d1fc939e7 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -41,15 +41,17 @@ #include #include -#include "options_imp.h" + #include "base/preferences.h" #include "base/utils/fs.h" -#include "advancedsettings.h" #include "base/scanfoldersmodel.h" #include "base/bittorrent/session.h" -#include "guiiconprovider.h" #include "base/net/dnsupdater.h" #include "base/unicodestrings.h" +#include "advancedsettings.h" +#include "guiiconprovider.h" +#include "scanfoldersdelegate.h" +#include "options_imp.h" #ifndef QT_NO_OPENSSL #include @@ -91,11 +93,12 @@ options_imp::options_imp(QWidget *parent) } #ifndef QBT_USES_QT5 - scanFoldersView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); + scanFoldersView->header()->setResizeMode(QHeaderView::ResizeToContents); #else - scanFoldersView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + scanFoldersView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); #endif scanFoldersView->setModel(ScanFoldersModel::instance()); + scanFoldersView->setItemDelegate(new ScanFoldersDelegate(this, scanFoldersView)); connect(ScanFoldersModel::instance(), SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, SLOT(enableApplyButton())); connect(scanFoldersView->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(handleScanFolderViewSelectionChanged())); @@ -1200,7 +1203,7 @@ void options_imp::on_addScanFolderButton_clicked() const QString dir = QFileDialog::getExistingDirectory(this, tr("Add directory to scan"), Utils::Fs::toNativePath(Utils::Fs::folderName(pref->getScanDirsLastPath()))); if (!dir.isEmpty()) { - const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, true, ""); + const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER, QString()); QString error; switch (status) { case ScanFoldersModel::AlreadyInList: @@ -1215,7 +1218,8 @@ void options_imp::on_addScanFolderButton_clicked() default: pref->setScanDirsLastPath(dir); addedScanDirs << dir; - scanFoldersView->resizeColumnsToContents(); + for (int i = 0; i < ScanFoldersModel::instance()->columnCount(); ++i) + scanFoldersView->resizeColumnToContents(i); enableApplyButton(); } diff --git a/src/gui/scanfoldersdelegate.cpp b/src/gui/scanfoldersdelegate.cpp new file mode 100644 index 000000000..ca962b754 --- /dev/null +++ b/src/gui/scanfoldersdelegate.cpp @@ -0,0 +1,183 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 sledgehammer999 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + * + * Contact : hammered999@gmail.com + */ + +#include +#include +#include +#include +#include + +#include "base/scanfoldersmodel.h" +#include "base/preferences.h" +#include "scanfoldersdelegate.h" + + +ScanFoldersDelegate::ScanFoldersDelegate(QObject *parent, QTreeView *foldersView) + : QItemDelegate(parent) + , m_folderView(foldersView) +{ +} + +ScanFoldersDelegate::~ScanFoldersDelegate() {} + +void ScanFoldersDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +{ + painter->save(); + + switch(index.column()) { + case ScanFoldersModel::WATCH: + QItemDelegate::paint(painter, option, index); + break; + + case ScanFoldersModel::DOWNLOAD: { + QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); + QItemDelegate::drawBackground(painter, opt, index); + QString text; + + switch (index.data().toInt()) { + case ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER: + text = tr("Watch Folder"); + break; + case ScanFoldersModel::DEFAULT_LOCATION: + text = tr("Default Folder"); + break; + case ScanFoldersModel::CUSTOM_LOCATION: + text = index.data(Qt::UserRole).toString(); + break; + } + QItemDelegate::drawDisplay(painter, opt, option.rect, text); + break; + } + + default: + break; + } + + painter->restore(); +} + +void ScanFoldersDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const +{ + QComboBox *combobox = static_cast(editor); + // Set combobox index + if (index.data().toInt() == ScanFoldersModel::CUSTOM_LOCATION) + combobox->setCurrentIndex(4); // '4' is the index of the item after the separator in the QComboBox menu + else + combobox->setCurrentIndex(index.data().toInt()); +} + +QWidget *ScanFoldersDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const +{ + if (index.column() != ScanFoldersModel::DOWNLOAD) return 0; + + QComboBox* editor = new QComboBox(parent); + editor->setFocusPolicy(Qt::StrongFocus); + editor->addItem(tr("Watch Folder")); + editor->addItem(tr("Default Folder")); + editor->addItem(tr("Browse...")); + if (index.data().toInt() == ScanFoldersModel::CUSTOM_LOCATION) { + editor->insertSeparator(3); + editor->addItem(index.data(Qt::UserRole).toString()); + } + + connect(editor, SIGNAL(currentIndexChanged(int)), this, SLOT(comboboxIndexChanged(int))); + return editor; +} + +void ScanFoldersDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const +{ + QComboBox *combobox = static_cast(editor); + int value = combobox->currentIndex(); + + switch(value) { + case ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER: + case ScanFoldersModel::DEFAULT_LOCATION: + model->setData(index, value, Qt::DisplayRole); + break; + + case 4: // '4' is the index of the item after the separator in the QComboBox menu + model->setData(index, combobox->currentText(), Qt::UserRole); + break; + + default: + break; + } +} + +void ScanFoldersDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const +{ + qDebug("UpdateEditor Geometry called"); + editor->setGeometry(option.rect); +} + +void ScanFoldersDelegate::comboboxIndexChanged(int index) +{ + if (index < 2) + return; + + if (index == 2) { + QString path; + QString newPath; + QModelIndexList selIndex = m_folderView->selectionModel()->selectedRows(1); + + if (selIndex.isEmpty()) + return; + + ScanFoldersModel::PathType type = static_cast(selIndex.at(0).data().toInt()); + + if (type == ScanFoldersModel::CUSTOM_LOCATION) + path = selIndex.at(0).data(Qt::UserRole).toString(); + else + path = Preferences::instance()->getSavePath(); + + newPath = QFileDialog::getExistingDirectory(0, tr("Choose save path"), path); + QComboBox *combobox = static_cast(sender()); + disconnect(combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(comboboxIndexChanged(int))); + + if (!newPath.isEmpty()) { + if (combobox->count() != 5) { + combobox->insertSeparator(3); + combobox->addItem(newPath); + } + else { + combobox->setItemText(4, newPath); + } + combobox->setCurrentIndex(4); + } + else { + if (type == ScanFoldersModel::CUSTOM_LOCATION) + combobox->setCurrentIndex(4); + else + combobox->setCurrentIndex(type); + } + + connect(combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(comboboxIndexChanged(int))); + } +} diff --git a/src/gui/scanfoldersdelegate.h b/src/gui/scanfoldersdelegate.h new file mode 100644 index 000000000..9c22b0d17 --- /dev/null +++ b/src/gui/scanfoldersdelegate.h @@ -0,0 +1,65 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 sledgehammer999 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + * + * Contact : hammered999@gmail.com + */ + +#ifndef SCANFOLDERSDELEGATE_H +#define SCANFOLDERSDELEGATE_H + +#include + +class QPainter; +class QModelIndex; +class QStyleOptionViewItem; +class QAbstractItemModel; +class PropertiesWidget; +class QTreeView; + +class ScanFoldersDelegate : public QItemDelegate +{ + Q_OBJECT + +public: + ScanFoldersDelegate(QObject *parent, QTreeView *foldersView); + ~ScanFoldersDelegate(); + + void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; + void setEditorData(QWidget *editor, const QModelIndex &index) const; + QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const; + +public slots: + void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; + void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const; + void comboboxIndexChanged(int index); + +private: + QTreeView *m_folderView; +}; + +#endif // SCANFOLDERSDELEGATE_H + diff --git a/src/webui/prefjson.cpp b/src/webui/prefjson.cpp index 86517d326..54583f97a 100644 --- a/src/webui/prefjson.cpp +++ b/src/webui/prefjson.cpp @@ -58,7 +58,7 @@ QByteArray prefjson::getPreferences() data["temp_path"] = Utils::Fs::toNativePath(pref->getTempPath()); data["preallocate_all"] = pref->preAllocateAllFiles(); data["incomplete_files_ext"] = pref->useIncompleteFilesExtension(); - QVariantList scanDirs; + /*QVariantList scanDirs; foreach (const QString& s, pref->getScanDirs()) { scanDirs << Utils::Fs::toNativePath(s); } @@ -72,7 +72,7 @@ QByteArray prefjson::getPreferences() foreach (bool b, pref->getDownloadInScanDirs()) { var_list << b; } - data["download_in_scan_dirs"] = var_list; + data["download_in_scan_dirs"] = var_list;*/ data["export_dir"] = Utils::Fs::toNativePath(pref->getTorrentExportDir()); data["export_dir_fin"] = Utils::Fs::toNativePath(pref->getFinishedTorrentExportDir()); // Email notification upon download completion @@ -188,7 +188,7 @@ void prefjson::setPreferences(const QString& json) pref->preAllocateAllFiles(m["preallocate_all"].toBool()); if (m.contains("incomplete_files_ext")) pref->useIncompleteFilesExtension(m["incomplete_files_ext"].toBool()); - if (m.contains("scan_dirs") && m.contains("download_in_scan_dirs") && m.contains("scan_dirs_download_paths")) { + /*if (m.contains("scan_dirs") && m.contains("download_in_scan_dirs") && m.contains("scan_dirs_download_paths")) { QVariantList download_at_path_tmp = m["download_in_scan_dirs"].toList(); QList download_at_path; foreach (QVariant var, download_at_path_tmp) { @@ -217,7 +217,7 @@ void prefjson::setPreferences(const QString& json) ++i; } } - } + }*/ if (m.contains("export_dir")) pref->setTorrentExportDir(m["export_dir"].toString()); if (m.contains("export_dir_fin")) From ed7fb207587460f4ed05c9472e046714b7636e0e Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Sun, 20 Dec 2015 15:37:31 +0300 Subject: [PATCH 057/238] Fix setting custom download location for watched folder --- src/gui/scanfoldersdelegate.cpp | 71 ++++++++++----------------------- src/gui/scanfoldersdelegate.h | 13 +++--- 2 files changed, 27 insertions(+), 57 deletions(-) diff --git a/src/gui/scanfoldersdelegate.cpp b/src/gui/scanfoldersdelegate.cpp index ca962b754..20e276c5e 100644 --- a/src/gui/scanfoldersdelegate.cpp +++ b/src/gui/scanfoldersdelegate.cpp @@ -28,6 +28,7 @@ * Contact : hammered999@gmail.com */ +#include #include #include #include @@ -45,8 +46,6 @@ ScanFoldersDelegate::ScanFoldersDelegate(QObject *parent, QTreeView *foldersView { } -ScanFoldersDelegate::~ScanFoldersDelegate() {} - void ScanFoldersDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { painter->save(); @@ -98,6 +97,7 @@ QWidget *ScanFoldersDelegate::createEditor(QWidget *parent, const QStyleOptionVi if (index.column() != ScanFoldersModel::DOWNLOAD) return 0; QComboBox* editor = new QComboBox(parent); + editor->setFocusPolicy(Qt::StrongFocus); editor->addItem(tr("Watch Folder")); editor->addItem(tr("Default Folder")); @@ -111,19 +111,35 @@ QWidget *ScanFoldersDelegate::createEditor(QWidget *parent, const QStyleOptionVi return editor; } +void ScanFoldersDelegate::comboboxIndexChanged(int index) +{ + if (index == ScanFoldersModel::CUSTOM_LOCATION) { + QWidget *w = static_cast(sender()); + if (w && w->parentWidget()) + w->parentWidget()->setFocus(); + } +} + void ScanFoldersDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { QComboBox *combobox = static_cast(editor); int value = combobox->currentIndex(); - switch(value) { + switch (value) { case ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER: case ScanFoldersModel::DEFAULT_LOCATION: model->setData(index, value, Qt::DisplayRole); break; - case 4: // '4' is the index of the item after the separator in the QComboBox menu - model->setData(index, combobox->currentText(), Qt::UserRole); + case ScanFoldersModel::CUSTOM_LOCATION: + model->setData( + index, + QFileDialog::getExistingDirectory( + 0, tr("Choose save path"), + index.data().toInt() == ScanFoldersModel::CUSTOM_LOCATION ? + index.data(Qt::UserRole).toString() : + Preferences::instance()->getSavePath()), + Qt::UserRole); break; default: @@ -136,48 +152,3 @@ void ScanFoldersDelegate::updateEditorGeometry(QWidget *editor, const QStyleOpti qDebug("UpdateEditor Geometry called"); editor->setGeometry(option.rect); } - -void ScanFoldersDelegate::comboboxIndexChanged(int index) -{ - if (index < 2) - return; - - if (index == 2) { - QString path; - QString newPath; - QModelIndexList selIndex = m_folderView->selectionModel()->selectedRows(1); - - if (selIndex.isEmpty()) - return; - - ScanFoldersModel::PathType type = static_cast(selIndex.at(0).data().toInt()); - - if (type == ScanFoldersModel::CUSTOM_LOCATION) - path = selIndex.at(0).data(Qt::UserRole).toString(); - else - path = Preferences::instance()->getSavePath(); - - newPath = QFileDialog::getExistingDirectory(0, tr("Choose save path"), path); - QComboBox *combobox = static_cast(sender()); - disconnect(combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(comboboxIndexChanged(int))); - - if (!newPath.isEmpty()) { - if (combobox->count() != 5) { - combobox->insertSeparator(3); - combobox->addItem(newPath); - } - else { - combobox->setItemText(4, newPath); - } - combobox->setCurrentIndex(4); - } - else { - if (type == ScanFoldersModel::CUSTOM_LOCATION) - combobox->setCurrentIndex(4); - else - combobox->setCurrentIndex(type); - } - - connect(combobox, SIGNAL(currentIndexChanged(int)), this, SLOT(comboboxIndexChanged(int))); - } -} diff --git a/src/gui/scanfoldersdelegate.h b/src/gui/scanfoldersdelegate.h index 9c22b0d17..c427735c7 100644 --- a/src/gui/scanfoldersdelegate.h +++ b/src/gui/scanfoldersdelegate.h @@ -46,18 +46,17 @@ class ScanFoldersDelegate : public QItemDelegate public: ScanFoldersDelegate(QObject *parent, QTreeView *foldersView); - ~ScanFoldersDelegate(); +private slots: + void comboboxIndexChanged(int index); + +private: + void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; + void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const; void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; void setEditorData(QWidget *editor, const QModelIndex &index) const; QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const; -public slots: - void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; - void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const; - void comboboxIndexChanged(int index); - -private: QTreeView *m_folderView; }; From 56ca80eb78fc0d52cf8bfe6e945bd93be1d53507 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Thu, 31 Dec 2015 22:31:19 +0200 Subject: [PATCH 058/238] Support loading multiple magnets/hashes/urls per .magnet file in the watched folder(one per line). Closes #217. --- src/base/scanfoldersmodel.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index 784077741..310e21eca 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include "utils/misc.h" #include "utils/fs.h" @@ -321,9 +322,13 @@ void ScanFoldersModel::addTorrentsToSession(const QStringList &pathList) if (file.endsWith(".magnet")) { QFile f(file); - if (f.open(QIODevice::ReadOnly)) { - BitTorrent::Session::instance()->addTorrent(QString::fromLocal8Bit(f.readAll()), params); - f.remove(); + if (f.open(QIODevice::ReadOnly | QIODevice::Text)) { + QTextStream str(&f); + while (!str.atEnd()) + BitTorrent::Session::instance()->addTorrent(str.readLine(), params); + + f.close(); + Utils::Fs::forceRemove(file); } else { qDebug("Failed to open magnet file: %s", qPrintable(f.errorString())); From 990e33a4b16a0cb630ff2963eebf7eb1e128699b Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Fri, 1 Jan 2016 15:50:35 +0200 Subject: [PATCH 059/238] Don't add the watch folder before the user closes the Preferences window. --- src/base/scanfoldersmodel.cpp | 17 +++++++++++++++-- src/base/scanfoldersmodel.h | 4 +++- src/gui/options_imp.cpp | 3 ++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index 310e21eca..c1e0b369b 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -203,7 +203,7 @@ bool ScanFoldersModel::setData(const QModelIndex &index, const QVariant &value, return true; } -ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &watchPath, const PathType &downloadType, const QString &downloadPath) +ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &watchPath, const PathType &downloadType, const QString &downloadPath, bool addToFSWatcher) { QDir watchDir(watchPath); if (!watchDir.exists()) return DoesNotExist; @@ -225,10 +225,23 @@ ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &watchPath, endInsertRows(); // Start scanning - m_fsWatcher->addPath(canonicalWatchPath); + if (addToFSWatcher) + m_fsWatcher->addPath(canonicalWatchPath); return Ok; } +void ScanFoldersModel::addToFSWatcher(const QStringList &watchPaths) +{ + if (!m_fsWatcher) + return; // addPath() wasn't called before this + + foreach (const QString &path, watchPaths) { + QDir watchDir(path); + const QString &canonicalWatchPath = watchDir.canonicalPath(); + m_fsWatcher->addPath(canonicalWatchPath); + } +} + void ScanFoldersModel::removePath(int row) { Q_ASSERT((row >= 0) && (row < rowCount())); diff --git a/src/base/scanfoldersmodel.h b/src/base/scanfoldersmodel.h index 31959ca75..e1b767c8b 100644 --- a/src/base/scanfoldersmodel.h +++ b/src/base/scanfoldersmodel.h @@ -81,7 +81,9 @@ public: // TODO: removePaths(); singular version becomes private helper functions; // also: remove functions should take modelindexes - PathStatus addPath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath); + PathStatus addPath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath, bool addToFSWatcher = true); + // PRECONDITION: The paths must have been added with addPath() first. + void addToFSWatcher(const QStringList &watchPaths); void removePath(int row); bool removePath(const QString &path); diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index d1fc939e7..9595834fa 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -418,6 +418,7 @@ void options_imp::saveOptions() pref->useAdditionDialog(useAdditionDialog()); pref->additionDialogFront(checkAdditionDialogFront->isChecked()); pref->addTorrentsInPause(addTorrentsInPause()); + ScanFoldersModel::instance()->addToFSWatcher(addedScanDirs); ScanFoldersModel::instance()->makePersistent(); addedScanDirs.clear(); pref->setTorrentExportDir(getTorrentExportDir()); @@ -1203,7 +1204,7 @@ void options_imp::on_addScanFolderButton_clicked() const QString dir = QFileDialog::getExistingDirectory(this, tr("Add directory to scan"), Utils::Fs::toNativePath(Utils::Fs::folderName(pref->getScanDirsLastPath()))); if (!dir.isEmpty()) { - const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER, QString()); + const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER, QString(), false); QString error; switch (status) { case ScanFoldersModel::AlreadyInList: From 429a1ba78a48c314e784a56ad052ff5a93f15eea Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Fri, 1 Jan 2016 16:12:50 +0200 Subject: [PATCH 060/238] Method to update the watch path parameters. --- src/base/scanfoldersmodel.cpp | 16 ++++++++++++++++ src/base/scanfoldersmodel.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index c1e0b369b..25a61e4ba 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -230,6 +230,22 @@ ScanFoldersModel::PathStatus ScanFoldersModel::addPath(const QString &watchPath, return Ok; } +ScanFoldersModel::PathStatus ScanFoldersModel::updatePath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath) +{ + QDir watchDir(watchPath); + const QString &canonicalWatchPath = watchDir.canonicalPath(); + int row = findPathData(canonicalWatchPath); + if (row == -1) return DoesNotExist; + + QDir downloadDir(downloadPath); + const QString &canonicalDownloadPath = downloadDir.canonicalPath(); + + m_pathList.at(row)->downloadType = downloadType; + m_pathList.at(row)->downloadPath = Utils::Fs::toNativePath(canonicalDownloadPath); + + return Ok; +} + void ScanFoldersModel::addToFSWatcher(const QStringList &watchPaths) { if (!m_fsWatcher) diff --git a/src/base/scanfoldersmodel.h b/src/base/scanfoldersmodel.h index e1b767c8b..1dc62c5a5 100644 --- a/src/base/scanfoldersmodel.h +++ b/src/base/scanfoldersmodel.h @@ -82,6 +82,7 @@ public: // TODO: removePaths(); singular version becomes private helper functions; // also: remove functions should take modelindexes PathStatus addPath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath, bool addToFSWatcher = true); + PathStatus updatePath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath); // PRECONDITION: The paths must have been added with addPath() first. void addToFSWatcher(const QStringList &watchPaths); void removePath(int row); From ecc19ff23e98f09d19c2a6d0c2efde851414c602 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Fri, 1 Jan 2016 17:14:02 +0200 Subject: [PATCH 061/238] Fix translated string. --- src/gui/options_imp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index 9595834fa..2c33b7aaa 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -1208,7 +1208,7 @@ void options_imp::on_addScanFolderButton_clicked() QString error; switch (status) { case ScanFoldersModel::AlreadyInList: - error = tr("Folder is already being watched.").arg(dir); + error = tr("Folder is already being watched."); break; case ScanFoldersModel::DoesNotExist: error = tr("Folder does not exist."); From 9c88959651cef709cca757213aaf4264ab0056a0 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 2 Jan 2016 00:43:23 +0200 Subject: [PATCH 062/238] Make it scroll horizontally when necessary. --- src/base/scanfoldersmodel.cpp | 20 +++++++++---- src/gui/options.ui | 5 +++- src/gui/scanfoldersdelegate.cpp | 52 +++++---------------------------- src/gui/scanfoldersdelegate.h | 1 - 4 files changed, 27 insertions(+), 51 deletions(-) diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index 25a61e4ba..a001c30b8 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -122,11 +122,21 @@ QVariant ScanFoldersModel::data(const QModelIndex &index, int role) const value = Utils::Fs::toNativePath(pathData->watchPath); break; case DOWNLOAD: - if (role == Qt::DisplayRole) { + if (role == Qt::UserRole) { value = pathData->downloadType; } - else if ((role == Qt::UserRole) && (pathData->downloadType == CUSTOM_LOCATION)) { - value = pathData->downloadPath; + else if (role == Qt::DisplayRole) { + switch (pathData->downloadType) { + case DOWNLOAD_IN_WATCH_FOLDER: + value = tr("Watch Folder"); + break; + case DEFAULT_LOCATION: + value = tr("Default Folder"); + break; + case CUSTOM_LOCATION: + value = pathData->downloadPath; + break; + } } break; } @@ -178,7 +188,7 @@ bool ScanFoldersModel::setData(const QModelIndex &index, const QVariant &value, || (index.column() != DOWNLOAD)) return false; - if (role == Qt::DisplayRole) { + if (role == Qt::UserRole) { PathType type = static_cast(value.toInt()); if (type == CUSTOM_LOCATION) return false; @@ -187,7 +197,7 @@ bool ScanFoldersModel::setData(const QModelIndex &index, const QVariant &value, m_pathList[index.row()]->downloadPath.clear(); emit dataChanged(index, index); } - else if (role == Qt::UserRole) { + else if (role == Qt::DisplayRole) { QString path = value.toString(); if (path.isEmpty()) // means we didn't pass CUSTOM_LOCATION type return false; diff --git a/src/gui/options.ui b/src/gui/options.ui index 684033f21..a57baf0c4 100644 --- a/src/gui/options.ui +++ b/src/gui/options.ui @@ -745,6 +745,9 @@ 80 + + false +
@@ -2724,7 +2727,7 @@ 0 0 - 89 + 98 28 diff --git a/src/gui/scanfoldersdelegate.cpp b/src/gui/scanfoldersdelegate.cpp index 20e276c5e..6de8dcce7 100644 --- a/src/gui/scanfoldersdelegate.cpp +++ b/src/gui/scanfoldersdelegate.cpp @@ -46,50 +46,14 @@ ScanFoldersDelegate::ScanFoldersDelegate(QObject *parent, QTreeView *foldersView { } -void ScanFoldersDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const -{ - painter->save(); - - switch(index.column()) { - case ScanFoldersModel::WATCH: - QItemDelegate::paint(painter, option, index); - break; - - case ScanFoldersModel::DOWNLOAD: { - QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); - QItemDelegate::drawBackground(painter, opt, index); - QString text; - - switch (index.data().toInt()) { - case ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER: - text = tr("Watch Folder"); - break; - case ScanFoldersModel::DEFAULT_LOCATION: - text = tr("Default Folder"); - break; - case ScanFoldersModel::CUSTOM_LOCATION: - text = index.data(Qt::UserRole).toString(); - break; - } - QItemDelegate::drawDisplay(painter, opt, option.rect, text); - break; - } - - default: - break; - } - - painter->restore(); -} - void ScanFoldersDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QComboBox *combobox = static_cast(editor); // Set combobox index - if (index.data().toInt() == ScanFoldersModel::CUSTOM_LOCATION) + if (index.data(Qt::UserRole).toInt() == ScanFoldersModel::CUSTOM_LOCATION) combobox->setCurrentIndex(4); // '4' is the index of the item after the separator in the QComboBox menu else - combobox->setCurrentIndex(index.data().toInt()); + combobox->setCurrentIndex(index.data(Qt::UserRole).toInt()); } QWidget *ScanFoldersDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const @@ -102,9 +66,9 @@ QWidget *ScanFoldersDelegate::createEditor(QWidget *parent, const QStyleOptionVi editor->addItem(tr("Watch Folder")); editor->addItem(tr("Default Folder")); editor->addItem(tr("Browse...")); - if (index.data().toInt() == ScanFoldersModel::CUSTOM_LOCATION) { + if (index.data(Qt::UserRole).toInt() == ScanFoldersModel::CUSTOM_LOCATION) { editor->insertSeparator(3); - editor->addItem(index.data(Qt::UserRole).toString()); + editor->addItem(index.data().toString()); } connect(editor, SIGNAL(currentIndexChanged(int)), this, SLOT(comboboxIndexChanged(int))); @@ -128,7 +92,7 @@ void ScanFoldersDelegate::setModelData(QWidget *editor, QAbstractItemModel *mode switch (value) { case ScanFoldersModel::DOWNLOAD_IN_WATCH_FOLDER: case ScanFoldersModel::DEFAULT_LOCATION: - model->setData(index, value, Qt::DisplayRole); + model->setData(index, value, Qt::UserRole); break; case ScanFoldersModel::CUSTOM_LOCATION: @@ -136,10 +100,10 @@ void ScanFoldersDelegate::setModelData(QWidget *editor, QAbstractItemModel *mode index, QFileDialog::getExistingDirectory( 0, tr("Choose save path"), - index.data().toInt() == ScanFoldersModel::CUSTOM_LOCATION ? - index.data(Qt::UserRole).toString() : + index.data(Qt::UserRole).toInt() == ScanFoldersModel::CUSTOM_LOCATION ? + index.data().toString() : Preferences::instance()->getSavePath()), - Qt::UserRole); + Qt::DisplayRole); break; default: diff --git a/src/gui/scanfoldersdelegate.h b/src/gui/scanfoldersdelegate.h index c427735c7..c9b1af98b 100644 --- a/src/gui/scanfoldersdelegate.h +++ b/src/gui/scanfoldersdelegate.h @@ -53,7 +53,6 @@ private slots: private: void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const; void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &) const; - void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; void setEditorData(QWidget *editor, const QModelIndex &index) const; QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const; From 06be9edfe1d92140d9ec7c6a689dd0f8801a6239 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sat, 2 Jan 2016 01:23:26 +0200 Subject: [PATCH 063/238] Remove watch folders permanently only if the user accepts the Preferences dialog. --- src/base/scanfoldersmodel.cpp | 15 +++++++++++---- src/base/scanfoldersmodel.h | 9 ++++++--- src/gui/options_imp.cpp | 9 ++++++++- src/gui/options_imp.h | 1 + 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index a001c30b8..5349bb85d 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -268,24 +268,31 @@ void ScanFoldersModel::addToFSWatcher(const QStringList &watchPaths) } } -void ScanFoldersModel::removePath(int row) +void ScanFoldersModel::removePath(int row, bool removeFromFSWatcher) { Q_ASSERT((row >= 0) && (row < rowCount())); beginRemoveRows(QModelIndex(), row, row); - m_fsWatcher->removePath(m_pathList.at(row)->watchPath); + if (removeFromFSWatcher) + m_fsWatcher->removePath(m_pathList.at(row)->watchPath); delete m_pathList.takeAt(row); endRemoveRows(); } -bool ScanFoldersModel::removePath(const QString &path) +bool ScanFoldersModel::removePath(const QString &path, bool removeFromFSWatcher) { const int row = findPathData(path); if (row == -1) return false; - removePath(row); + removePath(row, removeFromFSWatcher); return true; } +void ScanFoldersModel::removeFromFSWatcher(const QStringList &watchPaths) +{ + foreach (const QString &path, watchPaths) + m_fsWatcher->removePath(path); +} + bool ScanFoldersModel::downloadInWatchFolder(const QString &filePath) const { const int row = findPathData(QFileInfo(filePath).dir().path()); diff --git a/src/base/scanfoldersmodel.h b/src/base/scanfoldersmodel.h index 1dc62c5a5..25dfdfd22 100644 --- a/src/base/scanfoldersmodel.h +++ b/src/base/scanfoldersmodel.h @@ -85,13 +85,16 @@ public: PathStatus updatePath(const QString &watchPath, const PathType& downloadType, const QString &downloadPath); // PRECONDITION: The paths must have been added with addPath() first. void addToFSWatcher(const QStringList &watchPaths); - void removePath(int row); - bool removePath(const QString &path); + void removePath(int row, bool removeFromFSWatcher = true); + bool removePath(const QString &path, bool removeFromFSWatcher = true); + void removeFromFSWatcher(const QStringList &watchPaths); void makePersistent(); -private slots: +public slots: void configure(); + +private slots: void addTorrentsToSession(const QStringList &pathList); private: diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index 2c33b7aaa..f1426fcab 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -308,6 +308,7 @@ options_imp::~options_imp() qDebug("-> destructing Options"); foreach (const QString &path, addedScanDirs) ScanFoldersModel::instance()->removePath(path); + ScanFoldersModel::instance()->configure(); // reloads "removed" paths delete scrollArea_advanced->layout(); delete advancedSettings; } @@ -418,8 +419,10 @@ void options_imp::saveOptions() pref->useAdditionDialog(useAdditionDialog()); pref->additionDialogFront(checkAdditionDialogFront->isChecked()); pref->addTorrentsInPause(addTorrentsInPause()); + ScanFoldersModel::instance()->removeFromFSWatcher(removedScanDirs); ScanFoldersModel::instance()->addToFSWatcher(addedScanDirs); ScanFoldersModel::instance()->makePersistent(); + removedScanDirs.clear(); addedScanDirs.clear(); pref->setTorrentExportDir(getTorrentExportDir()); pref->setFinishedTorrentExportDir(getFinishedTorrentExportDir()); @@ -1236,7 +1239,11 @@ void options_imp::on_removeScanFolderButton_clicked() if (selected.isEmpty()) return; Q_ASSERT(selected.count() == ScanFoldersModel::instance()->columnCount()); - ScanFoldersModel::instance()->removePath(selected.first().row()); + foreach (const QModelIndex &index, selected) { + if (index.column() == ScanFoldersModel::WATCH) + removedScanDirs << index.data().toString(); + } + ScanFoldersModel::instance()->removePath(selected.first().row(), false); } void options_imp::handleScanFolderViewSelectionChanged() diff --git a/src/gui/options_imp.h b/src/gui/options_imp.h index 4b7d7ffea..46ec23d67 100644 --- a/src/gui/options_imp.h +++ b/src/gui/options_imp.h @@ -172,6 +172,7 @@ private: QAbstractButton *applyButton; AdvancedSettings *advancedSettings; QList addedScanDirs; + QList removedScanDirs; // SSL Cert / key QByteArray m_sslCert, m_sslKey; }; From fa34f0efcc8222548956bdfa19914a409f053d15 Mon Sep 17 00:00:00 2001 From: Naikel Aparicio Date: Fri, 1 Jan 2016 14:38:32 -0430 Subject: [PATCH 064/238] Implemented WebUI interface for the new Watched Folders feature --- src/webui/extra_translations.h | 2 + src/webui/prefjson.cpp | 89 +++++++------- src/webui/www/public/css/style.css | 31 +++++ src/webui/www/public/preferences_content.html | 115 +++++++++++++----- 4 files changed, 164 insertions(+), 73 deletions(-) diff --git a/src/webui/extra_translations.h b/src/webui/extra_translations.h index 1cab1be69..5a76fd53a 100644 --- a/src/webui/extra_translations.h +++ b/src/webui/extra_translations.h @@ -87,6 +87,8 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Save files to location:") QT_TRANSLATE_NOOP("HttpServer", "Label:") QT_TRANSLATE_NOOP("HttpServer", "Cookie:") + QT_TRANSLATE_NOOP("HttpServer", "Type folder here") + QT_TRANSLATE_NOOP("HttpServer", "Other...") }; static const struct { const char *source; const char *comment; } __COMMENTED_TRANSLATIONS__[] = { diff --git a/src/webui/prefjson.cpp b/src/webui/prefjson.cpp index 54583f97a..aa37464c9 100644 --- a/src/webui/prefjson.cpp +++ b/src/webui/prefjson.cpp @@ -58,21 +58,15 @@ QByteArray prefjson::getPreferences() data["temp_path"] = Utils::Fs::toNativePath(pref->getTempPath()); data["preallocate_all"] = pref->preAllocateAllFiles(); data["incomplete_files_ext"] = pref->useIncompleteFilesExtension(); - /*QVariantList scanDirs; - foreach (const QString& s, pref->getScanDirs()) { - scanDirs << Utils::Fs::toNativePath(s); + QVariantHash dirs = pref->getScanDirs(); + QVariantMap nativeDirs; + for (QVariantHash::const_iterator i = dirs.begin(), e = dirs.end(); i != e; ++i) { + if (i.value().type() == QVariant::Int) + nativeDirs.insert(Utils::Fs::toNativePath(i.key()), i.value().toInt()); + else + nativeDirs.insert(Utils::Fs::toNativePath(i.key()), Utils::Fs::toNativePath(i.value().toString())); } - data["scan_dirs"] = scanDirs; - QVariantList ScanDirsDownloadPaths; - foreach (const QString& s, pref->getScanDirsDownloadPaths()) { - ScanDirsDownloadPaths << Utils::Fs::toNativePath(s); - } - data["scan_dirs_download_paths"] = ScanDirsDownloadPaths; - QVariantList var_list; - foreach (bool b, pref->getDownloadInScanDirs()) { - var_list << b; - } - data["download_in_scan_dirs"] = var_list;*/ + data["scan_dirs"] = nativeDirs; data["export_dir"] = Utils::Fs::toNativePath(pref->getTorrentExportDir()); data["export_dir_fin"] = Utils::Fs::toNativePath(pref->getFinishedTorrentExportDir()); // Email notification upon download completion @@ -188,36 +182,49 @@ void prefjson::setPreferences(const QString& json) pref->preAllocateAllFiles(m["preallocate_all"].toBool()); if (m.contains("incomplete_files_ext")) pref->useIncompleteFilesExtension(m["incomplete_files_ext"].toBool()); - /*if (m.contains("scan_dirs") && m.contains("download_in_scan_dirs") && m.contains("scan_dirs_download_paths")) { - QVariantList download_at_path_tmp = m["download_in_scan_dirs"].toList(); - QList download_at_path; - foreach (QVariant var, download_at_path_tmp) { - download_at_path << var.toBool(); - } - QStringList old_folders = pref->getScanDirs(); - QStringList new_folders = m["scan_dirs"].toStringList(); - QStringList download_paths = m["scan_dirs_download_paths"].toStringList(); - if (download_at_path.size() == new_folders.size()) { - pref->setScanDirs(new_folders); - pref->setDownloadInScanDirs(download_at_path); - pref->setScanDirsDownloadPaths(download_paths); - foreach (const QString &old_folder, old_folders) { - // Update deleted folders - if (!new_folders.contains(old_folder)) { - ScanFoldersModel::instance()->removePath(old_folder); - } + if (m.contains("scan_dirs")) { + QVariantMap nativeDirs = m["scan_dirs"].toMap(); + QVariantHash oldScanDirs = pref->getScanDirs(); + QVariantHash scanDirs; + ScanFoldersModel *model = ScanFoldersModel::instance(); + for (QVariantMap::const_iterator i = nativeDirs.begin(), e = nativeDirs.end(); i != e; ++i) { + QString folder = Utils::Fs::fromNativePath(i.key()); + int downloadType; + QString downloadPath; + ScanFoldersModel::PathStatus ec; + if (i.value().type() == QVariant::String) { + downloadType = ScanFoldersModel::CUSTOM_LOCATION; + downloadPath = Utils::Fs::fromNativePath(i.value().toString()); } - int i = 0; - foreach (const QString &new_folder, new_folders) { - qDebug("New watched folder: %s", qPrintable(new_folder)); - // Update new folders - if (!old_folders.contains(Utils::Fs::fromNativePath(new_folder))) { - ScanFoldersModel::instance()->addPath(new_folder, download_at_path.at(i), download_paths.at(i)); - } - ++i; + else { + downloadType = i.value().toInt(); + downloadPath = (downloadType == ScanFoldersModel::DEFAULT_LOCATION) ? "Default folder" : "Watch folder"; + } + + if (!oldScanDirs.contains(folder)) + ec = model->addPath(folder, static_cast(downloadType), downloadPath); + else + ec = model->updatePath(folder, static_cast(downloadType), downloadPath); + + if (ec == ScanFoldersModel::Ok) { + scanDirs.insert(folder, (downloadType == ScanFoldersModel::CUSTOM_LOCATION) ? QVariant(downloadPath) : QVariant(downloadType)); + qDebug("New watched folder: %s to %s", qPrintable(folder), qPrintable(downloadPath)); + } + else { + qDebug("Watched folder %s failed with error %d", qPrintable(folder), ec); } } - }*/ + + // Update deleted folders + foreach (QVariant folderVariant, oldScanDirs.keys()) { + QString folder = folderVariant.toString(); + if (!scanDirs.contains(folder)) { + model->removePath(folder); + qDebug("Removed watched folder %s", qPrintable(folder)); + } + } + pref->setScanDirs(scanDirs); + } if (m.contains("export_dir")) pref->setTorrentExportDir(m["export_dir"].toString()); if (m.contains("export_dir_fin")) diff --git a/src/webui/www/public/css/style.css b/src/webui/www/public/css/style.css index c91fe07f6..2bf7e0705 100644 --- a/src/webui/www/public/css/style.css +++ b/src/webui/www/public/css/style.css @@ -408,6 +408,37 @@ td.generalLabel { border: 1px solid black; } +.select-watched-folder-editable { + position:relative; + background-color: white; + border: solid grey 1px; + width: 160px; + height: 20px; +} + +.select-watched-folder-editable select { + position: absolute; + top: 0px; + bottom: 0px; + left: 0px; + border: none; + width: 160px; + margin: 0; +} + +.select-watched-folder-editable input { + position: absolute; + top: 0px; + left: 0px; + width: 140px; + padding: 1px; + border: none; +} + +.select-watched-folder-editable select:focus, .select-editable input:focus { + outline: none; +} + /* * Workaround to prevent the transfer list from * disappearing when zooming in the browser. diff --git a/src/webui/www/public/preferences_content.html b/src/webui/www/public/preferences_content.html index 7fcb3ecc3..ed1f3d167 100644 --- a/src/webui/www/public/preferences_content.html +++ b/src/webui/www/public/preferences_content.html @@ -18,9 +18,22 @@

QBT_TR(Automatically add torrents from:)QBT_TR
- + - + + + +
QBT_TR(Watched Folder)QBT_TRQBT_TR(Download here)QBT_TR
QBT_TR(Watched Folder)QBT_TRQBT_TR(Save Files to)QBT_TR
Add
+
+ + + Add +
+

   @@ -412,38 +425,75 @@ updateTempDirEnabled = function() { addWatchFolder = function() { var new_folder = $('new_watch_folder_txt').getProperty('value').trim(); - if(new_folder.length <= 0) return; + if (new_folder.length <= 0) return; + + var new_other = $('new_watch_folder_other_txt').getProperty('value').trim(); + if (new_other.length <= 0) return; + + var new_select = $('new_watch_folder_select').getProperty('value').trim(); - var checked = ""; - if ($('new_watch_folder_dl').getProperty('checked') == true) - checked = "checked"; var i = $('watched_folders_tab').getChildren('tbody')[0].getChildren('tr').length; - - var myinput = ""; - var mycb = ""; - WatchedFoldersTable.push([myinput, mycb]); + pushWatchFolder(i, new_folder, new_select, new_other); // Clear fields $('new_watch_folder_txt').setProperty('value', ''); - $('new_watch_folder_dl').setProperty('checked', false); + var elt = $('new_watch_folder_select'); + elt.setProperty('value', 'watch_folder'); + var text = elt.options[elt.selectedIndex].innerHTML; + $('new_watch_folder_other_txt').setProperty('value', text); +} + +changeWatchFolderSelect = function(item) { + if (item.value == "other") { + item.nextElementSibling.value = 'QBT_TR(Type folder here)QBT_TR'; + item.nextElementSibling.select(); + } else { + var text = item.options[item.selectedIndex].innerHTML; + item.nextElementSibling.value = text; + } +} + +changeWatchFolderText = function(item) { + item.previousElementSibling.value = 'other'; +} + +pushWatchFolder = function(pos, folder, sel, other) { + var myinput = ""; + var mycb = "
" + + "" + + "
"; + + WatchedFoldersTable.push([myinput, mycb]); + $('cb_watch_' + pos).setProperty('value', sel); + if (sel != "other") { + var elt = $('cb_watch_' + pos); + other = elt.options[elt.selectedIndex].innerHTML; + } + $('cb_watch_txt_'+ pos).setProperty('value', other); } getWatchedFolders = function() { var nb_folders = $("watched_folders_tab").getChildren("tbody")[0].getChildren("tr").length; - var folders = Array(); - var download_in_place = Array(); - for(var i=0; i 0) { - folders[folders.length] = folder_path; - if($("cb_watch_"+i).getProperty('checked')) { - download_in_place[download_in_place.length] = 1; + var folders = new Hash(); + for(var i = 0; i < nb_folders; i++) { + var fpath = $('text_watch_' + i).getProperty('value').trim(); + if (fpath.length > 0) { + var other; + var sel = $('cb_watch_' + i).getProperty('value').trim(); + if (sel == "other") { + other = $('cb_watch_txt_' + i).getProperty('value').trim(); } else { - download_in_place[download_in_place.length] = 0; + other = (sel == "watch_folder") ? 0 : 1; } + folders.set(fpath, other); } } - return [folders, download_in_place]; + return folders; } updateExportDirEnabled = function() { @@ -714,14 +764,17 @@ loadPreferences = function() { updateTempDirEnabled(); $('preallocateall_checkbox').setProperty('checked', pref.preallocate_all); $('appendext_checkbox').setProperty('checked', pref.incomplete_files_ext); - var i; - for(i=0; i"; - var checked = ""; - if (pref.download_in_scan_dirs[i]) - checked = "checked"; - var mycb = ""; - WatchedFoldersTable.push([myinput, mycb]); + var i = 0; + for (var folder in pref.scan_dirs) { + var sel; + var other = ""; + if (typeof pref.scan_dirs[folder] == "string") { + other = pref.scan_dirs[folder]; + sel = "other"; + } else { + sel = (pref.scan_dirs[folder] == 0) ? "watch_folder" : "default_folder"; + } + pushWatchFolder(i++, folder, sel, other); } if(pref.export_dir != '') { $('exportdir_checkbox').setProperty('checked', true); @@ -950,9 +1003,7 @@ applyPreferences = function() { settings.set('temp_path', $('temppath_text').getProperty('value')); settings.set('preallocate_all', $('preallocateall_checkbox').getProperty('checked')); settings.set('incomplete_files_ext', $('appendext_checkbox').getProperty('checked')); - var watched_folders = getWatchedFolders(); - settings.set('scan_dirs', watched_folders[0]); - settings.set('download_in_scan_dirs', watched_folders[1]); + settings.set('scan_dirs', getWatchedFolders()); if($('exportdir_checkbox').getProperty('checked')) settings.set('export_dir', $('exportdir_text').getProperty('value')); else From 12c151eb69e2894e7542ef1e70ff6fc50caa79a2 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Fri, 18 Dec 2015 20:45:43 +0300 Subject: [PATCH 065/238] Save RSS cookies to common cookie storage Closes #4305 --- src/app/upgrade.h | 4 ++++ src/base/preferences.cpp | 47 +++++++++++++++----------------------- src/base/preferences.h | 5 ++-- src/gui/rss/cookiesdlg.cpp | 40 ++++++++++++++++++-------------- src/gui/rss/cookiesdlg.h | 12 ++++++---- src/gui/rss/rss_imp.cpp | 25 ++++++++++---------- 6 files changed, 68 insertions(+), 65 deletions(-) diff --git a/src/app/upgrade.h b/src/app/upgrade.h index 0a9ff75c8..1f6366210 100644 --- a/src/app/upgrade.h +++ b/src/app/upgrade.h @@ -45,6 +45,7 @@ #include "base/utils/misc.h" #include "base/utils/string.h" #include "base/qinisettings.h" +#include "base/preferences.h" bool userAcceptsUpgrade() { @@ -114,6 +115,9 @@ bool upgradeResumeFile(const QString &filepath, const QVariantHash &oldTorrent, bool upgrade(bool ask = true) { + // Move RSS cookies to common storage + Preferences::instance()->moveRSSCookies(); + QIniSettings *oldResumeSettings = new QIniSettings("qBittorrent", "qBittorrent-resume"); QString oldResumeFilename = oldResumeSettings->fileName(); QVariantHash oldResumeData = oldResumeSettings->value("torrents").toHash(); diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 783fcc6a9..9aab3ad9b 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -2525,38 +2525,29 @@ void Preferences::setToolbarTextPosition(const int position) setValue("Toolbar/textPosition", position); } -QList Preferences::getHostNameCookies(const QString &host_name) const +void Preferences::moveRSSCookies() { - QMap hosts_table = value("Rss/hosts_cookies").toMap(); - if (!hosts_table.contains(host_name)) return QList(); - QByteArray raw_cookies = hosts_table.value(host_name).toByteArray(); - return raw_cookies.split(':'); -} - -QList Preferences::getHostNameQNetworkCookies(const QString& host_name) const -{ - QList cookies; - const QList raw_cookies = getHostNameCookies(host_name); - foreach (const QByteArray& raw_cookie, raw_cookies) { - QList cookie_parts = raw_cookie.split('='); - if (cookie_parts.size() == 2) { - qDebug("Loading cookie: %s = %s", cookie_parts.first().constData(), cookie_parts.last().constData()); - cookies << QNetworkCookie(cookie_parts.first(), cookie_parts.last()); + QList cookies = getNetworkCookies(); + QVariantMap hostsTable = value("Rss/hosts_cookies").toMap(); + foreach (const QString &key, hostsTable.keys()) { + QVariant value = hostsTable[key]; + QList rawCookies = value.toByteArray().split(':'); + foreach (const QByteArray &rawCookie, rawCookies) { + foreach (QNetworkCookie cookie, QNetworkCookie::parseCookies(rawCookie)) { + cookie.setDomain(key); + cookie.setPath("/"); + cookie.setExpirationDate(QDateTime::currentDateTime().addYears(10)); + cookies << cookie; + } } } - return cookies; -} -void Preferences::setHostNameCookies(const QString &host_name, const QList &cookies) -{ - QMap hosts_table = value("Rss/hosts_cookies").toMap(); - QByteArray raw_cookies = ""; - foreach (const QByteArray& cookie, cookies) - raw_cookies += cookie + ":"; - if (raw_cookies.endsWith(":")) - raw_cookies.chop(1); - hosts_table.insert(host_name, raw_cookies); - setValue("Rss/hosts_cookies", hosts_table); + setNetworkCookies(cookies); + + QWriteLocker locker(&lock); + dirty = true; + timer.start(); + m_data.remove("Rss/hosts_cookies"); } QList Preferences::getNetworkCookies() const diff --git a/src/base/preferences.h b/src/base/preferences.h index 96fe22fb7..23047ed4d 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -538,13 +538,12 @@ public: void setRssFeedsUrls(const QStringList &rssFeeds); QStringList getRssFeedsAliases() const; void setRssFeedsAliases(const QStringList &rssAliases); - QList getHostNameCookies(const QString &host_name) const; - QList getHostNameQNetworkCookies(const QString& host_name) const; - void setHostNameCookies(const QString &host_name, const QList &cookies); // Network QList getNetworkCookies() const; void setNetworkCookies(const QList &cookies); + // Temporary method for upgrade purposes + void moveRSSCookies(); // SpeedWidget int getSpeedWidgetPeriod() const; diff --git a/src/gui/rss/cookiesdlg.cpp b/src/gui/rss/cookiesdlg.cpp index e5662d2fc..ed4ce9c41 100644 --- a/src/gui/rss/cookiesdlg.cpp +++ b/src/gui/rss/cookiesdlg.cpp @@ -31,12 +31,14 @@ #include "cookiesdlg.h" #include "ui_cookiesdlg.h" #include "guiiconprovider.h" +#include "base/net/downloadmanager.h" #include +#include enum CookiesCols { COOKIE_KEY, COOKIE_VALUE}; -CookiesDlg::CookiesDlg(QWidget *parent, const QList &raw_cookies) : +CookiesDlg::CookiesDlg(const QUrl &url, QWidget *parent) : QDialog(parent), ui(new Ui::CookiesDlg) { @@ -46,13 +48,13 @@ CookiesDlg::CookiesDlg(QWidget *parent, const QList &raw_cookies) : ui->del_btn->setIcon(GuiIconProvider::instance()->getIcon("list-remove")); ui->infos_lbl->setText(tr("Common keys for cookies are: '%1', '%2'.\nYou should get this information from your Web browser preferences.").arg("uid").arg("pass")); - foreach (const QByteArray &raw_cookie, raw_cookies) { - QList cookie_parts = raw_cookie.split('='); - if (cookie_parts.size() != 2) continue; + + QList cookies = Net::DownloadManager::instance()->cookiesForUrl(url); + foreach (const QNetworkCookie &cookie, cookies) { const int i = ui->cookiesTable->rowCount(); ui->cookiesTable->setRowCount(i+1); - ui->cookiesTable->setItem(i, COOKIE_KEY, new QTableWidgetItem(cookie_parts.first().data())); - ui->cookiesTable->setItem(i, COOKIE_VALUE, new QTableWidgetItem(cookie_parts.last().data())); + ui->cookiesTable->setItem(i, COOKIE_KEY, new QTableWidgetItem(QString(cookie.name()))); + ui->cookiesTable->setItem(i, COOKIE_VALUE, new QTableWidgetItem(QString(cookie.value()))); } } @@ -75,8 +77,9 @@ void CookiesDlg::on_del_btn_clicked() { } } -QList CookiesDlg::getCookies() const { - QList ret; +QList CookiesDlg::getCookies() const { + QList ret; + auto now = QDateTime::currentDateTime(); for (int i=0; icookiesTable->rowCount(); ++i) { QString key; if (ui->cookiesTable->item(i, COOKIE_KEY)) @@ -85,20 +88,23 @@ QList CookiesDlg::getCookies() const { if (ui->cookiesTable->item(i, COOKIE_VALUE)) value = ui->cookiesTable->item(i, COOKIE_VALUE)->text().trimmed(); if (!key.isEmpty() && !value.isEmpty()) { - const QString raw_cookie = key+"="+value; - qDebug("Cookie: %s", qPrintable(raw_cookie)); - ret << raw_cookie.toLocal8Bit(); + QNetworkCookie cookie(key.toUtf8(), value.toUtf8()); + // TODO: Delete this hack when advanced Cookie dialog will be implemented. + cookie.setExpirationDate(now.addYears(10)); + qDebug("Cookie: %s", cookie.toRawForm().data()); + ret << cookie; } } return ret; } -QList CookiesDlg::askForCookies(QWidget *parent, const QList &raw_cookies, bool *ok) { - CookiesDlg dlg(parent, raw_cookies); +bool CookiesDlg::askForCookies(QWidget *parent, const QUrl &url, QList &out) +{ + CookiesDlg dlg(url, parent); if (dlg.exec()) { - *ok = true; - return dlg.getCookies(); + out = dlg.getCookies(); + return true; } - *ok = false; - return QList(); + + return false; } diff --git a/src/gui/rss/cookiesdlg.h b/src/gui/rss/cookiesdlg.h index 3e7469973..e9e6fc733 100644 --- a/src/gui/rss/cookiesdlg.h +++ b/src/gui/rss/cookiesdlg.h @@ -32,22 +32,24 @@ #define COOKIESDLG_H #include +#include + +class QNetworkCookie; +class QUrl; -QT_BEGIN_NAMESPACE namespace Ui { class CookiesDlg; } -QT_END_NAMESPACE class CookiesDlg : public QDialog { Q_OBJECT public: - explicit CookiesDlg(QWidget *parent = 0, const QList &raw_cookies = QList()); + explicit CookiesDlg(const QUrl &url, QWidget *parent = 0); ~CookiesDlg(); - QList getCookies() const; - static QList askForCookies(QWidget *parent, const QList &raw_cookies, bool *ok); + QList getCookies() const; + static bool askForCookies(QWidget *parent, const QUrl &url, QList &out); protected slots: void on_add_btn_clicked(); diff --git a/src/gui/rss/rss_imp.cpp b/src/gui/rss/rss_imp.cpp index 2cda0096c..106b7cb30 100644 --- a/src/gui/rss/rss_imp.cpp +++ b/src/gui/rss/rss_imp.cpp @@ -142,18 +142,19 @@ void RSSImp::displayItemsListMenu(const QPoint&) void RSSImp::on_actionManage_cookies_triggered() { Q_ASSERT(!m_feedList->selectedItems().empty()); - // Get feed hostname - QString feed_url = m_feedList->getItemID(m_feedList->selectedItems().first()); - QString feed_hostname = QUrl::fromEncoded(feed_url.toUtf8()).host(); - qDebug("RSS Feed hostname is: %s", qPrintable(feed_hostname)); - Q_ASSERT(!feed_hostname.isEmpty()); - bool ok = false; - Preferences* const pref = Preferences::instance(); - QList raw_cookies = CookiesDlg::askForCookies(this, pref->getHostNameCookies(feed_hostname), &ok); - if (ok) { - qDebug() << "Settings cookies for host name: " << feed_hostname; - pref->setHostNameCookies(feed_hostname, raw_cookies); - Net::DownloadManager::instance()->setCookiesFromUrl(pref->getHostNameQNetworkCookies(feed_hostname), feed_hostname); + + // TODO: Create advanced application wide Cookie dialog and use it everywhere. + QUrl feedUrl = QUrl::fromEncoded(m_feedList->getItemID(m_feedList->selectedItems().first()).toUtf8()); + QList cookies; + if (CookiesDlg::askForCookies(this, feedUrl, cookies)) { + auto downloadManager = Net::DownloadManager::instance(); + QList oldCookies = downloadManager->cookiesForUrl(feedUrl); + foreach (const QNetworkCookie &oldCookie, oldCookies) { + if (!cookies.contains(oldCookie)) + downloadManager->deleteCookie(oldCookie); + } + + downloadManager->setCookiesFromUrl(cookies, feedUrl); } } From e378a65508b24b445c9360a1987e63a33c0bfe55 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Sat, 19 Dec 2015 09:48:46 +0300 Subject: [PATCH 066/238] Use DownloadManager by ProgramUpdater Closes #2023 --- src/base/net/downloadmanager.cpp | 11 ++- src/base/net/downloadmanager.h | 2 +- src/gui/programupdater.cpp | 133 ++++++++++++------------------- src/gui/programupdater.h | 19 ++--- 4 files changed, 69 insertions(+), 96 deletions(-) diff --git a/src/base/net/downloadmanager.cpp b/src/base/net/downloadmanager.cpp index 21672274d..fa8288f88 100644 --- a/src/base/net/downloadmanager.cpp +++ b/src/base/net/downloadmanager.cpp @@ -42,6 +42,9 @@ #include "downloadhandler.h" #include "downloadmanager.h" +// Spoof Firefox 38 user agent to avoid web server banning +const char DEFAULT_USER_AGENT[] = "Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0"; + namespace { class NetworkCookieJar: public QNetworkCookieJar @@ -139,7 +142,7 @@ DownloadManager *DownloadManager::instance() return m_instance; } -DownloadHandler *DownloadManager::downloadUrl(const QString &url, bool saveToFile, qint64 limit, bool handleRedirectToMagnet) +DownloadHandler *DownloadManager::downloadUrl(const QString &url, bool saveToFile, qint64 limit, bool handleRedirectToMagnet, const QString &userAgent) { // Update proxy settings applyProxySettings(); @@ -149,8 +152,10 @@ DownloadHandler *DownloadManager::downloadUrl(const QString &url, bool saveToFil const QUrl qurl = QUrl::fromEncoded(url.toUtf8()); QNetworkRequest request(qurl); - // Spoof Firefox 38 user agent to avoid web server banning - request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0"); + if (userAgent.isEmpty()) + request.setRawHeader("User-Agent", DEFAULT_USER_AGENT); + else + request.setRawHeader("User-Agent", userAgent.toUtf8()); // Spoof HTTP Referer to allow adding torrent link from Torcache/KickAssTorrents request.setRawHeader("Referer", request.url().toEncoded().data()); diff --git a/src/base/net/downloadmanager.h b/src/base/net/downloadmanager.h index 8621f70bd..9cd34151a 100644 --- a/src/base/net/downloadmanager.h +++ b/src/base/net/downloadmanager.h @@ -51,7 +51,7 @@ namespace Net static void freeInstance(); static DownloadManager *instance(); - DownloadHandler *downloadUrl(const QString &url, bool saveToFile = false, qint64 limit = 0, bool handleRedirectToMagnet = false); + DownloadHandler *downloadUrl(const QString &url, bool saveToFile = false, qint64 limit = 0, bool handleRedirectToMagnet = false, const QString &userAgent = ""); QList cookiesForUrl(const QUrl &url) const; bool setCookiesFromUrl(const QList &cookieList, const QUrl &url); bool deleteCookie(const QNetworkCookie &cookie); diff --git a/src/gui/programupdater.cpp b/src/gui/programupdater.cpp index 3514c6f0f..c722d8ec2 100644 --- a/src/gui/programupdater.cpp +++ b/src/gui/programupdater.cpp @@ -28,23 +28,20 @@ * Contact : chris@qbittorrent.org */ -#include -#include -#include #include -#include #include #include #include #include -#include "programupdater.h" #include "base/utils/fs.h" -#include "base/preferences.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" +#include "programupdater.h" namespace { - const QUrl RSS_URL("http://www.fosshub.com/software/feedqBittorent"); + const QString RSS_URL("http://www.fosshub.com/software/feedqBittorent"); #ifdef Q_OS_MAC const QString OS_TYPE("Mac OS X"); @@ -59,99 +56,73 @@ ProgramUpdater::ProgramUpdater(QObject *parent, bool invokedByUser) : QObject(parent) , m_invokedByUser(invokedByUser) { - m_networkManager = new QNetworkAccessManager(this); - Preferences* const pref = Preferences::instance(); - // Proxy support - if (pref->isProxyEnabled()) { - QNetworkProxy proxy; - switch(pref->getProxyType()) { - case Proxy::SOCKS4: - case Proxy::SOCKS5: - case Proxy::SOCKS5_PW: - proxy.setType(QNetworkProxy::Socks5Proxy); - default: - proxy.setType(QNetworkProxy::HttpProxy); - break; - } - proxy.setHostName(pref->getProxyIp()); - proxy.setPort(pref->getProxyPort()); - // Proxy authentication - if (pref->isProxyAuthEnabled()) { - proxy.setUser(pref->getProxyUsername()); - proxy.setPassword(pref->getProxyPassword()); - } - m_networkManager->setProxy(proxy); - } -} - -ProgramUpdater::~ProgramUpdater() -{ - delete m_networkManager; } void ProgramUpdater::checkForUpdates() { - // SIGNAL/SLOT - connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), - this, SLOT(rssDownloadFinished(QNetworkReply*))); - // Send the request - QNetworkRequest request(RSS_URL); - // Don't change this User-Agent. In case our updater goes haywire, the filehost can indetify it and contact us. - request.setRawHeader("User-Agent", QString("qBittorrent/%1 ProgramUpdater (www.qbittorrent.org)").arg(VERSION).toLocal8Bit()); - m_networkManager->get(request); + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl( + RSS_URL, false, 0, false, + // Don't change this User-Agent. In case our updater goes haywire, + // the filehost can identify it and contact us. + QString("qBittorrent/%1 ProgramUpdater (www.qbittorrent.org)").arg(VERSION)); + connect(handler, SIGNAL(downloadFinished(QString,QByteArray)), SLOT(rssDownloadFinished(QString,QByteArray))); + connect(handler, SIGNAL(downloadFailed(QString,QString)), SLOT(rssDownloadFailed(QString,QString))); } -void ProgramUpdater::rssDownloadFinished(QNetworkReply *reply) +void ProgramUpdater::rssDownloadFinished(const QString &url, const QByteArray &data) { - // Disconnect SIGNAL/SLOT - disconnect(m_networkManager, 0, this, 0); + Q_UNUSED(url); + qDebug("Finished downloading the new qBittorrent updates RSS"); QString version; - if (!reply->error()) { - qDebug("No download error, good."); - QXmlStreamReader xml(reply); - bool inItem = false; - QString updateLink; - QString type; + QXmlStreamReader xml(data); + bool inItem = false; + QString updateLink; + QString type; - while (!xml.atEnd()) { - xml.readNext(); + while (!xml.atEnd()) { + xml.readNext(); - if (xml.isStartElement()) { - if (xml.name() == "item") - inItem = true; - else if (inItem && xml.name() == "link") - updateLink = getStringValue(xml); - else if (inItem && xml.name() == "type") - type = getStringValue(xml); - else if (inItem && xml.name() == "version") - version = getStringValue(xml); - } - else if (xml.isEndElement()) { - if (inItem && xml.name() == "item") { - if (type.compare(OS_TYPE, Qt::CaseInsensitive) == 0) { - qDebug("The last update available is %s", qPrintable(version)); - if (!version.isEmpty()) { - qDebug("Detected version is %s", qPrintable(version)); - if (isVersionMoreRecent(version)) - m_updateUrl = updateLink; - } - break; + if (xml.isStartElement()) { + if (xml.name() == "item") + inItem = true; + else if (inItem && xml.name() == "link") + updateLink = getStringValue(xml); + else if (inItem && xml.name() == "type") + type = getStringValue(xml); + else if (inItem && xml.name() == "version") + version = getStringValue(xml); + } + else if (xml.isEndElement()) { + if (inItem && xml.name() == "item") { + if (type.compare(OS_TYPE, Qt::CaseInsensitive) == 0) { + qDebug("The last update available is %s", qPrintable(version)); + if (!version.isEmpty()) { + qDebug("Detected version is %s", qPrintable(version)); + if (isVersionMoreRecent(version)) + m_updateUrl = updateLink; } - - inItem = false; - updateLink.clear(); - type.clear(); - version.clear(); + break; } + + inItem = false; + updateLink.clear(); + type.clear(); + version.clear(); } } } emit updateCheckFinished(!m_updateUrl.isEmpty(), version, m_invokedByUser); - // Clean up - reply->deleteLater(); +} + +void ProgramUpdater::rssDownloadFailed(const QString &url, const QString &error) +{ + Q_UNUSED(url); + + qDebug() << "Downloading the new qBittorrent updates RSS failed:" << error; + emit updateCheckFinished(false, QString(), m_invokedByUser); } void ProgramUpdater::updateProgram() diff --git a/src/gui/programupdater.h b/src/gui/programupdater.h index ecf71bd7c..cda228bbb 100644 --- a/src/gui/programupdater.h +++ b/src/gui/programupdater.h @@ -34,30 +34,27 @@ #include #include -class QNetworkReply; -class QNetworkAccessManager; - class ProgramUpdater: public QObject { Q_OBJECT + public: explicit ProgramUpdater(QObject *parent = 0, bool invokedByUser = false); - ~ProgramUpdater(); + void checkForUpdates(); void updateProgram(); -protected: - bool isVersionMoreRecent(const QString &remoteVersion) const; - -protected slots: - void rssDownloadFinished(QNetworkReply* reply); - signals: void updateCheckFinished(bool updateAvailable, QString version, bool invokedByUser); +private slots: + void rssDownloadFinished(const QString &url, const QByteArray &data); + void rssDownloadFailed(const QString &url, const QString &error); + private: + bool isVersionMoreRecent(const QString &remoteVersion) const; + QString m_updateUrl; - QNetworkAccessManager *m_networkManager; bool m_invokedByUser; }; From 881108057de739a24c05c633b046615769758d43 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Sat, 19 Dec 2015 15:35:45 +0300 Subject: [PATCH 067/238] Use DownloadManager by DNSUpdater --- src/base/net/dnsupdater.cpp | 117 ++++++++++++++++++------------------ src/base/net/dnsupdater.h | 34 +++++------ 2 files changed, 77 insertions(+), 74 deletions(-) diff --git a/src/base/net/dnsupdater.cpp b/src/base/net/dnsupdater.cpp index c9aa6c2ca..6ef1dd98b 100644 --- a/src/base/net/dnsupdater.cpp +++ b/src/base/net/dnsupdater.cpp @@ -28,7 +28,6 @@ * Contact : chris@qbittorrent.org */ -#include #include #include #include @@ -37,6 +36,8 @@ #endif #include "base/logger.h" +#include "base/net/downloadmanager.h" +#include "base/net/downloadhandler.h" #include "dnsupdater.h" using namespace Net; @@ -76,65 +77,62 @@ DNSUpdater::~DNSUpdater() void DNSUpdater::checkPublicIP() { Q_ASSERT(m_state == OK); - QNetworkAccessManager *manager = new QNetworkAccessManager(this); - connect(manager, SIGNAL(finished(QNetworkReply *)), SLOT(ipRequestFinished(QNetworkReply *))); + + DownloadHandler *handler = DownloadManager::instance()->downloadUrl( + "http://checkip.dyndns.org", false, 0, false, + QString("qBittorrent/%1").arg(VERSION)); + connect(handler, SIGNAL(downloadFinished(QString, QByteArray)), SLOT(ipRequestFinished(QString, QByteArray))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), SLOT(ipRequestFailed(QString, QString))); + m_lastIPCheckTime = QDateTime::currentDateTime(); - QNetworkRequest request; - request.setUrl(QUrl("http://checkip.dyndns.org")); - request.setRawHeader("User-Agent", "qBittorrent/" VERSION); - manager->get(request); } -void DNSUpdater::ipRequestFinished(QNetworkReply *reply) +void DNSUpdater::ipRequestFinished(const QString &url, const QByteArray &data) { - qDebug() << Q_FUNC_INFO; - if (reply->error()) { - // Error - qWarning() << Q_FUNC_INFO << "Error:" << reply->errorString(); - } - else { - // Parse response - QRegExp ipregex("Current IP Address:\\s+([^<]+)"); - QString ret = reply->readAll(); - if (ipregex.indexIn(ret) >= 0) { - QString ip_str = ipregex.cap(1); - qDebug() << Q_FUNC_INFO << "Regular expression captured the following IP:" << ip_str; - QHostAddress new_ip(ip_str); - if (!new_ip.isNull()) { - if (m_lastIP != new_ip) { - qDebug() << Q_FUNC_INFO << "The IP address changed, report the change to DynDNS..."; - qDebug() << m_lastIP.toString() << "->" << new_ip.toString(); - m_lastIP = new_ip; - updateDNSService(); - } - } - else { - qWarning() << Q_FUNC_INFO << "Failed to construct a QHostAddress from the IP string"; + Q_UNUSED(url); + + // Parse response + QRegExp ipregex("Current IP Address:\\s+([^<]+)"); + if (ipregex.indexIn(data) >= 0) { + QString ipStr = ipregex.cap(1); + qDebug() << Q_FUNC_INFO << "Regular expression captured the following IP:" << ipStr; + QHostAddress newIp(ipStr); + if (!newIp.isNull()) { + if (m_lastIP != newIp) { + qDebug() << Q_FUNC_INFO << "The IP address changed, report the change to DynDNS..."; + qDebug() << m_lastIP.toString() << "->" << newIp.toString(); + m_lastIP = newIp; + updateDNSService(); } } else { - qWarning() << Q_FUNC_INFO << "Regular expression failed to capture the IP address"; + qWarning() << Q_FUNC_INFO << "Failed to construct a QHostAddress from the IP string"; } } - // Clean up - reply->deleteLater(); - sender()->deleteLater(); + else { + qWarning() << Q_FUNC_INFO << "Regular expression failed to capture the IP address"; + } +} + +void DNSUpdater::ipRequestFailed(const QString &url, const QString &error) +{ + Q_UNUSED(url); + qWarning() << "IP request failed:" << error; } void DNSUpdater::updateDNSService() { qDebug() << Q_FUNC_INFO; - // Prepare request - QNetworkAccessManager *manager = new QNetworkAccessManager(this); - connect(manager, SIGNAL(finished(QNetworkReply *)), SLOT(ipUpdateFinished(QNetworkReply *))); + m_lastIPCheckTime = QDateTime::currentDateTime(); - QNetworkRequest request; - request.setUrl(getUpdateUrl()); - request.setRawHeader("User-Agent", "qBittorrent/" VERSION); - manager->get(request); + DownloadHandler *handler = DownloadManager::instance()->downloadUrl( + getUpdateUrl(), false, 0, false, + QString("qBittorrent/%1").arg(VERSION)); + connect(handler, SIGNAL(downloadFinished(QString, QByteArray)), SLOT(ipUpdateFinished(QString, QByteArray))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), SLOT(ipUpdateFailed(QString, QString))); } -QUrl DNSUpdater::getUpdateUrl() const +QString DNSUpdater::getUpdateUrl() const { QUrl url; #ifdef QT_NO_OPENSSL @@ -172,22 +170,20 @@ QUrl DNSUpdater::getUpdateUrl() const Q_ASSERT(url.isValid()); qDebug() << Q_FUNC_INFO << url.toString(); - return url; + return url.toString(); } -void DNSUpdater::ipUpdateFinished(QNetworkReply *reply) +void DNSUpdater::ipUpdateFinished(const QString &url, const QByteArray &data) { - if (reply->error()) { - // Error - qWarning() << Q_FUNC_INFO << "Error:" << reply->errorString(); - } - else { - // Parse reply - processIPUpdateReply(reply->readAll()); - } - // Clean up - reply->deleteLater(); - sender()->deleteLater(); + Q_UNUSED(url); + // Parse reply + processIPUpdateReply(data); +} + +void DNSUpdater::ipUpdateFailed(const QString &url, const QString &error) +{ + Q_UNUSED(url); + qWarning() << "IP update failed:" << error; } void DNSUpdater::processIPUpdateReply(const QString &reply) @@ -196,16 +192,19 @@ void DNSUpdater::processIPUpdateReply(const QString &reply) qDebug() << Q_FUNC_INFO << reply; QString code = reply.split(" ").first(); qDebug() << Q_FUNC_INFO << "Code:" << code; - if (code == "good" || code == "nochg") { + + if ((code == "good") || (code == "nochg")) { logger->addMessage(tr("Your dynamic DNS was successfully updated."), Log::INFO); return; } + if ((code == "911") || (code == "dnserr")) { logger->addMessage(tr("Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes."), Log::CRITICAL); m_lastIP.clear(); // It will retry in 30 minutes because the timer was not stopped return; } + // Everything bellow is an error, stop updating until the user updates something m_ipCheckTimer.stop(); m_lastIP.clear(); @@ -214,23 +213,27 @@ void DNSUpdater::processIPUpdateReply(const QString &reply) m_state = INVALID_CREDS; return; } + if (code == "badauth") { logger->addMessage(tr("Dynamic DNS error: Invalid username/password."), Log::CRITICAL); m_state = INVALID_CREDS; return; } + if (code == "badagent") { logger->addMessage(tr("Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org."), Log::CRITICAL); m_state = FATAL; return; } + if (code == "!donator") { logger->addMessage(tr("Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org.").arg("!donator"), Log::CRITICAL); m_state = FATAL; return; } + if (code == "abuse") { logger->addMessage(tr("Dynamic DNS error: Your username was blocked due to abuse."), Log::CRITICAL); m_state = FATAL; diff --git a/src/base/net/dnsupdater.h b/src/base/net/dnsupdater.h index 49afc4623..2c3cb6c38 100644 --- a/src/base/net/dnsupdater.h +++ b/src/base/net/dnsupdater.h @@ -33,15 +33,15 @@ #include #include -#include #include #include + #include "base/preferences.h" namespace Net -{ +{ // Based on http://www.dyndns.com/developers/specs/ - class DNSUpdater : public QObject + class DNSUpdater: public QObject { Q_OBJECT @@ -56,15 +56,25 @@ namespace Net private slots: void checkPublicIP(); - void ipRequestFinished(QNetworkReply *reply); + void ipRequestFinished(const QString &url, const QByteArray &data); + void ipRequestFailed(const QString &url, const QString &error); void updateDNSService(); - void ipUpdateFinished(QNetworkReply *reply); + void ipUpdateFinished(const QString &url, const QByteArray &data); + void ipUpdateFailed(const QString &url, const QString &error); private: - QUrl getUpdateUrl() const; + enum State + { + OK, + INVALID_CREDS, + FATAL + }; + + static const int IP_CHECK_INTERVAL_MS = 1800000; // 30 min + + QString getUpdateUrl() const; void processIPUpdateReply(const QString &reply); - private: QHostAddress m_lastIP; QDateTime m_lastIPCheckTime; QTimer m_ipCheckTimer; @@ -74,16 +84,6 @@ namespace Net QString m_domain; QString m_username; QString m_password; - - private: - static const int IP_CHECK_INTERVAL_MS = 1800000; // 30 min - - enum State - { - OK, - INVALID_CREDS, - FATAL - }; }; } From 67758cb0925ada8089f3629b0e7ecb6886b1f3a3 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 14 Oct 2015 12:49:29 +0300 Subject: [PATCH 068/238] Fix coding style (Issue #2192). --- src/base/rss/rssarticle.cpp | 149 ++--- src/base/rss/rssarticle.h | 71 +-- src/base/rss/rssdownloadrule.cpp | 375 +++++++----- src/base/rss/rssdownloadrule.h | 101 ++-- src/base/rss/rssdownloadrulelist.cpp | 187 +++--- src/base/rss/rssdownloadrulelist.h | 43 +- src/base/rss/rssfeed.cpp | 530 +++++++++-------- src/base/rss/rssfeed.h | 114 ++-- src/base/rss/rssfile.cpp | 20 +- src/base/rss/rssfile.h | 43 +- src/base/rss/rssfolder.cpp | 367 ++++++------ src/base/rss/rssfolder.h | 73 +-- src/base/rss/rssmanager.cpp | 171 +++--- src/base/rss/rssmanager.h | 48 +- src/base/rss/rssparser.cpp | 844 ++++++++++++++------------- src/base/rss/rssparser.h | 47 +- src/gui/rss/feedlistwidget.cpp | 4 +- 17 files changed, 1710 insertions(+), 1477 deletions(-) diff --git a/src/base/rss/rssarticle.cpp b/src/base/rss/rssarticle.cpp index 34ab247eb..585da24c7 100644 --- a/src/base/rss/rssarticle.cpp +++ b/src/base/rss/rssarticle.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -36,93 +37,107 @@ #include "rssarticle.h" // public constructor -RssArticle::RssArticle(RssFeed* parent, const QString& guid): - m_parent(parent), m_guid(guid), m_read(false) {} - -bool RssArticle::hasAttachment() const { - return !m_torrentUrl.isEmpty(); +RssArticle::RssArticle(RssFeed *parent, const QString &guid) + : m_parent(parent) + , m_guid(guid) + , m_read(false) +{ } -QVariantHash RssArticle::toHash() const { - QVariantHash item; - item["title"] = m_title; - item["id"] = m_guid; - item["torrent_url"] = m_torrentUrl; - item["news_link"] = m_link; - item["description"] = m_description; - item["date"] = m_date; - item["author"] = m_author; - item["read"] = m_read; - return item; +bool RssArticle::hasAttachment() const +{ + return !m_torrentUrl.isEmpty(); } -RssArticlePtr hashToRssArticle(RssFeed* parent, const QVariantHash& h) { - const QString guid = h.value("id").toString(); - if (guid.isEmpty()) - return RssArticlePtr(); - - RssArticlePtr art(new RssArticle(parent, guid)); - art->m_title = h.value("title", "").toString(); - art->m_torrentUrl = h.value("torrent_url", "").toString(); - art->m_link = h.value("news_link", "").toString(); - art->m_description = h.value("description").toString(); - art->m_date = h.value("date").toDateTime(); - art->m_author = h.value("author").toString(); - art->m_read = h.value("read", false).toBool(); - - return art; +QVariantHash RssArticle::toHash() const +{ + QVariantHash item; + item["title"] = m_title; + item["id"] = m_guid; + item["torrent_url"] = m_torrentUrl; + item["news_link"] = m_link; + item["description"] = m_description; + item["date"] = m_date; + item["author"] = m_author; + item["read"] = m_read; + return item; } -RssFeed* RssArticle::parent() const { - return m_parent; +RssArticlePtr RssArticle::fromHash(RssFeed *parent, const QVariantHash &h) +{ + const QString guid = h.value("id").toString(); + if (guid.isEmpty()) + return RssArticlePtr(); + + RssArticlePtr art(new RssArticle(parent, guid)); + art->m_title = h.value("title", "").toString(); + art->m_torrentUrl = h.value("torrent_url", "").toString(); + art->m_link = h.value("news_link", "").toString(); + art->m_description = h.value("description").toString(); + art->m_date = h.value("date").toDateTime(); + art->m_author = h.value("author").toString(); + art->m_read = h.value("read", false).toBool(); + + return art; } -const QString& RssArticle::author() const { - return m_author; +RssFeed *RssArticle::parent() const +{ + return m_parent; } -const QString& RssArticle::torrentUrl() const { - return m_torrentUrl; +const QString &RssArticle::author() const +{ + return m_author; } -const QString& RssArticle::link() const { - return m_link; +const QString &RssArticle::torrentUrl() const +{ + return m_torrentUrl; +} + +const QString &RssArticle::link() const +{ + return m_link; } QString RssArticle::description() const { - return m_description.isNull() ? "" : m_description; + return m_description.isNull() ? "" : m_description; } -const QDateTime& RssArticle::date() const { - return m_date; -} - -bool RssArticle::isRead() const { - return m_read; -} - -void RssArticle::markAsRead() { - if (m_read) - return; - - m_read = true; - m_parent->decrementUnreadCount(); - m_parent->markAsDirty(); - emit articleWasRead(); -} - -const QString& RssArticle::guid() const +const QDateTime &RssArticle::date() const { - return m_guid; + return m_date; } -const QString& RssArticle::title() const +bool RssArticle::isRead() const { - return m_title; + return m_read; } -void RssArticle::handleTorrentDownloadSuccess(const QString &url) { - if (url == m_torrentUrl) - markAsRead(); +void RssArticle::markAsRead() +{ + if (m_read) return; + + m_read = true; + m_parent->decrementUnreadCount(); + m_parent->markAsDirty(); + emit articleWasRead(); +} + +const QString &RssArticle::guid() const +{ + return m_guid; +} + +const QString &RssArticle::title() const +{ + return m_title; +} + +void RssArticle::handleTorrentDownloadSuccess(const QString &url) +{ + if (url == m_torrentUrl) + markAsRead(); } diff --git a/src/base/rss/rssarticle.h b/src/base/rss/rssarticle.h index 7deeaf560..72bdac20c 100644 --- a/src/base/rss/rssarticle.h +++ b/src/base/rss/rssarticle.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,47 +43,47 @@ class RssArticle; typedef QSharedPointer RssArticlePtr; // Item of a rss stream, single information -class RssArticle : public QObject { - Q_OBJECT +class RssArticle: public QObject +{ + Q_OBJECT public: - RssArticle(RssFeed* parent, const QString& guid); - // Accessors - bool hasAttachment() const; - const QString& guid() const; - RssFeed* parent() const; - const QString& title() const; - const QString& author() const; - const QString& torrentUrl() const; - const QString& link() const; - QString description() const; - const QDateTime& date() const; - bool isRead() const; - // Setters - void markAsRead(); - // Serialization - QVariantHash toHash() const; + RssArticle(RssFeed *parent, const QString &guid); + + // Accessors + bool hasAttachment() const; + const QString &guid() const; + RssFeed *parent() const; + const QString &title() const; + const QString &author() const; + const QString &torrentUrl() const; + const QString &link() const; + QString description() const; + const QDateTime &date() const; + bool isRead() const; + // Setters + void markAsRead(); + + // Serialization + QVariantHash toHash() const; + static RssArticlePtr fromHash(RssFeed *parent, const QVariantHash &hash); signals: - void articleWasRead(); + void articleWasRead(); public slots: - void handleTorrentDownloadSuccess(const QString& url); - - friend RssArticlePtr hashToRssArticle(RssFeed* parent, const QVariantHash& hash); + void handleTorrentDownloadSuccess(const QString &url); private: - RssFeed* m_parent; - QString m_guid; - QString m_title; - QString m_torrentUrl; - QString m_link; - QString m_description; - QDateTime m_date; - QString m_author; - bool m_read; + RssFeed *m_parent; + QString m_guid; + QString m_title; + QString m_torrentUrl; + QString m_link; + QString m_description; + QDateTime m_date; + QString m_author; + bool m_read; }; -RssArticlePtr hashToRssArticle(RssFeed* parent, const QVariantHash& hash); - #endif // RSSARTICLE_H diff --git a/src/base/rss/rssdownloadrule.cpp b/src/base/rss/rssdownloadrule.cpp index 132166e06..25d4d4cd1 100644 --- a/src/base/rss/rssdownloadrule.cpp +++ b/src/base/rss/rssdownloadrule.cpp @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2010 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -38,163 +38,272 @@ #include "rssarticle.h" #include "rssdownloadrule.h" -RssDownloadRule::RssDownloadRule(): m_enabled(false), m_useRegex(false), m_apstate(USE_GLOBAL) +RssDownloadRule::RssDownloadRule() + : m_enabled(false) + , m_useRegex(false) + , m_apstate(USE_GLOBAL) { } -bool RssDownloadRule::matches(const QString &article_title) const +bool RssDownloadRule::matches(const QString &articleTitle) const { - foreach (const QString& token, m_mustContain) { - if (!token.isEmpty()) { - QRegExp reg(token, Qt::CaseInsensitive, m_useRegex ? QRegExp::RegExp : QRegExp::Wildcard); - if (reg.indexIn(article_title) < 0) + foreach (const QString &token, m_mustContain) { + if (!token.isEmpty()) { + QRegExp reg(token, Qt::CaseInsensitive, m_useRegex ? QRegExp::RegExp : QRegExp::Wildcard); + if (reg.indexIn(articleTitle) < 0) + return false; + } + } + qDebug("Checking not matching tokens"); + // Checking not matching + foreach (const QString &token, m_mustNotContain) { + if (!token.isEmpty()) { + QRegExp reg(token, Qt::CaseInsensitive, m_useRegex ? QRegExp::RegExp : QRegExp::Wildcard); + if (reg.indexIn(articleTitle) > -1) + return false; + } + } + if (!m_episodeFilter.isEmpty()) { + qDebug("Checking episode filter"); + QRegExp f("(^\\d{1,4})x(.*;$)"); + int pos = f.indexIn(m_episodeFilter); + if (pos < 0) + return false; + + QString s = f.cap(1); + QStringList eps = f.cap(2).split(";"); + QString expStr; + expStr += "s0?" + s + "[ -_\\.]?" + "e0?"; + + foreach (const QString &ep, eps) { + if (ep.isEmpty()) + continue; + + if (ep.indexOf('-') != -1) { // Range detected + QString partialPattern = "s0?" + s + "[ -_\\.]?" + "e(0?\\d{1,4})"; + QRegExp reg(partialPattern, Qt::CaseInsensitive); + + if (ep.endsWith('-')) { // Infinite range + int epOurs = ep.left(ep.size() - 1).toInt(); + + // Extract partial match from article and compare as digits + pos = reg.indexIn(articleTitle); + if (pos != -1) { + int epTheirs = reg.cap(1).toInt(); + if (epTheirs >= epOurs) + return true; + } + } + else { // Normal range + QStringList range = ep.split('-'); + Q_ASSERT(range.size() == 2); + if (range.first().toInt() > range.last().toInt()) + continue; // Ignore this subrule completely + + int epOursFirst = range.first().toInt(); + int epOursLast = range.last().toInt(); + + // Extract partial match from article and compare as digits + pos = reg.indexIn(articleTitle); + if (pos != -1) { + int epTheirs = reg.cap(1).toInt(); + if (epOursFirst <= epTheirs && epOursLast >= epTheirs) + return true; + } + } + } + else { // Single number + QRegExp reg(expStr + ep + "\\D", Qt::CaseInsensitive); + if (reg.indexIn(articleTitle) != -1) + return true; + } + } return false; } - } - qDebug("Checking not matching tokens"); - // Checking not matching - foreach (const QString& token, m_mustNotContain) { - if (!token.isEmpty()) { - QRegExp reg(token, Qt::CaseInsensitive, m_useRegex ? QRegExp::RegExp : QRegExp::Wildcard); - if (reg.indexIn(article_title) > -1) - return false; - } - } - if (!m_episodeFilter.isEmpty()) { - qDebug("Checking episode filter"); - QRegExp f("(^\\d{1,4})x(.*;$)"); - int pos = f.indexIn(m_episodeFilter); - if (pos < 0) - return false; - - QString s = f.cap(1); - QStringList eps = f.cap(2).split(";"); - QString expStr; - expStr += "s0?" + s + "[ -_\\.]?" + "e0?"; - - foreach (const QString& ep, eps) { - if (ep.isEmpty()) - continue; - - if (ep.indexOf('-') != -1) { // Range detected - QString partialPattern = "s0?" + s + "[ -_\\.]?" + "e(0?\\d{1,4})"; - QRegExp reg(partialPattern, Qt::CaseInsensitive); - - if (ep.endsWith('-')) { // Infinite range - int epOurs = ep.left(ep.size() - 1).toInt(); - - // Extract partial match from article and compare as digits - pos = reg.indexIn(article_title); - if (pos != -1) { - int epTheirs = reg.cap(1).toInt(); - if (epTheirs >= epOurs) - return true; - } - } - else { // Normal range - QStringList range = ep.split('-'); - Q_ASSERT(range.size() == 2); - if (range.first().toInt() > range.last().toInt()) - continue; // Ignore this subrule completely - - int epOursFirst = range.first().toInt(); - int epOursLast = range.last().toInt(); - - // Extract partial match from article and compare as digits - pos = reg.indexIn(article_title); - if (pos != -1) { - int epTheirs = reg.cap(1).toInt(); - if (epOursFirst <= epTheirs && epOursLast >= epTheirs) - return true; - } - } - } - else { // Single number - QRegExp reg(expStr + ep + "\\D", Qt::CaseInsensitive); - if (reg.indexIn(article_title) != -1) - return true; - } - } - return false; - } - return true; + return true; } void RssDownloadRule::setMustContain(const QString &tokens) { - if (m_useRegex) - m_mustContain = QStringList() << tokens; - else - m_mustContain = tokens.split(" "); + if (m_useRegex) + m_mustContain = QStringList() << tokens; + else + m_mustContain = tokens.split(" "); } void RssDownloadRule::setMustNotContain(const QString &tokens) { - if (m_useRegex) - m_mustNotContain = QStringList() << tokens; - else - m_mustNotContain = tokens.split("|"); + if (m_useRegex) + m_mustNotContain = QStringList() << tokens; + else + m_mustNotContain = tokens.split("|"); } -RssDownloadRulePtr RssDownloadRule::fromVariantHash(const QVariantHash &rule_hash) +QStringList RssDownloadRule::rssFeeds() const { - RssDownloadRulePtr rule(new RssDownloadRule); - rule->setName(rule_hash.value("name").toString()); - rule->setUseRegex(rule_hash.value("use_regex", false).toBool()); - rule->setMustContain(rule_hash.value("must_contain").toString()); - rule->setMustNotContain(rule_hash.value("must_not_contain").toString()); - rule->setEpisodeFilter(rule_hash.value("episode_filter").toString()); - rule->setRssFeeds(rule_hash.value("affected_feeds").toStringList()); - rule->setEnabled(rule_hash.value("enabled", false).toBool()); - rule->setSavePath(rule_hash.value("save_path").toString()); - rule->setLabel(rule_hash.value("label_assigned").toString()); - rule->setAddPaused(AddPausedState(rule_hash.value("add_paused").toUInt())); - rule->setLastMatch(rule_hash.value("last_match").toDateTime()); - rule->setIgnoreDays(rule_hash.value("ignore_days").toInt()); - return rule; + return m_rssFeeds; +} + +void RssDownloadRule::setRssFeeds(const QStringList &rssFeeds) +{ + m_rssFeeds = rssFeeds; +} + +QString RssDownloadRule::name() const +{ + return m_name; +} + +void RssDownloadRule::setName(const QString &name) +{ + m_name = name; +} + +QString RssDownloadRule::savePath() const +{ + return m_savePath; +} + +RssDownloadRulePtr RssDownloadRule::fromVariantHash(const QVariantHash &ruleHash) +{ + RssDownloadRulePtr rule(new RssDownloadRule); + rule->setName(ruleHash.value("name").toString()); + rule->setUseRegex(ruleHash.value("use_regex", false).toBool()); + rule->setMustContain(ruleHash.value("must_contain").toString()); + rule->setMustNotContain(ruleHash.value("must_not_contain").toString()); + rule->setEpisodeFilter(ruleHash.value("episode_filter").toString()); + rule->setRssFeeds(ruleHash.value("affected_feeds").toStringList()); + rule->setEnabled(ruleHash.value("enabled", false).toBool()); + rule->setSavePath(ruleHash.value("save_path").toString()); + rule->setLabel(ruleHash.value("label_assigned").toString()); + rule->setAddPaused(AddPausedState(ruleHash.value("add_paused").toUInt())); + rule->setLastMatch(ruleHash.value("last_match").toDateTime()); + rule->setIgnoreDays(ruleHash.value("ignore_days").toInt()); + return rule; } QVariantHash RssDownloadRule::toVariantHash() const { - QVariantHash hash; - hash["name"] = m_name; - hash["must_contain"] = m_mustContain.join(" "); - hash["must_not_contain"] = m_mustNotContain.join("|"); - hash["save_path"] = m_savePath; - hash["affected_feeds"] = m_rssFeeds; - hash["enabled"] = m_enabled; - hash["label_assigned"] = m_label; - hash["use_regex"] = m_useRegex; - hash["add_paused"] = m_apstate; - hash["episode_filter"] = m_episodeFilter; - hash["last_match"] = m_lastMatch; - hash["ignore_days"] = m_ignoreDays; - return hash; + QVariantHash hash; + hash["name"] = m_name; + hash["must_contain"] = m_mustContain.join(" "); + hash["must_not_contain"] = m_mustNotContain.join("|"); + hash["save_path"] = m_savePath; + hash["affected_feeds"] = m_rssFeeds; + hash["enabled"] = m_enabled; + hash["label_assigned"] = m_label; + hash["use_regex"] = m_useRegex; + hash["add_paused"] = m_apstate; + hash["episode_filter"] = m_episodeFilter; + hash["last_match"] = m_lastMatch; + hash["ignore_days"] = m_ignoreDays; + return hash; } -bool RssDownloadRule::operator==(const RssDownloadRule &other) const { - return m_name == other.name(); -} - -void RssDownloadRule::setSavePath(const QString &save_path) +bool RssDownloadRule::operator==(const RssDownloadRule &other) const { - if (!save_path.isEmpty() && QDir(save_path) != QDir(Preferences::instance()->getSavePath())) - m_savePath = Utils::Fs::fromNativePath(save_path); - else - m_savePath = QString(); + return m_name == other.name(); } -QStringList RssDownloadRule::findMatchingArticles(const RssFeedPtr& feed) const +void RssDownloadRule::setSavePath(const QString &savePath) { - QStringList ret; - const RssArticleHash& feed_articles = feed->articleHash(); - - RssArticleHash::ConstIterator artIt = feed_articles.begin(); - RssArticleHash::ConstIterator artItend = feed_articles.end(); - for ( ; artIt != artItend ; ++artIt) { - const QString title = artIt.value()->title(); - if (matches(title)) - ret << title; - } - return ret; + if (!savePath.isEmpty() && (QDir(savePath) != QDir(Preferences::instance()->getSavePath()))) + m_savePath = Utils::Fs::fromNativePath(savePath); + else + m_savePath = QString(); +} + +RssDownloadRule::AddPausedState RssDownloadRule::addPaused() const +{ + return m_apstate; +} + +void RssDownloadRule::setAddPaused(const RssDownloadRule::AddPausedState &aps) +{ + m_apstate = aps; +} + +QString RssDownloadRule::label() const +{ + return m_label; +} + +void RssDownloadRule::setLabel(const QString &label) +{ + m_label = label; +} + +bool RssDownloadRule::isEnabled() const +{ + return m_enabled; +} + +void RssDownloadRule::setEnabled(bool enable) +{ + m_enabled = enable; +} + +void RssDownloadRule::setLastMatch(const QDateTime &d) +{ + m_lastMatch = d; +} + +QDateTime RssDownloadRule::lastMatch() const +{ + return m_lastMatch; +} + +void RssDownloadRule::setIgnoreDays(int d) +{ + m_ignoreDays = d; +} + +int RssDownloadRule::ignoreDays() const +{ + return m_ignoreDays; +} + +QString RssDownloadRule::mustContain() const +{ + return m_mustContain.join(" "); +} + +QString RssDownloadRule::mustNotContain() const +{ + return m_mustNotContain.join("|"); +} + +bool RssDownloadRule::useRegex() const +{ + return m_useRegex; +} + +void RssDownloadRule::setUseRegex(bool enabled) +{ + m_useRegex = enabled; +} + +QString RssDownloadRule::episodeFilter() const +{ + return m_episodeFilter; +} + +void RssDownloadRule::setEpisodeFilter(const QString &e) +{ + m_episodeFilter = e; +} + +QStringList RssDownloadRule::findMatchingArticles(const RssFeedPtr &feed) const +{ + QStringList ret; + const RssArticleHash &feedArticles = feed->articleHash(); + + RssArticleHash::ConstIterator artIt = feedArticles.begin(); + RssArticleHash::ConstIterator artItend = feedArticles.end(); + for ( ; artIt != artItend ; ++artIt) { + const QString title = artIt.value()->title(); + if (matches(title)) + ret << title; + } + return ret; } diff --git a/src/base/rss/rssdownloadrule.h b/src/base/rss/rssdownloadrule.h index c76bd3187..0bfc0616f 100644 --- a/src/base/rss/rssdownloadrule.h +++ b/src/base/rss/rssdownloadrule.h @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2010 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -44,59 +44,60 @@ typedef QSharedPointer RssDownloadRulePtr; class RssDownloadRule { - public: - enum AddPausedState { - USE_GLOBAL = 0, - ALWAYS_PAUSED, - NEVER_PAUSED - }; + enum AddPausedState + { + USE_GLOBAL = 0, + ALWAYS_PAUSED, + NEVER_PAUSED + }; - explicit RssDownloadRule(); - static RssDownloadRulePtr fromVariantHash(const QVariantHash &rule_hash); - QVariantHash toVariantHash() const; - bool matches(const QString &article_title) const; - void setMustContain(const QString &tokens); - void setMustNotContain(const QString &tokens); - inline QStringList rssFeeds() const { return m_rssFeeds; } - inline void setRssFeeds(const QStringList& rss_feeds) { m_rssFeeds = rss_feeds; } - inline QString name() const { return m_name; } - inline void setName(const QString &name) { m_name = name; } - inline QString savePath() const { return m_savePath; } - void setSavePath(const QString &save_path); - inline AddPausedState addPaused() const { return m_apstate; } - inline void setAddPaused(const AddPausedState &aps) { m_apstate = aps; } - inline QString label() const { return m_label; } - inline void setLabel(const QString &_label) { m_label = _label; } - inline bool isEnabled() const { return m_enabled; } - inline void setEnabled(bool enable) { m_enabled = enable; } - inline void setLastMatch(const QDateTime& d) { m_lastMatch = d; } - inline QDateTime lastMatch() const { return m_lastMatch; } - inline void setIgnoreDays(int d) { m_ignoreDays = d; } - inline int ignoreDays() const { return m_ignoreDays; } - inline QString mustContain() const { return m_mustContain.join(" "); } - inline QString mustNotContain() const { return m_mustNotContain.join("|"); } - inline bool useRegex() const { return m_useRegex; } - inline void setUseRegex(bool enabled) { m_useRegex = enabled; } - inline QString episodeFilter() const { return m_episodeFilter; } - inline void setEpisodeFilter(const QString& e) { m_episodeFilter = e; } - QStringList findMatchingArticles(const RssFeedPtr& feed) const; - // Operators - bool operator==(const RssDownloadRule &other) const; + RssDownloadRule(); + + static RssDownloadRulePtr fromVariantHash(const QVariantHash &ruleHash); + QVariantHash toVariantHash() const; + bool matches(const QString &articleTitle) const; + void setMustContain(const QString &tokens); + void setMustNotContain(const QString &tokens); + QStringList rssFeeds() const; + void setRssFeeds(const QStringList &rssFeeds); + QString name() const; + void setName(const QString &name); + QString savePath() const; + void setSavePath(const QString &savePath); + AddPausedState addPaused() const; + void setAddPaused(const AddPausedState &aps); + QString label() const; + void setLabel(const QString &label); + bool isEnabled() const; + void setEnabled(bool enable); + void setLastMatch(const QDateTime &d); + QDateTime lastMatch() const; + void setIgnoreDays(int d); + int ignoreDays() const; + QString mustContain() const; + QString mustNotContain() const; + bool useRegex() const; + void setUseRegex(bool enabled); + QString episodeFilter() const; + void setEpisodeFilter(const QString &e); + QStringList findMatchingArticles(const RssFeedPtr &feed) const; + // Operators + bool operator==(const RssDownloadRule &other) const; private: - QString m_name; - QStringList m_mustContain; - QStringList m_mustNotContain; - QString m_episodeFilter; - QString m_savePath; - QString m_label; - bool m_enabled; - QStringList m_rssFeeds; - bool m_useRegex; - AddPausedState m_apstate; - QDateTime m_lastMatch; - int m_ignoreDays; + QString m_name; + QStringList m_mustContain; + QStringList m_mustNotContain; + QString m_episodeFilter; + QString m_savePath; + QString m_label; + bool m_enabled; + QStringList m_rssFeeds; + bool m_useRegex; + AddPausedState m_apstate; + QDateTime m_lastMatch; + int m_ignoreDays; }; #endif // RSSDOWNLOADRULE_H diff --git a/src/base/rss/rssdownloadrulelist.cpp b/src/base/rss/rssdownloadrulelist.cpp index c1d450769..4f3e71bc4 100644 --- a/src/base/rss/rssdownloadrulelist.cpp +++ b/src/base/rss/rssdownloadrulelist.cpp @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2010 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -38,135 +38,146 @@ RssDownloadRuleList::RssDownloadRuleList() { - loadRulesFromStorage(); + loadRulesFromStorage(); } -RssDownloadRulePtr RssDownloadRuleList::findMatchingRule(const QString &feed_url, const QString &article_title) const +RssDownloadRulePtr RssDownloadRuleList::findMatchingRule(const QString &feedUrl, const QString &articleTitle) const { - Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); - QStringList rule_names = m_feedRules.value(feed_url); - foreach (const QString &rule_name, rule_names) { - RssDownloadRulePtr rule = m_rules[rule_name]; - if (rule->isEnabled() && rule->matches(article_title)) return rule; - } - return RssDownloadRulePtr(); + Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); + QStringList ruleNames = m_feedRules.value(feedUrl); + foreach (const QString &rule_name, ruleNames) { + RssDownloadRulePtr rule = m_rules[rule_name]; + if (rule->isEnabled() && rule->matches(articleTitle)) return rule; + } + return RssDownloadRulePtr(); } -void RssDownloadRuleList::replace(RssDownloadRuleList *other) { - m_rules.clear(); - m_feedRules.clear(); - foreach (const QString& name, other->ruleNames()) { - saveRule(other->getRule(name)); - } +void RssDownloadRuleList::replace(RssDownloadRuleList *other) +{ + m_rules.clear(); + m_feedRules.clear(); + foreach (const QString &name, other->ruleNames()) { + saveRule(other->getRule(name)); + } } void RssDownloadRuleList::saveRulesToStorage() { - QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); - qBTRSS.setValue("download_rules", toVariantHash()); + QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); + qBTRSS.setValue("download_rules", toVariantHash()); } void RssDownloadRuleList::loadRulesFromStorage() { - QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); - loadRulesFromVariantHash(qBTRSS.value("download_rules").toHash()); + QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); + loadRulesFromVariantHash(qBTRSS.value("download_rules").toHash()); } QVariantHash RssDownloadRuleList::toVariantHash() const { - QVariantHash ret; - foreach (const RssDownloadRulePtr &rule, m_rules.values()) { - ret.insert(rule->name(), rule->toVariantHash()); - } - return ret; + QVariantHash ret; + foreach (const RssDownloadRulePtr &rule, m_rules.values()) { + ret.insert(rule->name(), rule->toVariantHash()); + } + return ret; } void RssDownloadRuleList::loadRulesFromVariantHash(const QVariantHash &h) { - QVariantHash::ConstIterator it = h.begin(); - QVariantHash::ConstIterator itend = h.end(); - for ( ; it != itend; ++it) { - RssDownloadRulePtr rule = RssDownloadRule::fromVariantHash(it.value().toHash()); - if (rule && !rule->name().isEmpty()) - saveRule(rule); - } + QVariantHash::ConstIterator it = h.begin(); + QVariantHash::ConstIterator itend = h.end(); + for ( ; it != itend; ++it) { + RssDownloadRulePtr rule = RssDownloadRule::fromVariantHash(it.value().toHash()); + if (rule && !rule->name().isEmpty()) + saveRule(rule); + } } void RssDownloadRuleList::saveRule(const RssDownloadRulePtr &rule) { - qDebug() << Q_FUNC_INFO << rule->name(); - Q_ASSERT(rule); - if (m_rules.contains(rule->name())) { - qDebug("This is an update, removing old rule first"); - removeRule(rule->name()); - } - m_rules.insert(rule->name(), rule); - // Update feedRules hashtable - foreach (const QString &feed_url, rule->rssFeeds()) { - m_feedRules[feed_url].append(rule->name()); - } - qDebug() << Q_FUNC_INFO << "EXIT"; + qDebug() << Q_FUNC_INFO << rule->name(); + Q_ASSERT(rule); + if (m_rules.contains(rule->name())) { + qDebug("This is an update, removing old rule first"); + removeRule(rule->name()); + } + m_rules.insert(rule->name(), rule); + // Update feedRules hashtable + foreach (const QString &feedUrl, rule->rssFeeds()) { + m_feedRules[feedUrl].append(rule->name()); + } + qDebug() << Q_FUNC_INFO << "EXIT"; } void RssDownloadRuleList::removeRule(const QString &name) { - qDebug() << Q_FUNC_INFO << name; - if (!m_rules.contains(name)) return; - RssDownloadRulePtr rule = m_rules.take(name); - // Update feedRules hashtable - foreach (const QString &feed_url, rule->rssFeeds()) { - m_feedRules[feed_url].removeOne(rule->name()); - } + qDebug() << Q_FUNC_INFO << name; + if (!m_rules.contains(name)) return; + RssDownloadRulePtr rule = m_rules.take(name); + // Update feedRules hashtable + foreach (const QString &feedUrl, rule->rssFeeds()) { + m_feedRules[feedUrl].removeOne(rule->name()); + } } -void RssDownloadRuleList::renameRule(const QString &old_name, const QString &new_name) +void RssDownloadRuleList::renameRule(const QString &oldName, const QString &newName) { - if (!m_rules.contains(old_name)) return; - RssDownloadRulePtr rule = m_rules.take(old_name); - rule->setName(new_name); - m_rules.insert(new_name, rule); - // Update feedRules hashtable - foreach (const QString &feed_url, rule->rssFeeds()) { - m_feedRules[feed_url].replace(m_feedRules[feed_url].indexOf(old_name), new_name); - } + if (!m_rules.contains(oldName)) return; + + RssDownloadRulePtr rule = m_rules.take(oldName); + rule->setName(newName); + m_rules.insert(newName, rule); + // Update feedRules hashtable + foreach (const QString &feedUrl, rule->rssFeeds()) { + m_feedRules[feedUrl].replace(m_feedRules[feedUrl].indexOf(oldName), newName); + } } RssDownloadRulePtr RssDownloadRuleList::getRule(const QString &name) const { - return m_rules.value(name); + return m_rules.value(name); } -bool RssDownloadRuleList::serialize(const QString& path) +QStringList RssDownloadRuleList::ruleNames() const { - QFile f(path); - if (f.open(QIODevice::WriteOnly)) { - QDataStream out(&f); - out.setVersion(QDataStream::Qt_4_5); - out << toVariantHash(); - f.close(); - return true; - } else { + return m_rules.keys(); +} + +bool RssDownloadRuleList::isEmpty() const +{ + return m_rules.isEmpty(); +} + +bool RssDownloadRuleList::serialize(const QString &path) +{ + QFile f(path); + if (f.open(QIODevice::WriteOnly)) { + QDataStream out(&f); + out.setVersion(QDataStream::Qt_4_5); + out << toVariantHash(); + f.close(); + return true; + } + return false; - } } bool RssDownloadRuleList::unserialize(const QString &path) { - QFile f(path); - if (f.open(QIODevice::ReadOnly)) { - QDataStream in(&f); - in.setVersion(QDataStream::Qt_4_5); - QVariantHash tmp; - in >> tmp; - f.close(); - if (tmp.isEmpty()) - return false; - qDebug("Processing was successful!"); - loadRulesFromVariantHash(tmp); - return true; - } else { - qDebug("Error: could not open file at %s", qPrintable(path)); - return false; - } + QFile f(path); + if (f.open(QIODevice::ReadOnly)) { + QDataStream in(&f); + in.setVersion(QDataStream::Qt_4_5); + QVariantHash tmp; + in >> tmp; + f.close(); + if (tmp.isEmpty()) + return false; + qDebug("Processing was successful!"); + loadRulesFromVariantHash(tmp); + return true; + } else { + qDebug("Error: could not open file at %s", qPrintable(path)); + return false; + } } - diff --git a/src/base/rss/rssdownloadrulelist.h b/src/base/rss/rssdownloadrulelist.h index 4a20c4744..4afc8c3e4 100644 --- a/src/base/rss/rssdownloadrulelist.h +++ b/src/base/rss/rssdownloadrulelist.h @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2010 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -34,36 +34,37 @@ #include #include #include + #include "rssdownloadrule.h" class RssDownloadRuleList { - Q_DISABLE_COPY(RssDownloadRuleList) + Q_DISABLE_COPY(RssDownloadRuleList) public: - RssDownloadRuleList(); - RssDownloadRulePtr findMatchingRule(const QString &feed_url, const QString &article_title) const; - // Operators - void saveRule(const RssDownloadRulePtr &rule); - void removeRule(const QString &name); - void renameRule(const QString &old_name, const QString &new_name); - RssDownloadRulePtr getRule(const QString &name) const; - inline QStringList ruleNames() const { return m_rules.keys(); } - inline bool isEmpty() const { return m_rules.isEmpty(); } - void saveRulesToStorage(); - bool serialize(const QString& path); - bool unserialize(const QString& path); - void replace(RssDownloadRuleList* other); + RssDownloadRuleList(); + + RssDownloadRulePtr findMatchingRule(const QString &feedUrl, const QString &articleTitle) const; + // Operators + void saveRule(const RssDownloadRulePtr &rule); + void removeRule(const QString &name); + void renameRule(const QString &oldName, const QString &newName); + RssDownloadRulePtr getRule(const QString &name) const; + QStringList ruleNames() const; + bool isEmpty() const; + void saveRulesToStorage(); + bool serialize(const QString &path); + bool unserialize(const QString &path); + void replace(RssDownloadRuleList *other); private: - void loadRulesFromStorage(); - void loadRulesFromVariantHash(const QVariantHash& l); - QVariantHash toVariantHash() const; + void loadRulesFromStorage(); + void loadRulesFromVariantHash(const QVariantHash &l); + QVariantHash toVariantHash() const; private: - QHash m_rules; - QHash m_feedRules; - + QHash m_rules; + QHash m_feedRules; }; #endif // RSSDOWNLOADFILTERLIST_H diff --git a/src/base/rss/rssfeed.cpp b/src/base/rss/rssfeed.cpp index 72bcb8993..f52ccc1c4 100644 --- a/src/base/rss/rssfeed.cpp +++ b/src/base/rss/rssfeed.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -30,15 +31,15 @@ #include -#include "base/bittorrent/session.h" -#include "base/bittorrent/magneturi.h" #include "base/preferences.h" #include "base/qinisettings.h" +#include "base/logger.h" +#include "base/bittorrent/session.h" +#include "base/bittorrent/magneturi.h" #include "base/utils/misc.h" +#include "base/utils/fs.h" #include "base/net/downloadmanager.h" #include "base/net/downloadhandler.h" -#include "base/utils/fs.h" -#include "base/logger.h" #include "rssdownloadrulelist.h" #include "rssarticle.h" #include "rssparser.h" @@ -46,404 +47,419 @@ #include "rssmanager.h" #include "rssfeed.h" -bool rssArticleDateRecentThan(const RssArticlePtr& left, const RssArticlePtr& right) +bool rssArticleDateRecentThan(const RssArticlePtr &left, const RssArticlePtr &right) { - return left->date() > right->date(); + return left->date() > right->date(); } -RssFeed::RssFeed(RssManager* manager, RssFolder* parent, const QString& url): - m_manager(manager), - m_parent(parent), - m_url (QUrl::fromEncoded(url.toUtf8()).toString()), - m_icon(":/icons/oxygen/application-rss+xml.png"), - m_unreadCount(0), - m_dirty(false), - m_inErrorState(false), - m_loading(false) +RssFeed::RssFeed(RssManager *manager, RssFolder *parent, const QString &url) + : m_manager(manager) + , m_parent(parent) + , m_url (QUrl::fromEncoded(url.toUtf8()).toString()) + , m_icon(":/icons/oxygen/application-rss+xml.png") + , m_unreadCount(0) + , m_dirty(false) + , m_inErrorState(false) + , m_loading(false) { - qDebug() << Q_FUNC_INFO << m_url; - // Listen for new RSS downloads - connect(manager->rssParser(), SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString))); - connect(manager->rssParser(), SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash))); - connect(manager->rssParser(), SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleFeedParsingFinished(QString,QString))); + qDebug() << Q_FUNC_INFO << m_url; + // Listen for new RSS downloads + connect(manager->rssParser(), SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString))); + connect(manager->rssParser(), SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash))); + connect(manager->rssParser(), SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleFeedParsingFinished(QString,QString))); - // Download the RSS Feed icon - Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(iconUrl(), true); - connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString))); - connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); - m_iconUrl = handler->url(); + // Download the RSS Feed icon + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(iconUrl(), true); + connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); + m_iconUrl = handler->url(); - // Load old RSS articles - loadItemsFromDisk(); + // Load old RSS articles + loadItemsFromDisk(); } RssFeed::~RssFeed() { - if (!m_icon.startsWith(":/") && QFile::exists(m_icon)) - Utils::Fs::forceRemove(m_icon); + if (!m_icon.startsWith(":/") && QFile::exists(m_icon)) + Utils::Fs::forceRemove(m_icon); +} + +RssFolder *RssFeed::parent() const +{ + return m_parent; +} + +void RssFeed::setParent(RssFolder *parent) +{ + m_parent = parent; } void RssFeed::saveItemsToDisk() { - qDebug() << Q_FUNC_INFO << m_url; - if (!m_dirty) - return; - markAsDirty(false); + qDebug() << Q_FUNC_INFO << m_url; + if (!m_dirty) return; - QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); - QVariantList old_items; + markAsDirty(false); - RssArticleHash::ConstIterator it = m_articles.begin(); - RssArticleHash::ConstIterator itend = m_articles.end(); - for ( ; it != itend; ++it) { - old_items << it.value()->toHash(); - } - qDebug("Saving %d old items for feed %s", old_items.size(), qPrintable(displayName())); - QHash all_old_items = qBTRSS.value("old_items", QHash()).toHash(); - all_old_items[m_url] = old_items; - qBTRSS.setValue("old_items", all_old_items); + QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); + QVariantList oldItems; + + RssArticleHash::ConstIterator it = m_articles.begin(); + RssArticleHash::ConstIterator itend = m_articles.end(); + for ( ; it != itend; ++it) { + oldItems << it.value()->toHash(); + } + qDebug("Saving %d old items for feed %s", oldItems.size(), qPrintable(displayName())); + QHash allOldItems = qBTRSS.value("old_items", QHash()).toHash(); + allOldItems[m_url] = oldItems; + qBTRSS.setValue("old_items", allOldItems); } void RssFeed::loadItemsFromDisk() { - QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); - QHash all_old_items = qBTRSS.value("old_items", QHash()).toHash(); - const QVariantList old_items = all_old_items.value(m_url, QVariantList()).toList(); - qDebug("Loading %d old items for feed %s", old_items.size(), qPrintable(displayName())); + QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); + QHash allOldItems = qBTRSS.value("old_items", QHash()).toHash(); + const QVariantList oldItems = allOldItems.value(m_url, QVariantList()).toList(); + qDebug("Loading %d old items for feed %s", oldItems.size(), qPrintable(displayName())); - foreach (const QVariant& var_it, old_items) { - QVariantHash item = var_it.toHash(); - RssArticlePtr rss_item = hashToRssArticle(this, item); - if (rss_item) - addArticle(rss_item); - } + foreach (const QVariant &var_it, oldItems) { + QVariantHash item = var_it.toHash(); + RssArticlePtr rssItem = RssArticle::fromHash(this, item); + if (rssItem) + addArticle(rssItem); + } } -void RssFeed::addArticle(const RssArticlePtr& article) { - int max_articles = Preferences::instance()->getRSSMaxArticlesPerFeed(); +void RssFeed::addArticle(const RssArticlePtr &article) +{ + int maxArticles = Preferences::instance()->getRSSMaxArticlesPerFeed(); - if (!m_articles.contains(article->guid())) { - markAsDirty(); + if (!m_articles.contains(article->guid())) { + markAsDirty(); - // Update unreadCount - if (!article->isRead()) - ++m_unreadCount; - // Insert in hash table - m_articles[article->guid()] = article; - // Insertion sort - RssArticleList::Iterator lowerBound = qLowerBound(m_articlesByDate.begin(), m_articlesByDate.end(), article, rssArticleDateRecentThan); - m_articlesByDate.insert(lowerBound, article); - int lbIndex = m_articlesByDate.indexOf(article); - if (m_articlesByDate.size() > max_articles) { - RssArticlePtr oldestArticle = m_articlesByDate.takeLast(); - m_articles.remove(oldestArticle->guid()); - // Update unreadCount - if (!oldestArticle->isRead()) - --m_unreadCount; - } + // Update unreadCount + if (!article->isRead()) + ++m_unreadCount; + // Insert in hash table + m_articles[article->guid()] = article; + // Insertion sort + RssArticleList::Iterator lowerBound = qLowerBound(m_articlesByDate.begin(), m_articlesByDate.end(), article, rssArticleDateRecentThan); + m_articlesByDate.insert(lowerBound, article); + int lbIndex = m_articlesByDate.indexOf(article); + if (m_articlesByDate.size() > maxArticles) { + RssArticlePtr oldestArticle = m_articlesByDate.takeLast(); + m_articles.remove(oldestArticle->guid()); + // Update unreadCount + if (!oldestArticle->isRead()) + --m_unreadCount; + } - // Check if article was inserted at the end of the list and will break max_articles limit - if (Preferences::instance()->isRssDownloadingEnabled()) { - if (lbIndex < max_articles && !article->isRead()) - downloadArticleTorrentIfMatching(m_manager->downloadRules(), article); + // Check if article was inserted at the end of the list and will break max_articles limit + if (Preferences::instance()->isRssDownloadingEnabled()) { + if ((lbIndex < maxArticles) && !article->isRead()) + downloadArticleTorrentIfMatching(m_manager->downloadRules(), article); + } } - } - else { - // m_articles.contains(article->guid()) - // Try to download skipped articles - if (Preferences::instance()->isRssDownloadingEnabled()) { - RssArticlePtr skipped = m_articles.value(article->guid(), RssArticlePtr()); - if (skipped) { - if (!skipped->isRead()) - downloadArticleTorrentIfMatching(m_manager->downloadRules(), skipped); - } + else { + // m_articles.contains(article->guid()) + // Try to download skipped articles + if (Preferences::instance()->isRssDownloadingEnabled()) { + RssArticlePtr skipped = m_articles.value(article->guid(), RssArticlePtr()); + if (skipped) { + if (!skipped->isRead()) + downloadArticleTorrentIfMatching(m_manager->downloadRules(), skipped); + } + } } - } } bool RssFeed::refresh() { - if (m_loading) { - qWarning() << Q_FUNC_INFO << "Feed" << displayName() << "is already being refreshed, ignoring request"; - return false; - } - m_loading = true; - // Download the RSS again - Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_url, true); - connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString))); - connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); - m_url = handler->url(); // sync URL encoding - return true; + if (m_loading) { + qWarning() << Q_FUNC_INFO << "Feed" << displayName() << "is already being refreshed, ignoring request"; + return false; + } + m_loading = true; + // Download the RSS again + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_url, true); + connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); + m_url = handler->url(); // sync URL encoding + return true; +} + +QString RssFeed::id() const +{ + return m_url; } void RssFeed::removeAllSettings() { - qDebug() << "Removing all settings / history for feed: " << m_url; - QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); - QVariantHash feeds_w_downloader = qBTRSS.value("downloader_on", QVariantHash()).toHash(); - if (feeds_w_downloader.contains(m_url)) { - feeds_w_downloader.remove(m_url); - qBTRSS.setValue("downloader_on", feeds_w_downloader); - } - QVariantHash all_feeds_filters = qBTRSS.value("feed_filters", QVariantHash()).toHash(); - if (all_feeds_filters.contains(m_url)) { - all_feeds_filters.remove(m_url); - qBTRSS.setValue("feed_filters", all_feeds_filters); - } - QVariantHash all_old_items = qBTRSS.value("old_items", QVariantHash()).toHash(); - if (all_old_items.contains(m_url)) { - all_old_items.remove(m_url); - qBTRSS.setValue("old_items", all_old_items); - } + qDebug() << "Removing all settings / history for feed: " << m_url; + QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); + QVariantHash feedsWDownloader = qBTRSS.value("downloader_on", QVariantHash()).toHash(); + if (feedsWDownloader.contains(m_url)) { + feedsWDownloader.remove(m_url); + qBTRSS.setValue("downloader_on", feedsWDownloader); + } + QVariantHash allFeedsFilters = qBTRSS.value("feed_filters", QVariantHash()).toHash(); + if (allFeedsFilters.contains(m_url)) { + allFeedsFilters.remove(m_url); + qBTRSS.setValue("feed_filters", allFeedsFilters); + } + QVariantHash allOldItems = qBTRSS.value("old_items", QVariantHash()).toHash(); + if (allOldItems.contains(m_url)) { + allOldItems.remove(m_url); + qBTRSS.setValue("old_items", allOldItems); + } } bool RssFeed::isLoading() const { - return m_loading; + return m_loading; } QString RssFeed::title() const { - return m_title; + return m_title; } -void RssFeed::rename(const QString &new_name) +void RssFeed::rename(const QString &newName) { - qDebug() << "Renaming stream to" << new_name; - m_alias = new_name; + qDebug() << "Renaming stream to" << newName; + m_alias = newName; } // Return the alias if the stream has one, the url if it has no alias QString RssFeed::displayName() const { - if (!m_alias.isEmpty()) - return m_alias; - if (!m_title.isEmpty()) - return m_title; - return m_url; + if (!m_alias.isEmpty()) + return m_alias; + if (!m_title.isEmpty()) + return m_title; + return m_url; } QString RssFeed::url() const { - return m_url; + return m_url; } QString RssFeed::iconPath() const { - if (m_inErrorState) - return QLatin1String(":/icons/oxygen/unavailable.png"); + if (m_inErrorState) + return QLatin1String(":/icons/oxygen/unavailable.png"); - return m_icon; + return m_icon; } bool RssFeed::hasCustomIcon() const { - return !m_icon.startsWith(":/"); + return !m_icon.startsWith(":/"); } -void RssFeed::setIconPath(const QString& path) +void RssFeed::setIconPath(const QString &path) { - if (path.isEmpty() || !QFile::exists(path)) - return; - - m_icon = path; + if (!path.isEmpty() && QFile::exists(path)) + m_icon = path; } -RssArticlePtr RssFeed::getItem(const QString& guid) const +RssArticlePtr RssFeed::getItem(const QString &guid) const { - return m_articles.value(guid); + return m_articles.value(guid); } uint RssFeed::count() const { - return m_articles.size(); + return m_articles.size(); } void RssFeed::markAsRead() { - RssArticleHash::ConstIterator it = m_articles.begin(); - RssArticleHash::ConstIterator itend = m_articles.end(); - for ( ; it != itend; ++it) { - it.value()->markAsRead(); - } - m_unreadCount = 0; - m_manager->forwardFeedInfosChanged(m_url, displayName(), 0); + RssArticleHash::ConstIterator it = m_articles.begin(); + RssArticleHash::ConstIterator itend = m_articles.end(); + for ( ; it != itend; ++it) { + it.value()->markAsRead(); + } + m_unreadCount = 0; + m_manager->forwardFeedInfosChanged(m_url, displayName(), 0); } void RssFeed::markAsDirty(bool dirty) { - m_dirty = dirty; + m_dirty = dirty; } uint RssFeed::unreadCount() const { - return m_unreadCount; + return m_unreadCount; } RssArticleList RssFeed::articleListByDateDesc() const { - return m_articlesByDate; + return m_articlesByDate; +} + +const RssArticleHash &RssFeed::articleHash() const +{ + return m_articles; } RssArticleList RssFeed::unreadArticleListByDateDesc() const { - RssArticleList unread_news; + RssArticleList unreadNews; - RssArticleList::ConstIterator it = m_articlesByDate.begin(); - RssArticleList::ConstIterator itend = m_articlesByDate.end(); - for ( ; it != itend; ++it) { - if (!(*it)->isRead()) - unread_news << *it; - } - return unread_news; + RssArticleList::ConstIterator it = m_articlesByDate.begin(); + RssArticleList::ConstIterator itend = m_articlesByDate.end(); + for ( ; it != itend; ++it) { + if (!(*it)->isRead()) + unreadNews << *it; + } + return unreadNews; } // download the icon from the address QString RssFeed::iconUrl() const { - // XXX: This works for most sites but it is not perfect - return QString("http://") + QUrl(m_url).host() + QString("/favicon.ico"); + // XXX: This works for most sites but it is not perfect + return QString("http://") + QUrl(m_url).host() + QString("/favicon.ico"); } // read and store the downloaded rss' informations void RssFeed::handleFinishedDownload(const QString &url, const QString &filePath) { - if (url == m_url) { - qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url; - // Parse the download RSS - m_manager->rssParser()->parseRssFile(m_url, filePath); - } else if (url == m_iconUrl) { - m_icon = filePath; - qDebug() << Q_FUNC_INFO << "icon path:" << m_icon; - m_manager->forwardFeedIconChanged(m_url, m_icon); - } + if (url == m_url) { + qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url; + // Parse the download RSS + m_manager->rssParser()->parseRssFile(m_url, filePath); + } + else if (url == m_iconUrl) { + m_icon = filePath; + qDebug() << Q_FUNC_INFO << "icon path:" << m_icon; + m_manager->forwardFeedIconChanged(m_url, m_icon); + } } void RssFeed::handleDownloadFailure(const QString &url, const QString &error) { - if (url != m_url) return; + if (url != m_url) return; - m_inErrorState = true; - m_loading = false; - m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); - qWarning() << "Failed to download RSS feed at" << url; - qWarning() << "Reason:" << error; + m_inErrorState = true; + m_loading = false; + m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); + qWarning() << "Failed to download RSS feed at" << url; + qWarning() << "Reason:" << error; } -void RssFeed::handleFeedTitle(const QString& feedUrl, const QString& title) +void RssFeed::handleFeedTitle(const QString &feedUrl, const QString &title) { - if (feedUrl != m_url) - return; + if (feedUrl != m_url) return; + if (m_title == title) return; - if (m_title == title) - return; + m_title = title; - m_title = title; - - // Notify that we now have something better than a URL to display - if (m_alias.isEmpty()) - m_manager->forwardFeedInfosChanged(feedUrl, title, m_unreadCount); + // Notify that we now have something better than a URL to display + if (m_alias.isEmpty()) + m_manager->forwardFeedInfosChanged(feedUrl, title, m_unreadCount); } -void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList* rules, const RssArticlePtr& article) +void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList *rules, const RssArticlePtr &article) { - Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); - RssDownloadRulePtr matching_rule = rules->findMatchingRule(m_url, article->title()); - if (!matching_rule) - return; + Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); + RssDownloadRulePtr matchingRule = rules->findMatchingRule(m_url, article->title()); + if (!matchingRule) return; - if (matching_rule->ignoreDays() > 0) { - QDateTime lastMatch = matching_rule->lastMatch(); - if (lastMatch.isValid()) { - if (QDateTime::currentDateTime() < lastMatch.addDays(matching_rule->ignoreDays())) { - connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection); + if (matchingRule->ignoreDays() > 0) { + QDateTime lastMatch = matchingRule->lastMatch(); + if (lastMatch.isValid()) { + if (QDateTime::currentDateTime() < lastMatch.addDays(matchingRule->ignoreDays())) { + connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection); + article->markAsRead(); + return; + } + } + } + + matchingRule->setLastMatch(QDateTime::currentDateTime()); + rules->saveRulesToStorage(); + // Download the torrent + const QString &torrentUrl = article->torrentUrl(); + if (torrentUrl.isEmpty()) { + Logger::instance()->addMessage(tr("Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link...").arg(article->title()).arg(displayName()), Log::WARNING); article->markAsRead(); return; - } } - } - matching_rule->setLastMatch(QDateTime::currentDateTime()); - rules->saveRulesToStorage(); - // Download the torrent - const QString& torrent_url = article->torrentUrl(); - if (torrent_url.isEmpty()) { - Logger::instance()->addMessage(tr("Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link...").arg(article->title()).arg(displayName()), Log::WARNING); - article->markAsRead(); - return; - } - Logger::instance()->addMessage(tr("Automatically downloading '%1' torrent from '%2' RSS feed...").arg(article->title()).arg(displayName())); - connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection); - if (BitTorrent::MagnetUri(torrent_url).isValid()) - article->markAsRead(); - else - connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection); + Logger::instance()->addMessage(tr("Automatically downloading '%1' torrent from '%2' RSS feed...").arg(article->title()).arg(displayName())); + connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString &)), Qt::UniqueConnection); + if (BitTorrent::MagnetUri(torrent_url).isValid()) + article->markAsRead(); + else + connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection); - BitTorrent::AddTorrentParams params; - params.savePath = matching_rule->savePath(); - params.label = matching_rule->label(); - if (matching_rule->addPaused() == RssDownloadRule::ALWAYS_PAUSED) - params.addPaused = TriStateBool::True; - else if (matching_rule->addPaused() == RssDownloadRule::NEVER_PAUSED) - params.addPaused = TriStateBool::False; - BitTorrent::Session::instance()->addTorrent(torrent_url, params); + BitTorrent::AddTorrentParams params; + params.savePath = matchingRule->savePath(); + params.label = matchingRule->label(); + if (matchingRule->addPaused() == RssDownloadRule::ALWAYS_PAUSED) + params.addPaused = TriStateBool::True; + else if (matchingRule->addPaused() == RssDownloadRule::NEVER_PAUSED) + params.addPaused = TriStateBool::False; + BitTorrent::Session::instance()->addTorrent(torrentUrl, params); } void RssFeed::recheckRssItemsForDownload() { - Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); - RssDownloadRuleList* rules = m_manager->downloadRules(); - foreach (const RssArticlePtr& article, m_articlesByDate) { - if (!article->isRead()) - downloadArticleTorrentIfMatching(rules, article); - } + Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); + RssDownloadRuleList *rules = m_manager->downloadRules(); + foreach (const RssArticlePtr &article, m_articlesByDate) { + if (!article->isRead()) + downloadArticleTorrentIfMatching(rules, article); + } } -void RssFeed::handleNewArticle(const QString& feedUrl, const QVariantHash& articleData) +void RssFeed::handleNewArticle(const QString &feedUrl, const QVariantHash &articleData) { - if (feedUrl != m_url) - return; + if (feedUrl != m_url) return; - RssArticlePtr article = hashToRssArticle(this, articleData); - if (article.isNull()) { - qDebug() << "Article hash corrupted or guid is uncomputable; feed url: " << feedUrl; - return; - } - Q_ASSERT(article); - addArticle(article); + RssArticlePtr article = RssArticle::fromHash(this, articleData); + if (article.isNull()) { + qDebug() << "Article hash corrupted or guid is uncomputable; feed url: " << feedUrl; + return; + } + Q_ASSERT(article); + addArticle(article); - m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); - // FIXME: We should forward the information here but this would seriously decrease - // performance with current design. - //m_manager->forwardFeedContentChanged(m_url); + m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); + // FIXME: We should forward the information here but this would seriously decrease + // performance with current design. + //m_manager->forwardFeedContentChanged(m_url); } -void RssFeed::handleFeedParsingFinished(const QString& feedUrl, const QString& error) +void RssFeed::handleFeedParsingFinished(const QString &feedUrl, const QString &error) { - if (feedUrl != m_url) - return; + if (feedUrl != m_url) return; - if (!error.isEmpty()) { - qWarning() << "Failed to parse RSS feed at" << feedUrl; - qWarning() << "Reason:" << error; - } + if (!error.isEmpty()) { + qWarning() << "Failed to parse RSS feed at" << feedUrl; + qWarning() << "Reason:" << error; + } - m_loading = false; - m_inErrorState = !error.isEmpty(); + m_loading = false; + m_inErrorState = !error.isEmpty(); - m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); - // XXX: Would not be needed if we did this in handleNewArticle() instead - m_manager->forwardFeedContentChanged(m_url); + m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); + // XXX: Would not be needed if we did this in handleNewArticle() instead + m_manager->forwardFeedContentChanged(m_url); - saveItemsToDisk(); + saveItemsToDisk(); } void RssFeed::handleArticleStateChanged() { - m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); + m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); } void RssFeed::decrementUnreadCount() { - --m_unreadCount; + --m_unreadCount; } diff --git a/src/base/rss/rssfeed.h b/src/base/rss/rssfeed.h index 84e95119f..70fffa6b5 100644 --- a/src/base/rss/rssfeed.h +++ b/src/base/rss/rssfeed.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -39,6 +40,7 @@ #include "rssfile.h" +class RssFolder; class RssFeed; class RssManager; class RssDownloadRuleList; @@ -47,69 +49,69 @@ typedef QHash RssArticleHash; typedef QSharedPointer RssFeedPtr; typedef QList RssFeedList; -bool rssArticleDateRecentThan(const RssArticlePtr& left, const RssArticlePtr& right); +bool rssArticleDateRecentThan(const RssArticlePtr &left, const RssArticlePtr &right); -class RssFeed: public QObject, public RssFile { - Q_OBJECT +class RssFeed: public QObject, public RssFile +{ + Q_OBJECT public: - RssFeed(RssManager* manager, RssFolder* m_parent, const QString& url); - virtual ~RssFeed(); - virtual RssFolder* parent() const { return m_parent; } - virtual void setParent(RssFolder* parent) { m_parent = parent; } - bool refresh(); - virtual QString id() const { return m_url; } - virtual void removeAllSettings(); - virtual void saveItemsToDisk(); - bool isLoading() const; - QString title() const; - virtual void rename(const QString &alias); - virtual QString displayName() const; - QString url() const; - virtual QString iconPath() const; - bool hasCustomIcon() const; - void setIconPath(const QString &pathHierarchy); - RssArticlePtr getItem(const QString &guid) const; - uint count() const; - virtual void markAsRead(); - void markAsDirty(bool dirty = true); - virtual uint unreadCount() const; - virtual RssArticleList articleListByDateDesc() const; - const RssArticleHash& articleHash() const { return m_articles; } - virtual RssArticleList unreadArticleListByDateDesc() const; - void decrementUnreadCount(); - void recheckRssItemsForDownload(); + RssFeed(RssManager *manager, RssFolder *parent, const QString &url); + ~RssFeed(); + + RssFolder *parent() const; + void setParent(RssFolder *parent); + bool refresh(); + QString id() const; + void removeAllSettings(); + void saveItemsToDisk(); + bool isLoading() const; + QString title() const; + void rename(const QString &newName); + QString displayName() const; + QString url() const; + QString iconPath() const; + bool hasCustomIcon() const; + void setIconPath(const QString &pathHierarchy); + RssArticlePtr getItem(const QString &guid) const; + uint count() const; + void markAsRead(); + void markAsDirty(bool dirty = true); + uint unreadCount() const; + RssArticleList articleListByDateDesc() const; + const RssArticleHash &articleHash() const; + RssArticleList unreadArticleListByDateDesc() const; + void decrementUnreadCount(); + void recheckRssItemsForDownload(); private slots: - void handleFinishedDownload(const QString &url, const QString &filePath); - void handleDownloadFailure(const QString &url, const QString &error); - void handleFeedTitle(const QString& feedUrl, const QString& title); - void handleNewArticle(const QString& feedUrl, const QVariantHash& article); - void handleFeedParsingFinished(const QString& feedUrl, const QString& error); - void handleArticleStateChanged(); + void handleFinishedDownload(const QString &url, const QString &filePath); + void handleDownloadFailure(const QString &url, const QString &error); + void handleFeedTitle(const QString &feedUrl, const QString &title); + void handleNewArticle(const QString &feedUrl, const QVariantHash &article); + void handleFeedParsingFinished(const QString &feedUrl, const QString &error); + void handleArticleStateChanged(); private: - QString iconUrl() const; - void loadItemsFromDisk(); - void addArticle(const RssArticlePtr& article); - void downloadArticleTorrentIfMatching(RssDownloadRuleList* rules, const RssArticlePtr& article); + QString iconUrl() const; + void loadItemsFromDisk(); + void addArticle(const RssArticlePtr &article); + void downloadArticleTorrentIfMatching(RssDownloadRuleList *rules, const RssArticlePtr &article); private: - RssManager* m_manager; - RssArticleHash m_articles; - RssArticleList m_articlesByDate; // Articles sorted by date (more recent first) - RssFolder* m_parent; - QString m_title; - QString m_url; - QString m_alias; - QString m_icon; - QString m_iconUrl; - uint m_unreadCount; - bool m_dirty; - bool m_inErrorState; - bool m_loading; - + RssManager *m_manager; + RssArticleHash m_articles; + RssArticleList m_articlesByDate; // Articles sorted by date (more recent first) + RssFolder *m_parent; + QString m_title; + QString m_url; + QString m_alias; + QString m_icon; + QString m_iconUrl; + uint m_unreadCount; + bool m_dirty; + bool m_inErrorState; + bool m_loading; }; - #endif // RSSFEED_H diff --git a/src/base/rss/rssfile.cpp b/src/base/rss/rssfile.cpp index ac090e0ee..187dfd303 100644 --- a/src/base/rss/rssfile.cpp +++ b/src/base/rss/rssfile.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -31,10 +32,13 @@ #include "rssfolder.h" #include "rssfile.h" -QStringList RssFile::pathHierarchy() const { - QStringList path; - if (parent()) - path << parent()->pathHierarchy(); - path << id(); - return path; +RssFile::~RssFile() {} + +QStringList RssFile::pathHierarchy() const +{ + QStringList path; + if (parent()) + path << parent()->pathHierarchy(); + path << id(); + return path; } diff --git a/src/base/rss/rssfile.h b/src/base/rss/rssfile.h index 9b08d00f9..ff2f0d913 100644 --- a/src/base/rss/rssfile.h +++ b/src/base/rss/rssfile.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -47,28 +48,30 @@ typedef QList RssFileList; /** * Parent interface for RssFolder and RssFeed. */ -class RssFile { +class RssFile +{ public: - virtual ~RssFile() {} + virtual ~RssFile(); - virtual uint unreadCount() const = 0; - virtual QString displayName() const = 0; - virtual QString id() const = 0; - virtual QString iconPath() const = 0; - virtual void rename(const QString &new_name) = 0; - virtual void markAsRead() = 0; - virtual RssFolder* parent() const = 0; - virtual void setParent(RssFolder* parent) = 0; - virtual bool refresh() = 0; - virtual RssArticleList articleListByDateDesc() const = 0; - virtual RssArticleList unreadArticleListByDateDesc() const = 0; - virtual void removeAllSettings() = 0; - virtual void saveItemsToDisk() = 0; - virtual void recheckRssItemsForDownload() = 0; - QStringList pathHierarchy() const; + virtual uint unreadCount() const = 0; + virtual QString displayName() const = 0; + virtual QString id() const = 0; + virtual QString iconPath() const = 0; + virtual void rename(const QString &newName) = 0; + virtual void markAsRead() = 0; + virtual RssFolder *parent() const = 0; + virtual void setParent(RssFolder *parent) = 0; + virtual bool refresh() = 0; + virtual RssArticleList articleListByDateDesc() const = 0; + virtual RssArticleList unreadArticleListByDateDesc() const = 0; + virtual void removeAllSettings() = 0; + virtual void saveItemsToDisk() = 0; + virtual void recheckRssItemsForDownload() = 0; + + QStringList pathHierarchy() const; protected: - uint m_unreadCount; + uint m_unreadCount; }; #endif // RSSFILE_H diff --git a/src/base/rss/rssfolder.cpp b/src/base/rss/rssfolder.cpp index a76357623..ac5e2b84d 100644 --- a/src/base/rss/rssfolder.cpp +++ b/src/base/rss/rssfolder.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -37,226 +38,256 @@ #include "rssarticle.h" #include "rssfolder.h" -RssFolder::RssFolder(RssFolder *parent, const QString &name): m_parent(parent), m_name(name) { +RssFolder::RssFolder(RssFolder *parent, const QString &name) + : m_parent(parent) + , m_name(name) +{ } -RssFolder::~RssFolder() { +RssFolder::~RssFolder() {} + +RssFolder *RssFolder::parent() const +{ + return m_parent; } -unsigned int RssFolder::unreadCount() const { - uint nb_unread = 0; - - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - nb_unread += it.value()->unreadCount(); - } - return nb_unread; +void RssFolder::setParent(RssFolder *parent) +{ + m_parent = parent; } -void RssFolder::removeChild(const QString &childId) { - if (m_children.contains(childId)) { - RssFilePtr child = m_children.take(childId); - child->removeAllSettings(); - } +uint RssFolder::unreadCount() const +{ + uint nbUnread = 0; + + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) + nbUnread += it.value()->unreadCount(); + + return nbUnread; } -RssFolderPtr RssFolder::addFolder(const QString &name) { - RssFolderPtr subfolder; - if (!m_children.contains(name)) { - subfolder = RssFolderPtr(new RssFolder(this, name)); - m_children[name] = subfolder; - } else { - subfolder = qSharedPointerDynamicCast(m_children.value(name)); - } - return subfolder; +void RssFolder::removeChild(const QString &childId) +{ + if (m_children.contains(childId)) { + RssFilePtr child = m_children.take(childId); + child->removeAllSettings(); + } } -RssFeedPtr RssFolder::addStream(RssManager* manager, const QString &url) { - qDebug() << Q_FUNC_INFO << manager << url; - RssFeedPtr stream(new RssFeed(manager, this, url)); - Q_ASSERT(stream); - qDebug() << "Stream URL is " << stream->url(); - Q_ASSERT(!m_children.contains(stream->url())); - m_children[stream->url()] = stream; - stream->refresh(); - return stream; +RssFolderPtr RssFolder::addFolder(const QString &name) +{ + RssFolderPtr subfolder; + if (!m_children.contains(name)) { + subfolder = RssFolderPtr(new RssFolder(this, name)); + m_children[name] = subfolder; + } + else { + subfolder = qSharedPointerDynamicCast(m_children.value(name)); + } + return subfolder; +} + +RssFeedPtr RssFolder::addStream(RssManager *manager, const QString &url) +{ + qDebug() << Q_FUNC_INFO << manager << url; + RssFeedPtr stream(new RssFeed(manager, this, url)); + Q_ASSERT(stream); + qDebug() << "Stream URL is " << stream->url(); + Q_ASSERT(!m_children.contains(stream->url())); + m_children[stream->url()] = stream; + stream->refresh(); + return stream; } // Refresh All Children -bool RssFolder::refresh() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - bool refreshed = false; - for ( ; it != itend; ++it) { - if (it.value()->refresh()) - refreshed = true; - } - return refreshed; +bool RssFolder::refresh() +{ + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + bool refreshed = false; + for ( ; it != itend; ++it) { + if (it.value()->refresh()) + refreshed = true; + } + return refreshed; } -RssArticleList RssFolder::articleListByDateDesc() const { - RssArticleList news; +RssArticleList RssFolder::articleListByDateDesc() const +{ + RssArticleList news; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - int n = news.size(); - news << it.value()->articleListByDateDesc(); - std::inplace_merge(news.begin(), news.begin() + n, news.end(), rssArticleDateRecentThan); - } - return news; + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) { + int n = news.size(); + news << it.value()->articleListByDateDesc(); + std::inplace_merge(news.begin(), news.begin() + n, news.end(), rssArticleDateRecentThan); + } + return news; } -RssArticleList RssFolder::unreadArticleListByDateDesc() const { - RssArticleList unread_news; +RssArticleList RssFolder::unreadArticleListByDateDesc() const +{ + RssArticleList unreadNews; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - int n = unread_news.size(); - unread_news << it.value()->unreadArticleListByDateDesc(); - std::inplace_merge(unread_news.begin(), unread_news.begin() + n, unread_news.end(), rssArticleDateRecentThan); - } - return unread_news; + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) { + int n = unreadNews.size(); + unreadNews << it.value()->unreadArticleListByDateDesc(); + std::inplace_merge(unreadNews.begin(), unreadNews.begin() + n, unreadNews.end(), rssArticleDateRecentThan); + } + return unreadNews; } -RssFileList RssFolder::getContent() const { - return m_children.values(); +RssFileList RssFolder::getContent() const +{ + return m_children.values(); } -unsigned int RssFolder::getNbFeeds() const { - uint nbFeeds = 0; +uint RssFolder::getNbFeeds() const +{ + uint nbFeeds = 0; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) - nbFeeds += folder->getNbFeeds(); - else - ++nbFeeds; // Feed - } - return nbFeeds; + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) { + if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) + nbFeeds += folder->getNbFeeds(); + else + ++nbFeeds; // Feed + } + return nbFeeds; } -QString RssFolder::displayName() const { - return m_name; +QString RssFolder::displayName() const +{ + return m_name; } -void RssFolder::rename(const QString &new_name) { - if (m_name == new_name) return; - Q_ASSERT(!m_parent->hasChild(new_name)); - if (!m_parent->hasChild(new_name)) { +void RssFolder::rename(const QString &newName) +{ + if (m_name == newName) return; + + Q_ASSERT(!m_parent->hasChild(newName)); + if (!m_parent->hasChild(newName)) { + // Update parent + m_parent->renameChildFolder(m_name, newName); + // Actually rename + m_name = newName; + } +} + +void RssFolder::markAsRead() +{ + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) { + it.value()->markAsRead(); + } +} + +RssFeedList RssFolder::getAllFeeds() const +{ + RssFeedList streams; + + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) { + if (RssFeedPtr feed = qSharedPointerDynamicCast(it.value())) + streams << feed; + else if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) + streams << folder->getAllFeeds(); + } + return streams; +} + +QHash RssFolder::getAllFeedsAsHash() const +{ + QHash ret; + + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) { + if (RssFeedPtr feed = qSharedPointerDynamicCast(it.value())) { + qDebug() << Q_FUNC_INFO << feed->url(); + ret[feed->url()] = feed; + } + else if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) { + ret.unite(folder->getAllFeedsAsHash()); + } + } + return ret; +} + +void RssFolder::addFile(const RssFilePtr &item) +{ + if (RssFeedPtr feed = qSharedPointerDynamicCast(item)) { + Q_ASSERT(!m_children.contains(feed->url())); + m_children[feed->url()] = item; + qDebug("Added feed %s to folder ./%s", qPrintable(feed->url()), qPrintable(m_name)); + } + else if (RssFolderPtr folder = qSharedPointerDynamicCast(item)) { + Q_ASSERT(!m_children.contains(folder->displayName())); + m_children[folder->displayName()] = item; + qDebug("Added folder %s to folder ./%s", qPrintable(folder->displayName()), qPrintable(m_name)); + } // Update parent - m_parent->renameChildFolder(m_name, new_name); - // Actually rename - m_name = new_name; - } + item->setParent(this); } -void RssFolder::markAsRead() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - it.value()->markAsRead(); - } +void RssFolder::removeAllItems() +{ + m_children.clear(); } -RssFeedList RssFolder::getAllFeeds() const { - RssFeedList streams; - - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - if (RssFeedPtr feed = qSharedPointerDynamicCast(it.value())) { - streams << feed; - } else if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) { - streams << folder->getAllFeeds(); - } - } - return streams; -} - -QHash RssFolder::getAllFeedsAsHash() const { - QHash ret; - - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - if (RssFeedPtr feed = qSharedPointerDynamicCast(it.value())) { - qDebug() << Q_FUNC_INFO << feed->url(); - ret[feed->url()] = feed; - } else if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) { - ret.unite(folder->getAllFeedsAsHash()); - } - } - return ret; -} - -void RssFolder::addFile(const RssFilePtr& item) { - if (RssFeedPtr feed = qSharedPointerDynamicCast(item)) { - Q_ASSERT(!m_children.contains(feed->url())); - m_children[feed->url()] = item; - qDebug("Added feed %s to folder ./%s", qPrintable(feed->url()), qPrintable(m_name)); - } else if (RssFolderPtr folder = qSharedPointerDynamicCast(item)) { - Q_ASSERT(!m_children.contains(folder->displayName())); - m_children[folder->displayName()] = item; - qDebug("Added folder %s to folder ./%s", qPrintable(folder->displayName()), qPrintable(m_name)); - } - // Update parent - item->setParent(this); -} - -void RssFolder::removeAllItems() { - m_children.clear(); -} - -void RssFolder::removeAllSettings() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - it.value()->removeAllSettings(); - } +void RssFolder::removeAllSettings() +{ + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) + it.value()->removeAllSettings(); } void RssFolder::saveItemsToDisk() { - foreach (const RssFilePtr& child, m_children.values()) { - child->saveItemsToDisk(); - } + foreach (const RssFilePtr &child, m_children.values()) + child->saveItemsToDisk(); } QString RssFolder::id() const { - return m_name; + return m_name; } QString RssFolder::iconPath() const { - return IconProvider::instance()->getIconPath("inode-directory"); + return IconProvider::instance()->getIconPath("inode-directory"); } -bool RssFolder::hasChild(const QString &childId) { - return m_children.contains(childId); -} - -void RssFolder::renameChildFolder(const QString &old_name, const QString &new_name) +bool RssFolder::hasChild(const QString &childId) { - Q_ASSERT(m_children.contains(old_name)); - RssFilePtr folder = m_children.take(old_name); - m_children[new_name] = folder; + return m_children.contains(childId); +} + +void RssFolder::renameChildFolder(const QString &oldName, const QString &newName) +{ + Q_ASSERT(m_children.contains(oldName)); + RssFilePtr folder = m_children.take(oldName); + m_children[newName] = folder; } RssFilePtr RssFolder::takeChild(const QString &childId) { - return m_children.take(childId); + return m_children.take(childId); } void RssFolder::recheckRssItemsForDownload() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); - for ( ; it != itend; ++it) { - it.value()->recheckRssItemsForDownload(); - } + RssFileHash::ConstIterator it = m_children.begin(); + RssFileHash::ConstIterator itend = m_children.end(); + for ( ; it != itend; ++it) + it.value()->recheckRssItemsForDownload(); } diff --git a/src/base/rss/rssfolder.h b/src/base/rss/rssfolder.h index 85e8c7ca0..137ee5e9c 100644 --- a/src/base/rss/rssfolder.h +++ b/src/base/rss/rssfolder.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -45,45 +46,47 @@ typedef QSharedPointer RssFeedPtr; typedef QSharedPointer RssFolderPtr; typedef QList RssFeedList; -class RssFolder: public QObject, public RssFile { - Q_OBJECT +class RssFolder: public QObject, public RssFile +{ + Q_OBJECT public: - RssFolder(RssFolder *parent = 0, const QString &name = QString()); - virtual ~RssFolder(); - virtual RssFolder* parent() const { return m_parent; } - virtual void setParent(RssFolder* parent) { m_parent = parent; } - virtual unsigned int unreadCount() const; - RssFeedPtr addStream(RssManager* manager, const QString &url); - RssFolderPtr addFolder(const QString &name); - unsigned int getNbFeeds() const; - RssFileList getContent() const; - RssFeedList getAllFeeds() const; - QHash getAllFeedsAsHash() const; - virtual QString displayName() const; - virtual QString id() const; - virtual QString iconPath() const; - bool hasChild(const QString &childId); - virtual RssArticleList articleListByDateDesc() const; - virtual RssArticleList unreadArticleListByDateDesc() const; - virtual void removeAllSettings(); - virtual void saveItemsToDisk(); - void removeAllItems(); - void renameChildFolder(const QString &old_name, const QString &new_name); - RssFilePtr takeChild(const QString &childId); - void recheckRssItemsForDownload(); + explicit RssFolder(RssFolder *parent = 0, const QString &name = QString()); + ~RssFolder(); + + RssFolder *parent() const; + void setParent(RssFolder *parent); + uint unreadCount() const; + RssFeedPtr addStream(RssManager *manager, const QString &url); + RssFolderPtr addFolder(const QString &name); + uint getNbFeeds() const; + RssFileList getContent() const; + RssFeedList getAllFeeds() const; + QHash getAllFeedsAsHash() const; + QString displayName() const; + QString id() const; + QString iconPath() const; + bool hasChild(const QString &childId); + RssArticleList articleListByDateDesc() const; + RssArticleList unreadArticleListByDateDesc() const; + void removeAllSettings(); + void saveItemsToDisk(); + void removeAllItems(); + void renameChildFolder(const QString &oldName, const QString &newName); + RssFilePtr takeChild(const QString &childId); + void recheckRssItemsForDownload(); public slots: - virtual bool refresh(); - void addFile(const RssFilePtr& item); - void removeChild(const QString &childId); - virtual void rename(const QString &new_name); - virtual void markAsRead(); + bool refresh(); + void addFile(const RssFilePtr &item); + void removeChild(const QString &childId); + void rename(const QString &newName); + void markAsRead(); private: - RssFolder *m_parent; - QString m_name; - RssFileHash m_children; + RssFolder *m_parent; + QString m_name; + RssFileHash m_children; }; #endif // RSSFOLDER_H diff --git a/src/base/rss/rssmanager.cpp b/src/base/rss/rssmanager.cpp index f00457189..248caabc8 100644 --- a/src/base/rss/rssmanager.cpp +++ b/src/base/rss/rssmanager.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -30,8 +31,8 @@ #include +#include "base/logger.h" #include "base/preferences.h" -#include "base/bittorrent/session.h" #include "rssfeed.h" #include "rssarticle.h" #include "rssdownloadrulelist.h" @@ -40,122 +41,124 @@ static const int MSECS_PER_MIN = 60000; -RssManager::RssManager(): - m_downloadRules(new RssDownloadRuleList), - m_rssParser(new RssParser(this)) +RssManager::RssManager() + : m_downloadRules(new RssDownloadRuleList) + , m_rssParser(new RssParser(this)) { - connect(&m_refreshTimer, SIGNAL(timeout()), SLOT(refresh())); - m_refreshInterval = Preferences::instance()->getRSSRefreshInterval(); - m_refreshTimer.start(m_refreshInterval * MSECS_PER_MIN); + connect(&m_refreshTimer, SIGNAL(timeout()), SLOT(refresh())); + m_refreshInterval = Preferences::instance()->getRSSRefreshInterval(); + m_refreshTimer.start(m_refreshInterval * MSECS_PER_MIN); } RssManager::~RssManager() { - qDebug("Deleting RSSManager..."); - delete m_downloadRules; - delete m_rssParser; - saveItemsToDisk(); - saveStreamList(); - qDebug("RSSManager deleted"); + qDebug("Deleting RSSManager..."); + delete m_downloadRules; + delete m_rssParser; + saveItemsToDisk(); + saveStreamList(); + qDebug("RSSManager deleted"); } -RssParser* RssManager::rssParser() const +RssParser *RssManager::rssParser() const { - return m_rssParser; + return m_rssParser; } void RssManager::updateRefreshInterval(uint val) { - if (m_refreshInterval != val) { - m_refreshInterval = val; - m_refreshTimer.start(m_refreshInterval*60000); - qDebug("New RSS refresh interval is now every %dmin", m_refreshInterval); - } + if (m_refreshInterval != val) { + m_refreshInterval = val; + m_refreshTimer.start(m_refreshInterval*60000); + qDebug("New RSS refresh interval is now every %dmin", m_refreshInterval); + } } void RssManager::loadStreamList() { - const Preferences* const pref = Preferences::instance(); - const QStringList streamsUrl = pref->getRssFeedsUrls(); - const QStringList aliases = pref->getRssFeedsAliases(); - if (streamsUrl.size() != aliases.size()) { - std::cerr << "Corrupted Rss list, not loading it\n"; - return; - } - uint i = 0; - qDebug() << Q_FUNC_INFO << streamsUrl; - foreach (QString s, streamsUrl) { - QStringList path = s.split("\\", QString::SkipEmptyParts); - if (path.empty()) continue; - const QString feed_url = path.takeLast(); - qDebug() << "Feed URL:" << feed_url; - // Create feed path (if it does not exists) - RssFolder* feed_parent = this; - foreach (const QString &folder_name, path) { - qDebug() << "Adding parent folder:" << folder_name; - feed_parent = feed_parent->addFolder(folder_name).data(); + const Preferences *const pref = Preferences::instance(); + const QStringList streamsUrl = pref->getRssFeedsUrls(); + const QStringList aliases = pref->getRssFeedsAliases(); + if (streamsUrl.size() != aliases.size()) { + Logger::instance()->addMessage("Corrupted RSS list, not loading it.", Log::WARNING); + return; } - // Create feed - qDebug() << "Adding feed to parent folder"; - RssFeedPtr stream = feed_parent->addStream(this, feed_url); - const QString& alias = aliases[i]; - if (!alias.isEmpty()) { - stream->rename(alias); + + uint i = 0; + qDebug() << Q_FUNC_INFO << streamsUrl; + foreach (QString s, streamsUrl) { + QStringList path = s.split("\\", QString::SkipEmptyParts); + if (path.empty()) continue; + + const QString feedUrl = path.takeLast(); + qDebug() << "Feed URL:" << feedUrl; + // Create feed path (if it does not exists) + RssFolder *feedParent = this; + foreach (const QString &folderName, path) { + qDebug() << "Adding parent folder:" << folderName; + feedParent = feedParent->addFolder(folderName).data(); + } + // Create feed + qDebug() << "Adding feed to parent folder"; + RssFeedPtr stream = feedParent->addStream(this, feedUrl); + const QString &alias = aliases[i]; + if (!alias.isEmpty()) + stream->rename(alias); + ++i; } - ++i; - } - qDebug("NB RSS streams loaded: %d", streamsUrl.size()); + qDebug("NB RSS streams loaded: %d", streamsUrl.size()); } -void RssManager::forwardFeedContentChanged(const QString& url) +void RssManager::forwardFeedContentChanged(const QString &url) { - emit feedContentChanged(url); + emit feedContentChanged(url); } -void RssManager::forwardFeedInfosChanged(const QString& url, const QString& displayName, uint unreadCount) +void RssManager::forwardFeedInfosChanged(const QString &url, const QString &displayName, uint unreadCount) { - emit feedInfosChanged(url, displayName, unreadCount); + emit feedInfosChanged(url, displayName, unreadCount); } -void RssManager::forwardFeedIconChanged(const QString& url, const QString& iconPath) +void RssManager::forwardFeedIconChanged(const QString &url, const QString &iconPath) { - emit feedIconChanged(url, iconPath); + emit feedIconChanged(url, iconPath); } -void RssManager::moveFile(const RssFilePtr& file, const RssFolderPtr& destinationFolder) +void RssManager::moveFile(const RssFilePtr &file, const RssFolderPtr &destinationFolder) { - RssFolder* src_folder = file->parent(); - if (destinationFolder != src_folder) { - // Remove reference in old folder - src_folder->takeChild(file->id()); - // add to new Folder - destinationFolder->addFile(file); - } else { - qDebug("Nothing to move, same destination folder"); - } + RssFolder *srcFolder = file->parent(); + if (destinationFolder != srcFolder) { + // Remove reference in old folder + srcFolder->takeChild(file->id()); + // add to new Folder + destinationFolder->addFile(file); + } + else { + qDebug("Nothing to move, same destination folder"); + } } void RssManager::saveStreamList() const { - QStringList streamsUrl; - QStringList aliases; - RssFeedList streams = getAllFeeds(); - foreach (const RssFeedPtr& stream, streams) { - // This backslash has nothing to do with path handling - QString stream_path = stream->pathHierarchy().join("\\"); - if (stream_path.isNull()) - stream_path = ""; - qDebug("Saving stream path: %s", qPrintable(stream_path)); - streamsUrl << stream_path; - aliases << stream->displayName(); - } - Preferences* const pref = Preferences::instance(); - pref->setRssFeedsUrls(streamsUrl); - pref->setRssFeedsAliases(aliases); + QStringList streamsUrl; + QStringList aliases; + RssFeedList streams = getAllFeeds(); + foreach (const RssFeedPtr &stream, streams) { + // This backslash has nothing to do with path handling + QString streamPath = stream->pathHierarchy().join("\\"); + if (streamPath.isNull()) + streamPath = ""; + qDebug("Saving stream path: %s", qPrintable(streamPath)); + streamsUrl << streamPath; + aliases << stream->displayName(); + } + Preferences *const pref = Preferences::instance(); + pref->setRssFeedsUrls(streamsUrl); + pref->setRssFeedsAliases(aliases); } -RssDownloadRuleList* RssManager::downloadRules() const +RssDownloadRuleList *RssManager::downloadRules() const { - Q_ASSERT(m_downloadRules); - return m_downloadRules; + Q_ASSERT(m_downloadRules); + return m_downloadRules; } diff --git a/src/base/rss/rssmanager.h b/src/base/rss/rssmanager.h index 4a8252ccb..5fff13a65 100644 --- a/src/base/rss/rssmanager.h +++ b/src/base/rss/rssmanager.h @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2010 Christophe Dumez, Arnaud Demaiziere + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2010 Christophe Dumez + * Copyright (C) 2010 Arnaud Demaiziere * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -38,39 +39,40 @@ class RssDownloadRuleList; class RssParser; - class RssManager; + typedef QSharedPointer RssManagerPtr; -class RssManager: public RssFolder { - Q_OBJECT +class RssManager: public RssFolder +{ + Q_OBJECT public: - RssManager(); - virtual ~RssManager(); + RssManager(); + ~RssManager(); - RssParser* rssParser() const; - RssDownloadRuleList* downloadRules() const; + RssParser *rssParser() const; + RssDownloadRuleList *downloadRules() const; public slots: - void loadStreamList(); - void saveStreamList() const; - void forwardFeedContentChanged(const QString& url); - void forwardFeedInfosChanged(const QString& url, const QString& displayName, uint unreadCount); - void forwardFeedIconChanged(const QString& url, const QString& iconPath); - void moveFile(const RssFilePtr& file, const RssFolderPtr& destinationFolder); - void updateRefreshInterval(uint val); + void loadStreamList(); + void saveStreamList() const; + void forwardFeedContentChanged(const QString &url); + void forwardFeedInfosChanged(const QString &url, const QString &displayName, uint unreadCount); + void forwardFeedIconChanged(const QString &url, const QString &iconPath); + void moveFile(const RssFilePtr &file, const RssFolderPtr &destinationFolder); + void updateRefreshInterval(uint val); signals: - void feedContentChanged(const QString& url); - void feedInfosChanged(const QString& url, const QString& displayName, uint unreadCount); - void feedIconChanged(const QString& url, const QString& iconPath); + void feedContentChanged(const QString &url); + void feedInfosChanged(const QString &url, const QString &displayName, uint unreadCount); + void feedIconChanged(const QString &url, const QString &iconPath); private: - QTimer m_refreshTimer; - uint m_refreshInterval; - RssDownloadRuleList* m_downloadRules; - RssParser* m_rssParser; + QTimer m_refreshTimer; + uint m_refreshInterval; + RssDownloadRuleList *m_downloadRules; + RssParser *m_rssParser; }; #endif // RSSMANAGER_H diff --git a/src/base/rss/rssparser.cpp b/src/base/rss/rssparser.cpp index 5929684e4..5f72d6c6a 100644 --- a/src/base/rss/rssparser.cpp +++ b/src/base/rss/rssparser.cpp @@ -37,475 +37,505 @@ #include "base/utils/fs.h" #include "rssparser.h" -struct ParsingJob { - QString feedUrl; - QString filePath; +struct ParsingJob +{ + QString feedUrl; + QString filePath; }; static const char shortDay[][4] = { - "Mon", "Tue", "Wed", - "Thu", "Fri", "Sat", - "Sun" + "Mon", "Tue", "Wed", + "Thu", "Fri", "Sat", + "Sun" }; + static const char longDay[][10] = { - "Monday", "Tuesday", "Wednesday", - "Thursday", "Friday", "Saturday", - "Sunday" + "Monday", "Tuesday", "Wednesday", + "Thursday", "Friday", "Saturday", + "Sunday" }; + static const char shortMonth[][4] = { - "Jan", "Feb", "Mar", "Apr", - "May", "Jun", "Jul", "Aug", - "Sep", "Oct", "Nov", "Dec" + "Jan", "Feb", "Mar", "Apr", + "May", "Jun", "Jul", "Aug", + "Sep", "Oct", "Nov", "Dec" }; -// Ported to Qt4 from KDElibs4 -QDateTime RssParser::parseDate(const QString &string) { - const QString str = string.trimmed(); - if (str.isEmpty()) - return QDateTime::currentDateTime(); +// Ported to Qt from KDElibs4 +QDateTime RssParser::parseDate(const QString &string) +{ + const QString str = string.trimmed(); + if (str.isEmpty()) + return QDateTime::currentDateTime(); - int nyear = 6; // indexes within string to values - int nmonth = 4; - int nday = 2; - int nwday = 1; - int nhour = 7; - int nmin = 8; - int nsec = 9; - // Also accept obsolete form "Weekday, DD-Mon-YY HH:MM:SS ±hhmm" - QRegExp rx("^(?:([A-Z][a-z]+),\\s*)?(\\d{1,2})(\\s+|-)([^-\\s]+)(\\s+|-)(\\d{2,4})\\s+(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s+(\\S+)$"); - QStringList parts; - if (!str.indexOf(rx)) { - // Check that if date has '-' separators, both separators are '-'. - parts = rx.capturedTexts(); - bool h1 = (parts[3] == QLatin1String("-")); - bool h2 = (parts[5] == QLatin1String("-")); - if (h1 != h2) - return QDateTime::currentDateTime(); - } else { - // Check for the obsolete form "Wdy Mon DD HH:MM:SS YYYY" - rx = QRegExp("^([A-Z][a-z]+)\\s+(\\S+)\\s+(\\d\\d)\\s+(\\d\\d):(\\d\\d):(\\d\\d)\\s+(\\d\\d\\d\\d)$"); - if (str.indexOf(rx)) - return QDateTime::currentDateTime(); - nyear = 7; - nmonth = 2; - nday = 3; - nwday = 1; - nhour = 4; - nmin = 5; - nsec = 6; - parts = rx.capturedTexts(); - } - bool ok[4]; - const int day = parts[nday].toInt(&ok[0]); - int year = parts[nyear].toInt(&ok[1]); - const int hour = parts[nhour].toInt(&ok[2]); - const int minute = parts[nmin].toInt(&ok[3]); - if (!ok[0] || !ok[1] || !ok[2] || !ok[3]) - return QDateTime::currentDateTime(); - int second = 0; - if (!parts[nsec].isEmpty()) { - second = parts[nsec].toInt(&ok[0]); - if (!ok[0]) - return QDateTime::currentDateTime(); - } - bool leapSecond = (second == 60); - if (leapSecond) - second = 59; // apparently a leap second - validate below, once time zone is known - int month = 0; - for ( ; month < 12 && parts[nmonth] != shortMonth[month]; ++month) ; - int dayOfWeek = -1; - if (!parts[nwday].isEmpty()) { - // Look up the weekday name - while (++dayOfWeek < 7 && shortDay[dayOfWeek] != parts[nwday]) ; - if (dayOfWeek >= 7) - for (dayOfWeek = 0; dayOfWeek < 7 && longDay[dayOfWeek] != parts[nwday]; ++dayOfWeek) ; - } - // if (month >= 12 || dayOfWeek >= 7 - // || (dayOfWeek < 0 && format == RFCDateDay)) - // return QDateTime; - int i = parts[nyear].size(); - if (i < 4) { - // It's an obsolete year specification with less than 4 digits - year += (i == 2 && year < 50) ? 2000: 1900; - } - - // Parse the UTC offset part - int offset = 0; // set default to '-0000' - bool negOffset = false; - if (parts.count() > 10) { - rx = QRegExp("^([+-])(\\d\\d)(\\d\\d)$"); - if (!parts[10].indexOf(rx)) { - // It's a UTC offset ±hhmm - parts = rx.capturedTexts(); - offset = parts[2].toInt(&ok[0]) * 3600; - int offsetMin = parts[3].toInt(&ok[1]); - if (!ok[0] || !ok[1] || offsetMin > 59) - return QDateTime(); - offset += offsetMin * 60; - negOffset = (parts[1] == QLatin1String("-")); - if (negOffset) - offset = -offset; - } else { - // Check for an obsolete time zone name - QByteArray zone = parts[10].toLatin1(); - if (zone.length() == 1 && isalpha(zone[0]) && toupper(zone[0]) != 'J') - negOffset = true; // military zone: RFC 2822 treats as '-0000' - else if (zone != "UT" && zone != "GMT") { // treated as '+0000' - offset = (zone == "EDT") ? -4*3600 - : (zone == "EST" || zone == "CDT") ? -5*3600 - : (zone == "CST" || zone == "MDT") ? -6*3600 - : (zone == "MST" || zone == "PDT") ? -7*3600 - : (zone == "PST") ? -8*3600 - : 0; - if (!offset) { - // Check for any other alphabetic time zone - bool nonalpha = false; - for (int i = 0, end = zone.size(); i < end && !nonalpha; ++i) - nonalpha = !isalpha(zone[i]); - if (nonalpha) - return QDateTime(); - // TODO: Attempt to recognize the time zone abbreviation? - negOffset = true; // unknown time zone: RFC 2822 treats as '-0000' - } - } + int nyear = 6; // indexes within string to values + int nmonth = 4; + int nday = 2; + int nwday = 1; + int nhour = 7; + int nmin = 8; + int nsec = 9; + // Also accept obsolete form "Weekday, DD-Mon-YY HH:MM:SS ±hhmm" + QRegExp rx("^(?:([A-Z][a-z]+),\\s*)?(\\d{1,2})(\\s+|-)([^-\\s]+)(\\s+|-)(\\d{2,4})\\s+(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s+(\\S+)$"); + QStringList parts; + if (!str.indexOf(rx)) { + // Check that if date has '-' separators, both separators are '-'. + parts = rx.capturedTexts(); + bool h1 = (parts[3] == QLatin1String("-")); + bool h2 = (parts[5] == QLatin1String("-")); + if (h1 != h2) + return QDateTime::currentDateTime(); + } + else { + // Check for the obsolete form "Wdy Mon DD HH:MM:SS YYYY" + rx = QRegExp("^([A-Z][a-z]+)\\s+(\\S+)\\s+(\\d\\d)\\s+(\\d\\d):(\\d\\d):(\\d\\d)\\s+(\\d\\d\\d\\d)$"); + if (str.indexOf(rx)) + return QDateTime::currentDateTime(); + nyear = 7; + nmonth = 2; + nday = 3; + nwday = 1; + nhour = 4; + nmin = 5; + nsec = 6; + parts = rx.capturedTexts(); } - } - QDate qdate(year, month+1, day); // convert date, and check for out-of-range - if (!qdate.isValid()) - return QDateTime::currentDateTime(); - QTime qTime(hour, minute, second); - QDateTime result(qdate, qTime, Qt::UTC); - if (offset) - result = result.addSecs(-offset); - if (!result.isValid()) - return QDateTime::currentDateTime(); // invalid date/time + bool ok[4]; + const int day = parts[nday].toInt(&ok[0]); + int year = parts[nyear].toInt(&ok[1]); + const int hour = parts[nhour].toInt(&ok[2]); + const int minute = parts[nmin].toInt(&ok[3]); + if (!ok[0] || !ok[1] || !ok[2] || !ok[3]) + return QDateTime::currentDateTime(); - if (leapSecond) { - // Validate a leap second time. Leap seconds are inserted after 23:59:59 UTC. - // Convert the time to UTC and check that it is 00:00:00. - if ((hour*3600 + minute*60 + 60 - offset + 86400*5) % 86400) // (max abs(offset) is 100 hours) - return QDateTime::currentDateTime(); // the time isn't the last second of the day - } - return result; + int second = 0; + if (!parts[nsec].isEmpty()) { + second = parts[nsec].toInt(&ok[0]); + if (!ok[0]) + return QDateTime::currentDateTime(); + } + + bool leapSecond = (second == 60); + if (leapSecond) + second = 59; // apparently a leap second - validate below, once time zone is known + int month = 0; + for ( ; (month < 12) && (parts[nmonth] != shortMonth[month]); ++month); + int dayOfWeek = -1; + if (!parts[nwday].isEmpty()) { + // Look up the weekday name + while (++dayOfWeek < 7 && (shortDay[dayOfWeek] != parts[nwday])); + if (dayOfWeek >= 7) + for (dayOfWeek = 0; dayOfWeek < 7 && (longDay[dayOfWeek] != parts[nwday]); ++dayOfWeek); + } + + // if (month >= 12 || dayOfWeek >= 7 + // || (dayOfWeek < 0 && format == RFCDateDay)) + // return QDateTime; + int i = parts[nyear].size(); + if (i < 4) { + // It's an obsolete year specification with less than 4 digits + year += (i == 2 && year < 50) ? 2000 : 1900; + } + + // Parse the UTC offset part + int offset = 0; // set default to '-0000' + bool negOffset = false; + if (parts.count() > 10) { + rx = QRegExp("^([+-])(\\d\\d)(\\d\\d)$"); + if (!parts[10].indexOf(rx)) { + // It's a UTC offset ±hhmm + parts = rx.capturedTexts(); + offset = parts[2].toInt(&ok[0]) * 3600; + int offsetMin = parts[3].toInt(&ok[1]); + if (!ok[0] || !ok[1] || offsetMin > 59) + return QDateTime(); + offset += offsetMin * 60; + negOffset = (parts[1] == QLatin1String("-")); + if (negOffset) + offset = -offset; + } + else { + // Check for an obsolete time zone name + QByteArray zone = parts[10].toLatin1(); + if (zone.length() == 1 && isalpha(zone[0]) && toupper(zone[0]) != 'J') { + negOffset = true; // military zone: RFC 2822 treats as '-0000' + } + else if (zone != "UT" && zone != "GMT") { // treated as '+0000' + offset = (zone == "EDT") + ? -4 * 3600 + : ((zone == "EST") || (zone == "CDT")) + ? -5 * 3600 + : ((zone == "CST") || (zone == "MDT")) + ? -6 * 3600 + : (zone == "MST" || zone == "PDT") + ? -7 * 3600 + : (zone == "PST") + ? -8 * 3600 + : 0; + if (!offset) { + // Check for any other alphabetic time zone + bool nonalpha = false; + for (int i = 0, end = zone.size(); (i < end) && !nonalpha; ++i) + nonalpha = !isalpha(zone[i]); + if (nonalpha) + return QDateTime(); + // TODO: Attempt to recognize the time zone abbreviation? + negOffset = true; // unknown time zone: RFC 2822 treats as '-0000' + } + } + } + } + + QDate qdate(year, month + 1, day); // convert date, and check for out-of-range + if (!qdate.isValid()) + return QDateTime::currentDateTime(); + + QTime qTime(hour, minute, second); + QDateTime result(qdate, qTime, Qt::UTC); + if (offset) + result = result.addSecs(-offset); + if (!result.isValid()) + return QDateTime::currentDateTime(); // invalid date/time + + if (leapSecond) { + // Validate a leap second time. Leap seconds are inserted after 23:59:59 UTC. + // Convert the time to UTC and check that it is 00:00:00. + if ((hour*3600 + minute*60 + 60 - offset + 86400*5) % 86400) // (max abs(offset) is 100 hours) + return QDateTime::currentDateTime(); // the time isn't the last second of the day + } + + return result; } -RssParser::RssParser(QObject *parent) : - QThread(parent), m_running(true) +RssParser::RssParser(QObject *parent) + : QThread(parent) + , m_running(true) { - start(); + start(); } RssParser::~RssParser() { - m_running = false; - m_waitCondition.wakeOne(); - wait(); + m_running = false; + m_waitCondition.wakeOne(); + wait(); } -void RssParser::parseRssFile(const QString& feedUrl, const QString& filePath) +void RssParser::parseRssFile(const QString &feedUrl, const QString &filePath) { - qDebug() << Q_FUNC_INFO << feedUrl << filePath; - m_mutex.lock(); - ParsingJob job = { feedUrl, Utils::Fs::fromNativePath(filePath) }; - m_queue.enqueue(job); - // Wake up thread. - if (m_queue.count() == 1) { - qDebug() << Q_FUNC_INFO << "Waking up thread"; - m_waitCondition.wakeOne(); - } - m_mutex.unlock(); + qDebug() << Q_FUNC_INFO << feedUrl << filePath; + m_mutex.lock(); + ParsingJob job = { feedUrl, Utils::Fs::fromNativePath(filePath) }; + m_queue.enqueue(job); + // Wake up thread. + if (m_queue.count() == 1) { + qDebug() << Q_FUNC_INFO << "Waking up thread"; + m_waitCondition.wakeOne(); + } + m_mutex.unlock(); } void RssParser::clearFeedData(const QString &feedUrl) { - m_mutex.lock(); - m_lastBuildDates.remove(feedUrl); - m_mutex.unlock(); + m_mutex.lock(); + m_lastBuildDates.remove(feedUrl); + m_mutex.unlock(); } void RssParser::run() { - while (m_running) { - m_mutex.lock(); - if (!m_queue.empty()) { - ParsingJob job = m_queue.dequeue(); - m_mutex.unlock(); - parseFeed(job); - } else { - qDebug() << Q_FUNC_INFO << "Thread is waiting."; - m_waitCondition.wait(&m_mutex); - qDebug() << Q_FUNC_INFO << "Thread woke up."; - m_mutex.unlock(); - } - } -} - -void RssParser::parseRssArticle(QXmlStreamReader& xml, const QString& feedUrl) -{ - QVariantHash article; - - while(!xml.atEnd()) { - xml.readNext(); - - if(xml.isEndElement() && xml.name() == "item") - break; - - if (xml.isStartElement()) { - if (xml.name() == "title") - article["title"] = xml.readElementText().trimmed(); - else if (xml.name() == "enclosure") { - if (xml.attributes().value("type") == "application/x-bittorrent") - article["torrent_url"] = xml.attributes().value("url").toString(); - } - else if (xml.name() == "link") { - QString link = xml.readElementText().trimmed(); - if (link.startsWith("magnet:", Qt::CaseInsensitive)) - article["torrent_url"] = link; // magnet link instead of a news URL - else - article["news_link"] = link; - } - else if (xml.name() == "description") - article["description"] = xml.readElementText().trimmed(); - else if (xml.name() == "pubDate") - article["date"] = parseDate(xml.readElementText().trimmed()); - else if (xml.name() == "author") - article["author"] = xml.readElementText().trimmed(); - else if (xml.name() == "guid") - article["id"] = xml.readElementText().trimmed(); - } - } - - if (!article.contains("torrent_url") && article.contains("news_link")) - article["torrent_url"] = article["news_link"]; - - if (!article.contains("id")) { - // Item does not have a guid, fall back to some other identifier - const QString link = article.value("news_link").toString(); - if (!link.isEmpty()) - article["id"] = link; - else { - const QString title = article.value("title").toString(); - if (!title.isEmpty()) - article["id"] = title; - else { - qWarning() << "Item has no guid, link or title, ignoring it..."; - return; - } - } - } - - emit newArticle(feedUrl, article); -} - -void RssParser::parseRSSChannel(QXmlStreamReader& xml, const QString& feedUrl) -{ - qDebug() << Q_FUNC_INFO << feedUrl; - Q_ASSERT(xml.isStartElement() && xml.name() == "channel"); - - while(!xml.atEnd()) { - xml.readNext(); - - if (xml.isStartElement()) { - if (xml.name() == "title") { - QString title = xml.readElementText(); - emit feedTitle(feedUrl, title); - } - else if (xml.name() == "lastBuildDate") { - QString lastBuildDate = xml.readElementText(); - if (!lastBuildDate.isEmpty()) { - QMutexLocker locker(&m_mutex); - if (m_lastBuildDates.value(feedUrl, "") == lastBuildDate) { - qDebug() << "The RSS feed has not changed since last time, aborting parsing."; - return; - } - m_lastBuildDates[feedUrl] = lastBuildDate; + while (m_running) { + m_mutex.lock(); + if (!m_queue.empty()) { + ParsingJob job = m_queue.dequeue(); + m_mutex.unlock(); + parseFeed(job); + } + else { + qDebug() << Q_FUNC_INFO << "Thread is waiting."; + m_waitCondition.wait(&m_mutex); + qDebug() << Q_FUNC_INFO << "Thread woke up."; + m_mutex.unlock(); } - } - else if (xml.name() == "item") { - parseRssArticle(xml, feedUrl); - } } - } } -void RssParser::parseAtomArticle(QXmlStreamReader& xml, const QString& feedUrl, const QString& baseUrl) +void RssParser::parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl) { - QVariantHash article; - bool double_content = false; + QVariantHash article; - while(!xml.atEnd()) { - xml.readNext(); - - if(xml.isEndElement() && xml.name() == "entry") - break; - - if (xml.isStartElement()) { - if (xml.name() == "title") { - article["title"] = xml.readElementText().trimmed(); - } - else if (xml.name() == "link") { - QString link = ( xml.attributes().isEmpty() ? - xml.readElementText().trimmed() : - xml.attributes().value("href").toString() ); - - if (link.startsWith("magnet:", Qt::CaseInsensitive)) - article["torrent_url"] = link; // magnet link instead of a news URL - else - // Atom feeds can have relative links, work around this and - // take the stress of figuring article full URI from UI - // Assemble full URI - article["news_link"] = ( baseUrl.isEmpty() ? link : baseUrl + link ); - - } - else if (xml.name() == "summary" || xml.name() == "content"){ - if(double_content) { // Duplicate content -> ignore - xml.readNext(); - - while(xml.name() != "summary" && xml.name() != "content") - xml.readNext(); - - continue; - } - - // Try to also parse broken articles, which don't use html '&' escapes - // Actually works great for non-broken content too - QString feedText = xml.readElementText(QXmlStreamReader::IncludeChildElements); - if (!feedText.isEmpty()) - article["description"] = feedText.trimmed(); - - double_content = true; - } - else if (xml.name() == "updated"){ - // ATOM uses standard compliant date, don't do fancy stuff - QDateTime articleDate = QDateTime::fromString(xml.readElementText().trimmed(), Qt::ISODate); - article["date"] = ( articleDate.isValid() ? - articleDate : - QDateTime::currentDateTime() ); - } - else if (xml.name() == "author") { + while(!xml.atEnd()) { xml.readNext(); - while(xml.name() != "author") { - if(xml.name() == "name") - article["author"] = xml.readElementText().trimmed(); - xml.readNext(); + + if(xml.isEndElement() && xml.name() == "item") + break; + + if (xml.isStartElement()) { + if (xml.name() == "title") { + article["title"] = xml.readElementText().trimmed(); + } + else if (xml.name() == "enclosure") { + if (xml.attributes().value("type") == "application/x-bittorrent") + article["torrent_url"] = xml.attributes().value("url").toString(); + } + else if (xml.name() == "link") { + QString link = xml.readElementText().trimmed(); + if (link.startsWith("magnet:", Qt::CaseInsensitive)) + article["torrent_url"] = link; // magnet link instead of a news URL + else + article["news_link"] = link; + } + else if (xml.name() == "description") { + article["description"] = xml.readElementText().trimmed(); + } + else if (xml.name() == "pubDate") { + article["date"] = parseDate(xml.readElementText().trimmed()); + } + else if (xml.name() == "author") { + article["author"] = xml.readElementText().trimmed(); + } + else if (xml.name() == "guid") { + article["id"] = xml.readElementText().trimmed(); + } } - } - else if (xml.name() == "id") - article["id"] = xml.readElementText().trimmed(); } - } - if (!article.contains("torrent_url") && article.contains("news_link")) - article["torrent_url"] = article["news_link"]; + if (!article.contains("torrent_url") && article.contains("news_link")) + article["torrent_url"] = article["news_link"]; - if (!article.contains("id")) { - // Item does not have a guid, fall back to some other identifier - const QString link = article.value("news_link").toString(); - if (!link.isEmpty()) - article["id"] = link; - else { - const QString title = article.value("title").toString(); - if (!title.isEmpty()) - article["id"] = title; - else { - qWarning() << "Item has no guid, link or title, ignoring it..."; - return; - } + if (!article.contains("id")) { + // Item does not have a guid, fall back to some other identifier + const QString link = article.value("news_link").toString(); + if (!link.isEmpty()) { + article["id"] = link; + } + else { + const QString title = article.value("title").toString(); + if (!title.isEmpty()) { + article["id"] = title; + } + else { + qWarning() << "Item has no guid, link or title, ignoring it..."; + return; + } + } } - } - emit newArticle(feedUrl, article); + emit newArticle(feedUrl, article); } -void RssParser::parseAtomChannel(QXmlStreamReader& xml, const QString& feedUrl) +void RssParser::parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl) { - qDebug() << Q_FUNC_INFO << feedUrl; - Q_ASSERT(xml.isStartElement() && xml.name() == "feed"); + qDebug() << Q_FUNC_INFO << feedUrl; + Q_ASSERT(xml.isStartElement() && xml.name() == "channel"); - QString baseURL = xml.attributes().value("xml:base").toString(); + while(!xml.atEnd()) { + xml.readNext(); - while(!xml.atEnd()) { - xml.readNext(); - - if (xml.isStartElement()) { - if (xml.name() == "title") { - QString title = xml.readElementText(); - emit feedTitle(feedUrl, title); - } - else if (xml.name() == "updated") { - QString lastBuildDate = xml.readElementText(); - if (!lastBuildDate.isEmpty()) { - QMutexLocker locker(&m_mutex); - if (m_lastBuildDates.value(feedUrl) == lastBuildDate) { - qDebug() << "The RSS feed has not changed since last time, aborting parsing."; - return; - } - m_lastBuildDates[feedUrl] = lastBuildDate; + if (xml.isStartElement()) { + if (xml.name() == "title") { + QString title = xml.readElementText(); + emit feedTitle(feedUrl, title); + } + else if (xml.name() == "lastBuildDate") { + QString lastBuildDate = xml.readElementText(); + if (!lastBuildDate.isEmpty()) { + QMutexLocker locker(&m_mutex); + if (m_lastBuildDates.value(feedUrl, "") == lastBuildDate) { + qDebug() << "The RSS feed has not changed since last time, aborting parsing."; + return; + } + m_lastBuildDates[feedUrl] = lastBuildDate; + } + } + else if (xml.name() == "item") { + parseRssArticle(xml, feedUrl); + } + } + } +} + +void RssParser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl) +{ + QVariantHash article; + bool doubleContent = false; + + while(!xml.atEnd()) { + xml.readNext(); + + if(xml.isEndElement() && (xml.name() == "entry")) + break; + + if (xml.isStartElement()) { + if (xml.name() == "title") { + article["title"] = xml.readElementText().trimmed(); + } + else if (xml.name() == "link") { + QString link = ( xml.attributes().isEmpty() ? + xml.readElementText().trimmed() : + xml.attributes().value("href").toString() ); + + if (link.startsWith("magnet:", Qt::CaseInsensitive)) + article["torrent_url"] = link; // magnet link instead of a news URL + else + // Atom feeds can have relative links, work around this and + // take the stress of figuring article full URI from UI + // Assemble full URI + article["news_link"] = ( baseUrl.isEmpty() ? link : baseUrl + link ); + + } + else if ((xml.name() == "summary") || (xml.name() == "content")){ + if (doubleContent) { // Duplicate content -> ignore + xml.readNext(); + + while ((xml.name() != "summary") && (xml.name() != "content")) + xml.readNext(); + + continue; + } + + // Try to also parse broken articles, which don't use html '&' escapes + // Actually works great for non-broken content too + QString feedText = xml.readElementText(QXmlStreamReader::IncludeChildElements); + if (!feedText.isEmpty()) + article["description"] = feedText.trimmed(); + + doubleContent = true; + } + else if (xml.name() == "updated") { + // ATOM uses standard compliant date, don't do fancy stuff + QDateTime articleDate = QDateTime::fromString(xml.readElementText().trimmed(), Qt::ISODate); + article["date"] = (articleDate.isValid() ? articleDate : QDateTime::currentDateTime()); + } + else if (xml.name() == "author") { + xml.readNext(); + while(xml.name() != "author") { + if(xml.name() == "name") + article["author"] = xml.readElementText().trimmed(); + xml.readNext(); + } + } + else if (xml.name() == "id") { + article["id"] = xml.readElementText().trimmed(); + } + } + } + + if (!article.contains("torrent_url") && article.contains("news_link")) + article["torrent_url"] = article["news_link"]; + + if (!article.contains("id")) { + // Item does not have a guid, fall back to some other identifier + const QString link = article.value("news_link").toString(); + if (!link.isEmpty()) { + article["id"] = link; + } + else { + const QString title = article.value("title").toString(); + if (!title.isEmpty()) { + article["id"] = title; + } + else { + qWarning() << "Item has no guid, link or title, ignoring it..."; + return; + } + } + } + + emit newArticle(feedUrl, article); +} + +void RssParser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) +{ + qDebug() << Q_FUNC_INFO << feedUrl; + Q_ASSERT(xml.isStartElement() && xml.name() == "feed"); + + QString baseURL = xml.attributes().value("xml:base").toString(); + + while (!xml.atEnd()) { + xml.readNext(); + + if (xml.isStartElement()) { + if (xml.name() == "title") { + QString title = xml.readElementText(); + emit feedTitle(feedUrl, title); + } + else if (xml.name() == "updated") { + QString lastBuildDate = xml.readElementText(); + if (!lastBuildDate.isEmpty()) { + QMutexLocker locker(&m_mutex); + if (m_lastBuildDates.value(feedUrl) == lastBuildDate) { + qDebug() << "The RSS feed has not changed since last time, aborting parsing."; + return; + } + m_lastBuildDates[feedUrl] = lastBuildDate; + } + } + else if (xml.name() == "entry") { + parseAtomArticle(xml, feedUrl, baseURL); + } } - } - else if (xml.name() == "entry") { - parseAtomArticle(xml, feedUrl, baseURL); - } } - } } // read and create items from a rss document -void RssParser::parseFeed(const ParsingJob& job) +void RssParser::parseFeed(const ParsingJob &job) { - qDebug() << Q_FUNC_INFO << job.feedUrl << job.filePath; - QFile fileRss(job.filePath); - if (!fileRss.open(QIODevice::ReadOnly | QIODevice::Text)) { - reportFailure(job, tr("Failed to open downloaded RSS file.")); - return; - } - QXmlStreamReader xml(&fileRss); + qDebug() << Q_FUNC_INFO << job.feedUrl << job.filePath; + QFile fileRss(job.filePath); + if (!fileRss.open(QIODevice::ReadOnly | QIODevice::Text)) { + reportFailure(job, tr("Failed to open downloaded RSS file.")); + return; + } - bool found_channel = false; - while (xml.readNextStartElement()) { - if (xml.name() == "rss") { - // Find channels - while (xml.readNextStartElement()) { - if (xml.name() == "channel") { - parseRSSChannel(xml, job.feedUrl); - found_channel = true; - break; - } else { - qDebug() << "Skip rss item: " << xml.name(); - xml.skipCurrentElement(); + QXmlStreamReader xml(&fileRss); + bool foundChannel = false; + while (xml.readNextStartElement()) { + if (xml.name() == "rss") { + // Find channels + while (xml.readNextStartElement()) { + if (xml.name() == "channel") { + parseRSSChannel(xml, job.feedUrl); + foundChannel = true; + break; + } + else { + qDebug() << "Skip rss item: " << xml.name(); + xml.skipCurrentElement(); + } + } + break; + } + else if (xml.name() == "feed") { // Atom feed + parseAtomChannel(xml, job.feedUrl); + foundChannel = true; + break; + } + else { + qDebug() << "Skip root item: " << xml.name(); + xml.skipCurrentElement(); } - } - break; } - else if (xml.name() == "feed") { // Atom feed - parseAtomChannel(xml, job.feedUrl); - found_channel = true; - break; - } else { - qDebug() << "Skip root item: " << xml.name(); - xml.skipCurrentElement(); + + if (xml.hasError()) { + reportFailure(job, xml.errorString()); + return; } - } - if (xml.hasError()) { - reportFailure(job, xml.errorString()); - return; - } + if (!foundChannel) { + reportFailure(job, tr("Invalid RSS feed at '%1'.").arg(job.feedUrl)); + return; + } - if (!found_channel) { - reportFailure(job, tr("Invalid RSS feed at '%1'.").arg(job.feedUrl)); - return; - } - - // Clean up - fileRss.close(); - emit feedParsingFinished(job.feedUrl, QString()); - Utils::Fs::forceRemove(job.filePath); + // Clean up + fileRss.close(); + emit feedParsingFinished(job.feedUrl, QString()); + Utils::Fs::forceRemove(job.filePath); } -void RssParser::reportFailure(const ParsingJob& job, const QString& error) +void RssParser::reportFailure(const ParsingJob &job, const QString &error) { - emit feedParsingFinished(job.feedUrl, error); - Utils::Fs::forceRemove(job.filePath); + emit feedParsingFinished(job.feedUrl, error); + Utils::Fs::forceRemove(job.filePath); } diff --git a/src/base/rss/rssparser.h b/src/base/rss/rssparser.h index 23608127b..42b52d9bb 100644 --- a/src/base/rss/rssparser.h +++ b/src/base/rss/rssparser.h @@ -1,5 +1,5 @@ /* - * Bittorrent Client using Qt4 and libtorrent. + * Bittorrent Client using Qt and libtorrent. * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or @@ -40,39 +40,40 @@ struct ParsingJob; -class RssParser : public QThread +class RssParser: public QThread { - Q_OBJECT + Q_OBJECT public: - explicit RssParser(QObject *parent = 0); - virtual ~RssParser(); + explicit RssParser(QObject *parent = 0); + virtual ~RssParser(); signals: - void newArticle(const QString& feedUrl, const QVariantHash& rssArticle); - void feedTitle(const QString& feedUrl, const QString& title); - void feedParsingFinished(const QString& feedUrl, const QString& error); + void newArticle(const QString &feedUrl, const QVariantHash &rssArticle); + void feedTitle(const QString &feedUrl, const QString &title); + void feedParsingFinished(const QString &feedUrl, const QString &error); public slots: - void parseRssFile(const QString& feedUrl, const QString& filePath); - void clearFeedData(const QString& feedUrl); + void parseRssFile(const QString &feedUrl, const QString &filePath); + void clearFeedData(const QString &feedUrl); protected: - virtual void run(); - static QDateTime parseDate(const QString& string); - void parseRssArticle(QXmlStreamReader& xml, const QString& feedUrl); - void parseRSSChannel(QXmlStreamReader& xml, const QString& feedUrl); - void parseAtomArticle(QXmlStreamReader& xml, const QString& feedUrl, const QString& baseUrl); - void parseAtomChannel(QXmlStreamReader& xml, const QString& feedUrl); - void parseFeed(const ParsingJob& job); - void reportFailure(const ParsingJob& job, const QString& error); + virtual void run(); private: - bool m_running; - QMutex m_mutex; - QQueue m_queue; - QWaitCondition m_waitCondition; - QHash m_lastBuildDates; // Optimization + static QDateTime parseDate(const QString &string); + void parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl); + void parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl); + void parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl); + void parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl); + void parseFeed(const ParsingJob &job); + void reportFailure(const ParsingJob &job, const QString &error); + + bool m_running; + QMutex m_mutex; + QQueue m_queue; + QWaitCondition m_waitCondition; + QHash m_lastBuildDates; // Optimization }; #endif // RSSPARSER_H diff --git a/src/gui/rss/feedlistwidget.cpp b/src/gui/rss/feedlistwidget.cpp index 9c30274f0..4bf2b2129 100644 --- a/src/gui/rss/feedlistwidget.cpp +++ b/src/gui/rss/feedlistwidget.cpp @@ -28,8 +28,8 @@ * Contact: chris@qbittorrent.org, arnaud@qbittorrent.org */ -#include "core/rss/rssmanager.h" -#include "core/rss/rssfeed.h" +#include "base/rss/rssmanager.h" +#include "base/rss/rssfeed.h" #include "guiiconprovider.h" #include "feedlistwidget.h" From 6f7ae728eb60d12e654b3ce32703460b3283ba63 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Thu, 15 Oct 2015 19:33:27 +0300 Subject: [PATCH 069/238] Move base RSS names to Rss namespace. --- src/base/rss/rssarticle.cpp | 36 ++++--- src/base/rss/rssarticle.h | 85 +++++++-------- src/base/rss/rssdownloadrule.cpp | 70 +++++++------ src/base/rss/rssdownloadrule.h | 123 +++++++++++----------- src/base/rss/rssdownloadrulelist.cpp | 44 ++++---- src/base/rss/rssdownloadrulelist.h | 51 ++++----- src/base/rss/rssfeed.cpp | 115 +++++++++++---------- src/base/rss/rssfeed.h | 137 ++++++++++++------------ src/base/rss/rssfile.cpp | 6 +- src/base/rss/rssfile.h | 69 +++++++------ src/base/rss/rssfolder.cpp | 138 +++++++++++++------------ src/base/rss/rssfolder.h | 95 ++++++++--------- src/base/rss/rssmanager.cpp | 38 +++---- src/base/rss/rssmanager.h | 65 ++++++------ src/base/rss/rssparser.cpp | 61 ++++++----- src/base/rss/rssparser.h | 63 +++++------ src/gui/rss/automatedrssdownloader.cpp | 30 +++--- src/gui/rss/automatedrssdownloader.h | 19 ++-- src/gui/rss/feedlistwidget.cpp | 36 +++---- src/gui/rss/feedlistwidget.h | 12 +-- src/gui/rss/rss_imp.cpp | 66 ++++++------ src/gui/rss/rss_imp.h | 8 +- 22 files changed, 708 insertions(+), 659 deletions(-) diff --git a/src/base/rss/rssarticle.cpp b/src/base/rss/rssarticle.cpp index 585da24c7..582575b64 100644 --- a/src/base/rss/rssarticle.cpp +++ b/src/base/rss/rssarticle.cpp @@ -36,20 +36,22 @@ #include "rssfeed.h" #include "rssarticle.h" +using namespace Rss; + // public constructor -RssArticle::RssArticle(RssFeed *parent, const QString &guid) +Article::Article(Feed *parent, const QString &guid) : m_parent(parent) , m_guid(guid) , m_read(false) { } -bool RssArticle::hasAttachment() const +bool Article::hasAttachment() const { return !m_torrentUrl.isEmpty(); } -QVariantHash RssArticle::toHash() const +QVariantHash Article::toHash() const { QVariantHash item; item["title"] = m_title; @@ -63,13 +65,13 @@ QVariantHash RssArticle::toHash() const return item; } -RssArticlePtr RssArticle::fromHash(RssFeed *parent, const QVariantHash &h) +ArticlePtr Article::fromHash(Feed *parent, const QVariantHash &h) { const QString guid = h.value("id").toString(); if (guid.isEmpty()) - return RssArticlePtr(); + return ArticlePtr(); - RssArticlePtr art(new RssArticle(parent, guid)); + ArticlePtr art(new Article(parent, guid)); art->m_title = h.value("title", "").toString(); art->m_torrentUrl = h.value("torrent_url", "").toString(); art->m_link = h.value("news_link", "").toString(); @@ -81,42 +83,42 @@ RssArticlePtr RssArticle::fromHash(RssFeed *parent, const QVariantHash &h) return art; } -RssFeed *RssArticle::parent() const +Feed *Article::parent() const { return m_parent; } -const QString &RssArticle::author() const +const QString &Article::author() const { return m_author; } -const QString &RssArticle::torrentUrl() const +const QString &Article::torrentUrl() const { return m_torrentUrl; } -const QString &RssArticle::link() const +const QString &Article::link() const { return m_link; } -QString RssArticle::description() const +QString Article::description() const { return m_description.isNull() ? "" : m_description; } -const QDateTime &RssArticle::date() const +const QDateTime &Article::date() const { return m_date; } -bool RssArticle::isRead() const +bool Article::isRead() const { return m_read; } -void RssArticle::markAsRead() +void Article::markAsRead() { if (m_read) return; @@ -126,17 +128,17 @@ void RssArticle::markAsRead() emit articleWasRead(); } -const QString &RssArticle::guid() const +const QString &Article::guid() const { return m_guid; } -const QString &RssArticle::title() const +const QString &Article::title() const { return m_title; } -void RssArticle::handleTorrentDownloadSuccess(const QString &url) +void Article::handleTorrentDownloadSuccess(const QString &url) { if (url == m_torrentUrl) markAsRead(); diff --git a/src/base/rss/rssarticle.h b/src/base/rss/rssarticle.h index 72bdac20c..88f8b4202 100644 --- a/src/base/rss/rssarticle.h +++ b/src/base/rss/rssarticle.h @@ -37,53 +37,56 @@ #include #include -class RssFeed; -class RssArticle; - -typedef QSharedPointer RssArticlePtr; - -// Item of a rss stream, single information -class RssArticle: public QObject +namespace Rss { - Q_OBJECT + class Feed; + class Article; -public: - RssArticle(RssFeed *parent, const QString &guid); + typedef QSharedPointer
ArticlePtr; - // Accessors - bool hasAttachment() const; - const QString &guid() const; - RssFeed *parent() const; - const QString &title() const; - const QString &author() const; - const QString &torrentUrl() const; - const QString &link() const; - QString description() const; - const QDateTime &date() const; - bool isRead() const; - // Setters - void markAsRead(); + // Item of a rss stream, single information + class Article: public QObject + { + Q_OBJECT - // Serialization - QVariantHash toHash() const; - static RssArticlePtr fromHash(RssFeed *parent, const QVariantHash &hash); + public: + Article(Feed *parent, const QString &guid); -signals: - void articleWasRead(); + // Accessors + bool hasAttachment() const; + const QString &guid() const; + Feed *parent() const; + const QString &title() const; + const QString &author() const; + const QString &torrentUrl() const; + const QString &link() const; + QString description() const; + const QDateTime &date() const; + bool isRead() const; + // Setters + void markAsRead(); -public slots: - void handleTorrentDownloadSuccess(const QString &url); + // Serialization + QVariantHash toHash() const; + static ArticlePtr fromHash(Feed *parent, const QVariantHash &hash); -private: - RssFeed *m_parent; - QString m_guid; - QString m_title; - QString m_torrentUrl; - QString m_link; - QString m_description; - QDateTime m_date; - QString m_author; - bool m_read; -}; + signals: + void articleWasRead(); + + public slots: + void handleTorrentDownloadSuccess(const QString &url); + + private: + Feed *m_parent; + QString m_guid; + QString m_title; + QString m_torrentUrl; + QString m_link; + QString m_description; + QDateTime m_date; + QString m_author; + bool m_read; + }; +} #endif // RSSARTICLE_H diff --git a/src/base/rss/rssdownloadrule.cpp b/src/base/rss/rssdownloadrule.cpp index 25d4d4cd1..a7ef0bb2d 100644 --- a/src/base/rss/rssdownloadrule.cpp +++ b/src/base/rss/rssdownloadrule.cpp @@ -38,14 +38,16 @@ #include "rssarticle.h" #include "rssdownloadrule.h" -RssDownloadRule::RssDownloadRule() +using namespace Rss; + +DownloadRule::DownloadRule() : m_enabled(false) , m_useRegex(false) , m_apstate(USE_GLOBAL) { } -bool RssDownloadRule::matches(const QString &articleTitle) const +bool DownloadRule::matches(const QString &articleTitle) const { foreach (const QString &token, m_mustContain) { if (!token.isEmpty()) { @@ -123,7 +125,7 @@ bool RssDownloadRule::matches(const QString &articleTitle) const return true; } -void RssDownloadRule::setMustContain(const QString &tokens) +void DownloadRule::setMustContain(const QString &tokens) { if (m_useRegex) m_mustContain = QStringList() << tokens; @@ -131,7 +133,7 @@ void RssDownloadRule::setMustContain(const QString &tokens) m_mustContain = tokens.split(" "); } -void RssDownloadRule::setMustNotContain(const QString &tokens) +void DownloadRule::setMustNotContain(const QString &tokens) { if (m_useRegex) m_mustNotContain = QStringList() << tokens; @@ -139,34 +141,34 @@ void RssDownloadRule::setMustNotContain(const QString &tokens) m_mustNotContain = tokens.split("|"); } -QStringList RssDownloadRule::rssFeeds() const +QStringList DownloadRule::rssFeeds() const { return m_rssFeeds; } -void RssDownloadRule::setRssFeeds(const QStringList &rssFeeds) +void DownloadRule::setRssFeeds(const QStringList &rssFeeds) { m_rssFeeds = rssFeeds; } -QString RssDownloadRule::name() const +QString DownloadRule::name() const { return m_name; } -void RssDownloadRule::setName(const QString &name) +void DownloadRule::setName(const QString &name) { m_name = name; } -QString RssDownloadRule::savePath() const +QString DownloadRule::savePath() const { return m_savePath; } -RssDownloadRulePtr RssDownloadRule::fromVariantHash(const QVariantHash &ruleHash) +DownloadRulePtr DownloadRule::fromVariantHash(const QVariantHash &ruleHash) { - RssDownloadRulePtr rule(new RssDownloadRule); + DownloadRulePtr rule(new DownloadRule); rule->setName(ruleHash.value("name").toString()); rule->setUseRegex(ruleHash.value("use_regex", false).toBool()); rule->setMustContain(ruleHash.value("must_contain").toString()); @@ -182,7 +184,7 @@ RssDownloadRulePtr RssDownloadRule::fromVariantHash(const QVariantHash &ruleHash return rule; } -QVariantHash RssDownloadRule::toVariantHash() const +QVariantHash DownloadRule::toVariantHash() const { QVariantHash hash; hash["name"] = m_name; @@ -200,12 +202,12 @@ QVariantHash RssDownloadRule::toVariantHash() const return hash; } -bool RssDownloadRule::operator==(const RssDownloadRule &other) const +bool DownloadRule::operator==(const DownloadRule &other) const { return m_name == other.name(); } -void RssDownloadRule::setSavePath(const QString &savePath) +void DownloadRule::setSavePath(const QString &savePath) { if (!savePath.isEmpty() && (QDir(savePath) != QDir(Preferences::instance()->getSavePath()))) m_savePath = Utils::Fs::fromNativePath(savePath); @@ -213,93 +215,93 @@ void RssDownloadRule::setSavePath(const QString &savePath) m_savePath = QString(); } -RssDownloadRule::AddPausedState RssDownloadRule::addPaused() const +DownloadRule::AddPausedState DownloadRule::addPaused() const { return m_apstate; } -void RssDownloadRule::setAddPaused(const RssDownloadRule::AddPausedState &aps) +void DownloadRule::setAddPaused(const DownloadRule::AddPausedState &aps) { m_apstate = aps; } -QString RssDownloadRule::label() const +QString DownloadRule::label() const { return m_label; } -void RssDownloadRule::setLabel(const QString &label) +void DownloadRule::setLabel(const QString &label) { m_label = label; } -bool RssDownloadRule::isEnabled() const +bool DownloadRule::isEnabled() const { return m_enabled; } -void RssDownloadRule::setEnabled(bool enable) +void DownloadRule::setEnabled(bool enable) { m_enabled = enable; } -void RssDownloadRule::setLastMatch(const QDateTime &d) +void DownloadRule::setLastMatch(const QDateTime &d) { m_lastMatch = d; } -QDateTime RssDownloadRule::lastMatch() const +QDateTime DownloadRule::lastMatch() const { return m_lastMatch; } -void RssDownloadRule::setIgnoreDays(int d) +void DownloadRule::setIgnoreDays(int d) { m_ignoreDays = d; } -int RssDownloadRule::ignoreDays() const +int DownloadRule::ignoreDays() const { return m_ignoreDays; } -QString RssDownloadRule::mustContain() const +QString DownloadRule::mustContain() const { return m_mustContain.join(" "); } -QString RssDownloadRule::mustNotContain() const +QString DownloadRule::mustNotContain() const { return m_mustNotContain.join("|"); } -bool RssDownloadRule::useRegex() const +bool DownloadRule::useRegex() const { return m_useRegex; } -void RssDownloadRule::setUseRegex(bool enabled) +void DownloadRule::setUseRegex(bool enabled) { m_useRegex = enabled; } -QString RssDownloadRule::episodeFilter() const +QString DownloadRule::episodeFilter() const { return m_episodeFilter; } -void RssDownloadRule::setEpisodeFilter(const QString &e) +void DownloadRule::setEpisodeFilter(const QString &e) { m_episodeFilter = e; } -QStringList RssDownloadRule::findMatchingArticles(const RssFeedPtr &feed) const +QStringList DownloadRule::findMatchingArticles(const FeedPtr &feed) const { QStringList ret; - const RssArticleHash &feedArticles = feed->articleHash(); + const ArticleHash &feedArticles = feed->articleHash(); - RssArticleHash::ConstIterator artIt = feedArticles.begin(); - RssArticleHash::ConstIterator artItend = feedArticles.end(); + ArticleHash::ConstIterator artIt = feedArticles.begin(); + ArticleHash::ConstIterator artItend = feedArticles.end(); for ( ; artIt != artItend ; ++artIt) { const QString title = artIt.value()->title(); if (matches(title)) diff --git a/src/base/rss/rssdownloadrule.h b/src/base/rss/rssdownloadrule.h index 0bfc0616f..b22c14594 100644 --- a/src/base/rss/rssdownloadrule.h +++ b/src/base/rss/rssdownloadrule.h @@ -36,68 +36,71 @@ #include #include -class RssFeed; -typedef QSharedPointer RssFeedPtr; - -class RssDownloadRule; -typedef QSharedPointer RssDownloadRulePtr; - -class RssDownloadRule +namespace Rss { -public: - enum AddPausedState + class Feed; + typedef QSharedPointer FeedPtr; + + class DownloadRule; + typedef QSharedPointer DownloadRulePtr; + + class DownloadRule { - USE_GLOBAL = 0, - ALWAYS_PAUSED, - NEVER_PAUSED + public: + enum AddPausedState + { + USE_GLOBAL = 0, + ALWAYS_PAUSED, + NEVER_PAUSED + }; + + DownloadRule(); + + static DownloadRulePtr fromVariantHash(const QVariantHash &ruleHash); + QVariantHash toVariantHash() const; + bool matches(const QString &articleTitle) const; + void setMustContain(const QString &tokens); + void setMustNotContain(const QString &tokens); + QStringList rssFeeds() const; + void setRssFeeds(const QStringList &rssFeeds); + QString name() const; + void setName(const QString &name); + QString savePath() const; + void setSavePath(const QString &savePath); + AddPausedState addPaused() const; + void setAddPaused(const AddPausedState &aps); + QString label() const; + void setLabel(const QString &label); + bool isEnabled() const; + void setEnabled(bool enable); + void setLastMatch(const QDateTime &d); + QDateTime lastMatch() const; + void setIgnoreDays(int d); + int ignoreDays() const; + QString mustContain() const; + QString mustNotContain() const; + bool useRegex() const; + void setUseRegex(bool enabled); + QString episodeFilter() const; + void setEpisodeFilter(const QString &e); + QStringList findMatchingArticles(const FeedPtr &feed) const; + // Operators + bool operator==(const DownloadRule &other) const; + + private: + QString m_name; + QStringList m_mustContain; + QStringList m_mustNotContain; + QString m_episodeFilter; + QString m_savePath; + QString m_label; + bool m_enabled; + QStringList m_rssFeeds; + bool m_useRegex; + AddPausedState m_apstate; + QDateTime m_lastMatch; + int m_ignoreDays; }; - - RssDownloadRule(); - - static RssDownloadRulePtr fromVariantHash(const QVariantHash &ruleHash); - QVariantHash toVariantHash() const; - bool matches(const QString &articleTitle) const; - void setMustContain(const QString &tokens); - void setMustNotContain(const QString &tokens); - QStringList rssFeeds() const; - void setRssFeeds(const QStringList &rssFeeds); - QString name() const; - void setName(const QString &name); - QString savePath() const; - void setSavePath(const QString &savePath); - AddPausedState addPaused() const; - void setAddPaused(const AddPausedState &aps); - QString label() const; - void setLabel(const QString &label); - bool isEnabled() const; - void setEnabled(bool enable); - void setLastMatch(const QDateTime &d); - QDateTime lastMatch() const; - void setIgnoreDays(int d); - int ignoreDays() const; - QString mustContain() const; - QString mustNotContain() const; - bool useRegex() const; - void setUseRegex(bool enabled); - QString episodeFilter() const; - void setEpisodeFilter(const QString &e); - QStringList findMatchingArticles(const RssFeedPtr &feed) const; - // Operators - bool operator==(const RssDownloadRule &other) const; - -private: - QString m_name; - QStringList m_mustContain; - QStringList m_mustNotContain; - QString m_episodeFilter; - QString m_savePath; - QString m_label; - bool m_enabled; - QStringList m_rssFeeds; - bool m_useRegex; - AddPausedState m_apstate; - QDateTime m_lastMatch; - int m_ignoreDays; -}; +} #endif // RSSDOWNLOADRULE_H diff --git a/src/base/rss/rssdownloadrulelist.cpp b/src/base/rss/rssdownloadrulelist.cpp index 4f3e71bc4..55d52b2d8 100644 --- a/src/base/rss/rssdownloadrulelist.cpp +++ b/src/base/rss/rssdownloadrulelist.cpp @@ -36,23 +36,25 @@ #include "base/qinisettings.h" #include "rssdownloadrulelist.h" -RssDownloadRuleList::RssDownloadRuleList() +using namespace Rss; + +DownloadRuleList::DownloadRuleList() { loadRulesFromStorage(); } -RssDownloadRulePtr RssDownloadRuleList::findMatchingRule(const QString &feedUrl, const QString &articleTitle) const +DownloadRulePtr DownloadRuleList::findMatchingRule(const QString &feedUrl, const QString &articleTitle) const { Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); QStringList ruleNames = m_feedRules.value(feedUrl); foreach (const QString &rule_name, ruleNames) { - RssDownloadRulePtr rule = m_rules[rule_name]; + DownloadRulePtr rule = m_rules[rule_name]; if (rule->isEnabled() && rule->matches(articleTitle)) return rule; } - return RssDownloadRulePtr(); + return DownloadRulePtr(); } -void RssDownloadRuleList::replace(RssDownloadRuleList *other) +void DownloadRuleList::replace(DownloadRuleList *other) { m_rules.clear(); m_feedRules.clear(); @@ -61,39 +63,39 @@ void RssDownloadRuleList::replace(RssDownloadRuleList *other) } } -void RssDownloadRuleList::saveRulesToStorage() +void DownloadRuleList::saveRulesToStorage() { QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); qBTRSS.setValue("download_rules", toVariantHash()); } -void RssDownloadRuleList::loadRulesFromStorage() +void DownloadRuleList::loadRulesFromStorage() { QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); loadRulesFromVariantHash(qBTRSS.value("download_rules").toHash()); } -QVariantHash RssDownloadRuleList::toVariantHash() const +QVariantHash DownloadRuleList::toVariantHash() const { QVariantHash ret; - foreach (const RssDownloadRulePtr &rule, m_rules.values()) { + foreach (const DownloadRulePtr &rule, m_rules.values()) { ret.insert(rule->name(), rule->toVariantHash()); } return ret; } -void RssDownloadRuleList::loadRulesFromVariantHash(const QVariantHash &h) +void DownloadRuleList::loadRulesFromVariantHash(const QVariantHash &h) { QVariantHash::ConstIterator it = h.begin(); QVariantHash::ConstIterator itend = h.end(); for ( ; it != itend; ++it) { - RssDownloadRulePtr rule = RssDownloadRule::fromVariantHash(it.value().toHash()); + DownloadRulePtr rule = DownloadRule::fromVariantHash(it.value().toHash()); if (rule && !rule->name().isEmpty()) saveRule(rule); } } -void RssDownloadRuleList::saveRule(const RssDownloadRulePtr &rule) +void DownloadRuleList::saveRule(const DownloadRulePtr &rule) { qDebug() << Q_FUNC_INFO << rule->name(); Q_ASSERT(rule); @@ -109,22 +111,22 @@ void RssDownloadRuleList::saveRule(const RssDownloadRulePtr &rule) qDebug() << Q_FUNC_INFO << "EXIT"; } -void RssDownloadRuleList::removeRule(const QString &name) +void DownloadRuleList::removeRule(const QString &name) { qDebug() << Q_FUNC_INFO << name; if (!m_rules.contains(name)) return; - RssDownloadRulePtr rule = m_rules.take(name); + DownloadRulePtr rule = m_rules.take(name); // Update feedRules hashtable foreach (const QString &feedUrl, rule->rssFeeds()) { m_feedRules[feedUrl].removeOne(rule->name()); } } -void RssDownloadRuleList::renameRule(const QString &oldName, const QString &newName) +void DownloadRuleList::renameRule(const QString &oldName, const QString &newName) { if (!m_rules.contains(oldName)) return; - RssDownloadRulePtr rule = m_rules.take(oldName); + DownloadRulePtr rule = m_rules.take(oldName); rule->setName(newName); m_rules.insert(newName, rule); // Update feedRules hashtable @@ -133,22 +135,22 @@ void RssDownloadRuleList::renameRule(const QString &oldName, const QString &newN } } -RssDownloadRulePtr RssDownloadRuleList::getRule(const QString &name) const +DownloadRulePtr DownloadRuleList::getRule(const QString &name) const { return m_rules.value(name); } -QStringList RssDownloadRuleList::ruleNames() const +QStringList DownloadRuleList::ruleNames() const { return m_rules.keys(); } -bool RssDownloadRuleList::isEmpty() const +bool DownloadRuleList::isEmpty() const { return m_rules.isEmpty(); } -bool RssDownloadRuleList::serialize(const QString &path) +bool DownloadRuleList::serialize(const QString &path) { QFile f(path); if (f.open(QIODevice::WriteOnly)) { @@ -162,7 +164,7 @@ bool RssDownloadRuleList::serialize(const QString &path) return false; } -bool RssDownloadRuleList::unserialize(const QString &path) +bool DownloadRuleList::unserialize(const QString &path) { QFile f(path); if (f.open(QIODevice::ReadOnly)) { diff --git a/src/base/rss/rssdownloadrulelist.h b/src/base/rss/rssdownloadrulelist.h index 4afc8c3e4..2dc8c36f6 100644 --- a/src/base/rss/rssdownloadrulelist.h +++ b/src/base/rss/rssdownloadrulelist.h @@ -37,34 +37,37 @@ #include "rssdownloadrule.h" -class RssDownloadRuleList +namespace Rss { - Q_DISABLE_COPY(RssDownloadRuleList) + class DownloadRuleList + { + Q_DISABLE_COPY(DownloadRuleList) -public: - RssDownloadRuleList(); + public: + DownloadRuleList(); - RssDownloadRulePtr findMatchingRule(const QString &feedUrl, const QString &articleTitle) const; - // Operators - void saveRule(const RssDownloadRulePtr &rule); - void removeRule(const QString &name); - void renameRule(const QString &oldName, const QString &newName); - RssDownloadRulePtr getRule(const QString &name) const; - QStringList ruleNames() const; - bool isEmpty() const; - void saveRulesToStorage(); - bool serialize(const QString &path); - bool unserialize(const QString &path); - void replace(RssDownloadRuleList *other); + DownloadRulePtr findMatchingRule(const QString &feedUrl, const QString &articleTitle) const; + // Operators + void saveRule(const DownloadRulePtr &rule); + void removeRule(const QString &name); + void renameRule(const QString &oldName, const QString &newName); + DownloadRulePtr getRule(const QString &name) const; + QStringList ruleNames() const; + bool isEmpty() const; + void saveRulesToStorage(); + bool serialize(const QString &path); + bool unserialize(const QString &path); + void replace(DownloadRuleList *other); -private: - void loadRulesFromStorage(); - void loadRulesFromVariantHash(const QVariantHash &l); - QVariantHash toVariantHash() const; + private: + void loadRulesFromStorage(); + void loadRulesFromVariantHash(const QVariantHash &l); + QVariantHash toVariantHash() const; -private: - QHash m_rules; - QHash m_feedRules; -}; + private: + QHash m_rules; + QHash m_feedRules; + }; +} #endif // RSSDOWNLOADFILTERLIST_H diff --git a/src/base/rss/rssfeed.cpp b/src/base/rss/rssfeed.cpp index f52ccc1c4..457851676 100644 --- a/src/base/rss/rssfeed.cpp +++ b/src/base/rss/rssfeed.cpp @@ -47,12 +47,17 @@ #include "rssmanager.h" #include "rssfeed.h" -bool rssArticleDateRecentThan(const RssArticlePtr &left, const RssArticlePtr &right) +namespace Rss { - return left->date() > right->date(); + bool articleDateRecentThan(const ArticlePtr &left, const ArticlePtr &right) + { + return left->date() > right->date(); + } } -RssFeed::RssFeed(RssManager *manager, RssFolder *parent, const QString &url) +using namespace Rss; + +Feed::Feed(Manager *manager, Folder *parent, const QString &url) : m_manager(manager) , m_parent(parent) , m_url (QUrl::fromEncoded(url.toUtf8()).toString()) @@ -78,23 +83,23 @@ RssFeed::RssFeed(RssManager *manager, RssFolder *parent, const QString &url) loadItemsFromDisk(); } -RssFeed::~RssFeed() +Feed::~Feed() { if (!m_icon.startsWith(":/") && QFile::exists(m_icon)) Utils::Fs::forceRemove(m_icon); } -RssFolder *RssFeed::parent() const +Folder *Feed::parent() const { return m_parent; } -void RssFeed::setParent(RssFolder *parent) +void Feed::setParent(Folder *parent) { m_parent = parent; } -void RssFeed::saveItemsToDisk() +void Feed::saveItemsToDisk() { qDebug() << Q_FUNC_INFO << m_url; if (!m_dirty) return; @@ -104,8 +109,8 @@ void RssFeed::saveItemsToDisk() QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); QVariantList oldItems; - RssArticleHash::ConstIterator it = m_articles.begin(); - RssArticleHash::ConstIterator itend = m_articles.end(); + ArticleHash::ConstIterator it = m_articles.begin(); + ArticleHash::ConstIterator itend = m_articles.end(); for ( ; it != itend; ++it) { oldItems << it.value()->toHash(); } @@ -115,7 +120,7 @@ void RssFeed::saveItemsToDisk() qBTRSS.setValue("old_items", allOldItems); } -void RssFeed::loadItemsFromDisk() +void Feed::loadItemsFromDisk() { QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); QHash allOldItems = qBTRSS.value("old_items", QHash()).toHash(); @@ -124,13 +129,13 @@ void RssFeed::loadItemsFromDisk() foreach (const QVariant &var_it, oldItems) { QVariantHash item = var_it.toHash(); - RssArticlePtr rssItem = RssArticle::fromHash(this, item); + ArticlePtr rssItem = Article::fromHash(this, item); if (rssItem) addArticle(rssItem); } } -void RssFeed::addArticle(const RssArticlePtr &article) +void Feed::addArticle(const ArticlePtr &article) { int maxArticles = Preferences::instance()->getRSSMaxArticlesPerFeed(); @@ -143,11 +148,11 @@ void RssFeed::addArticle(const RssArticlePtr &article) // Insert in hash table m_articles[article->guid()] = article; // Insertion sort - RssArticleList::Iterator lowerBound = qLowerBound(m_articlesByDate.begin(), m_articlesByDate.end(), article, rssArticleDateRecentThan); + ArticleList::Iterator lowerBound = qLowerBound(m_articlesByDate.begin(), m_articlesByDate.end(), article, articleDateRecentThan); m_articlesByDate.insert(lowerBound, article); int lbIndex = m_articlesByDate.indexOf(article); if (m_articlesByDate.size() > maxArticles) { - RssArticlePtr oldestArticle = m_articlesByDate.takeLast(); + ArticlePtr oldestArticle = m_articlesByDate.takeLast(); m_articles.remove(oldestArticle->guid()); // Update unreadCount if (!oldestArticle->isRead()) @@ -164,7 +169,7 @@ void RssFeed::addArticle(const RssArticlePtr &article) // m_articles.contains(article->guid()) // Try to download skipped articles if (Preferences::instance()->isRssDownloadingEnabled()) { - RssArticlePtr skipped = m_articles.value(article->guid(), RssArticlePtr()); + ArticlePtr skipped = m_articles.value(article->guid(), ArticlePtr()); if (skipped) { if (!skipped->isRead()) downloadArticleTorrentIfMatching(m_manager->downloadRules(), skipped); @@ -173,7 +178,7 @@ void RssFeed::addArticle(const RssArticlePtr &article) } } -bool RssFeed::refresh() +bool Feed::refresh() { if (m_loading) { qWarning() << Q_FUNC_INFO << "Feed" << displayName() << "is already being refreshed, ignoring request"; @@ -188,12 +193,12 @@ bool RssFeed::refresh() return true; } -QString RssFeed::id() const +QString Feed::id() const { return m_url; } -void RssFeed::removeAllSettings() +void Feed::removeAllSettings() { qDebug() << "Removing all settings / history for feed: " << m_url; QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); @@ -214,24 +219,24 @@ void RssFeed::removeAllSettings() } } -bool RssFeed::isLoading() const +bool Feed::isLoading() const { return m_loading; } -QString RssFeed::title() const +QString Feed::title() const { return m_title; } -void RssFeed::rename(const QString &newName) +void Feed::rename(const QString &newName) { qDebug() << "Renaming stream to" << newName; m_alias = newName; } // Return the alias if the stream has one, the url if it has no alias -QString RssFeed::displayName() const +QString Feed::displayName() const { if (!m_alias.isEmpty()) return m_alias; @@ -240,12 +245,12 @@ QString RssFeed::displayName() const return m_url; } -QString RssFeed::url() const +QString Feed::url() const { return m_url; } -QString RssFeed::iconPath() const +QString Feed::iconPath() const { if (m_inErrorState) return QLatin1String(":/icons/oxygen/unavailable.png"); @@ -253,31 +258,31 @@ QString RssFeed::iconPath() const return m_icon; } -bool RssFeed::hasCustomIcon() const +bool Feed::hasCustomIcon() const { return !m_icon.startsWith(":/"); } -void RssFeed::setIconPath(const QString &path) +void Feed::setIconPath(const QString &path) { if (!path.isEmpty() && QFile::exists(path)) m_icon = path; } -RssArticlePtr RssFeed::getItem(const QString &guid) const +ArticlePtr Feed::getItem(const QString &guid) const { return m_articles.value(guid); } -uint RssFeed::count() const +uint Feed::count() const { return m_articles.size(); } -void RssFeed::markAsRead() +void Feed::markAsRead() { - RssArticleHash::ConstIterator it = m_articles.begin(); - RssArticleHash::ConstIterator itend = m_articles.end(); + ArticleHash::ConstIterator it = m_articles.begin(); + ArticleHash::ConstIterator itend = m_articles.end(); for ( ; it != itend; ++it) { it.value()->markAsRead(); } @@ -285,32 +290,32 @@ void RssFeed::markAsRead() m_manager->forwardFeedInfosChanged(m_url, displayName(), 0); } -void RssFeed::markAsDirty(bool dirty) +void Feed::markAsDirty(bool dirty) { m_dirty = dirty; } -uint RssFeed::unreadCount() const +uint Feed::unreadCount() const { return m_unreadCount; } -RssArticleList RssFeed::articleListByDateDesc() const +ArticleList Feed::articleListByDateDesc() const { return m_articlesByDate; } -const RssArticleHash &RssFeed::articleHash() const +const ArticleHash &Feed::articleHash() const { return m_articles; } -RssArticleList RssFeed::unreadArticleListByDateDesc() const +ArticleList Feed::unreadArticleListByDateDesc() const { - RssArticleList unreadNews; + ArticleList unreadNews; - RssArticleList::ConstIterator it = m_articlesByDate.begin(); - RssArticleList::ConstIterator itend = m_articlesByDate.end(); + ArticleList::ConstIterator it = m_articlesByDate.begin(); + ArticleList::ConstIterator itend = m_articlesByDate.end(); for ( ; it != itend; ++it) { if (!(*it)->isRead()) unreadNews << *it; @@ -319,14 +324,14 @@ RssArticleList RssFeed::unreadArticleListByDateDesc() const } // download the icon from the address -QString RssFeed::iconUrl() const +QString Feed::iconUrl() const { // XXX: This works for most sites but it is not perfect return QString("http://") + QUrl(m_url).host() + QString("/favicon.ico"); } // read and store the downloaded rss' informations -void RssFeed::handleFinishedDownload(const QString &url, const QString &filePath) +void Feed::handleFinishedDownload(const QString &url, const QString &filePath) { if (url == m_url) { qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url; @@ -340,7 +345,7 @@ void RssFeed::handleFinishedDownload(const QString &url, const QString &filePath } } -void RssFeed::handleDownloadFailure(const QString &url, const QString &error) +void Feed::handleDownloadFailure(const QString &url, const QString &error) { if (url != m_url) return; @@ -351,7 +356,7 @@ void RssFeed::handleDownloadFailure(const QString &url, const QString &error) qWarning() << "Reason:" << error; } -void RssFeed::handleFeedTitle(const QString &feedUrl, const QString &title) +void Feed::handleFeedTitle(const QString &feedUrl, const QString &title) { if (feedUrl != m_url) return; if (m_title == title) return; @@ -363,10 +368,10 @@ void RssFeed::handleFeedTitle(const QString &feedUrl, const QString &title) m_manager->forwardFeedInfosChanged(feedUrl, title, m_unreadCount); } -void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList *rules, const RssArticlePtr &article) +void Feed::downloadArticleTorrentIfMatching(DownloadRuleList *rules, const ArticlePtr &article) { Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); - RssDownloadRulePtr matchingRule = rules->findMatchingRule(m_url, article->title()); + DownloadRulePtr matchingRule = rules->findMatchingRule(m_url, article->title()); if (!matchingRule) return; if (matchingRule->ignoreDays() > 0) { @@ -400,28 +405,28 @@ void RssFeed::downloadArticleTorrentIfMatching(RssDownloadRuleList *rules, const BitTorrent::AddTorrentParams params; params.savePath = matchingRule->savePath(); params.label = matchingRule->label(); - if (matchingRule->addPaused() == RssDownloadRule::ALWAYS_PAUSED) + if (matchingRule->addPaused() == DownloadRule::ALWAYS_PAUSED) params.addPaused = TriStateBool::True; - else if (matchingRule->addPaused() == RssDownloadRule::NEVER_PAUSED) + else if (matchingRule->addPaused() == DownloadRule::NEVER_PAUSED) params.addPaused = TriStateBool::False; BitTorrent::Session::instance()->addTorrent(torrentUrl, params); } -void RssFeed::recheckRssItemsForDownload() +void Feed::recheckRssItemsForDownload() { Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); - RssDownloadRuleList *rules = m_manager->downloadRules(); - foreach (const RssArticlePtr &article, m_articlesByDate) { + DownloadRuleList *rules = m_manager->downloadRules(); + foreach (const ArticlePtr &article, m_articlesByDate) { if (!article->isRead()) downloadArticleTorrentIfMatching(rules, article); } } -void RssFeed::handleNewArticle(const QString &feedUrl, const QVariantHash &articleData) +void Feed::handleNewArticle(const QString &feedUrl, const QVariantHash &articleData) { if (feedUrl != m_url) return; - RssArticlePtr article = RssArticle::fromHash(this, articleData); + ArticlePtr article = Article::fromHash(this, articleData); if (article.isNull()) { qDebug() << "Article hash corrupted or guid is uncomputable; feed url: " << feedUrl; return; @@ -435,7 +440,7 @@ void RssFeed::handleNewArticle(const QString &feedUrl, const QVariantHash &artic //m_manager->forwardFeedContentChanged(m_url); } -void RssFeed::handleFeedParsingFinished(const QString &feedUrl, const QString &error) +void Feed::handleFeedParsingFinished(const QString &feedUrl, const QString &error) { if (feedUrl != m_url) return; @@ -454,12 +459,12 @@ void RssFeed::handleFeedParsingFinished(const QString &feedUrl, const QString &e saveItemsToDisk(); } -void RssFeed::handleArticleStateChanged() +void Feed::handleArticleStateChanged() { m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); } -void RssFeed::decrementUnreadCount() +void Feed::decrementUnreadCount() { --m_unreadCount; } diff --git a/src/base/rss/rssfeed.h b/src/base/rss/rssfeed.h index 70fffa6b5..30fd45830 100644 --- a/src/base/rss/rssfeed.h +++ b/src/base/rss/rssfeed.h @@ -40,78 +40,81 @@ #include "rssfile.h" -class RssFolder; -class RssFeed; -class RssManager; -class RssDownloadRuleList; - -typedef QHash RssArticleHash; -typedef QSharedPointer RssFeedPtr; -typedef QList RssFeedList; - -bool rssArticleDateRecentThan(const RssArticlePtr &left, const RssArticlePtr &right); - -class RssFeed: public QObject, public RssFile +namespace Rss { - Q_OBJECT + class Folder; + class Feed; + class Manager; + class DownloadRuleList; -public: - RssFeed(RssManager *manager, RssFolder *parent, const QString &url); - ~RssFeed(); + typedef QHash ArticleHash; + typedef QSharedPointer FeedPtr; + typedef QList FeedList; - RssFolder *parent() const; - void setParent(RssFolder *parent); - bool refresh(); - QString id() const; - void removeAllSettings(); - void saveItemsToDisk(); - bool isLoading() const; - QString title() const; - void rename(const QString &newName); - QString displayName() const; - QString url() const; - QString iconPath() const; - bool hasCustomIcon() const; - void setIconPath(const QString &pathHierarchy); - RssArticlePtr getItem(const QString &guid) const; - uint count() const; - void markAsRead(); - void markAsDirty(bool dirty = true); - uint unreadCount() const; - RssArticleList articleListByDateDesc() const; - const RssArticleHash &articleHash() const; - RssArticleList unreadArticleListByDateDesc() const; - void decrementUnreadCount(); - void recheckRssItemsForDownload(); + bool articleDateRecentThan(const ArticlePtr &left, const ArticlePtr &right); -private slots: - void handleFinishedDownload(const QString &url, const QString &filePath); - void handleDownloadFailure(const QString &url, const QString &error); - void handleFeedTitle(const QString &feedUrl, const QString &title); - void handleNewArticle(const QString &feedUrl, const QVariantHash &article); - void handleFeedParsingFinished(const QString &feedUrl, const QString &error); - void handleArticleStateChanged(); + class Feed: public QObject, public File + { + Q_OBJECT -private: - QString iconUrl() const; - void loadItemsFromDisk(); - void addArticle(const RssArticlePtr &article); - void downloadArticleTorrentIfMatching(RssDownloadRuleList *rules, const RssArticlePtr &article); + public: + Feed(Manager *manager, Folder *parent, const QString &url); + ~Feed(); -private: - RssManager *m_manager; - RssArticleHash m_articles; - RssArticleList m_articlesByDate; // Articles sorted by date (more recent first) - RssFolder *m_parent; - QString m_title; - QString m_url; - QString m_alias; - QString m_icon; - QString m_iconUrl; - uint m_unreadCount; - bool m_dirty; - bool m_inErrorState; - bool m_loading; -}; + Folder *parent() const; + void setParent(Folder *parent); + bool refresh(); + QString id() const; + void removeAllSettings(); + void saveItemsToDisk(); + bool isLoading() const; + QString title() const; + void rename(const QString &newName); + QString displayName() const; + QString url() const; + QString iconPath() const; + bool hasCustomIcon() const; + void setIconPath(const QString &pathHierarchy); + ArticlePtr getItem(const QString &guid) const; + uint count() const; + void markAsRead(); + void markAsDirty(bool dirty = true); + uint unreadCount() const; + ArticleList articleListByDateDesc() const; + const ArticleHash &articleHash() const; + ArticleList unreadArticleListByDateDesc() const; + void decrementUnreadCount(); + void recheckRssItemsForDownload(); + + private slots: + void handleFinishedDownload(const QString &url, const QString &filePath); + void handleDownloadFailure(const QString &url, const QString &error); + void handleFeedTitle(const QString &feedUrl, const QString &title); + void handleNewArticle(const QString &feedUrl, const QVariantHash &article); + void handleFeedParsingFinished(const QString &feedUrl, const QString &error); + void handleArticleStateChanged(); + + private: + QString iconUrl() const; + void loadItemsFromDisk(); + void addArticle(const ArticlePtr &article); + void downloadArticleTorrentIfMatching(DownloadRuleList *rules, const ArticlePtr &article); + + private: + Manager *m_manager; + ArticleHash m_articles; + ArticleList m_articlesByDate; // Articles sorted by date (more recent first) + Folder *m_parent; + QString m_title; + QString m_url; + QString m_alias; + QString m_icon; + QString m_iconUrl; + uint m_unreadCount; + bool m_dirty; + bool m_inErrorState; + bool m_loading; + }; +} #endif // RSSFEED_H diff --git a/src/base/rss/rssfile.cpp b/src/base/rss/rssfile.cpp index 187dfd303..1f911fdda 100644 --- a/src/base/rss/rssfile.cpp +++ b/src/base/rss/rssfile.cpp @@ -32,9 +32,11 @@ #include "rssfolder.h" #include "rssfile.h" -RssFile::~RssFile() {} +using namespace Rss; -QStringList RssFile::pathHierarchy() const +File::~File() {} + +QStringList File::pathHierarchy() const { QStringList path; if (parent()) diff --git a/src/base/rss/rssfile.h b/src/base/rss/rssfile.h index ff2f0d913..0b5452624 100644 --- a/src/base/rss/rssfile.h +++ b/src/base/rss/rssfile.h @@ -36,42 +36,45 @@ #include #include -class RssFolder; -class RssFile; -class RssArticle; - -typedef QSharedPointer RssFilePtr; -typedef QSharedPointer RssArticlePtr; -typedef QList RssArticleList; -typedef QList RssFileList; - -/** - * Parent interface for RssFolder and RssFeed. - */ -class RssFile +namespace Rss { -public: - virtual ~RssFile(); + class Folder; + class File; + class Article; - virtual uint unreadCount() const = 0; - virtual QString displayName() const = 0; - virtual QString id() const = 0; - virtual QString iconPath() const = 0; - virtual void rename(const QString &newName) = 0; - virtual void markAsRead() = 0; - virtual RssFolder *parent() const = 0; - virtual void setParent(RssFolder *parent) = 0; - virtual bool refresh() = 0; - virtual RssArticleList articleListByDateDesc() const = 0; - virtual RssArticleList unreadArticleListByDateDesc() const = 0; - virtual void removeAllSettings() = 0; - virtual void saveItemsToDisk() = 0; - virtual void recheckRssItemsForDownload() = 0; + typedef QSharedPointer FilePtr; + typedef QSharedPointer
ArticlePtr; + typedef QList ArticleList; + typedef QList FileList; - QStringList pathHierarchy() const; + /** + * Parent interface for Rss::Folder and Rss::Feed. + */ + class File + { + public: + virtual ~File(); -protected: - uint m_unreadCount; -}; + virtual uint unreadCount() const = 0; + virtual QString displayName() const = 0; + virtual QString id() const = 0; + virtual QString iconPath() const = 0; + virtual void rename(const QString &newName) = 0; + virtual void markAsRead() = 0; + virtual Folder *parent() const = 0; + virtual void setParent(Folder *parent) = 0; + virtual bool refresh() = 0; + virtual ArticleList articleListByDateDesc() const = 0; + virtual ArticleList unreadArticleListByDateDesc() const = 0; + virtual void removeAllSettings() = 0; + virtual void saveItemsToDisk() = 0; + virtual void recheckRssItemsForDownload() = 0; + + QStringList pathHierarchy() const; + + protected: + uint m_unreadCount; + }; +} #endif // RSSFILE_H diff --git a/src/base/rss/rssfolder.cpp b/src/base/rss/rssfolder.cpp index ac5e2b84d..0a054c9b8 100644 --- a/src/base/rss/rssfolder.cpp +++ b/src/base/rss/rssfolder.cpp @@ -38,61 +38,63 @@ #include "rssarticle.h" #include "rssfolder.h" -RssFolder::RssFolder(RssFolder *parent, const QString &name) +using namespace Rss; + +Folder::Folder(Folder *parent, const QString &name) : m_parent(parent) , m_name(name) { } -RssFolder::~RssFolder() {} +Folder::~Folder() {} -RssFolder *RssFolder::parent() const +Folder *Folder::parent() const { return m_parent; } -void RssFolder::setParent(RssFolder *parent) +void Folder::setParent(Folder *parent) { m_parent = parent; } -uint RssFolder::unreadCount() const +uint Folder::unreadCount() const { uint nbUnread = 0; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) nbUnread += it.value()->unreadCount(); return nbUnread; } -void RssFolder::removeChild(const QString &childId) +void Folder::removeChild(const QString &childId) { if (m_children.contains(childId)) { - RssFilePtr child = m_children.take(childId); + FilePtr child = m_children.take(childId); child->removeAllSettings(); } } -RssFolderPtr RssFolder::addFolder(const QString &name) +FolderPtr Folder::addFolder(const QString &name) { - RssFolderPtr subfolder; + FolderPtr subfolder; if (!m_children.contains(name)) { - subfolder = RssFolderPtr(new RssFolder(this, name)); + subfolder = FolderPtr(new Folder(this, name)); m_children[name] = subfolder; } else { - subfolder = qSharedPointerDynamicCast(m_children.value(name)); + subfolder = qSharedPointerDynamicCast(m_children.value(name)); } return subfolder; } -RssFeedPtr RssFolder::addStream(RssManager *manager, const QString &url) +FeedPtr Folder::addStream(Manager *manager, const QString &url) { qDebug() << Q_FUNC_INFO << manager << url; - RssFeedPtr stream(new RssFeed(manager, this, url)); + FeedPtr stream(new Feed(manager, this, url)); Q_ASSERT(stream); qDebug() << "Stream URL is " << stream->url(); Q_ASSERT(!m_children.contains(stream->url())); @@ -102,10 +104,10 @@ RssFeedPtr RssFolder::addStream(RssManager *manager, const QString &url) } // Refresh All Children -bool RssFolder::refresh() +bool Folder::refresh() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); bool refreshed = false; for ( ; it != itend; ++it) { if (it.value()->refresh()) @@ -114,47 +116,47 @@ bool RssFolder::refresh() return refreshed; } -RssArticleList RssFolder::articleListByDateDesc() const +ArticleList Folder::articleListByDateDesc() const { - RssArticleList news; + ArticleList news; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) { int n = news.size(); news << it.value()->articleListByDateDesc(); - std::inplace_merge(news.begin(), news.begin() + n, news.end(), rssArticleDateRecentThan); + std::inplace_merge(news.begin(), news.begin() + n, news.end(), articleDateRecentThan); } return news; } -RssArticleList RssFolder::unreadArticleListByDateDesc() const +ArticleList Folder::unreadArticleListByDateDesc() const { - RssArticleList unreadNews; + ArticleList unreadNews; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) { int n = unreadNews.size(); unreadNews << it.value()->unreadArticleListByDateDesc(); - std::inplace_merge(unreadNews.begin(), unreadNews.begin() + n, unreadNews.end(), rssArticleDateRecentThan); + std::inplace_merge(unreadNews.begin(), unreadNews.begin() + n, unreadNews.end(), articleDateRecentThan); } return unreadNews; } -RssFileList RssFolder::getContent() const +FileList Folder::getContent() const { return m_children.values(); } -uint RssFolder::getNbFeeds() const +uint Folder::getNbFeeds() const { uint nbFeeds = 0; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) { - if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) + if (FolderPtr folder = qSharedPointerDynamicCast(it.value())) nbFeeds += folder->getNbFeeds(); else ++nbFeeds; // Feed @@ -162,12 +164,12 @@ uint RssFolder::getNbFeeds() const return nbFeeds; } -QString RssFolder::displayName() const +QString Folder::displayName() const { return m_name; } -void RssFolder::rename(const QString &newName) +void Folder::rename(const QString &newName) { if (m_name == newName) return; @@ -180,56 +182,56 @@ void RssFolder::rename(const QString &newName) } } -void RssFolder::markAsRead() +void Folder::markAsRead() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) { it.value()->markAsRead(); } } -RssFeedList RssFolder::getAllFeeds() const +FeedList Folder::getAllFeeds() const { - RssFeedList streams; + FeedList streams; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) { - if (RssFeedPtr feed = qSharedPointerDynamicCast(it.value())) + if (FeedPtr feed = qSharedPointerDynamicCast(it.value())) streams << feed; - else if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) + else if (FolderPtr folder = qSharedPointerDynamicCast(it.value())) streams << folder->getAllFeeds(); } return streams; } -QHash RssFolder::getAllFeedsAsHash() const +QHash Folder::getAllFeedsAsHash() const { - QHash ret; + QHash ret; - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) { - if (RssFeedPtr feed = qSharedPointerDynamicCast(it.value())) { + if (FeedPtr feed = qSharedPointerDynamicCast(it.value())) { qDebug() << Q_FUNC_INFO << feed->url(); ret[feed->url()] = feed; } - else if (RssFolderPtr folder = qSharedPointerDynamicCast(it.value())) { + else if (FolderPtr folder = qSharedPointerDynamicCast(it.value())) { ret.unite(folder->getAllFeedsAsHash()); } } return ret; } -void RssFolder::addFile(const RssFilePtr &item) +void Folder::addFile(const FilePtr &item) { - if (RssFeedPtr feed = qSharedPointerDynamicCast(item)) { + if (FeedPtr feed = qSharedPointerDynamicCast(item)) { Q_ASSERT(!m_children.contains(feed->url())); m_children[feed->url()] = item; qDebug("Added feed %s to folder ./%s", qPrintable(feed->url()), qPrintable(m_name)); } - else if (RssFolderPtr folder = qSharedPointerDynamicCast(item)) { + else if (FolderPtr folder = qSharedPointerDynamicCast(item)) { Q_ASSERT(!m_children.contains(folder->displayName())); m_children[folder->displayName()] = item; qDebug("Added folder %s to folder ./%s", qPrintable(folder->displayName()), qPrintable(m_name)); @@ -238,56 +240,56 @@ void RssFolder::addFile(const RssFilePtr &item) item->setParent(this); } -void RssFolder::removeAllItems() +void Folder::removeAllItems() { m_children.clear(); } -void RssFolder::removeAllSettings() +void Folder::removeAllSettings() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) it.value()->removeAllSettings(); } -void RssFolder::saveItemsToDisk() +void Folder::saveItemsToDisk() { - foreach (const RssFilePtr &child, m_children.values()) + foreach (const FilePtr &child, m_children.values()) child->saveItemsToDisk(); } -QString RssFolder::id() const +QString Folder::id() const { return m_name; } -QString RssFolder::iconPath() const +QString Folder::iconPath() const { return IconProvider::instance()->getIconPath("inode-directory"); } -bool RssFolder::hasChild(const QString &childId) +bool Folder::hasChild(const QString &childId) { return m_children.contains(childId); } -void RssFolder::renameChildFolder(const QString &oldName, const QString &newName) +void Folder::renameChildFolder(const QString &oldName, const QString &newName) { Q_ASSERT(m_children.contains(oldName)); - RssFilePtr folder = m_children.take(oldName); + FilePtr folder = m_children.take(oldName); m_children[newName] = folder; } -RssFilePtr RssFolder::takeChild(const QString &childId) +FilePtr Folder::takeChild(const QString &childId) { return m_children.take(childId); } -void RssFolder::recheckRssItemsForDownload() +void Folder::recheckRssItemsForDownload() { - RssFileHash::ConstIterator it = m_children.begin(); - RssFileHash::ConstIterator itend = m_children.end(); + FileHash::ConstIterator it = m_children.begin(); + FileHash::ConstIterator itend = m_children.end(); for ( ; it != itend; ++it) it.value()->recheckRssItemsForDownload(); } diff --git a/src/base/rss/rssfolder.h b/src/base/rss/rssfolder.h index 137ee5e9c..78ff21401 100644 --- a/src/base/rss/rssfolder.h +++ b/src/base/rss/rssfolder.h @@ -37,56 +37,59 @@ #include "rssfile.h" -class RssFolder; -class RssFeed; -class RssManager; - -typedef QHash RssFileHash; -typedef QSharedPointer RssFeedPtr; -typedef QSharedPointer RssFolderPtr; -typedef QList RssFeedList; - -class RssFolder: public QObject, public RssFile +namespace Rss { - Q_OBJECT + class Folder; + class Feed; + class Manager; -public: - explicit RssFolder(RssFolder *parent = 0, const QString &name = QString()); - ~RssFolder(); + typedef QHash FileHash; + typedef QSharedPointer FeedPtr; + typedef QSharedPointer FolderPtr; + typedef QList FeedList; - RssFolder *parent() const; - void setParent(RssFolder *parent); - uint unreadCount() const; - RssFeedPtr addStream(RssManager *manager, const QString &url); - RssFolderPtr addFolder(const QString &name); - uint getNbFeeds() const; - RssFileList getContent() const; - RssFeedList getAllFeeds() const; - QHash getAllFeedsAsHash() const; - QString displayName() const; - QString id() const; - QString iconPath() const; - bool hasChild(const QString &childId); - RssArticleList articleListByDateDesc() const; - RssArticleList unreadArticleListByDateDesc() const; - void removeAllSettings(); - void saveItemsToDisk(); - void removeAllItems(); - void renameChildFolder(const QString &oldName, const QString &newName); - RssFilePtr takeChild(const QString &childId); - void recheckRssItemsForDownload(); + class Folder: public QObject, public File + { + Q_OBJECT -public slots: - bool refresh(); - void addFile(const RssFilePtr &item); - void removeChild(const QString &childId); - void rename(const QString &newName); - void markAsRead(); + public: + explicit Folder(Folder *parent = 0, const QString &name = QString()); + ~Folder(); -private: - RssFolder *m_parent; - QString m_name; - RssFileHash m_children; -}; + Folder *parent() const; + void setParent(Folder *parent); + uint unreadCount() const; + FeedPtr addStream(Manager *manager, const QString &url); + FolderPtr addFolder(const QString &name); + uint getNbFeeds() const; + FileList getContent() const; + FeedList getAllFeeds() const; + QHash getAllFeedsAsHash() const; + QString displayName() const; + QString id() const; + QString iconPath() const; + bool hasChild(const QString &childId); + ArticleList articleListByDateDesc() const; + ArticleList unreadArticleListByDateDesc() const; + void removeAllSettings(); + void saveItemsToDisk(); + void removeAllItems(); + void renameChildFolder(const QString &oldName, const QString &newName); + FilePtr takeChild(const QString &childId); + void recheckRssItemsForDownload(); + + public slots: + bool refresh(); + void addFile(const FilePtr &item); + void removeChild(const QString &childId); + void rename(const QString &newName); + void markAsRead(); + + private: + Folder *m_parent; + QString m_name; + FileHash m_children; + }; +} #endif // RSSFOLDER_H diff --git a/src/base/rss/rssmanager.cpp b/src/base/rss/rssmanager.cpp index 248caabc8..17e665661 100644 --- a/src/base/rss/rssmanager.cpp +++ b/src/base/rss/rssmanager.cpp @@ -41,16 +41,18 @@ static const int MSECS_PER_MIN = 60000; -RssManager::RssManager() - : m_downloadRules(new RssDownloadRuleList) - , m_rssParser(new RssParser(this)) +using namespace Rss; + +Manager::Manager() + : m_downloadRules(new DownloadRuleList) + , m_rssParser(new Parser(this)) { connect(&m_refreshTimer, SIGNAL(timeout()), SLOT(refresh())); m_refreshInterval = Preferences::instance()->getRSSRefreshInterval(); m_refreshTimer.start(m_refreshInterval * MSECS_PER_MIN); } -RssManager::~RssManager() +Manager::~Manager() { qDebug("Deleting RSSManager..."); delete m_downloadRules; @@ -60,12 +62,12 @@ RssManager::~RssManager() qDebug("RSSManager deleted"); } -RssParser *RssManager::rssParser() const +Parser *Manager::rssParser() const { return m_rssParser; } -void RssManager::updateRefreshInterval(uint val) +void Manager::updateRefreshInterval(uint val) { if (m_refreshInterval != val) { m_refreshInterval = val; @@ -74,7 +76,7 @@ void RssManager::updateRefreshInterval(uint val) } } -void RssManager::loadStreamList() +void Manager::loadStreamList() { const Preferences *const pref = Preferences::instance(); const QStringList streamsUrl = pref->getRssFeedsUrls(); @@ -93,14 +95,14 @@ void RssManager::loadStreamList() const QString feedUrl = path.takeLast(); qDebug() << "Feed URL:" << feedUrl; // Create feed path (if it does not exists) - RssFolder *feedParent = this; + Folder *feedParent = this; foreach (const QString &folderName, path) { qDebug() << "Adding parent folder:" << folderName; feedParent = feedParent->addFolder(folderName).data(); } // Create feed qDebug() << "Adding feed to parent folder"; - RssFeedPtr stream = feedParent->addStream(this, feedUrl); + FeedPtr stream = feedParent->addStream(this, feedUrl); const QString &alias = aliases[i]; if (!alias.isEmpty()) stream->rename(alias); @@ -109,24 +111,24 @@ void RssManager::loadStreamList() qDebug("NB RSS streams loaded: %d", streamsUrl.size()); } -void RssManager::forwardFeedContentChanged(const QString &url) +void Manager::forwardFeedContentChanged(const QString &url) { emit feedContentChanged(url); } -void RssManager::forwardFeedInfosChanged(const QString &url, const QString &displayName, uint unreadCount) +void Manager::forwardFeedInfosChanged(const QString &url, const QString &displayName, uint unreadCount) { emit feedInfosChanged(url, displayName, unreadCount); } -void RssManager::forwardFeedIconChanged(const QString &url, const QString &iconPath) +void Manager::forwardFeedIconChanged(const QString &url, const QString &iconPath) { emit feedIconChanged(url, iconPath); } -void RssManager::moveFile(const RssFilePtr &file, const RssFolderPtr &destinationFolder) +void Manager::moveFile(const FilePtr &file, const FolderPtr &destinationFolder) { - RssFolder *srcFolder = file->parent(); + Folder *srcFolder = file->parent(); if (destinationFolder != srcFolder) { // Remove reference in old folder srcFolder->takeChild(file->id()); @@ -138,12 +140,12 @@ void RssManager::moveFile(const RssFilePtr &file, const RssFolderPtr &destinatio } } -void RssManager::saveStreamList() const +void Manager::saveStreamList() const { QStringList streamsUrl; QStringList aliases; - RssFeedList streams = getAllFeeds(); - foreach (const RssFeedPtr &stream, streams) { + FeedList streams = getAllFeeds(); + foreach (const FeedPtr &stream, streams) { // This backslash has nothing to do with path handling QString streamPath = stream->pathHierarchy().join("\\"); if (streamPath.isNull()) @@ -157,7 +159,7 @@ void RssManager::saveStreamList() const pref->setRssFeedsAliases(aliases); } -RssDownloadRuleList *RssManager::downloadRules() const +DownloadRuleList *Manager::downloadRules() const { Q_ASSERT(m_downloadRules); return m_downloadRules; diff --git a/src/base/rss/rssmanager.h b/src/base/rss/rssmanager.h index 5fff13a65..515d45a64 100644 --- a/src/base/rss/rssmanager.h +++ b/src/base/rss/rssmanager.h @@ -37,42 +37,45 @@ #include "rssfolder.h" -class RssDownloadRuleList; -class RssParser; -class RssManager; - -typedef QSharedPointer RssManagerPtr; - -class RssManager: public RssFolder +namespace Rss { - Q_OBJECT + class DownloadRuleList; + class Parser; + class Manager; -public: - RssManager(); - ~RssManager(); + typedef QSharedPointer ManagerPtr; - RssParser *rssParser() const; - RssDownloadRuleList *downloadRules() const; + class Manager: public Folder + { + Q_OBJECT -public slots: - void loadStreamList(); - void saveStreamList() const; - void forwardFeedContentChanged(const QString &url); - void forwardFeedInfosChanged(const QString &url, const QString &displayName, uint unreadCount); - void forwardFeedIconChanged(const QString &url, const QString &iconPath); - void moveFile(const RssFilePtr &file, const RssFolderPtr &destinationFolder); - void updateRefreshInterval(uint val); + public: + Manager(); + ~Manager(); -signals: - void feedContentChanged(const QString &url); - void feedInfosChanged(const QString &url, const QString &displayName, uint unreadCount); - void feedIconChanged(const QString &url, const QString &iconPath); + Parser *rssParser() const; + DownloadRuleList *downloadRules() const; -private: - QTimer m_refreshTimer; - uint m_refreshInterval; - RssDownloadRuleList *m_downloadRules; - RssParser *m_rssParser; -}; + public slots: + void loadStreamList(); + void saveStreamList() const; + void forwardFeedContentChanged(const QString &url); + void forwardFeedInfosChanged(const QString &url, const QString &displayName, uint unreadCount); + void forwardFeedIconChanged(const QString &url, const QString &iconPath); + void moveFile(const FilePtr &file, const FolderPtr &destinationFolder); + void updateRefreshInterval(uint val); + + signals: + void feedContentChanged(const QString &url); + void feedInfosChanged(const QString &url, const QString &displayName, uint unreadCount); + void feedIconChanged(const QString &url, const QString &iconPath); + + private: + QTimer m_refreshTimer; + uint m_refreshInterval; + DownloadRuleList *m_downloadRules; + Parser *m_rssParser; + }; +} #endif // RSSMANAGER_H diff --git a/src/base/rss/rssparser.cpp b/src/base/rss/rssparser.cpp index 5f72d6c6a..18b138c41 100644 --- a/src/base/rss/rssparser.cpp +++ b/src/base/rss/rssparser.cpp @@ -37,11 +37,14 @@ #include "base/utils/fs.h" #include "rssparser.h" -struct ParsingJob +namespace Rss { - QString feedUrl; - QString filePath; -}; + struct ParsingJob + { + QString feedUrl; + QString filePath; + }; +} static const char shortDay[][4] = { "Mon", "Tue", "Wed", @@ -61,8 +64,24 @@ static const char shortMonth[][4] = { "Sep", "Oct", "Nov", "Dec" }; +using namespace Rss; + +Parser::Parser(QObject *parent) + : QThread(parent) + , m_running(true) +{ + start(); +} + +Parser::~Parser() +{ + m_running = false; + m_waitCondition.wakeOne(); + wait(); +} + // Ported to Qt from KDElibs4 -QDateTime RssParser::parseDate(const QString &string) +QDateTime Parser::parseDate(const QString &string) { const QString str = string.trimmed(); if (str.isEmpty()) @@ -208,21 +227,7 @@ QDateTime RssParser::parseDate(const QString &string) return result; } -RssParser::RssParser(QObject *parent) - : QThread(parent) - , m_running(true) -{ - start(); -} - -RssParser::~RssParser() -{ - m_running = false; - m_waitCondition.wakeOne(); - wait(); -} - -void RssParser::parseRssFile(const QString &feedUrl, const QString &filePath) +void Parser::parseRssFile(const QString &feedUrl, const QString &filePath) { qDebug() << Q_FUNC_INFO << feedUrl << filePath; m_mutex.lock(); @@ -236,14 +241,14 @@ void RssParser::parseRssFile(const QString &feedUrl, const QString &filePath) m_mutex.unlock(); } -void RssParser::clearFeedData(const QString &feedUrl) +void Parser::clearFeedData(const QString &feedUrl) { m_mutex.lock(); m_lastBuildDates.remove(feedUrl); m_mutex.unlock(); } -void RssParser::run() +void Parser::run() { while (m_running) { m_mutex.lock(); @@ -261,7 +266,7 @@ void RssParser::run() } } -void RssParser::parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl) +void Parser::parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl) { QVariantHash article; @@ -325,7 +330,7 @@ void RssParser::parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl) emit newArticle(feedUrl, article); } -void RssParser::parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl) +void Parser::parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl) { qDebug() << Q_FUNC_INFO << feedUrl; Q_ASSERT(xml.isStartElement() && xml.name() == "channel"); @@ -356,7 +361,7 @@ void RssParser::parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl) } } -void RssParser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl) +void Parser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl) { QVariantHash article; bool doubleContent = false; @@ -446,7 +451,7 @@ void RssParser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, emit newArticle(feedUrl, article); } -void RssParser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) +void Parser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) { qDebug() << Q_FUNC_INFO << feedUrl; Q_ASSERT(xml.isStartElement() && xml.name() == "feed"); @@ -480,7 +485,7 @@ void RssParser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) } // read and create items from a rss document -void RssParser::parseFeed(const ParsingJob &job) +void Parser::parseFeed(const ParsingJob &job) { qDebug() << Q_FUNC_INFO << job.feedUrl << job.filePath; QFile fileRss(job.filePath); @@ -534,7 +539,7 @@ void RssParser::parseFeed(const ParsingJob &job) Utils::Fs::forceRemove(job.filePath); } -void RssParser::reportFailure(const ParsingJob &job, const QString &error) +void Parser::reportFailure(const ParsingJob &job, const QString &error) { emit feedParsingFinished(job.feedUrl, error); Utils::Fs::forceRemove(job.filePath); diff --git a/src/base/rss/rssparser.h b/src/base/rss/rssparser.h index 42b52d9bb..0a02ca773 100644 --- a/src/base/rss/rssparser.h +++ b/src/base/rss/rssparser.h @@ -38,42 +38,45 @@ #include "rssarticle.h" -struct ParsingJob; - -class RssParser: public QThread +namespace Rss { - Q_OBJECT + struct ParsingJob; -public: - explicit RssParser(QObject *parent = 0); - virtual ~RssParser(); + class Parser: public QThread + { + Q_OBJECT -signals: - void newArticle(const QString &feedUrl, const QVariantHash &rssArticle); - void feedTitle(const QString &feedUrl, const QString &title); - void feedParsingFinished(const QString &feedUrl, const QString &error); + public: + explicit Parser(QObject *parent = 0); + virtual ~Parser(); -public slots: - void parseRssFile(const QString &feedUrl, const QString &filePath); - void clearFeedData(const QString &feedUrl); + signals: + void newArticle(const QString &feedUrl, const QVariantHash &rssArticle); + void feedTitle(const QString &feedUrl, const QString &title); + void feedParsingFinished(const QString &feedUrl, const QString &error); -protected: - virtual void run(); + public slots: + void parseRssFile(const QString &feedUrl, const QString &filePath); + void clearFeedData(const QString &feedUrl); -private: - static QDateTime parseDate(const QString &string); - void parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl); - void parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl); - void parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl); - void parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl); - void parseFeed(const ParsingJob &job); - void reportFailure(const ParsingJob &job, const QString &error); + protected: + virtual void run(); - bool m_running; - QMutex m_mutex; - QQueue m_queue; - QWaitCondition m_waitCondition; - QHash m_lastBuildDates; // Optimization -}; + private: + static QDateTime parseDate(const QString &string); + void parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl); + void parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl); + void parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl); + void parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl); + void parseFeed(const ParsingJob &job); + void reportFailure(const ParsingJob &job, const QString &error); + + bool m_running; + QMutex m_mutex; + QQueue m_queue; + QWaitCondition m_waitCondition; + QHash m_lastBuildDates; // Optimization + }; +} #endif // RSSPARSER_H diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index f087c9bec..98ef89088 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -45,7 +45,7 @@ #include "base/utils/fs.h" #include "base/utils/string.h" -AutomatedRssDownloader::AutomatedRssDownloader(const QWeakPointer& manager, QWidget *parent) : +AutomatedRssDownloader::AutomatedRssDownloader(const QWeakPointer& manager, QWidget *parent) : QDialog(parent), ui(new Ui::AutomatedRssDownloader), m_manager(manager), m_editedRule(0) @@ -68,7 +68,7 @@ AutomatedRssDownloader::AutomatedRssDownloader(const QWeakPointer& m ok = connect(ui->listRules, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayRulesListMenu(const QPoint&))); Q_ASSERT(ok); m_ruleList = manager.toStrongRef()->downloadRules(); - m_editableRuleList = new RssDownloadRuleList; // Read rule list from disk + m_editableRuleList = new Rss::DownloadRuleList; // Read rule list from disk m_episodeValidator = new QRegExpValidator( QRegExp("^(^[1-9]{1,1}\\d{0,3}x([1-9]{1,1}\\d{0,3}(-([1-9]{1,1}\\d{0,3})?)?;){1,}){1,1}", Qt::CaseInsensitive), @@ -199,7 +199,7 @@ void AutomatedRssDownloader::updateFeedList() const QString feed_url = item->data(Qt::UserRole).toString(); bool all_enabled = false; foreach (const QListWidgetItem *ruleItem, ui->listRules->selectedItems()) { - RssDownloadRulePtr rule = m_editableRuleList->getRule(ruleItem->text()); + Rss::DownloadRulePtr rule = m_editableRuleList->getRule(ruleItem->text()); if (!rule) continue; qDebug() << "Rule" << rule->name() << "affects" << rule->rssFeeds().size() << "feeds."; foreach (QString test, rule->rssFeeds()) { @@ -238,7 +238,7 @@ void AutomatedRssDownloader::updateRuleDefinitionBox() const QList selection = ui->listRules->selectedItems(); if (selection.count() == 1) { m_editedRule = selection.first(); - RssDownloadRulePtr rule = getCurrentRule(); + Rss::DownloadRulePtr rule = getCurrentRule(); if (rule) { ui->lineContains->setText(rule->mustContain()); ui->lineNotContains->setText(rule->mustNotContain()); @@ -300,12 +300,12 @@ void AutomatedRssDownloader::clearRuleDefinitionBox() updateMustNotLineValidity(); } -RssDownloadRulePtr AutomatedRssDownloader::getCurrentRule() const +Rss::DownloadRulePtr AutomatedRssDownloader::getCurrentRule() const { QListWidgetItem * current_item = ui->listRules->currentItem(); if (current_item) return m_editableRuleList->getRule(current_item->text()); - return RssDownloadRulePtr(); + return Rss::DownloadRulePtr(); } void AutomatedRssDownloader::initLabelCombobox() @@ -326,9 +326,9 @@ void AutomatedRssDownloader::saveEditedRule() qDebug() << "Probably removed the item, no need to save it"; return; } - RssDownloadRulePtr rule = m_editableRuleList->getRule(m_editedRule->text()); + Rss::DownloadRulePtr rule = m_editableRuleList->getRule(m_editedRule->text()); if (!rule) { - rule = RssDownloadRulePtr(new RssDownloadRule); + rule = Rss::DownloadRulePtr(new Rss::DownloadRule); rule->setName(m_editedRule->text()); } if (m_editedRule->checkState() == Qt::Unchecked) @@ -344,7 +344,7 @@ void AutomatedRssDownloader::saveEditedRule() else rule->setSavePath(""); rule->setLabel(ui->comboLabel->currentText()); - rule->setAddPaused(RssDownloadRule::AddPausedState(ui->comboAddPaused->currentIndex())); + rule->setAddPaused(Rss::DownloadRule::AddPausedState(ui->comboAddPaused->currentIndex())); // Save new label if (!rule->label().isEmpty()) Preferences::instance()->addTorrentLabelExternal(rule->label()); @@ -498,7 +498,7 @@ void AutomatedRssDownloader::handleFeedCheckStateChange(QListWidgetItem *feed_it } const QString feed_url = feed_item->data(Qt::UserRole).toString(); foreach (QListWidgetItem* rule_item, ui->listRules->selectedItems()) { - RssDownloadRulePtr rule = m_editableRuleList->getRule(rule_item->text()); + Rss::DownloadRulePtr rule = m_editableRuleList->getRule(rule_item->text()); Q_ASSERT(rule); QStringList affected_feeds = rule->rssFeeds(); if (feed_item->checkState() == Qt::Checked) { @@ -521,19 +521,19 @@ void AutomatedRssDownloader::handleFeedCheckStateChange(QListWidgetItem *feed_it void AutomatedRssDownloader::updateMatchingArticles() { ui->treeMatchingArticles->clear(); - RssManagerPtr manager = m_manager.toStrongRef(); + Rss::ManagerPtr manager = m_manager.toStrongRef(); if (!manager) return; - const QHash all_feeds = manager->getAllFeedsAsHash(); + const QHash all_feeds = manager->getAllFeedsAsHash(); saveEditedRule(); foreach (const QListWidgetItem *rule_item, ui->listRules->selectedItems()) { - RssDownloadRulePtr rule = m_editableRuleList->getRule(rule_item->text()); + Rss::DownloadRulePtr rule = m_editableRuleList->getRule(rule_item->text()); if (!rule) continue; foreach (const QString &feed_url, rule->rssFeeds()) { qDebug() << Q_FUNC_INFO << feed_url; if (!all_feeds.contains(feed_url)) continue; // Feed was removed - RssFeedPtr feed = all_feeds.value(feed_url); + Rss::FeedPtr feed = all_feeds.value(feed_url); Q_ASSERT(feed); if (!feed) continue; const QStringList matching_articles = rule->findMatchingArticles(feed); @@ -543,7 +543,7 @@ void AutomatedRssDownloader::updateMatchingArticles() } } -void AutomatedRssDownloader::addFeedArticlesToTree(const RssFeedPtr& feed, const QStringList &articles) +void AutomatedRssDownloader::addFeedArticlesToTree(const Rss::FeedPtr& feed, const QStringList &articles) { // Check if this feed is already in the tree QTreeWidgetItem *treeFeedItem = 0; diff --git a/src/gui/rss/automatedrssdownloader.h b/src/gui/rss/automatedrssdownloader.h index ad7338ed5..8bbda030c 100644 --- a/src/gui/rss/automatedrssdownloader.h +++ b/src/gui/rss/automatedrssdownloader.h @@ -44,8 +44,11 @@ class AutomatedRssDownloader; } QT_END_NAMESPACE -class RssDownloadRuleList; -class RssManager; +namespace Rss +{ + class DownloadRuleList; + class Manager; +} QT_BEGIN_NAMESPACE class QListWidgetItem; @@ -56,7 +59,7 @@ class AutomatedRssDownloader : public QDialog Q_OBJECT public: - explicit AutomatedRssDownloader(const QWeakPointer& manager, QWidget *parent = 0); + explicit AutomatedRssDownloader(const QWeakPointer& manager, QWidget *parent = 0); ~AutomatedRssDownloader(); bool isRssDownloaderEnabled() const; @@ -86,16 +89,16 @@ private slots: void onFinished(int result); private: - RssDownloadRulePtr getCurrentRule() const; + Rss::DownloadRulePtr getCurrentRule() const; void initLabelCombobox(); - void addFeedArticlesToTree(const RssFeedPtr& feed, const QStringList& articles); + void addFeedArticlesToTree(const Rss::FeedPtr& feed, const QStringList& articles); private: Ui::AutomatedRssDownloader *ui; - QWeakPointer m_manager; + QWeakPointer m_manager; QListWidgetItem* m_editedRule; - RssDownloadRuleList *m_ruleList; - RssDownloadRuleList *m_editableRuleList; + Rss::DownloadRuleList *m_ruleList; + Rss::DownloadRuleList *m_editableRuleList; QRegExpValidator *m_episodeValidator; QShortcut *editHotkey; QShortcut *deleteHotkey; diff --git a/src/gui/rss/feedlistwidget.cpp b/src/gui/rss/feedlistwidget.cpp index 4bf2b2129..ebdd325d6 100644 --- a/src/gui/rss/feedlistwidget.cpp +++ b/src/gui/rss/feedlistwidget.cpp @@ -33,7 +33,7 @@ #include "guiiconprovider.h" #include "feedlistwidget.h" -FeedListWidget::FeedListWidget(QWidget *parent, const RssManagerPtr& rssmanager): QTreeWidget(parent), m_rssManager(rssmanager) { +FeedListWidget::FeedListWidget(QWidget *parent, const Rss::ManagerPtr& rssmanager): QTreeWidget(parent), m_rssManager(rssmanager) { setContextMenuPolicy(Qt::CustomContextMenu); setDragDropMode(QAbstractItemView::InternalMove); setSelectionMode(QAbstractItemView::ExtendedSelection); @@ -51,20 +51,20 @@ FeedListWidget::~FeedListWidget() { delete m_unreadStickyItem; } -void FeedListWidget::itemAdded(QTreeWidgetItem *item, const RssFilePtr& file) { +void FeedListWidget::itemAdded(QTreeWidgetItem *item, const Rss::FilePtr& file) { m_rssMapping[item] = file; - if (RssFeedPtr feed = qSharedPointerDynamicCast(file)) { + if (Rss::FeedPtr feed = qSharedPointerDynamicCast(file)) { m_feedsItems[feed->id()] = item; } } void FeedListWidget::itemAboutToBeRemoved(QTreeWidgetItem *item) { - RssFilePtr file = m_rssMapping.take(item); - if (RssFeedPtr feed = qSharedPointerDynamicCast(file)) { + Rss::FilePtr file = m_rssMapping.take(item); + if (Rss::FeedPtr feed = qSharedPointerDynamicCast(file)) { m_feedsItems.remove(feed->id()); - } if (RssFolderPtr folder = qSharedPointerDynamicCast(file)) { - RssFeedList feeds = folder->getAllFeeds(); - foreach (const RssFeedPtr& feed, feeds) { + } if (Rss::FolderPtr folder = qSharedPointerDynamicCast(file)) { + Rss::FeedList feeds = folder->getAllFeeds(); + foreach (const Rss::FeedPtr& feed, feeds) { m_feedsItems.remove(feed->id()); } } @@ -131,18 +131,18 @@ QList FeedListWidget::getAllFeedItems(QTreeWidgetItem* folder) return feeds; } -RssFilePtr FeedListWidget::getRSSItem(QTreeWidgetItem *item) const { - return m_rssMapping.value(item, RssFilePtr()); +Rss::FilePtr FeedListWidget::getRSSItem(QTreeWidgetItem *item) const { + return m_rssMapping.value(item, Rss::FilePtr()); } bool FeedListWidget::isFeed(QTreeWidgetItem *item) const { - return (qSharedPointerDynamicCast(m_rssMapping.value(item)) != NULL); + return (qSharedPointerDynamicCast(m_rssMapping.value(item)) != NULL); } bool FeedListWidget::isFolder(QTreeWidgetItem *item) const { - return (qSharedPointerDynamicCast(m_rssMapping.value(item)) != NULL); + return (qSharedPointerDynamicCast(m_rssMapping.value(item)) != NULL); } QString FeedListWidget::getItemID(QTreeWidgetItem *item) const { @@ -153,8 +153,8 @@ QTreeWidgetItem* FeedListWidget::getTreeItemFromUrl(const QString &url) const { return m_feedsItems.value(url, 0); } -RssFeedPtr FeedListWidget::getRSSItemFromUrl(const QString &url) const { - return qSharedPointerDynamicCast(getRSSItem(getTreeItemFromUrl(url))); +Rss::FeedPtr FeedListWidget::getRSSItemFromUrl(const QString &url) const { + return qSharedPointerDynamicCast(getRSSItem(getTreeItemFromUrl(url))); } QTreeWidgetItem* FeedListWidget::currentItem() const { @@ -197,9 +197,9 @@ void FeedListWidget::dropEvent(QDropEvent *event) { qDebug("dropEvent"); QList folders_altered; QTreeWidgetItem *dest_folder_item = itemAt(event->pos()); - RssFolderPtr dest_folder; + Rss::FolderPtr dest_folder; if (dest_folder_item) { - dest_folder = qSharedPointerCast(getRSSItem(dest_folder_item)); + dest_folder = qSharedPointerCast(getRSSItem(dest_folder_item)); folders_altered << dest_folder_item; } else { dest_folder = m_rssManager; @@ -207,7 +207,7 @@ void FeedListWidget::dropEvent(QDropEvent *event) { QList src_items = selectedItems(); // Check if there is not going to overwrite another file foreach (QTreeWidgetItem *src_item, src_items) { - RssFilePtr file = getRSSItem(src_item); + Rss::FilePtr file = getRSSItem(src_item); if (dest_folder->hasChild(file->id())) { QTreeWidget::dropEvent(event); return; @@ -219,7 +219,7 @@ void FeedListWidget::dropEvent(QDropEvent *event) { if (parent_folder && !folders_altered.contains(parent_folder)) folders_altered << parent_folder; // Actually move the file - RssFilePtr file = getRSSItem(src_item); + Rss::FilePtr file = getRSSItem(src_item); m_rssManager->moveFile(file, dest_folder); } QTreeWidget::dropEvent(event); diff --git a/src/gui/rss/feedlistwidget.h b/src/gui/rss/feedlistwidget.h index 8e69df244..edc108cc3 100644 --- a/src/gui/rss/feedlistwidget.h +++ b/src/gui/rss/feedlistwidget.h @@ -47,7 +47,7 @@ class FeedListWidget: public QTreeWidget { Q_OBJECT public: - FeedListWidget(QWidget *parent, const RssManagerPtr& rssManager); + FeedListWidget(QWidget *parent, const Rss::ManagerPtr& rssManager); ~FeedListWidget(); bool hasFeed(const QString &url) const; @@ -56,17 +56,17 @@ public: QStringList getItemPath(QTreeWidgetItem* item) const; QList getAllOpenFolders(QTreeWidgetItem *parent=0) const; QList getAllFeedItems(QTreeWidgetItem* folder); - RssFilePtr getRSSItem(QTreeWidgetItem *item) const; + Rss::FilePtr getRSSItem(QTreeWidgetItem *item) const; bool isFeed(QTreeWidgetItem *item) const; bool isFolder(QTreeWidgetItem *item) const; QString getItemID(QTreeWidgetItem *item) const; QTreeWidgetItem* getTreeItemFromUrl(const QString &url) const; - RssFeedPtr getRSSItemFromUrl(const QString &url) const; + Rss::FeedPtr getRSSItemFromUrl(const QString &url) const; QTreeWidgetItem* currentItem() const; QTreeWidgetItem* currentFeed() const; public slots: - void itemAdded(QTreeWidgetItem *item, const RssFilePtr& file); + void itemAdded(QTreeWidgetItem *item, const Rss::FilePtr& file); void itemAboutToBeRemoved(QTreeWidgetItem *item); signals: @@ -80,8 +80,8 @@ protected: void dropEvent(QDropEvent *event); private: - RssManagerPtr m_rssManager; - QHash m_rssMapping; + Rss::ManagerPtr m_rssManager; + QHash m_rssMapping; QHash m_feedsItems; QTreeWidgetItem* m_currentFeed; QTreeWidgetItem *m_unreadStickyItem; diff --git a/src/gui/rss/rss_imp.cpp b/src/gui/rss/rss_imp.cpp index c5aa670bf..a37dac89c 100644 --- a/src/gui/rss/rss_imp.cpp +++ b/src/gui/rss/rss_imp.cpp @@ -119,9 +119,9 @@ void RSSImp::displayItemsListMenu(const QPoint&) bool hasLink = false; foreach (const QListWidgetItem* item, selectedItems) { if (!item) continue; - RssFeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); + Rss::FeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); if (!feed) continue; - RssArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); + Rss::ArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); if (!article) continue; if (!article->torrentUrl().isEmpty()) @@ -160,10 +160,10 @@ void RSSImp::on_actionManage_cookies_triggered() void RSSImp::askNewFolder() { QTreeWidgetItem* parent_item = 0; - RssFolderPtr rss_parent; + Rss::FolderPtr rss_parent; if (m_feedList->selectedItems().size() > 0) { parent_item = m_feedList->selectedItems().at(0); - rss_parent = qSharedPointerDynamicCast(m_feedList->getRSSItem(parent_item)); + rss_parent = qSharedPointerDynamicCast(m_feedList->getRSSItem(parent_item)); Q_ASSERT(rss_parent); } else { @@ -174,7 +174,7 @@ void RSSImp::askNewFolder() if (!ok) return; - RssFolderPtr newFolder = rss_parent->addFolder(new_name); + Rss::FolderPtr newFolder = rss_parent->addFolder(new_name); QTreeWidgetItem* folderItem = createFolderListItem(newFolder); if (parent_item) parent_item->addChild(folderItem); @@ -203,9 +203,9 @@ void RSSImp::on_newFeedButton_clicked() if (!m_feedList->isFolder(parent_item)) parent_item = parent_item->parent(); } - RssFolderPtr rss_parent; + Rss::FolderPtr rss_parent; if (parent_item) - rss_parent = qSharedPointerCast(m_feedList->getRSSItem(parent_item)); + rss_parent = qSharedPointerCast(m_feedList->getRSSItem(parent_item)); else rss_parent = m_rssManager; // Ask for feed URL @@ -229,7 +229,7 @@ void RSSImp::on_newFeedButton_clicked() QMessageBox::Ok); return; } - RssFeedPtr stream = rss_parent->addStream(m_rssManager.data(), newUrl); + Rss::FeedPtr stream = rss_parent->addStream(m_rssManager.data(), newUrl); // Create TreeWidget item QTreeWidgetItem* item = createFolderListItem(stream); if (parent_item) @@ -260,7 +260,7 @@ void RSSImp::deleteSelectedItems() foreach (QTreeWidgetItem* item, selectedItems) { if (item == m_feedList->stickyUnreadItem()) continue; - RssFilePtr rss_item = m_feedList->getRSSItem(item); + Rss::FilePtr rss_item = m_feedList->getRSSItem(item); QTreeWidgetItem* parent = item->parent(); // Notify TreeWidget m_feedList->itemAboutToBeRemoved(item); @@ -273,7 +273,7 @@ void RSSImp::deleteSelectedItems() parent = parent->parent(); } // Clear feed data from RSS parser (possible caching). - RssFeed* rssFeed = dynamic_cast(rss_item.data()); + Rss::Feed* rssFeed = dynamic_cast(rss_item.data()); if (rssFeed) m_rssManager->rssParser()->clearFeedData(rssFeed->url()); } @@ -341,9 +341,9 @@ void RSSImp::downloadSelectedTorrents() return; foreach (QListWidgetItem* item, selected_items) { if (!item) continue; - RssFeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); + Rss::FeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); if (!feed) continue; - RssArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); + Rss::ArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); if (!article) continue; // Mark as read @@ -371,9 +371,9 @@ void RSSImp::openSelectedArticlesUrls() return; foreach (QListWidgetItem* item, selected_items) { if (!item) continue; - RssFeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); + Rss::FeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); if (!feed) continue; - RssArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); + Rss::ArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); if (!article) continue; // Mark as read @@ -399,7 +399,7 @@ void RSSImp::renameSelectedRssFile() QTreeWidgetItem* item = selectedItems.first(); if (item == m_feedList->stickyUnreadItem()) return; - RssFilePtr rss_item = m_feedList->getRSSItem(item); + Rss::FilePtr rss_item = m_feedList->getRSSItem(item); bool ok; QString newName; do { @@ -426,7 +426,7 @@ void RSSImp::refreshSelectedItems() { QList selectedItems = m_feedList->selectedItems(); foreach (QTreeWidgetItem* item, selectedItems) { - RssFilePtr file = m_feedList->getRSSItem(item); + Rss::FilePtr file = m_feedList->getRSSItem(item); // Update icons if (item == m_feedList->stickyUnreadItem()) { refreshAllFeeds(); @@ -436,10 +436,10 @@ void RSSImp::refreshSelectedItems() if (!file->refresh()) continue; // Update UI - if (qSharedPointerDynamicCast(file)) { + if (qSharedPointerDynamicCast(file)) { item->setData(0, Qt::DecorationRole, QVariant(QIcon(":/icons/loading.png"))); } - else if (qSharedPointerDynamicCast(file)) { + else if (qSharedPointerDynamicCast(file)) { // Update feeds in the folder foreach (QTreeWidgetItem *feed, m_feedList->getAllFeedItems(item)) feed->setData(0, Qt::DecorationRole, QVariant(QIcon(":/icons/loading.png"))); @@ -463,7 +463,7 @@ void RSSImp::on_markReadButton_clicked() { QList selectedItems = m_feedList->selectedItems(); foreach (QTreeWidgetItem* item, selectedItems) { - RssFilePtr rss_item = m_feedList->getRSSItem(item); + Rss::FilePtr rss_item = m_feedList->getRSSItem(item); Q_ASSERT(rss_item); rss_item->markAsRead(); updateItemInfos(item); @@ -473,7 +473,7 @@ void RSSImp::on_markReadButton_clicked() populateArticleList(m_feedList->currentItem()); } -QTreeWidgetItem* RSSImp::createFolderListItem(const RssFilePtr& rssFile) +QTreeWidgetItem* RSSImp::createFolderListItem(const Rss::FilePtr& rssFile) { Q_ASSERT(rssFile); QTreeWidgetItem* item = new QTreeWidgetItem; @@ -483,14 +483,14 @@ QTreeWidgetItem* RSSImp::createFolderListItem(const RssFilePtr& rssFile) return item; } -void RSSImp::fillFeedsList(QTreeWidgetItem* parent, const RssFolderPtr& rss_parent) +void RSSImp::fillFeedsList(QTreeWidgetItem* parent, const Rss::FolderPtr& rss_parent) { - QList children; + QList children; if (parent) children = rss_parent->getContent(); else children = m_rssManager->getContent(); - foreach (const RssFilePtr& rssFile, children) { + foreach (const Rss::FilePtr& rssFile, children) { QTreeWidgetItem* item = createFolderListItem(rssFile); Q_ASSERT(item); if (parent) @@ -502,12 +502,12 @@ void RSSImp::fillFeedsList(QTreeWidgetItem* parent, const RssFolderPtr& rss_pare m_feedList->itemAdded(item, rssFile); // Recursive call if this is a folder. - if (RssFolderPtr folder = qSharedPointerDynamicCast(rssFile)) + if (Rss::FolderPtr folder = qSharedPointerDynamicCast(rssFile)) fillFeedsList(item, folder); } } -QListWidgetItem* RSSImp::createArticleListItem(const RssArticlePtr& article) +QListWidgetItem* RSSImp::createArticleListItem(const Rss::ArticlePtr& article) { Q_ASSERT(article); QListWidgetItem* item = new QListWidgetItem; @@ -535,7 +535,7 @@ void RSSImp::populateArticleList(QTreeWidgetItem* item) return; } - RssFilePtr rss_item = m_feedList->getRSSItem(item); + Rss::FilePtr rss_item = m_feedList->getRSSItem(item); if (!rss_item) return; @@ -545,14 +545,14 @@ void RSSImp::populateArticleList(QTreeWidgetItem* item) listArticles->clear(); qDebug("Getting the list of news"); - RssArticleList articles; + Rss::ArticleList articles; if (rss_item == m_rssManager) articles = rss_item->unreadArticleListByDateDesc(); else articles = rss_item->articleListByDateDesc(); qDebug("Got the list of news"); - foreach (const RssArticlePtr& article, articles) { + foreach (const Rss::ArticlePtr& article, articles) { QListWidgetItem* articleItem = createArticleListItem(article); listArticles->addItem(articleItem); } @@ -569,9 +569,9 @@ void RSSImp::refreshTextBrowser() if (item == m_currentArticle) return; m_currentArticle = item; - RssFeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); + Rss::FeedPtr feed = m_feedList->getRSSItemFromUrl(item->data(Article::FeedUrlRole).toString()); if (!feed) return; - RssArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); + Rss::ArticlePtr article = feed->getItem(item->data(Article::IdRole).toString()); if (!article) return; QString html; html += "
"; @@ -650,7 +650,7 @@ void RSSImp::updateItemsInfos(const QList& items) void RSSImp::updateItemInfos(QTreeWidgetItem *item) { - RssFilePtr rss_item = m_feedList->getRSSItem(item); + Rss::FilePtr rss_item = m_feedList->getRSSItem(item); if (!rss_item) return; @@ -677,7 +677,7 @@ void RSSImp::updateFeedInfos(const QString& url, const QString& display_name, ui { qDebug() << Q_FUNC_INFO << display_name; QTreeWidgetItem *item = m_feedList->getTreeItemFromUrl(url); - RssFeedPtr stream = qSharedPointerCast(m_feedList->getRSSItem(item)); + Rss::FeedPtr stream = qSharedPointerCast(m_feedList->getRSSItem(item)); item->setText(0, display_name + QString::fromUtf8(" (") + QString::number(nbUnread) + QString(")")); if (!stream->isLoading()) item->setData(0, Qt::DecorationRole, QIcon(stream->iconPath())); @@ -707,7 +707,7 @@ void RSSImp::updateRefreshInterval(uint val) RSSImp::RSSImp(QWidget *parent): QWidget(parent), - m_rssManager(new RssManager) + m_rssManager(new Rss::Manager) { setupUi(this); // Icons diff --git a/src/gui/rss/rss_imp.h b/src/gui/rss/rss_imp.h index 966de0006..5395ef9f8 100644 --- a/src/gui/rss/rss_imp.h +++ b/src/gui/rss/rss_imp.h @@ -78,7 +78,7 @@ private slots: void updateItemInfos(QTreeWidgetItem *item); void openSelectedArticlesUrls(); void downloadSelectedTorrents(); - void fillFeedsList(QTreeWidgetItem *parent = 0, const RssFolderPtr& rss_parent = RssFolderPtr()); + void fillFeedsList(QTreeWidgetItem *parent = 0, const Rss::FolderPtr& rss_parent = Rss::FolderPtr()); void saveSlidersPosition(); void restoreSlidersPosition(); void askNewFolder(); @@ -89,11 +89,11 @@ private slots: void on_rssDownloaderBtn_clicked(); private: - static QListWidgetItem* createArticleListItem(const RssArticlePtr& article); - static QTreeWidgetItem* createFolderListItem(const RssFilePtr& rssFile); + static QListWidgetItem* createArticleListItem(const Rss::ArticlePtr& article); + static QTreeWidgetItem* createFolderListItem(const Rss::FilePtr& rssFile); private: - RssManagerPtr m_rssManager; + Rss::ManagerPtr m_rssManager; FeedListWidget *m_feedList; QListWidgetItem* m_currentArticle; QShortcut *editHotkey; From 28ed981082e2ef548da85f27b7f71cd4aa7f9c54 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sat, 17 Oct 2015 18:59:04 +0300 Subject: [PATCH 070/238] Redesign RSS base classes. --- src/base/base.pri | 4 +- src/base/rss/{ => private}/rssparser.cpp | 34 ++++---- src/base/rss/{ => private}/rssparser.h | 66 ++++++++------- src/base/rss/rssarticle.cpp | 10 +-- src/base/rss/rssarticle.h | 1 - src/base/rss/rssfeed.cpp | 101 +++++++++-------------- src/base/rss/rssfeed.h | 19 ++--- src/base/rss/rssfile.cpp | 9 +- src/base/rss/rssfile.h | 18 ++-- src/base/rss/rssfolder.cpp | 78 ++++------------- src/base/rss/rssfolder.h | 31 +++---- src/base/rss/rssmanager.cpp | 53 ++++++++---- src/base/rss/rssmanager.h | 28 +++++-- src/gui/rss/automatedrssdownloader.cpp | 3 +- src/gui/rss/feedlistwidget.cpp | 7 +- src/gui/rss/rss_imp.cpp | 36 ++++---- 16 files changed, 232 insertions(+), 266 deletions(-) rename src/base/rss/{ => private}/rssparser.cpp (96%) rename src/base/rss/{ => private}/rssparser.h (51%) diff --git a/src/base/base.pri b/src/base/base.pri index ccea8efe1..b38caa601 100644 --- a/src/base/base.pri +++ b/src/base/base.pri @@ -43,7 +43,7 @@ HEADERS += \ $$PWD/rss/rssarticle.h \ $$PWD/rss/rssdownloadrule.h \ $$PWD/rss/rssdownloadrulelist.h \ - $$PWD/rss/rssparser.h \ + $$PWD/rss/private/rssparser.h \ $$PWD/utils/fs.h \ $$PWD/utils/gzip.h \ $$PWD/utils/misc.h \ @@ -94,7 +94,7 @@ SOURCES += \ $$PWD/rss/rssdownloadrule.cpp \ $$PWD/rss/rssdownloadrulelist.cpp \ $$PWD/rss/rssfile.cpp \ - $$PWD/rss/rssparser.cpp \ + $$PWD/rss/private/rssparser.cpp \ $$PWD/utils/fs.cpp \ $$PWD/utils/gzip.cpp \ $$PWD/utils/misc.cpp \ diff --git a/src/base/rss/rssparser.cpp b/src/base/rss/private/rssparser.cpp similarity index 96% rename from src/base/rss/rssparser.cpp rename to src/base/rss/private/rssparser.cpp index 18b138c41..eecfe1af1 100644 --- a/src/base/rss/rssparser.cpp +++ b/src/base/rss/private/rssparser.cpp @@ -29,21 +29,26 @@ */ #include +#include #include #include #include #include +#include #include "base/utils/fs.h" #include "rssparser.h" namespace Rss { - struct ParsingJob + namespace Private { - QString feedUrl; - QString filePath; - }; + struct ParsingJob + { + QString feedUrl; + QByteArray feedData; + }; + } } static const char shortDay[][4] = { @@ -64,7 +69,7 @@ static const char shortMonth[][4] = { "Sep", "Oct", "Nov", "Dec" }; -using namespace Rss; +using namespace Rss::Private; Parser::Parser(QObject *parent) : QThread(parent) @@ -227,11 +232,11 @@ QDateTime Parser::parseDate(const QString &string) return result; } -void Parser::parseRssFile(const QString &feedUrl, const QString &filePath) +void Parser::parseFeedData(const QString &feedUrl, const QByteArray &feedData) { - qDebug() << Q_FUNC_INFO << feedUrl << filePath; + qDebug() << Q_FUNC_INFO << feedUrl; m_mutex.lock(); - ParsingJob job = { feedUrl, Utils::Fs::fromNativePath(filePath) }; + ParsingJob job = { feedUrl, feedData }; m_queue.enqueue(job); // Wake up thread. if (m_queue.count() == 1) { @@ -487,14 +492,9 @@ void Parser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) // read and create items from a rss document void Parser::parseFeed(const ParsingJob &job) { - qDebug() << Q_FUNC_INFO << job.feedUrl << job.filePath; - QFile fileRss(job.filePath); - if (!fileRss.open(QIODevice::ReadOnly | QIODevice::Text)) { - reportFailure(job, tr("Failed to open downloaded RSS file.")); - return; - } + qDebug() << Q_FUNC_INFO << job.feedUrl; - QXmlStreamReader xml(&fileRss); + QXmlStreamReader xml(job.feedData); bool foundChannel = false; while (xml.readNextStartElement()) { if (xml.name() == "rss") { @@ -533,14 +533,10 @@ void Parser::parseFeed(const ParsingJob &job) return; } - // Clean up - fileRss.close(); emit feedParsingFinished(job.feedUrl, QString()); - Utils::Fs::forceRemove(job.filePath); } void Parser::reportFailure(const ParsingJob &job, const QString &error) { emit feedParsingFinished(job.feedUrl, error); - Utils::Fs::forceRemove(job.filePath); } diff --git a/src/base/rss/rssparser.h b/src/base/rss/private/rssparser.h similarity index 51% rename from src/base/rss/rssparser.h rename to src/base/rss/private/rssparser.h index 0a02ca773..89893feaa 100644 --- a/src/base/rss/rssparser.h +++ b/src/base/rss/private/rssparser.h @@ -31,52 +31,56 @@ #ifndef RSSPARSER_H #define RSSPARSER_H +#include #include #include #include +#include #include -#include "rssarticle.h" +class QXmlStreamReader; namespace Rss { - struct ParsingJob; - - class Parser: public QThread + namespace Private { - Q_OBJECT + struct ParsingJob; - public: - explicit Parser(QObject *parent = 0); - virtual ~Parser(); + class Parser: public QThread + { + Q_OBJECT - signals: - void newArticle(const QString &feedUrl, const QVariantHash &rssArticle); - void feedTitle(const QString &feedUrl, const QString &title); - void feedParsingFinished(const QString &feedUrl, const QString &error); + public: + explicit Parser(QObject *parent = 0); + ~Parser(); - public slots: - void parseRssFile(const QString &feedUrl, const QString &filePath); - void clearFeedData(const QString &feedUrl); + void parseFeedData(const QString &feedUrl, const QByteArray &feedData); + void clearFeedData(const QString &feedUrl); - protected: - virtual void run(); + signals: + void newArticle(const QString &feedUrl, const QVariantHash &rssArticle); + void feedTitle(const QString &feedUrl, const QString &title); + void feedParsingFinished(const QString &feedUrl, const QString &error); - private: - static QDateTime parseDate(const QString &string); - void parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl); - void parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl); - void parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl); - void parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl); - void parseFeed(const ParsingJob &job); - void reportFailure(const ParsingJob &job, const QString &error); + private: + void run() override; - bool m_running; - QMutex m_mutex; - QQueue m_queue; - QWaitCondition m_waitCondition; - QHash m_lastBuildDates; // Optimization - }; + static QDateTime parseDate(const QString &string); + + void parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl); + void parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl); + void parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl); + void parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl); + void parseFeed(const ParsingJob &job); + void reportFailure(const ParsingJob &job, const QString &error); + + bool m_running; + QMutex m_mutex; + QQueue m_queue; + QWaitCondition m_waitCondition; + QHash m_lastBuildDates; // Optimization + }; + } } #endif // RSSPARSER_H diff --git a/src/base/rss/rssarticle.cpp b/src/base/rss/rssarticle.cpp index 582575b64..1357d09c9 100644 --- a/src/base/rss/rssarticle.cpp +++ b/src/base/rss/rssarticle.cpp @@ -120,12 +120,10 @@ bool Article::isRead() const void Article::markAsRead() { - if (m_read) return; - - m_read = true; - m_parent->decrementUnreadCount(); - m_parent->markAsDirty(); - emit articleWasRead(); + if (!m_read) { + m_read = true; + emit articleWasRead(); + } } const QString &Article::guid() const diff --git a/src/base/rss/rssarticle.h b/src/base/rss/rssarticle.h index 88f8b4202..e81a10f6a 100644 --- a/src/base/rss/rssarticle.h +++ b/src/base/rss/rssarticle.h @@ -32,7 +32,6 @@ #ifndef RSSARTICLE_H #define RSSARTICLE_H -#include #include #include #include diff --git a/src/base/rss/rssfeed.cpp b/src/base/rss/rssfeed.cpp index 457851676..76acfaf4b 100644 --- a/src/base/rss/rssfeed.cpp +++ b/src/base/rss/rssfeed.cpp @@ -40,9 +40,9 @@ #include "base/utils/fs.h" #include "base/net/downloadmanager.h" #include "base/net/downloadhandler.h" +#include "private/rssparser.h" #include "rssdownloadrulelist.h" #include "rssarticle.h" -#include "rssparser.h" #include "rssfolder.h" #include "rssmanager.h" #include "rssfeed.h" @@ -57,9 +57,8 @@ namespace Rss using namespace Rss; -Feed::Feed(Manager *manager, Folder *parent, const QString &url) +Feed::Feed(const QString &url, Manager *manager) : m_manager(manager) - , m_parent(parent) , m_url (QUrl::fromEncoded(url.toUtf8()).toString()) , m_icon(":/icons/oxygen/application-rss+xml.png") , m_unreadCount(0) @@ -69,34 +68,26 @@ Feed::Feed(Manager *manager, Folder *parent, const QString &url) { qDebug() << Q_FUNC_INFO << m_url; // Listen for new RSS downloads - connect(manager->rssParser(), SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString))); - connect(manager->rssParser(), SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash))); - connect(manager->rssParser(), SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleFeedParsingFinished(QString,QString))); + Private::Parser *const parser = m_manager->rssParser(); + connect(parser, SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString))); + connect(parser, SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash))); + connect(parser, SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleParsingFinished(QString,QString))); // Download the RSS Feed icon Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(iconUrl(), true); - connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString))); - connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); - m_iconUrl = handler->url(); + connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleIconDownloadFinished(QString, QString))); // Load old RSS articles loadItemsFromDisk(); + + refresh(); } Feed::~Feed() { if (!m_icon.startsWith(":/") && QFile::exists(m_icon)) Utils::Fs::forceRemove(m_icon); -} - -Folder *Feed::parent() const -{ - return m_parent; -} - -void Feed::setParent(Folder *parent) -{ - m_parent = parent; + m_manager->rssParser()->clearFeedData(m_url); } void Feed::saveItemsToDisk() @@ -104,7 +95,7 @@ void Feed::saveItemsToDisk() qDebug() << Q_FUNC_INFO << m_url; if (!m_dirty) return; - markAsDirty(false); + m_dirty = false; QIniSettings qBTRSS("qBittorrent", "qBittorrent-rss"); QVariantList oldItems; @@ -140,13 +131,15 @@ void Feed::addArticle(const ArticlePtr &article) int maxArticles = Preferences::instance()->getRSSMaxArticlesPerFeed(); if (!m_articles.contains(article->guid())) { - markAsDirty(); + m_dirty = true; // Update unreadCount if (!article->isRead()) ++m_unreadCount; // Insert in hash table m_articles[article->guid()] = article; + if (!article->isRead()) // Optimization + connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleRead()), Qt::UniqueConnection); // Insertion sort ArticleList::Iterator lowerBound = qLowerBound(m_articlesByDate.begin(), m_articlesByDate.end(), article, articleDateRecentThan); m_articlesByDate.insert(lowerBound, article); @@ -162,7 +155,7 @@ void Feed::addArticle(const ArticlePtr &article) // Check if article was inserted at the end of the list and will break max_articles limit if (Preferences::instance()->isRssDownloadingEnabled()) { if ((lbIndex < maxArticles) && !article->isRead()) - downloadArticleTorrentIfMatching(m_manager->downloadRules(), article); + downloadArticleTorrentIfMatching(article); } } else { @@ -172,7 +165,7 @@ void Feed::addArticle(const ArticlePtr &article) ArticlePtr skipped = m_articles.value(article->guid(), ArticlePtr()); if (skipped) { if (!skipped->isRead()) - downloadArticleTorrentIfMatching(m_manager->downloadRules(), skipped); + downloadArticleTorrentIfMatching(skipped); } } } @@ -186,10 +179,9 @@ bool Feed::refresh() } m_loading = true; // Download the RSS again - Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_url, true); - connect(handler, SIGNAL(downloadFinished(QString, QString)), this, SLOT(handleFinishedDownload(QString, QString))); - connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString))); - m_url = handler->url(); // sync URL encoding + Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(m_url); + connect(handler, SIGNAL(downloadFinished(QString, QByteArray)), this, SLOT(handleRssDownloadFinished(QString, QByteArray))); + connect(handler, SIGNAL(downloadFailed(QString, QString)), this, SLOT(handleRssDownloadFailed(QString, QString))); return true; } @@ -290,11 +282,6 @@ void Feed::markAsRead() m_manager->forwardFeedInfosChanged(m_url, displayName(), 0); } -void Feed::markAsDirty(bool dirty) -{ - m_dirty = dirty; -} - uint Feed::unreadCount() const { return m_unreadCount; @@ -327,28 +314,27 @@ ArticleList Feed::unreadArticleListByDateDesc() const QString Feed::iconUrl() const { // XXX: This works for most sites but it is not perfect - return QString("http://") + QUrl(m_url).host() + QString("/favicon.ico"); + return QString("http://%1/favicon.ico").arg(QUrl(m_url).host()); } -// read and store the downloaded rss' informations -void Feed::handleFinishedDownload(const QString &url, const QString &filePath) +void Feed::handleIconDownloadFinished(const QString &url, const QString &filePath) { - if (url == m_url) { - qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url; - // Parse the download RSS - m_manager->rssParser()->parseRssFile(m_url, filePath); - } - else if (url == m_iconUrl) { - m_icon = filePath; - qDebug() << Q_FUNC_INFO << "icon path:" << m_icon; - m_manager->forwardFeedIconChanged(m_url, m_icon); - } + Q_UNUSED(url); + + m_icon = filePath; + qDebug() << Q_FUNC_INFO << "icon path:" << m_icon; + m_manager->forwardFeedIconChanged(m_url, m_icon); } -void Feed::handleDownloadFailure(const QString &url, const QString &error) +void Feed::handleRssDownloadFinished(const QString &url, const QByteArray &data) { - if (url != m_url) return; + qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url; + // Parse the download RSS + m_manager->rssParser()->parseFeedData(m_url, data); +} +void Feed::handleRssDownloadFailed(const QString &url, const QString &error) +{ m_inErrorState = true; m_loading = false; m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); @@ -368,9 +354,10 @@ void Feed::handleFeedTitle(const QString &feedUrl, const QString &title) m_manager->forwardFeedInfosChanged(feedUrl, title, m_unreadCount); } -void Feed::downloadArticleTorrentIfMatching(DownloadRuleList *rules, const ArticlePtr &article) +void Feed::downloadArticleTorrentIfMatching(const ArticlePtr &article) { Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); + DownloadRuleList *rules = m_manager->downloadRules(); DownloadRulePtr matchingRule = rules->findMatchingRule(m_url, article->title()); if (!matchingRule) return; @@ -378,7 +365,6 @@ void Feed::downloadArticleTorrentIfMatching(DownloadRuleList *rules, const Artic QDateTime lastMatch = matchingRule->lastMatch(); if (lastMatch.isValid()) { if (QDateTime::currentDateTime() < lastMatch.addDays(matchingRule->ignoreDays())) { - connect(article.data(), SIGNAL(articleWasRead()), SLOT(handleArticleStateChanged()), Qt::UniqueConnection); article->markAsRead(); return; } @@ -396,8 +382,7 @@ void Feed::downloadArticleTorrentIfMatching(DownloadRuleList *rules, const Artic } Logger::instance()->addMessage(tr("Automatically downloading '%1' torrent from '%2' RSS feed...").arg(article->title()).arg(displayName())); - connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString &)), Qt::UniqueConnection); - if (BitTorrent::MagnetUri(torrent_url).isValid()) + if (BitTorrent::MagnetUri(torrentUrl).isValid()) article->markAsRead(); else connect(BitTorrent::Session::instance(), SIGNAL(downloadFromUrlFinished(QString)), article.data(), SLOT(handleTorrentDownloadSuccess(const QString&)), Qt::UniqueConnection); @@ -415,10 +400,9 @@ void Feed::downloadArticleTorrentIfMatching(DownloadRuleList *rules, const Artic void Feed::recheckRssItemsForDownload() { Q_ASSERT(Preferences::instance()->isRssDownloadingEnabled()); - DownloadRuleList *rules = m_manager->downloadRules(); foreach (const ArticlePtr &article, m_articlesByDate) { if (!article->isRead()) - downloadArticleTorrentIfMatching(rules, article); + downloadArticleTorrentIfMatching(article); } } @@ -440,7 +424,7 @@ void Feed::handleNewArticle(const QString &feedUrl, const QVariantHash &articleD //m_manager->forwardFeedContentChanged(m_url); } -void Feed::handleFeedParsingFinished(const QString &feedUrl, const QString &error) +void Feed::handleParsingFinished(const QString &feedUrl, const QString &error) { if (feedUrl != m_url) return; @@ -459,12 +443,9 @@ void Feed::handleFeedParsingFinished(const QString &feedUrl, const QString &erro saveItemsToDisk(); } -void Feed::handleArticleStateChanged() -{ - m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); -} - -void Feed::decrementUnreadCount() +void Feed::handleArticleRead() { --m_unreadCount; + m_dirty = true; + m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); } diff --git a/src/base/rss/rssfeed.h b/src/base/rss/rssfeed.h index 30fd45830..5198234bd 100644 --- a/src/base/rss/rssfeed.h +++ b/src/base/rss/rssfeed.h @@ -58,11 +58,9 @@ namespace Rss Q_OBJECT public: - Feed(Manager *manager, Folder *parent, const QString &url); + Feed(const QString &url, Manager *manager); ~Feed(); - Folder *parent() const; - void setParent(Folder *parent); bool refresh(); QString id() const; void removeAllSettings(); @@ -78,38 +76,35 @@ namespace Rss ArticlePtr getItem(const QString &guid) const; uint count() const; void markAsRead(); - void markAsDirty(bool dirty = true); uint unreadCount() const; ArticleList articleListByDateDesc() const; const ArticleHash &articleHash() const; ArticleList unreadArticleListByDateDesc() const; - void decrementUnreadCount(); void recheckRssItemsForDownload(); private slots: - void handleFinishedDownload(const QString &url, const QString &filePath); - void handleDownloadFailure(const QString &url, const QString &error); + void handleIconDownloadFinished(const QString &url, const QString &filePath); + void handleRssDownloadFinished(const QString &url, const QByteArray &data); + void handleRssDownloadFailed(const QString &url, const QString &error); void handleFeedTitle(const QString &feedUrl, const QString &title); void handleNewArticle(const QString &feedUrl, const QVariantHash &article); - void handleFeedParsingFinished(const QString &feedUrl, const QString &error); - void handleArticleStateChanged(); + void handleParsingFinished(const QString &feedUrl, const QString &error); + void handleArticleRead(); private: QString iconUrl() const; void loadItemsFromDisk(); void addArticle(const ArticlePtr &article); - void downloadArticleTorrentIfMatching(DownloadRuleList *rules, const ArticlePtr &article); + void downloadArticleTorrentIfMatching(const ArticlePtr &article); private: Manager *m_manager; ArticleHash m_articles; ArticleList m_articlesByDate; // Articles sorted by date (more recent first) - Folder *m_parent; QString m_title; QString m_url; QString m_alias; QString m_icon; - QString m_iconUrl; uint m_unreadCount; bool m_dirty; bool m_inErrorState; diff --git a/src/base/rss/rssfile.cpp b/src/base/rss/rssfile.cpp index 1f911fdda..394bd56f0 100644 --- a/src/base/rss/rssfile.cpp +++ b/src/base/rss/rssfile.cpp @@ -36,11 +36,16 @@ using namespace Rss; File::~File() {} +Folder *File::parentFolder() const +{ + return m_parent; +} + QStringList File::pathHierarchy() const { QStringList path; - if (parent()) - path << parent()->pathHierarchy(); + if (m_parent) + path << m_parent->pathHierarchy(); path << id(); return path; } diff --git a/src/base/rss/rssfile.h b/src/base/rss/rssfile.h index 0b5452624..285da93f6 100644 --- a/src/base/rss/rssfile.h +++ b/src/base/rss/rssfile.h @@ -55,25 +55,27 @@ namespace Rss public: virtual ~File(); - virtual uint unreadCount() const = 0; - virtual QString displayName() const = 0; virtual QString id() const = 0; + virtual QString displayName() const = 0; + virtual uint unreadCount() const = 0; virtual QString iconPath() const = 0; - virtual void rename(const QString &newName) = 0; - virtual void markAsRead() = 0; - virtual Folder *parent() const = 0; - virtual void setParent(Folder *parent) = 0; - virtual bool refresh() = 0; virtual ArticleList articleListByDateDesc() const = 0; virtual ArticleList unreadArticleListByDateDesc() const = 0; + + virtual void rename(const QString &newName) = 0; + virtual void markAsRead() = 0; + virtual bool refresh() = 0; virtual void removeAllSettings() = 0; virtual void saveItemsToDisk() = 0; virtual void recheckRssItemsForDownload() = 0; + Folder *parentFolder() const; QStringList pathHierarchy() const; protected: - uint m_unreadCount; + friend class Folder; + + Folder *m_parent = nullptr; }; } diff --git a/src/base/rss/rssfolder.cpp b/src/base/rss/rssfolder.cpp index 0a054c9b8..e17afecb9 100644 --- a/src/base/rss/rssfolder.cpp +++ b/src/base/rss/rssfolder.cpp @@ -40,24 +40,11 @@ using namespace Rss; -Folder::Folder(Folder *parent, const QString &name) - : m_parent(parent) - , m_name(name) +Folder::Folder(const QString &name) + : m_name(name) { } -Folder::~Folder() {} - -Folder *Folder::parent() const -{ - return m_parent; -} - -void Folder::setParent(Folder *parent) -{ - m_parent = parent; -} - uint Folder::unreadCount() const { uint nbUnread = 0; @@ -78,31 +65,6 @@ void Folder::removeChild(const QString &childId) } } -FolderPtr Folder::addFolder(const QString &name) -{ - FolderPtr subfolder; - if (!m_children.contains(name)) { - subfolder = FolderPtr(new Folder(this, name)); - m_children[name] = subfolder; - } - else { - subfolder = qSharedPointerDynamicCast(m_children.value(name)); - } - return subfolder; -} - -FeedPtr Folder::addStream(Manager *manager, const QString &url) -{ - qDebug() << Q_FUNC_INFO << manager << url; - FeedPtr stream(new Feed(manager, this, url)); - Q_ASSERT(stream); - qDebug() << "Stream URL is " << stream->url(); - Q_ASSERT(!m_children.contains(stream->url())); - m_children[stream->url()] = stream; - stream->refresh(); - return stream; -} - // Refresh All Children bool Folder::refresh() { @@ -176,7 +138,8 @@ void Folder::rename(const QString &newName) Q_ASSERT(!m_parent->hasChild(newName)); if (!m_parent->hasChild(newName)) { // Update parent - m_parent->renameChildFolder(m_name, newName); + FilePtr folder = m_parent->m_children.take(m_name); + m_parent->m_children[newName] = folder; // Actually rename m_name = newName; } @@ -224,20 +187,17 @@ QHash Folder::getAllFeedsAsHash() const return ret; } -void Folder::addFile(const FilePtr &item) +bool Folder::addFile(const FilePtr &item) { - if (FeedPtr feed = qSharedPointerDynamicCast(item)) { - Q_ASSERT(!m_children.contains(feed->url())); - m_children[feed->url()] = item; - qDebug("Added feed %s to folder ./%s", qPrintable(feed->url()), qPrintable(m_name)); + Q_ASSERT(!m_children.contains(item->id())); + if (!m_children.contains(item->id())) { + m_children[item->id()] = item; + // Update parent + item->m_parent = this; + return true; } - else if (FolderPtr folder = qSharedPointerDynamicCast(item)) { - Q_ASSERT(!m_children.contains(folder->displayName())); - m_children[folder->displayName()] = item; - qDebug("Added folder %s to folder ./%s", qPrintable(folder->displayName()), qPrintable(m_name)); - } - // Update parent - item->setParent(this); + + return false; } void Folder::removeAllItems() @@ -245,6 +205,11 @@ void Folder::removeAllItems() m_children.clear(); } +FilePtr Folder::child(const QString &childId) +{ + return m_children.value(childId); +} + void Folder::removeAllSettings() { FileHash::ConstIterator it = m_children.begin(); @@ -274,13 +239,6 @@ bool Folder::hasChild(const QString &childId) return m_children.contains(childId); } -void Folder::renameChildFolder(const QString &oldName, const QString &newName) -{ - Q_ASSERT(m_children.contains(oldName)); - FilePtr folder = m_children.take(oldName); - m_children[newName] = folder; -} - FilePtr Folder::takeChild(const QString &childId) { return m_children.take(childId); diff --git a/src/base/rss/rssfolder.h b/src/base/rss/rssfolder.h index 78ff21401..7adefb423 100644 --- a/src/base/rss/rssfolder.h +++ b/src/base/rss/rssfolder.h @@ -48,19 +48,12 @@ namespace Rss typedef QSharedPointer FolderPtr; typedef QList FeedList; - class Folder: public QObject, public File + class Folder: public File { - Q_OBJECT - public: - explicit Folder(Folder *parent = 0, const QString &name = QString()); - ~Folder(); + explicit Folder(const QString &name = QString()); - Folder *parent() const; - void setParent(Folder *parent); uint unreadCount() const; - FeedPtr addStream(Manager *manager, const QString &url); - FolderPtr addFolder(const QString &name); uint getNbFeeds() const; FileList getContent() const; FeedList getAllFeeds() const; @@ -71,22 +64,20 @@ namespace Rss bool hasChild(const QString &childId); ArticleList articleListByDateDesc() const; ArticleList unreadArticleListByDateDesc() const; - void removeAllSettings(); - void saveItemsToDisk(); - void removeAllItems(); - void renameChildFolder(const QString &oldName, const QString &newName); - FilePtr takeChild(const QString &childId); - void recheckRssItemsForDownload(); - public slots: - bool refresh(); - void addFile(const FilePtr &item); - void removeChild(const QString &childId); void rename(const QString &newName); void markAsRead(); + bool refresh(); + void removeAllSettings(); + void saveItemsToDisk(); + void recheckRssItemsForDownload(); + void removeAllItems(); + FilePtr child(const QString &childId); + FilePtr takeChild(const QString &childId); + bool addFile(const FilePtr &item); + void removeChild(const QString &childId); private: - Folder *m_parent; QString m_name; FileHash m_children; }; diff --git a/src/base/rss/rssmanager.cpp b/src/base/rss/rssmanager.cpp index 17e665661..a7bd087d1 100644 --- a/src/base/rss/rssmanager.cpp +++ b/src/base/rss/rssmanager.cpp @@ -33,19 +33,23 @@ #include "base/logger.h" #include "base/preferences.h" +#include "private/rssparser.h" +#include "rssfolder.h" #include "rssfeed.h" #include "rssarticle.h" #include "rssdownloadrulelist.h" -#include "rssparser.h" #include "rssmanager.h" static const int MSECS_PER_MIN = 60000; using namespace Rss; +using namespace Rss::Private; -Manager::Manager() - : m_downloadRules(new DownloadRuleList) +Manager::Manager(QObject *parent) + : QObject(parent) + , m_downloadRules(new DownloadRuleList) , m_rssParser(new Parser(this)) + , m_rootFolder(new Folder) { connect(&m_refreshTimer, SIGNAL(timeout()), SLOT(refresh())); m_refreshInterval = Preferences::instance()->getRSSRefreshInterval(); @@ -57,16 +61,12 @@ Manager::~Manager() qDebug("Deleting RSSManager..."); delete m_downloadRules; delete m_rssParser; - saveItemsToDisk(); + m_rootFolder->saveItemsToDisk(); saveStreamList(); + m_rootFolder.clear(); qDebug("RSSManager deleted"); } -Parser *Manager::rssParser() const -{ - return m_rssParser; -} - void Manager::updateRefreshInterval(uint val) { if (m_refreshInterval != val) { @@ -95,14 +95,22 @@ void Manager::loadStreamList() const QString feedUrl = path.takeLast(); qDebug() << "Feed URL:" << feedUrl; // Create feed path (if it does not exists) - Folder *feedParent = this; + FolderPtr feedParent = m_rootFolder; foreach (const QString &folderName, path) { - qDebug() << "Adding parent folder:" << folderName; - feedParent = feedParent->addFolder(folderName).data(); + if (!feedParent->hasChild(folderName)) { + qDebug() << "Adding parent folder:" << folderName; + FolderPtr folder(new Folder(folderName)); + feedParent->addFile(folder); + feedParent = folder; + } + else { + feedParent = qSharedPointerDynamicCast(feedParent->child(folderName)); + } } // Create feed qDebug() << "Adding feed to parent folder"; - FeedPtr stream = feedParent->addStream(this, feedUrl); + FeedPtr stream(new Feed(feedUrl, this)); + feedParent->addFile(stream); const QString &alias = aliases[i]; if (!alias.isEmpty()) stream->rename(alias); @@ -128,7 +136,7 @@ void Manager::forwardFeedIconChanged(const QString &url, const QString &iconPath void Manager::moveFile(const FilePtr &file, const FolderPtr &destinationFolder) { - Folder *srcFolder = file->parent(); + Folder *srcFolder = file->parentFolder(); if (destinationFolder != srcFolder) { // Remove reference in old folder srcFolder->takeChild(file->id()); @@ -144,7 +152,7 @@ void Manager::saveStreamList() const { QStringList streamsUrl; QStringList aliases; - FeedList streams = getAllFeeds(); + FeedList streams = m_rootFolder->getAllFeeds(); foreach (const FeedPtr &stream, streams) { // This backslash has nothing to do with path handling QString streamPath = stream->pathHierarchy().join("\\"); @@ -164,3 +172,18 @@ DownloadRuleList *Manager::downloadRules() const Q_ASSERT(m_downloadRules); return m_downloadRules; } + +FolderPtr Manager::rootFolder() const +{ + return m_rootFolder; +} + +Parser *Manager::rssParser() const +{ + return m_rssParser; +} + +void Manager::refresh() +{ + m_rootFolder->refresh(); +} diff --git a/src/base/rss/rssmanager.h b/src/base/rss/rssmanager.h index 515d45a64..2321ce5a2 100644 --- a/src/base/rss/rssmanager.h +++ b/src/base/rss/rssmanager.h @@ -32,31 +32,44 @@ #ifndef RSSMANAGER_H #define RSSMANAGER_H +#include #include #include -#include "rssfolder.h" - namespace Rss { class DownloadRuleList; - class Parser; + class File; + class Folder; + class Feed; class Manager; + typedef QSharedPointer FilePtr; + typedef QSharedPointer FolderPtr; + typedef QSharedPointer FeedPtr; + + namespace Private + { + class Parser; + } + typedef QSharedPointer ManagerPtr; - class Manager: public Folder + class Manager: public QObject { Q_OBJECT public: - Manager(); + explicit Manager(QObject *parent = 0); ~Manager(); - Parser *rssParser() const; DownloadRuleList *downloadRules() const; + FolderPtr rootFolder() const; + + Private::Parser *rssParser() const; public slots: + void refresh(); void loadStreamList(); void saveStreamList() const; void forwardFeedContentChanged(const QString &url); @@ -74,7 +87,8 @@ namespace Rss QTimer m_refreshTimer; uint m_refreshInterval; DownloadRuleList *m_downloadRules; - Parser *m_rssParser; + Private::Parser *m_rssParser; + FolderPtr m_rootFolder; }; } diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index 98ef89088..5b5493763 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -39,6 +39,7 @@ #include "base/rss/rssdownloadrulelist.h" #include "base/preferences.h" #include "base/rss/rssmanager.h" +#include "base/rss/rssfolder.h" #include "base/rss/rssfeed.h" #include "guiiconprovider.h" #include "autoexpandabledialog.h" @@ -524,7 +525,7 @@ void AutomatedRssDownloader::updateMatchingArticles() Rss::ManagerPtr manager = m_manager.toStrongRef(); if (!manager) return; - const QHash all_feeds = manager->getAllFeedsAsHash(); + const QHash all_feeds = manager->rootFolder()->getAllFeedsAsHash(); saveEditedRule(); foreach (const QListWidgetItem *rule_item, ui->listRules->selectedItems()) { diff --git a/src/gui/rss/feedlistwidget.cpp b/src/gui/rss/feedlistwidget.cpp index ebdd325d6..6f00ffcbd 100644 --- a/src/gui/rss/feedlistwidget.cpp +++ b/src/gui/rss/feedlistwidget.cpp @@ -29,6 +29,7 @@ */ #include "base/rss/rssmanager.h" +#include "base/rss/rssfolder.h" #include "base/rss/rssfeed.h" #include "guiiconprovider.h" #include "feedlistwidget.h" @@ -40,9 +41,9 @@ FeedListWidget::FeedListWidget(QWidget *parent, const Rss::ManagerPtr& rssmanage setColumnCount(1); headerItem()->setText(0, tr("RSS feeds")); m_unreadStickyItem = new QTreeWidgetItem(this); - m_unreadStickyItem->setText(0, tr("Unread") + QString::fromUtf8(" (") + QString::number(rssmanager->unreadCount())+ QString(")")); + m_unreadStickyItem->setText(0, tr("Unread") + QString::fromUtf8(" (") + QString::number(rssmanager->rootFolder()->unreadCount()) + QString(")")); m_unreadStickyItem->setData(0,Qt::DecorationRole, GuiIconProvider::instance()->getIcon("mail-folder-inbox")); - itemAdded(m_unreadStickyItem, rssmanager); + itemAdded(m_unreadStickyItem, rssmanager->rootFolder()); connect(this, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), SLOT(updateCurrentFeed(QTreeWidgetItem*))); setCurrentItem(m_unreadStickyItem); } @@ -202,7 +203,7 @@ void FeedListWidget::dropEvent(QDropEvent *event) { dest_folder = qSharedPointerCast(getRSSItem(dest_folder_item)); folders_altered << dest_folder_item; } else { - dest_folder = m_rssManager; + dest_folder = m_rssManager->rootFolder(); } QList src_items = selectedItems(); // Check if there is not going to overwrite another file diff --git a/src/gui/rss/rss_imp.cpp b/src/gui/rss/rss_imp.cpp index a37dac89c..853204f1b 100644 --- a/src/gui/rss/rss_imp.cpp +++ b/src/gui/rss/rss_imp.cpp @@ -47,7 +47,6 @@ #include "base/rss/rssmanager.h" #include "base/rss/rssfolder.h" #include "base/rss/rssarticle.h" -#include "base/rss/rssparser.h" #include "base/rss/rssfeed.h" #include "automatedrssdownloader.h" #include "guiiconprovider.h" @@ -79,7 +78,7 @@ void RSSImp::displayRSSListMenu(const QPoint& pos) myRSSListMenu.addAction(actionMark_items_read); myRSSListMenu.addSeparator(); if (selectedItems.size() == 1) { - if (m_feedList->getRSSItem(selectedItems.first()) != m_rssManager) { + if (m_feedList->getRSSItem(selectedItems.first()) != m_rssManager->rootFolder()) { myRSSListMenu.addAction(actionRename); myRSSListMenu.addAction(actionDelete); myRSSListMenu.addSeparator(); @@ -167,14 +166,15 @@ void RSSImp::askNewFolder() Q_ASSERT(rss_parent); } else { - rss_parent = m_rssManager; + rss_parent = m_rssManager->rootFolder(); } bool ok; QString new_name = AutoExpandableDialog::getText(this, tr("Please choose a folder name"), tr("Folder name:"), QLineEdit::Normal, tr("New folder"), &ok); - if (!ok) + if (!ok || rss_parent->hasChild(new_name)) return; - Rss::FolderPtr newFolder = rss_parent->addFolder(new_name); + Rss::FolderPtr newFolder(new Rss::Folder(new_name)); + rss_parent->addFile(newFolder); QTreeWidgetItem* folderItem = createFolderListItem(newFolder); if (parent_item) parent_item->addChild(folderItem); @@ -207,7 +207,7 @@ void RSSImp::on_newFeedButton_clicked() if (parent_item) rss_parent = qSharedPointerCast(m_feedList->getRSSItem(parent_item)); else - rss_parent = m_rssManager; + rss_parent = m_rssManager->rootFolder(); // Ask for feed URL bool ok; QString clip_txt = qApp->clipboard()->text(); @@ -229,7 +229,9 @@ void RSSImp::on_newFeedButton_clicked() QMessageBox::Ok); return; } - Rss::FeedPtr stream = rss_parent->addStream(m_rssManager.data(), newUrl); + + Rss::FeedPtr stream(new Rss::Feed(newUrl, m_rssManager.data())); + rss_parent->addFile(stream); // Create TreeWidget item QTreeWidgetItem* item = createFolderListItem(stream); if (parent_item) @@ -265,17 +267,13 @@ void RSSImp::deleteSelectedItems() // Notify TreeWidget m_feedList->itemAboutToBeRemoved(item); // Actually delete the item - rss_item->parent()->removeChild(rss_item->id()); + rss_item->parentFolder()->removeChild(rss_item->id()); delete item; // Update parents count - while (parent && parent != m_feedList->invisibleRootItem()) { - updateItemInfos (parent); + while (parent && (parent != m_feedList->invisibleRootItem())) { + updateItemInfos(parent); parent = parent->parent(); } - // Clear feed data from RSS parser (possible caching). - Rss::Feed* rssFeed = dynamic_cast(rss_item.data()); - if (rssFeed) - m_rssManager->rssParser()->clearFeedData(rssFeed->url()); } m_rssManager->saveStreamList(); // Update Unread items @@ -406,7 +404,7 @@ void RSSImp::renameSelectedRssFile() newName = AutoExpandableDialog::getText(this, tr("Please choose a new name for this RSS feed"), tr("New feed name:"), QLineEdit::Normal, m_feedList->getRSSItem(item)->displayName(), &ok); // Check if name is already taken if (ok) { - if (rss_item->parent()->hasChild(newName)) { + if (rss_item->parentFolder()->hasChild(newName)) { QMessageBox::warning(0, tr("Name already in use"), tr("This name is already used by another item, please choose another one.")); ok = false; } @@ -489,7 +487,7 @@ void RSSImp::fillFeedsList(QTreeWidgetItem* parent, const Rss::FolderPtr& rss_pa if (parent) children = rss_parent->getContent(); else - children = m_rssManager->getContent(); + children = m_rssManager->rootFolder()->getContent(); foreach (const Rss::FilePtr& rssFile, children) { QTreeWidgetItem* item = createFolderListItem(rssFile); Q_ASSERT(item); @@ -546,7 +544,7 @@ void RSSImp::populateArticleList(QTreeWidgetItem* item) qDebug("Getting the list of news"); Rss::ArticleList articles; - if (rss_item == m_rssManager) + if (rss_item == m_rssManager->rootFolder()) articles = rss_item->unreadArticleListByDateDesc(); else articles = rss_item->articleListByDateDesc(); @@ -655,7 +653,7 @@ void RSSImp::updateItemInfos(QTreeWidgetItem *item) return; QString name; - if (rss_item == m_rssManager) { + if (rss_item == m_rssManager->rootFolder()) { name = tr("Unread"); emit updateRSSCount(rss_item->unreadCount()); } @@ -799,7 +797,7 @@ void RSSImp::on_rssDownloaderBtn_clicked() AutomatedRssDownloader dlg(m_rssManager, this); dlg.exec(); if (dlg.isRssDownloaderEnabled()) { - m_rssManager->recheckRssItemsForDownload(); + m_rssManager->rootFolder()->recheckRssItemsForDownload(); refreshAllFeeds(); } } From 66620810442085e4282b772f8892190c9dd03d38 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sat, 24 Oct 2015 11:13:35 +0300 Subject: [PATCH 071/238] Improve RSS parsing logic. --- src/base/rss/private/rssparser.cpp | 495 ++++++++++++----------------- src/base/rss/private/rssparser.h | 49 +-- src/base/rss/rssfeed.cpp | 38 ++- src/base/rss/rssfeed.h | 13 +- src/base/rss/rssmanager.cpp | 11 +- src/base/rss/rssmanager.h | 11 +- 6 files changed, 263 insertions(+), 354 deletions(-) diff --git a/src/base/rss/private/rssparser.cpp b/src/base/rss/private/rssparser.cpp index eecfe1af1..8dc1b0849 100644 --- a/src/base/rss/private/rssparser.cpp +++ b/src/base/rss/private/rssparser.cpp @@ -1,6 +1,7 @@ /* - * Bittorrent Client using Qt4 and libtorrent. - * Copyright (C) 2012 Christophe Dumez + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -30,248 +31,226 @@ #include #include -#include #include #include #include #include -#include "base/utils/fs.h" #include "rssparser.h" -namespace Rss +namespace { - namespace Private + const char shortDay[][4] = { + "Mon", "Tue", "Wed", + "Thu", "Fri", "Sat", + "Sun" + }; + + const char longDay[][10] = { + "Monday", "Tuesday", "Wednesday", + "Thursday", "Friday", "Saturday", + "Sunday" + }; + + const char shortMonth[][4] = { + "Jan", "Feb", "Mar", "Apr", + "May", "Jun", "Jul", "Aug", + "Sep", "Oct", "Nov", "Dec" + }; + + // Ported to Qt from KDElibs4 + QDateTime parseDate(const QString &string) { - struct ParsingJob - { - QString feedUrl; - QByteArray feedData; - }; - } -} - -static const char shortDay[][4] = { - "Mon", "Tue", "Wed", - "Thu", "Fri", "Sat", - "Sun" -}; - -static const char longDay[][10] = { - "Monday", "Tuesday", "Wednesday", - "Thursday", "Friday", "Saturday", - "Sunday" -}; - -static const char shortMonth[][4] = { - "Jan", "Feb", "Mar", "Apr", - "May", "Jun", "Jul", "Aug", - "Sep", "Oct", "Nov", "Dec" -}; - -using namespace Rss::Private; - -Parser::Parser(QObject *parent) - : QThread(parent) - , m_running(true) -{ - start(); -} - -Parser::~Parser() -{ - m_running = false; - m_waitCondition.wakeOne(); - wait(); -} - -// Ported to Qt from KDElibs4 -QDateTime Parser::parseDate(const QString &string) -{ - const QString str = string.trimmed(); - if (str.isEmpty()) - return QDateTime::currentDateTime(); - - int nyear = 6; // indexes within string to values - int nmonth = 4; - int nday = 2; - int nwday = 1; - int nhour = 7; - int nmin = 8; - int nsec = 9; - // Also accept obsolete form "Weekday, DD-Mon-YY HH:MM:SS ±hhmm" - QRegExp rx("^(?:([A-Z][a-z]+),\\s*)?(\\d{1,2})(\\s+|-)([^-\\s]+)(\\s+|-)(\\d{2,4})\\s+(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s+(\\S+)$"); - QStringList parts; - if (!str.indexOf(rx)) { - // Check that if date has '-' separators, both separators are '-'. - parts = rx.capturedTexts(); - bool h1 = (parts[3] == QLatin1String("-")); - bool h2 = (parts[5] == QLatin1String("-")); - if (h1 != h2) + const QString str = string.trimmed(); + if (str.isEmpty()) return QDateTime::currentDateTime(); - } - else { - // Check for the obsolete form "Wdy Mon DD HH:MM:SS YYYY" - rx = QRegExp("^([A-Z][a-z]+)\\s+(\\S+)\\s+(\\d\\d)\\s+(\\d\\d):(\\d\\d):(\\d\\d)\\s+(\\d\\d\\d\\d)$"); - if (str.indexOf(rx)) - return QDateTime::currentDateTime(); - nyear = 7; - nmonth = 2; - nday = 3; - nwday = 1; - nhour = 4; - nmin = 5; - nsec = 6; - parts = rx.capturedTexts(); - } - bool ok[4]; - const int day = parts[nday].toInt(&ok[0]); - int year = parts[nyear].toInt(&ok[1]); - const int hour = parts[nhour].toInt(&ok[2]); - const int minute = parts[nmin].toInt(&ok[3]); - if (!ok[0] || !ok[1] || !ok[2] || !ok[3]) - return QDateTime::currentDateTime(); - - int second = 0; - if (!parts[nsec].isEmpty()) { - second = parts[nsec].toInt(&ok[0]); - if (!ok[0]) - return QDateTime::currentDateTime(); - } - - bool leapSecond = (second == 60); - if (leapSecond) - second = 59; // apparently a leap second - validate below, once time zone is known - int month = 0; - for ( ; (month < 12) && (parts[nmonth] != shortMonth[month]); ++month); - int dayOfWeek = -1; - if (!parts[nwday].isEmpty()) { - // Look up the weekday name - while (++dayOfWeek < 7 && (shortDay[dayOfWeek] != parts[nwday])); - if (dayOfWeek >= 7) - for (dayOfWeek = 0; dayOfWeek < 7 && (longDay[dayOfWeek] != parts[nwday]); ++dayOfWeek); - } - - // if (month >= 12 || dayOfWeek >= 7 - // || (dayOfWeek < 0 && format == RFCDateDay)) - // return QDateTime; - int i = parts[nyear].size(); - if (i < 4) { - // It's an obsolete year specification with less than 4 digits - year += (i == 2 && year < 50) ? 2000 : 1900; - } - - // Parse the UTC offset part - int offset = 0; // set default to '-0000' - bool negOffset = false; - if (parts.count() > 10) { - rx = QRegExp("^([+-])(\\d\\d)(\\d\\d)$"); - if (!parts[10].indexOf(rx)) { - // It's a UTC offset ±hhmm + int nyear = 6; // indexes within string to values + int nmonth = 4; + int nday = 2; + int nwday = 1; + int nhour = 7; + int nmin = 8; + int nsec = 9; + // Also accept obsolete form "Weekday, DD-Mon-YY HH:MM:SS ±hhmm" + QRegExp rx("^(?:([A-Z][a-z]+),\\s*)?(\\d{1,2})(\\s+|-)([^-\\s]+)(\\s+|-)(\\d{2,4})\\s+(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s+(\\S+)$"); + QStringList parts; + if (!str.indexOf(rx)) { + // Check that if date has '-' separators, both separators are '-'. parts = rx.capturedTexts(); - offset = parts[2].toInt(&ok[0]) * 3600; - int offsetMin = parts[3].toInt(&ok[1]); - if (!ok[0] || !ok[1] || offsetMin > 59) - return QDateTime(); - offset += offsetMin * 60; - negOffset = (parts[1] == QLatin1String("-")); - if (negOffset) - offset = -offset; + bool h1 = (parts[3] == QLatin1String("-")); + bool h2 = (parts[5] == QLatin1String("-")); + if (h1 != h2) + return QDateTime::currentDateTime(); } else { - // Check for an obsolete time zone name - QByteArray zone = parts[10].toLatin1(); - if (zone.length() == 1 && isalpha(zone[0]) && toupper(zone[0]) != 'J') { - negOffset = true; // military zone: RFC 2822 treats as '-0000' + // Check for the obsolete form "Wdy Mon DD HH:MM:SS YYYY" + rx = QRegExp("^([A-Z][a-z]+)\\s+(\\S+)\\s+(\\d\\d)\\s+(\\d\\d):(\\d\\d):(\\d\\d)\\s+(\\d\\d\\d\\d)$"); + if (str.indexOf(rx)) + return QDateTime::currentDateTime(); + nyear = 7; + nmonth = 2; + nday = 3; + nwday = 1; + nhour = 4; + nmin = 5; + nsec = 6; + parts = rx.capturedTexts(); + } + + bool ok[4]; + const int day = parts[nday].toInt(&ok[0]); + int year = parts[nyear].toInt(&ok[1]); + const int hour = parts[nhour].toInt(&ok[2]); + const int minute = parts[nmin].toInt(&ok[3]); + if (!ok[0] || !ok[1] || !ok[2] || !ok[3]) + return QDateTime::currentDateTime(); + + int second = 0; + if (!parts[nsec].isEmpty()) { + second = parts[nsec].toInt(&ok[0]); + if (!ok[0]) + return QDateTime::currentDateTime(); + } + + bool leapSecond = (second == 60); + if (leapSecond) + second = 59; // apparently a leap second - validate below, once time zone is known + int month = 0; + for ( ; (month < 12) && (parts[nmonth] != shortMonth[month]); ++month); + int dayOfWeek = -1; + if (!parts[nwday].isEmpty()) { + // Look up the weekday name + while (++dayOfWeek < 7 && (shortDay[dayOfWeek] != parts[nwday])); + if (dayOfWeek >= 7) + for (dayOfWeek = 0; dayOfWeek < 7 && (longDay[dayOfWeek] != parts[nwday]); ++dayOfWeek); + } + + // if (month >= 12 || dayOfWeek >= 7 + // || (dayOfWeek < 0 && format == RFCDateDay)) + // return QDateTime; + int i = parts[nyear].size(); + if (i < 4) { + // It's an obsolete year specification with less than 4 digits + year += (i == 2 && year < 50) ? 2000 : 1900; + } + + // Parse the UTC offset part + int offset = 0; // set default to '-0000' + bool negOffset = false; + if (parts.count() > 10) { + rx = QRegExp("^([+-])(\\d\\d)(\\d\\d)$"); + if (!parts[10].indexOf(rx)) { + // It's a UTC offset ±hhmm + parts = rx.capturedTexts(); + offset = parts[2].toInt(&ok[0]) * 3600; + int offsetMin = parts[3].toInt(&ok[1]); + if (!ok[0] || !ok[1] || offsetMin > 59) + return QDateTime(); + offset += offsetMin * 60; + negOffset = (parts[1] == QLatin1String("-")); + if (negOffset) + offset = -offset; } - else if (zone != "UT" && zone != "GMT") { // treated as '+0000' - offset = (zone == "EDT") - ? -4 * 3600 - : ((zone == "EST") || (zone == "CDT")) - ? -5 * 3600 - : ((zone == "CST") || (zone == "MDT")) - ? -6 * 3600 - : (zone == "MST" || zone == "PDT") - ? -7 * 3600 - : (zone == "PST") - ? -8 * 3600 - : 0; - if (!offset) { - // Check for any other alphabetic time zone - bool nonalpha = false; - for (int i = 0, end = zone.size(); (i < end) && !nonalpha; ++i) - nonalpha = !isalpha(zone[i]); - if (nonalpha) - return QDateTime(); - // TODO: Attempt to recognize the time zone abbreviation? - negOffset = true; // unknown time zone: RFC 2822 treats as '-0000' + else { + // Check for an obsolete time zone name + QByteArray zone = parts[10].toLatin1(); + if (zone.length() == 1 && isalpha(zone[0]) && toupper(zone[0]) != 'J') { + negOffset = true; // military zone: RFC 2822 treats as '-0000' + } + else if (zone != "UT" && zone != "GMT") { // treated as '+0000' + offset = (zone == "EDT") + ? -4 * 3600 + : ((zone == "EST") || (zone == "CDT")) + ? -5 * 3600 + : ((zone == "CST") || (zone == "MDT")) + ? -6 * 3600 + : (zone == "MST" || zone == "PDT") + ? -7 * 3600 + : (zone == "PST") + ? -8 * 3600 + : 0; + if (!offset) { + // Check for any other alphabetic time zone + bool nonalpha = false; + for (int i = 0, end = zone.size(); (i < end) && !nonalpha; ++i) + nonalpha = !isalpha(zone[i]); + if (nonalpha) + return QDateTime(); + // TODO: Attempt to recognize the time zone abbreviation? + negOffset = true; // unknown time zone: RFC 2822 treats as '-0000' + } } } } + + QDate qdate(year, month + 1, day); // convert date, and check for out-of-range + if (!qdate.isValid()) + return QDateTime::currentDateTime(); + + QTime qTime(hour, minute, second); + QDateTime result(qdate, qTime, Qt::UTC); + if (offset) + result = result.addSecs(-offset); + if (!result.isValid()) + return QDateTime::currentDateTime(); // invalid date/time + + if (leapSecond) { + // Validate a leap second time. Leap seconds are inserted after 23:59:59 UTC. + // Convert the time to UTC and check that it is 00:00:00. + if ((hour*3600 + minute*60 + 60 - offset + 86400*5) % 86400) // (max abs(offset) is 100 hours) + return QDateTime::currentDateTime(); // the time isn't the last second of the day + } + + return result; } - - QDate qdate(year, month + 1, day); // convert date, and check for out-of-range - if (!qdate.isValid()) - return QDateTime::currentDateTime(); - - QTime qTime(hour, minute, second); - QDateTime result(qdate, qTime, Qt::UTC); - if (offset) - result = result.addSecs(-offset); - if (!result.isValid()) - return QDateTime::currentDateTime(); // invalid date/time - - if (leapSecond) { - // Validate a leap second time. Leap seconds are inserted after 23:59:59 UTC. - // Convert the time to UTC and check that it is 00:00:00. - if ((hour*3600 + minute*60 + 60 - offset + 86400*5) % 86400) // (max abs(offset) is 100 hours) - return QDateTime::currentDateTime(); // the time isn't the last second of the day - } - - return result; } -void Parser::parseFeedData(const QString &feedUrl, const QByteArray &feedData) -{ - qDebug() << Q_FUNC_INFO << feedUrl; - m_mutex.lock(); - ParsingJob job = { feedUrl, feedData }; - m_queue.enqueue(job); - // Wake up thread. - if (m_queue.count() == 1) { - qDebug() << Q_FUNC_INFO << "Waking up thread"; - m_waitCondition.wakeOne(); - } - m_mutex.unlock(); -} +using namespace Rss::Private; -void Parser::clearFeedData(const QString &feedUrl) +// read and create items from a rss document +void Parser::parse(const QByteArray &feedData) { - m_mutex.lock(); - m_lastBuildDates.remove(feedUrl); - m_mutex.unlock(); -} + qDebug() << Q_FUNC_INFO; -void Parser::run() -{ - while (m_running) { - m_mutex.lock(); - if (!m_queue.empty()) { - ParsingJob job = m_queue.dequeue(); - m_mutex.unlock(); - parseFeed(job); + QXmlStreamReader xml(feedData); + bool foundChannel = false; + while (xml.readNextStartElement()) { + if (xml.name() == "rss") { + // Find channels + while (xml.readNextStartElement()) { + if (xml.name() == "channel") { + parseRSSChannel(xml); + foundChannel = true; + break; + } + else { + qDebug() << "Skip rss item: " << xml.name(); + xml.skipCurrentElement(); + } + } + break; + } + else if (xml.name() == "feed") { // Atom feed + parseAtomChannel(xml); + foundChannel = true; + break; } else { - qDebug() << Q_FUNC_INFO << "Thread is waiting."; - m_waitCondition.wait(&m_mutex); - qDebug() << Q_FUNC_INFO << "Thread woke up."; - m_mutex.unlock(); + qDebug() << "Skip root item: " << xml.name(); + xml.skipCurrentElement(); } } + + if (xml.hasError()) + emit finished(xml.errorString()); + else if (!foundChannel) + emit finished(tr("Invalid RSS feed.")); + else + emit finished(QString()); } -void Parser::parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl) +void Parser::parseRssArticle(QXmlStreamReader &xml) { QVariantHash article; @@ -332,12 +311,12 @@ void Parser::parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl) } } - emit newArticle(feedUrl, article); + emit newArticle(article); } -void Parser::parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl) +void Parser::parseRSSChannel(QXmlStreamReader &xml) { - qDebug() << Q_FUNC_INFO << feedUrl; + qDebug() << Q_FUNC_INFO; Q_ASSERT(xml.isStartElement() && xml.name() == "channel"); while(!xml.atEnd()) { @@ -346,27 +325,26 @@ void Parser::parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl) if (xml.isStartElement()) { if (xml.name() == "title") { QString title = xml.readElementText(); - emit feedTitle(feedUrl, title); + emit feedTitle(title); } else if (xml.name() == "lastBuildDate") { QString lastBuildDate = xml.readElementText(); if (!lastBuildDate.isEmpty()) { - QMutexLocker locker(&m_mutex); - if (m_lastBuildDates.value(feedUrl, "") == lastBuildDate) { + if (m_lastBuildDate == lastBuildDate) { qDebug() << "The RSS feed has not changed since last time, aborting parsing."; return; } - m_lastBuildDates[feedUrl] = lastBuildDate; + m_lastBuildDate = lastBuildDate; } } else if (xml.name() == "item") { - parseRssArticle(xml, feedUrl); + parseRssArticle(xml); } } } } -void Parser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl) +void Parser::parseAtomArticle(QXmlStreamReader &xml) { QVariantHash article; bool doubleContent = false; @@ -392,7 +370,7 @@ void Parser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, con // Atom feeds can have relative links, work around this and // take the stress of figuring article full URI from UI // Assemble full URI - article["news_link"] = ( baseUrl.isEmpty() ? link : baseUrl + link ); + article["news_link"] = ( m_baseUrl.isEmpty() ? link : m_baseUrl + link ); } else if ((xml.name() == "summary") || (xml.name() == "content")){ @@ -453,15 +431,15 @@ void Parser::parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, con } } - emit newArticle(feedUrl, article); + emit newArticle(article); } -void Parser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) +void Parser::parseAtomChannel(QXmlStreamReader &xml) { - qDebug() << Q_FUNC_INFO << feedUrl; + qDebug() << Q_FUNC_INFO; Q_ASSERT(xml.isStartElement() && xml.name() == "feed"); - QString baseURL = xml.attributes().value("xml:base").toString(); + m_baseUrl = xml.attributes().value("xml:base").toString(); while (!xml.atEnd()) { xml.readNext(); @@ -469,74 +447,21 @@ void Parser::parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl) if (xml.isStartElement()) { if (xml.name() == "title") { QString title = xml.readElementText(); - emit feedTitle(feedUrl, title); + emit feedTitle(title); } else if (xml.name() == "updated") { QString lastBuildDate = xml.readElementText(); if (!lastBuildDate.isEmpty()) { - QMutexLocker locker(&m_mutex); - if (m_lastBuildDates.value(feedUrl) == lastBuildDate) { + if (m_lastBuildDate == lastBuildDate) { qDebug() << "The RSS feed has not changed since last time, aborting parsing."; return; } - m_lastBuildDates[feedUrl] = lastBuildDate; + m_lastBuildDate = lastBuildDate; } } else if (xml.name() == "entry") { - parseAtomArticle(xml, feedUrl, baseURL); + parseAtomArticle(xml); } } } } - -// read and create items from a rss document -void Parser::parseFeed(const ParsingJob &job) -{ - qDebug() << Q_FUNC_INFO << job.feedUrl; - - QXmlStreamReader xml(job.feedData); - bool foundChannel = false; - while (xml.readNextStartElement()) { - if (xml.name() == "rss") { - // Find channels - while (xml.readNextStartElement()) { - if (xml.name() == "channel") { - parseRSSChannel(xml, job.feedUrl); - foundChannel = true; - break; - } - else { - qDebug() << "Skip rss item: " << xml.name(); - xml.skipCurrentElement(); - } - } - break; - } - else if (xml.name() == "feed") { // Atom feed - parseAtomChannel(xml, job.feedUrl); - foundChannel = true; - break; - } - else { - qDebug() << "Skip root item: " << xml.name(); - xml.skipCurrentElement(); - } - } - - if (xml.hasError()) { - reportFailure(job, xml.errorString()); - return; - } - - if (!foundChannel) { - reportFailure(job, tr("Invalid RSS feed at '%1'.").arg(job.feedUrl)); - return; - } - - emit feedParsingFinished(job.feedUrl, QString()); -} - -void Parser::reportFailure(const ParsingJob &job, const QString &error) -{ - emit feedParsingFinished(job.feedUrl, error); -} diff --git a/src/base/rss/private/rssparser.h b/src/base/rss/private/rssparser.h index 89893feaa..afbf1df03 100644 --- a/src/base/rss/private/rssparser.h +++ b/src/base/rss/private/rssparser.h @@ -1,6 +1,7 @@ /* * Bittorrent Client using Qt and libtorrent. - * Copyright (C) 2012 Christophe Dumez + * Copyright (C) 2015 Vladimir Golovnev + * Copyright (C) 2012 Christophe Dumez * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -31,12 +32,9 @@ #ifndef RSSPARSER_H #define RSSPARSER_H -#include -#include -#include -#include +#include +#include #include -#include class QXmlStreamReader; @@ -44,41 +42,26 @@ namespace Rss { namespace Private { - struct ParsingJob; - - class Parser: public QThread + class Parser: public QObject { Q_OBJECT - public: - explicit Parser(QObject *parent = 0); - ~Parser(); - - void parseFeedData(const QString &feedUrl, const QByteArray &feedData); - void clearFeedData(const QString &feedUrl); + public slots: + void parse(const QByteArray &feedData); signals: - void newArticle(const QString &feedUrl, const QVariantHash &rssArticle); - void feedTitle(const QString &feedUrl, const QString &title); - void feedParsingFinished(const QString &feedUrl, const QString &error); + void newArticle(const QVariantHash &rssArticle); + void feedTitle(const QString &title); + void finished(const QString &error); private: - void run() override; + void parseRssArticle(QXmlStreamReader &xml); + void parseRSSChannel(QXmlStreamReader &xml); + void parseAtomArticle(QXmlStreamReader &xml); + void parseAtomChannel(QXmlStreamReader &xml); - static QDateTime parseDate(const QString &string); - - void parseRssArticle(QXmlStreamReader &xml, const QString &feedUrl); - void parseRSSChannel(QXmlStreamReader &xml, const QString &feedUrl); - void parseAtomArticle(QXmlStreamReader &xml, const QString &feedUrl, const QString &baseUrl); - void parseAtomChannel(QXmlStreamReader &xml, const QString &feedUrl); - void parseFeed(const ParsingJob &job); - void reportFailure(const ParsingJob &job, const QString &error); - - bool m_running; - QMutex m_mutex; - QQueue m_queue; - QWaitCondition m_waitCondition; - QHash m_lastBuildDates; // Optimization + QString m_lastBuildDate; // Optimization + QString m_baseUrl; }; } } diff --git a/src/base/rss/rssfeed.cpp b/src/base/rss/rssfeed.cpp index 76acfaf4b..066964045 100644 --- a/src/base/rss/rssfeed.cpp +++ b/src/base/rss/rssfeed.cpp @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev * Copyright (C) 2010 Christophe Dumez * Copyright (C) 2010 Arnaud Demaiziere * @@ -67,11 +68,13 @@ Feed::Feed(const QString &url, Manager *manager) , m_loading(false) { qDebug() << Q_FUNC_INFO << m_url; + m_parser = new Private::Parser; + m_parser->moveToThread(m_manager->workingThread()); + connect(this, SIGNAL(destroyed()), m_parser, SLOT(deleteLater())); // Listen for new RSS downloads - Private::Parser *const parser = m_manager->rssParser(); - connect(parser, SIGNAL(feedTitle(QString,QString)), SLOT(handleFeedTitle(QString,QString))); - connect(parser, SIGNAL(newArticle(QString,QVariantHash)), SLOT(handleNewArticle(QString,QVariantHash))); - connect(parser, SIGNAL(feedParsingFinished(QString,QString)), SLOT(handleParsingFinished(QString,QString))); + connect(m_parser, SIGNAL(feedTitle(QString)), SLOT(handleFeedTitle(QString))); + connect(m_parser, SIGNAL(newArticle(QVariantHash)), SLOT(handleNewArticle(QVariantHash))); + connect(m_parser, SIGNAL(finished(QString)), SLOT(handleParsingFinished(QString))); // Download the RSS Feed icon Net::DownloadHandler *handler = Net::DownloadManager::instance()->downloadUrl(iconUrl(), true); @@ -87,7 +90,6 @@ Feed::~Feed() { if (!m_icon.startsWith(":/") && QFile::exists(m_icon)) Utils::Fs::forceRemove(m_icon); - m_manager->rssParser()->clearFeedData(m_url); } void Feed::saveItemsToDisk() @@ -320,7 +322,6 @@ QString Feed::iconUrl() const void Feed::handleIconDownloadFinished(const QString &url, const QString &filePath) { Q_UNUSED(url); - m_icon = filePath; qDebug() << Q_FUNC_INFO << "icon path:" << m_icon; m_manager->forwardFeedIconChanged(m_url, m_icon); @@ -328,30 +329,31 @@ void Feed::handleIconDownloadFinished(const QString &url, const QString &filePat void Feed::handleRssDownloadFinished(const QString &url, const QByteArray &data) { - qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << url; + Q_UNUSED(url); + qDebug() << Q_FUNC_INFO << "Successfully downloaded RSS feed at" << m_url; // Parse the download RSS - m_manager->rssParser()->parseFeedData(m_url, data); + QMetaObject::invokeMethod(m_parser, "parse", Qt::QueuedConnection, Q_ARG(QByteArray, data)); } void Feed::handleRssDownloadFailed(const QString &url, const QString &error) { + Q_UNUSED(url); m_inErrorState = true; m_loading = false; m_manager->forwardFeedInfosChanged(m_url, displayName(), m_unreadCount); - qWarning() << "Failed to download RSS feed at" << url; + qWarning() << "Failed to download RSS feed at" << m_url; qWarning() << "Reason:" << error; } -void Feed::handleFeedTitle(const QString &feedUrl, const QString &title) +void Feed::handleFeedTitle(const QString &title) { - if (feedUrl != m_url) return; if (m_title == title) return; m_title = title; // Notify that we now have something better than a URL to display if (m_alias.isEmpty()) - m_manager->forwardFeedInfosChanged(feedUrl, title, m_unreadCount); + m_manager->forwardFeedInfosChanged(m_url, title, m_unreadCount); } void Feed::downloadArticleTorrentIfMatching(const ArticlePtr &article) @@ -406,13 +408,11 @@ void Feed::recheckRssItemsForDownload() } } -void Feed::handleNewArticle(const QString &feedUrl, const QVariantHash &articleData) +void Feed::handleNewArticle(const QVariantHash &articleData) { - if (feedUrl != m_url) return; - ArticlePtr article = Article::fromHash(this, articleData); if (article.isNull()) { - qDebug() << "Article hash corrupted or guid is uncomputable; feed url: " << feedUrl; + qDebug() << "Article hash corrupted or guid is uncomputable; feed url: " << m_url; return; } Q_ASSERT(article); @@ -424,12 +424,10 @@ void Feed::handleNewArticle(const QString &feedUrl, const QVariantHash &articleD //m_manager->forwardFeedContentChanged(m_url); } -void Feed::handleParsingFinished(const QString &feedUrl, const QString &error) +void Feed::handleParsingFinished(const QString &error) { - if (feedUrl != m_url) return; - if (!error.isEmpty()) { - qWarning() << "Failed to parse RSS feed at" << feedUrl; + qWarning() << "Failed to parse RSS feed at" << m_url; qWarning() << "Reason:" << error; } diff --git a/src/base/rss/rssfeed.h b/src/base/rss/rssfeed.h index 5198234bd..b457a04b4 100644 --- a/src/base/rss/rssfeed.h +++ b/src/base/rss/rssfeed.h @@ -1,5 +1,6 @@ /* * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev * Copyright (C) 2010 Christophe Dumez * Copyright (C) 2010 Arnaud Demaiziere * @@ -51,6 +52,11 @@ namespace Rss typedef QSharedPointer FeedPtr; typedef QList FeedList; + namespace Private + { + class Parser; + } + bool articleDateRecentThan(const ArticlePtr &left, const ArticlePtr &right); class Feed: public QObject, public File @@ -86,9 +92,9 @@ namespace Rss void handleIconDownloadFinished(const QString &url, const QString &filePath); void handleRssDownloadFinished(const QString &url, const QByteArray &data); void handleRssDownloadFailed(const QString &url, const QString &error); - void handleFeedTitle(const QString &feedUrl, const QString &title); - void handleNewArticle(const QString &feedUrl, const QVariantHash &article); - void handleParsingFinished(const QString &feedUrl, const QString &error); + void handleFeedTitle(const QString &title); + void handleNewArticle(const QVariantHash &article); + void handleParsingFinished(const QString &error); void handleArticleRead(); private: @@ -99,6 +105,7 @@ namespace Rss private: Manager *m_manager; + Private::Parser *m_parser; ArticleHash m_articles; ArticleList m_articlesByDate; // Articles sorted by date (more recent first) QString m_title; diff --git a/src/base/rss/rssmanager.cpp b/src/base/rss/rssmanager.cpp index a7bd087d1..8fc936d6e 100644 --- a/src/base/rss/rssmanager.cpp +++ b/src/base/rss/rssmanager.cpp @@ -33,7 +33,6 @@ #include "base/logger.h" #include "base/preferences.h" -#include "private/rssparser.h" #include "rssfolder.h" #include "rssfeed.h" #include "rssarticle.h" @@ -48,9 +47,10 @@ using namespace Rss::Private; Manager::Manager(QObject *parent) : QObject(parent) , m_downloadRules(new DownloadRuleList) - , m_rssParser(new Parser(this)) , m_rootFolder(new Folder) + , m_workingThread(new QThread(this)) { + m_workingThread->start(); connect(&m_refreshTimer, SIGNAL(timeout()), SLOT(refresh())); m_refreshInterval = Preferences::instance()->getRSSRefreshInterval(); m_refreshTimer.start(m_refreshInterval * MSECS_PER_MIN); @@ -59,8 +59,9 @@ Manager::Manager(QObject *parent) Manager::~Manager() { qDebug("Deleting RSSManager..."); + m_workingThread->quit(); + m_workingThread->wait(); delete m_downloadRules; - delete m_rssParser; m_rootFolder->saveItemsToDisk(); saveStreamList(); m_rootFolder.clear(); @@ -178,9 +179,9 @@ FolderPtr Manager::rootFolder() const return m_rootFolder; } -Parser *Manager::rssParser() const +QThread *Manager::workingThread() const { - return m_rssParser; + return m_workingThread; } void Manager::refresh() diff --git a/src/base/rss/rssmanager.h b/src/base/rss/rssmanager.h index 2321ce5a2..3c7b81738 100644 --- a/src/base/rss/rssmanager.h +++ b/src/base/rss/rssmanager.h @@ -35,6 +35,7 @@ #include #include #include +#include namespace Rss { @@ -48,11 +49,6 @@ namespace Rss typedef QSharedPointer FolderPtr; typedef QSharedPointer FeedPtr; - namespace Private - { - class Parser; - } - typedef QSharedPointer ManagerPtr; class Manager: public QObject @@ -65,8 +61,7 @@ namespace Rss DownloadRuleList *downloadRules() const; FolderPtr rootFolder() const; - - Private::Parser *rssParser() const; + QThread *workingThread() const; public slots: void refresh(); @@ -87,8 +82,8 @@ namespace Rss QTimer m_refreshTimer; uint m_refreshInterval; DownloadRuleList *m_downloadRules; - Private::Parser *m_rssParser; FolderPtr m_rootFolder; + QThread *m_workingThread; }; } From 59c6a0f73603936dd0f6a251ef8f7b37d17f35ae Mon Sep 17 00:00:00 2001 From: dzmat Date: Mon, 4 Jan 2016 17:32:01 +0600 Subject: [PATCH 072/238] Update russian.nsi Translated new string/ --- dist/windows/installer-translations/russian.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/windows/installer-translations/russian.nsi b/dist/windows/installer-translations/russian.nsi index 8e5eab2d3..139992ebe 100644 --- a/dist/windows/installer-translations/russian.nsi +++ b/dist/windows/installer-translations/russian.nsi @@ -17,7 +17,7 @@ LangString inst_firewallinfo ${LANG_RUSSIAN} "Добавление в списо ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_RUSSIAN} "qBittorrent запущен. Пожалуйста, закройте qBittorrent и перезапустите программу установки." ;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." -LangString inst_uninstall_question ${LANG_RUSSIAN} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_RUSSIAN} "Обнаружена предыдущая установка. Она будет деинсталлирована без удаления пользовательских настроек." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_RUSSIAN} "Деинсталлируем старую версию." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." From 47067338461799951915f7671e026d99d488f352 Mon Sep 17 00:00:00 2001 From: Boris Nagaev Date: Tue, 5 Jan 2016 23:29:26 +0300 Subject: [PATCH 073/238] convert includes like to lowercase There is header file windows.h, not Windows.h. MinGW on Linux build machine is filename case-sensitive. --- src/app/application.cpp | 2 +- src/base/bittorrent/torrenthandle.cpp | 2 +- src/base/preferences.cpp | 2 +- src/base/utils/misc.cpp | 2 +- src/gui/powermanagement/powermanagement.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/application.cpp b/src/app/application.cpp index 624bcb664..6b332cf4e 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -37,7 +37,7 @@ #ifndef DISABLE_GUI #include "gui/guiiconprovider.h" #ifdef Q_OS_WIN -#include +#include #include #include #endif // Q_OS_WIN diff --git a/src/base/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp index 1d1b2ea05..057f83a27 100644 --- a/src/base/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -43,7 +43,7 @@ #include #ifdef Q_OS_WIN -#include +#include #endif #include "base/logger.h" diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 29415b865..fc4de6ef8 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -47,7 +47,7 @@ #endif #ifdef Q_OS_WIN -#include +#include #include #endif diff --git a/src/base/utils/misc.cpp b/src/base/utils/misc.cpp index 3a637b827..7e34f0a97 100644 --- a/src/base/utils/misc.cpp +++ b/src/base/utils/misc.cpp @@ -48,7 +48,7 @@ #ifdef Q_OS_WIN #include -#include +#include const int UNLEN = 256; #else #include diff --git a/src/gui/powermanagement/powermanagement.cpp b/src/gui/powermanagement/powermanagement.cpp index ec07aa8d7..c51b22974 100644 --- a/src/gui/powermanagement/powermanagement.cpp +++ b/src/gui/powermanagement/powermanagement.cpp @@ -40,7 +40,7 @@ #endif #ifdef Q_OS_WIN -#include +#include #endif PowerManagement::PowerManagement(QObject *parent) : QObject(parent), m_busy(false) From 6202156f975d15e9b6d9e8d473e063684a53694f Mon Sep 17 00:00:00 2001 From: ngosang Date: Thu, 7 Jan 2016 00:34:37 +0100 Subject: [PATCH 074/238] Update installer translations in Spanish language --- dist/windows/installer-translations/spanish.nsi | 2 +- dist/windows/installer-translations/spanishinternational.nsi | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/windows/installer-translations/spanish.nsi b/dist/windows/installer-translations/spanish.nsi index ee4422066..205e4db50 100644 --- a/dist/windows/installer-translations/spanish.nsi +++ b/dist/windows/installer-translations/spanish.nsi @@ -17,7 +17,7 @@ LangString inst_firewallinfo ${LANG_SPANISH} "Añadiendo regla al Firewall de Wi ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SPANISH} "qBittorrent se está ejecutando. Ciérrelo antes de continuar." ;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." -LangString inst_uninstall_question ${LANG_SPANISH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SPANISH} "Se detectó una instalación anterior. Será desinstalada sin eliminar la configuración del usuario." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SPANISH} "Desinstalando la versión anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." diff --git a/dist/windows/installer-translations/spanishinternational.nsi b/dist/windows/installer-translations/spanishinternational.nsi index c83a66e86..08119c6c7 100644 --- a/dist/windows/installer-translations/spanishinternational.nsi +++ b/dist/windows/installer-translations/spanishinternational.nsi @@ -17,7 +17,7 @@ LangString inst_firewallinfo ${LANG_SPANISHINTERNATIONAL} "Añadiendo regla al F ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_SPANISHINTERNATIONAL} "qBittorrent se está ejecutando. Ciérrelo antes de continuar." ;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." -LangString inst_uninstall_question ${LANG_SPANISHINTERNATIONAL} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_SPANISHINTERNATIONAL} "Se detectó una instalación anterior. Será desinstalada sin eliminar la configuración del usuario." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_SPANISHINTERNATIONAL} "Desinstalando la versión anterior." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." From abcdd105e361c78259f06d3b341bafcfca09eb02 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Thu, 7 Jan 2016 01:41:40 +0200 Subject: [PATCH 075/238] Don't require GUI libs for qt4 nox build. Closes #4404. --- src/src.pro | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/src.pro b/src/src.pro index 5ced20049..73c537316 100644 --- a/src/src.pro +++ b/src/src.pro @@ -25,7 +25,7 @@ nogui { TARGET = qbittorrent-nox } else { QT += xml - greaterThan(QT_MAJOR_VERSION, 4): QT += concurrent + greaterThan(QT_MAJOR_VERSION, 4): QT += concurrent widgets CONFIG(static) { DEFINES += QBT_STATIC_QT QTPLUGIN += qico @@ -35,7 +35,6 @@ nogui { nowebui: DEFINES += DISABLE_WEBUI strace_win: DEFINES += STACKTRACE_WIN QT += network xml -greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # Vars LANG_PATH = lang From b8c4a86348142bd35d4c740c89f734bc788163b8 Mon Sep 17 00:00:00 2001 From: ngosang Date: Thu, 7 Jan 2016 01:41:16 +0100 Subject: [PATCH 076/238] [search engine] Fix PirateBay plugin implementation for Python 3 --- src/searchengine/nova3/engines/piratebay.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/searchengine/nova3/engines/piratebay.py b/src/searchengine/nova3/engines/piratebay.py index 9b7e78be0..8774f53e6 100644 --- a/src/searchengine/nova3/engines/piratebay.py +++ b/src/searchengine/nova3/engines/piratebay.py @@ -141,10 +141,8 @@ class piratebay(object): if self.save_item == "size": temp_data = data.split() if "Size" in temp_data: - self.current_item[self.save_item] = temp_data[2] - elif "ULed" in temp_data: - temp_string = self.current_item[self.save_item] - self.current_item[self.save_item] = " ".join((temp_string, temp_data[0][:-1])) + indx = temp_data.index("Size") + self.current_item[self.save_item] = temp_data[indx + 1] + " " + temp_data[indx + 2] elif self.save_item == "name": # names with special characters like '&' are splitted in several pieces From 1e8299f842d5be8afc07cb9d2e65985aa9dccfca Mon Sep 17 00:00:00 2001 From: ngosang Date: Thu, 7 Jan 2016 01:45:06 +0100 Subject: [PATCH 077/238] [search engine] Update PirateBay URL. Closes #4470 --- src/searchengine/nova/engines/piratebay.py | 6 +++--- src/searchengine/nova/engines/versions.txt | 2 +- src/searchengine/nova3/engines/piratebay.py | 6 +++--- src/searchengine/nova3/engines/versions.txt | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/searchengine/nova/engines/piratebay.py b/src/searchengine/nova/engines/piratebay.py index 3fe840bdf..abd36a6cd 100644 --- a/src/searchengine/nova/engines/piratebay.py +++ b/src/searchengine/nova/engines/piratebay.py @@ -1,4 +1,4 @@ -#VERSION: 2.11 +#VERSION: 2.12 #AUTHORS: Fabien Devaux (fab@gnux.info) #CONTRIBUTORS: Christophe Dumez (chris@qbittorrent.org) # Arthur (custparasite@gmx.se) @@ -36,7 +36,7 @@ from helpers import download_file class piratebay(object): """ Search engine class """ - url = 'https://thepiratebay.gd' + url = 'https://thepiratebay.ms' name = 'The Pirate Bay' supported_categories = {'all': '0', 'music': '100', 'movies': '200', 'games': '400', 'software': '300'} @@ -159,7 +159,7 @@ class piratebay(object): def search(self, what, cat='all'): """ Performs search """ - connection = https("thepiratebay.gd") + connection = https("thepiratebay.ms") #prepare query. 7 is filtering by seeders cat = cat.lower() diff --git a/src/searchengine/nova/engines/versions.txt b/src/searchengine/nova/engines/versions.txt index ddd8b0caf..3980f0e34 100644 --- a/src/searchengine/nova/engines/versions.txt +++ b/src/searchengine/nova/engines/versions.txt @@ -4,6 +4,6 @@ extratorrent: 2.02 kickasstorrents: 1.28 legittorrents: 2.00 mininova: 2.00 -piratebay: 2.11 +piratebay: 2.12 torrentreactor: 1.40 torrentz: 2.17 diff --git a/src/searchengine/nova3/engines/piratebay.py b/src/searchengine/nova3/engines/piratebay.py index 8774f53e6..9ffeab4af 100644 --- a/src/searchengine/nova3/engines/piratebay.py +++ b/src/searchengine/nova3/engines/piratebay.py @@ -1,4 +1,4 @@ -#VERSION: 2.11 +#VERSION: 2.12 #AUTHORS: Fabien Devaux (fab@gnux.info) #CONTRIBUTORS: Christophe Dumez (chris@qbittorrent.org) # Arthur (custparasite@gmx.se) @@ -36,7 +36,7 @@ from helpers import download_file class piratebay(object): """ Search engine class """ - url = 'https://thepiratebay.gd' + url = 'https://thepiratebay.ms' name = 'The Pirate Bay' supported_categories = {'all': '0', 'music': '100', 'movies': '200', 'games': '400', 'software': '300'} @@ -157,7 +157,7 @@ class piratebay(object): def search(self, what, cat='all'): """ Performs search """ - connection = https("thepiratebay.gd") + connection = https("thepiratebay.ms") #prepare query. 7 is filtering by seeders cat = cat.lower() diff --git a/src/searchengine/nova3/engines/versions.txt b/src/searchengine/nova3/engines/versions.txt index ddd8b0caf..3980f0e34 100644 --- a/src/searchengine/nova3/engines/versions.txt +++ b/src/searchengine/nova3/engines/versions.txt @@ -4,6 +4,6 @@ extratorrent: 2.02 kickasstorrents: 1.28 legittorrents: 2.00 mininova: 2.00 -piratebay: 2.11 +piratebay: 2.12 torrentreactor: 1.40 torrentz: 2.17 From 486b65487f44120f5e5c85fda67ebe4e20a84d3d Mon Sep 17 00:00:00 2001 From: buinsky Date: Thu, 7 Jan 2016 10:07:50 +0300 Subject: [PATCH 078/238] Move some styles into css --- src/webui/www/private/index.html | 8 ++++---- src/webui/www/public/css/dynamicTable.css | 1 - src/webui/www/public/css/style.css | 17 +++++++++++++++++ src/webui/www/public/transferlist.html | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/webui/www/private/index.html b/src/webui/www/private/index.html index c8d23def7..5432f8814 100644 --- a/src/webui/www/private/index.html +++ b/src/webui/www/private/index.html @@ -131,13 +131,13 @@ - + - + - + - +
Connection Status QBT_TR(Alternative speed limits)QBT_TR
diff --git a/src/webui/www/public/css/dynamicTable.css b/src/webui/www/public/css/dynamicTable.css index ccbc8bd98..3a949b0c1 100644 --- a/src/webui/www/public/css/dynamicTable.css +++ b/src/webui/www/public/css/dynamicTable.css @@ -66,7 +66,6 @@ color: #fff; } -#torrentsTable tr:hover, #torrentsTable tr:hover, #properties #torrentFiles tr.over, #properties #trackers tr.over, diff --git a/src/webui/www/public/css/style.css b/src/webui/www/public/css/style.css index 2bf7e0705..4d93b58b2 100644 --- a/src/webui/www/public/css/style.css +++ b/src/webui/www/public/css/style.css @@ -383,6 +383,15 @@ td.generalLabel { margin-bottom: -3px; } +.torrentTable { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + .torrentTable th { padding: 5px 10px; } @@ -455,3 +464,11 @@ td.generalLabel { .combo_priority { font-size: 1em; } + +td.statusBarSeparator { + width: 22px; + background-image: url('../images/skin/toolbox-divider.gif'); + background-repeat: no-repeat; + background-position: center 1px; + background-size: 2px 18px; +} diff --git a/src/webui/www/public/transferlist.html b/src/webui/www/public/transferlist.html index 61f776d01..150783096 100644 --- a/src/webui/www/public/transferlist.html +++ b/src/webui/www/public/transferlist.html @@ -1,4 +1,4 @@ - +
From c5c540469f9478431217ecb6910b075f0d5e1cb3 Mon Sep 17 00:00:00 2001 From: schnurlos Date: Thu, 7 Jan 2016 18:05:09 +0100 Subject: [PATCH 079/238] Update german.nsi Translated the "A previous installation was detected ..." text. --- dist/windows/installer-translations/german.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/windows/installer-translations/german.nsi b/dist/windows/installer-translations/german.nsi index e71257e87..046dbf4ae 100644 --- a/dist/windows/installer-translations/german.nsi +++ b/dist/windows/installer-translations/german.nsi @@ -17,7 +17,7 @@ LangString inst_firewallinfo ${LANG_GERMAN} "Füge Regel in der Windows Firewall ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_GERMAN} "qBittorrent läuft gerade. Bitte das Programm vor der Installation beenden." ;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." -LangString inst_uninstall_question ${LANG_GERMAN} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_GERMAN} "Eine ältere Installation wurde festgestellt. Diese wird deinstalliert ohne die Benutzereinstellungen zu löschen." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_GERMAN} "Vorherige Version wird deinstalliert." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." From 9b031d2faea2fea788a90faf5db6979ccc1b30fd Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 8 Jan 2016 22:03:31 +0800 Subject: [PATCH 080/238] Rename column header --- src/gui/torrentcontentmodel.cpp | 2 +- src/webui/www/public/properties_content.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index 2a351fbc9..8200a793d 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -54,7 +54,7 @@ QIcon get_file_icon() { TorrentContentModel::TorrentContentModel(QObject *parent): QAbstractItemModel(parent), m_rootItem(new TorrentContentModelFolder(QList() << tr("Name") << tr("Size") - << tr("Progress") << tr("Priority"))) + << tr("Progress") << tr("Download Priority"))) { } diff --git a/src/webui/www/public/properties_content.html b/src/webui/www/public/properties_content.html index a35ce4f31..55efe430f 100644 --- a/src/webui/www/public/properties_content.html +++ b/src/webui/www/public/properties_content.html @@ -97,7 +97,7 @@ - + From f961fd6a7cbb55967e77211e4fa8b5f1d83bab4e Mon Sep 17 00:00:00 2001 From: buinsky Date: Fri, 8 Jan 2016 13:07:35 +0300 Subject: [PATCH 081/238] WebUI: Repair translation --- src/webui/abstractwebapplication.cpp | 25 +++++++++---- src/webui/extra_translations.h | 36 +++++++++++++++---- src/webui/www/private/index.html | 2 +- src/webui/www/public/filters.html | 2 +- src/webui/www/public/preferences_content.html | 4 +-- src/webui/www/public/scripts/client.js | 4 +-- src/webui/www/public/scripts/dynamicTable.js | 4 +-- 7 files changed, 55 insertions(+), 22 deletions(-) diff --git a/src/webui/abstractwebapplication.cpp b/src/webui/abstractwebapplication.cpp index cd2e70794..131dd2ee3 100644 --- a/src/webui/abstractwebapplication.cpp +++ b/src/webui/abstractwebapplication.cpp @@ -234,14 +234,15 @@ QString AbstractWebApplication::generateSid() void AbstractWebApplication::translateDocument(QString& data) { - const QRegExp regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR"); + const QRegExp regex("QBT_TR\\((([^\\)]|\\)(?!QBT_TR))+)\\)QBT_TR(\\[CONTEXT=([a-zA-Z_][a-zA-Z0-9_]*)\\])?"); const QRegExp mnemonic("\\(?&([a-zA-Z]?\\))?"); const std::string contexts[] = { "TransferListFiltersWidget", "TransferListWidget", "PropertiesWidget", "HttpServer", "confirmDeletionDlg", "TrackerList", "TorrentFilesModel", "options_imp", "Preferences", "TrackersAdditionDlg", "ScanFoldersModel", "PropTabBar", "TorrentModel", "downloadFromURL", "MainWindow", "misc", - "StatusBar", "AboutDlg", "about", "PeerListWidget", "StatusFiltersWidget" + "StatusBar", "AboutDlg", "about", "PeerListWidget", "StatusFiltersWidget", + "LabelFiltersList" }; const size_t context_count = sizeof(contexts) / sizeof(contexts[0]); int i = 0; @@ -258,14 +259,24 @@ void AbstractWebApplication::translateDocument(QString& data) QString translation = word; if (isTranslationNeeded) { - size_t context_index = 0; - while ((context_index < context_count) && (translation == word)) { + QString context = regex.cap(4); + if (context.length() > 0) { #ifndef QBT_USES_QT5 - translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1); + translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1); #else - translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, 1); + translation = qApp->translate(context.toUtf8().constData(), word.constData(), 0, 1); #endif - ++context_index; + } + else { + size_t context_index = 0; + while ((context_index < context_count) && (translation == word)) { +#ifndef QBT_USES_QT5 + translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, QCoreApplication::UnicodeUTF8, 1); +#else + translation = qApp->translate(contexts[context_index].c_str(), word.constData(), 0, 1); +#endif + ++context_index; + } } } // Remove keyboard shortcuts diff --git a/src/webui/extra_translations.h b/src/webui/extra_translations.h index 5a76fd53a..695f6c302 100644 --- a/src/webui/extra_translations.h +++ b/src/webui/extra_translations.h @@ -37,6 +37,7 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Edit"), QT_TRANSLATE_NOOP("HttpServer", "Help"), QT_TRANSLATE_NOOP("HttpServer", "Logout"), + QT_TRANSLATE_NOOP("HttpServer", "Exit qBittorrent"), QT_TRANSLATE_NOOP("HttpServer", "Download Torrents from their URL or Magnet link"), QT_TRANSLATE_NOOP("HttpServer", "Only one link per line"), QT_TRANSLATE_NOOP("HttpServer", "Upload local torrent"), @@ -83,16 +84,37 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Resumed"), QT_TRANSLATE_NOOP("HttpServer", "Paused"), QT_TRANSLATE_NOOP("HttpServer", "Active"), - QT_TRANSLATE_NOOP("HttpServer", "Inactive") - QT_TRANSLATE_NOOP("HttpServer", "Save files to location:") - QT_TRANSLATE_NOOP("HttpServer", "Label:") - QT_TRANSLATE_NOOP("HttpServer", "Cookie:") - QT_TRANSLATE_NOOP("HttpServer", "Type folder here") - QT_TRANSLATE_NOOP("HttpServer", "Other...") + QT_TRANSLATE_NOOP("HttpServer", "Inactive"), + QT_TRANSLATE_NOOP("HttpServer", "Save files to location:"), + QT_TRANSLATE_NOOP("HttpServer", "Label:"), + QT_TRANSLATE_NOOP("HttpServer", "Cookie:"), + QT_TRANSLATE_NOOP("HttpServer", "Type folder here"), + QT_TRANSLATE_NOOP("HttpServer", "Run an external program on torrent completion"), + QT_TRANSLATE_NOOP("HttpServer", "Enable bandwidth management (uTP)"), + QT_TRANSLATE_NOOP("HttpServer", "Apply rate limit to uTP connections"), + QT_TRANSLATE_NOOP("HttpServer", "Alternative Global Rate Limits"), + QT_TRANSLATE_NOOP("HttpServer", "More information"), + QT_TRANSLATE_NOOP("HttpServer", "Information about certificates"), + QT_TRANSLATE_NOOP("HttpServer", "Save Files to"), + QT_TRANSLATE_NOOP("HttpServer", "Watch Folder"), + QT_TRANSLATE_NOOP("HttpServer", "Default Folder") }; static const struct { const char *source; const char *comment; } __COMMENTED_TRANSLATIONS__[] = { - QT_TRANSLATE_NOOP3("HttpServer", "Downloaded", "Is the file downloaded or not?") + QT_TRANSLATE_NOOP3("HttpServer", "Downloaded", "Is the file downloaded or not?"), + QT_TRANSLATE_NOOP3("HttpServer", "from", "from time1 to time2"), + QT_TRANSLATE_NOOP3("HttpServer", "to", "from time1 to time2"), + QT_TRANSLATE_NOOP3("HttpServer", "Other...", "Save Files to: Watch Folder / Default Folder / Other..."), + QT_TRANSLATE_NOOP3("HttpServer", "Every day", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Week days", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Week ends", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Monday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Tuesday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Wednesday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Thursday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Friday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Saturday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Sunday", "Schedule the use of alternative rate limits on ...") }; #endif // EXTRA_TRANSLATIONS_H diff --git a/src/webui/www/private/index.html b/src/webui/www/private/index.html index c8d23def7..685e2ca06 100644 --- a/src/webui/www/private/index.html +++ b/src/webui/www/private/index.html @@ -55,7 +55,7 @@
  • QBT_TR(Decrease Priority)QBT_TRQBT_TR(Decrease Priority)QBT_TR
  • QBT_TR(Minimum Priority)QBT_TRQBT_TR(Minimum Priority)QBT_TR
  • -
  • QBT_TR(Force Recheck)QBT_TRQBT_TR(Force Recheck)QBT_TR
  • +
  • QBT_TR(Force Recheck)QBT_TRQBT_TR(Force recheck)QBT_TR
  • diff --git a/src/webui/www/public/filters.html b/src/webui/www/public/filters.html index e7f43c2e6..fb9ae708d 100644 --- a/src/webui/www/public/filters.html +++ b/src/webui/www/public/filters.html @@ -1,4 +1,4 @@ -QBT_TR(Torrents)QBT_TR +QBT_TR(Status)QBT_TR
    • QBT_TR(All (0))QBT_TR
    • QBT_TR(Downloading (0))QBT_TR
    • diff --git a/src/webui/www/public/preferences_content.html b/src/webui/www/public/preferences_content.html index ed1f3d167..1cbd3d2f9 100644 --- a/src/webui/www/public/preferences_content.html +++ b/src/webui/www/public/preferences_content.html @@ -265,7 +265,7 @@
      -
      +
      @@ -371,7 +371,7 @@ - +
      diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index 28bb878b9..ba03b3d55 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -255,8 +255,8 @@ window.addEvent('load', function () { if (row['full_data'].label.length === 0) unlabelled += 1; }); - labelList.appendChild(create_link(LABELS_ALL, 'QBT_TR(All)QBT_TR', all)); - labelList.appendChild(create_link(LABELS_UNLABELLED, 'QBT_TR(Unlabeled)QBT_TR', unlabelled)); + labelList.appendChild(create_link(LABELS_ALL, 'QBT_TR(All (0))QBT_TR'.replace(' (0)', ''), all)); + labelList.appendChild(create_link(LABELS_UNLABELLED, 'QBT_TR(Unlabeled (0))QBT_TR'.replace(' (0)', ''), unlabelled)); var sortedLabels = [] Object.each(label_list, function(label) { diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index aa1aa9cea..9f6cd068d 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -730,8 +730,8 @@ var TorrentPeersTable = new Class({ this.newColumn('progress', 'width: 30px', 'QBT_TR(Progress)QBT_TR'); this.newColumn('dl_speed', 'width: 30px', 'QBT_TR(Down Speed)QBT_TR'); this.newColumn('up_speed', 'width: 30px', 'QBT_TR(Up Speed)QBT_TR'); - this.newColumn('downloaded', 'width: 30px', 'QBT_TR(Downloaded)QBT_TR'); - this.newColumn('uploaded', 'width: 30px', 'QBT_TR(Uploaded)QBT_TR'); + this.newColumn('downloaded', 'width: 30px', 'QBT_TR(Downloaded)QBT_TR[CONTEXT=PeerListWidget]'); + this.newColumn('uploaded', 'width: 30px', 'QBT_TR(Uploaded)QBT_TR[CONTEXT=PeerListWidget]'); this.newColumn('connection', 'width: 30px', 'QBT_TR(Connection)QBT_TR'); this.newColumn('flags', 'width: 30px', 'QBT_TR(Flags)QBT_TR'); this.newColumn('relevance', 'min-width: 30px', 'QBT_TR(Relevance)QBT_TR'); From e330a91921c46243a0f49863be969483f60f3ef8 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 8 Jan 2016 22:19:04 +0800 Subject: [PATCH 082/238] Follow project coding style. Issue #2192. --- src/gui/torrentcontentmodel.cpp | 396 ++++++++++++++++---------------- 1 file changed, 197 insertions(+), 199 deletions(-) diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index 8200a793d..dd89bf19c 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -39,299 +39,297 @@ #include "torrentcontentmodelfolder.h" #include "torrentcontentmodelfile.h" -namespace { -QIcon get_directory_icon() { - static QIcon cached = GuiIconProvider::instance()->getIcon("inode-directory"); - return cached; +namespace +{ + QIcon get_directory_icon() + { + static QIcon cached = GuiIconProvider::instance()->getIcon("inode-directory"); + return cached; + } + + QIcon get_file_icon() + { + static QIcon cached = GuiIconProvider::instance()->getIcon("text-plain"); + return cached; + } } -QIcon get_file_icon() { - static QIcon cached = GuiIconProvider::instance()->getIcon("text-plain"); - return cached; -} -} - -TorrentContentModel::TorrentContentModel(QObject *parent): - QAbstractItemModel(parent), - m_rootItem(new TorrentContentModelFolder(QList() << tr("Name") << tr("Size") - << tr("Progress") << tr("Download Priority"))) +TorrentContentModel::TorrentContentModel(QObject *parent) + : QAbstractItemModel(parent) + , m_rootItem(new TorrentContentModelFolder(QList() << tr("Name") << tr("Size") + << tr("Progress") << tr("Download Priority"))) { } TorrentContentModel::~TorrentContentModel() { - delete m_rootItem; + delete m_rootItem; } void TorrentContentModel::updateFilesProgress(const QVector &fp) { - Q_ASSERT(m_filesIndex.size() == fp.size()); - // XXX: Why is this necessary? - if (m_filesIndex.size() != fp.size()) return; + Q_ASSERT(m_filesIndex.size() == fp.size()); + // XXX: Why is this necessary? + if (m_filesIndex.size() != fp.size()) return; - emit layoutAboutToBeChanged(); - for (int i = 0; i < fp.size(); ++i) { - m_filesIndex[i]->setProgress(fp[i]); - } - // Update folders progress in the tree - m_rootItem->recalculateProgress(); - emit dataChanged(index(0,0), index(rowCount(), columnCount())); + emit layoutAboutToBeChanged(); + for (int i = 0; i < fp.size(); ++i) + m_filesIndex[i]->setProgress(fp[i]); + // Update folders progress in the tree + m_rootItem->recalculateProgress(); + emit dataChanged(index(0, 0), index(rowCount(), columnCount())); } void TorrentContentModel::updateFilesPriorities(const QVector &fprio) { - Q_ASSERT(m_filesIndex.size() == (int)fprio.size()); - // XXX: Why is this necessary? - if (m_filesIndex.size() != (int)fprio.size()) - return; + Q_ASSERT(m_filesIndex.size() == (int)fprio.size()); + // XXX: Why is this necessary? + if (m_filesIndex.size() != (int)fprio.size()) + return; - emit layoutAboutToBeChanged(); - for (int i = 0; i < fprio.size(); ++i) { - m_filesIndex[i]->setPriority(fprio[i]); - } - emit dataChanged(index(0, 0), index(rowCount(), columnCount())); + emit layoutAboutToBeChanged(); + for (int i = 0; i < fprio.size(); ++i) + m_filesIndex[i]->setPriority(fprio[i]); + emit dataChanged(index(0, 0), index(rowCount(), columnCount())); } QVector TorrentContentModel::getFilePriorities() const { - QVector prio; - prio.reserve(m_filesIndex.size()); - foreach (const TorrentContentModelFile* file, m_filesIndex) { - prio.push_back(file->priority()); - } - return prio; + QVector prio; + prio.reserve(m_filesIndex.size()); + foreach (const TorrentContentModelFile* file, m_filesIndex) + prio.push_back(file->priority()); + return prio; } bool TorrentContentModel::allFiltered() const { - foreach (const TorrentContentModelFile* fileItem, m_filesIndex) { - if (fileItem->priority() != prio::IGNORED) - return false; - } - return true; + foreach (const TorrentContentModelFile* fileItem, m_filesIndex) + if (fileItem->priority() != prio::IGNORED) + return false; + return true; } int TorrentContentModel::columnCount(const QModelIndex& parent) const { - if (parent.isValid()) - return static_cast(parent.internalPointer())->columnCount(); - else - return m_rootItem->columnCount(); + if (parent.isValid()) + return static_cast(parent.internalPointer())->columnCount(); + else + return m_rootItem->columnCount(); } bool TorrentContentModel::setData(const QModelIndex& index, const QVariant& value, int role) { - if (!index.isValid()) + if (!index.isValid()) + return false; + + if ((index.column() == 0) && (role == Qt::CheckStateRole)) { + TorrentContentModelItem *item = static_cast(index.internalPointer()); + qDebug("setData(%s, %d", qPrintable(item->name()), value.toInt()); + if (item->priority() != value.toInt()) { + if (value.toInt() == Qt::PartiallyChecked) + item->setPriority(prio::MIXED); + else if (value.toInt() == Qt::Unchecked) + item->setPriority(prio::IGNORED); + else + item->setPriority(prio::NORMAL); + // Update folders progress in the tree + m_rootItem->recalculateProgress(); + emit dataChanged(this->index(0, 0), this->index(rowCount() - 1, columnCount() - 1)); + emit filteredFilesChanged(); + } + return true; + } + + if (role == Qt::EditRole) { + Q_ASSERT(index.isValid()); + TorrentContentModelItem* item = static_cast(index.internalPointer()); + switch (index.column()) { + case TorrentContentModelItem::COL_NAME: + item->setName(value.toString()); + break; + case TorrentContentModelItem::COL_PRIO: + item->setPriority(value.toInt()); + break; + default: + return false; + } + emit dataChanged(index, index); + return true; + } + return false; - - if (index.column() == 0 && role == Qt::CheckStateRole) { - TorrentContentModelItem *item = static_cast(index.internalPointer()); - qDebug("setData(%s, %d", qPrintable(item->name()), value.toInt()); - if (item->priority() != value.toInt()) { - if (value.toInt() == Qt::PartiallyChecked) - item->setPriority(prio::MIXED); - else if (value.toInt() == Qt::Unchecked) - item->setPriority(prio::IGNORED); - else - item->setPriority(prio::NORMAL); - // Update folders progress in the tree - m_rootItem->recalculateProgress(); - emit dataChanged(this->index(0,0), this->index(rowCount()-1, columnCount()-1)); - emit filteredFilesChanged(); - } - return true; - } - - if (role == Qt::EditRole) { - Q_ASSERT(index.isValid()); - TorrentContentModelItem* item = static_cast(index.internalPointer()); - switch(index.column()) { - case TorrentContentModelItem::COL_NAME: - item->setName(value.toString()); - break; - case TorrentContentModelItem::COL_PRIO: - item->setPriority(value.toInt()); - break; - default: - return false; - } - emit dataChanged(index, index); - return true; - } - - return false; } TorrentContentModelItem::ItemType TorrentContentModel::itemType(const QModelIndex& index) const { - return static_cast(index.internalPointer())->itemType(); + return static_cast(index.internalPointer())->itemType(); } int TorrentContentModel::getFileIndex(const QModelIndex& index) { - TorrentContentModelFile* item = dynamic_cast(static_cast(index.internalPointer())); - Q_ASSERT(item); - return item->fileIndex(); + TorrentContentModelFile* item = dynamic_cast(static_cast(index.internalPointer())); + Q_ASSERT(item); + return item->fileIndex(); } QVariant TorrentContentModel::data(const QModelIndex& index, int role) const { - if (!index.isValid()) - return QVariant(); + if (!index.isValid()) + return QVariant(); - TorrentContentModelItem* item = static_cast(index.internalPointer()); - if (index.column() == 0 && role == Qt::DecorationRole) { - if (item->itemType() == TorrentContentModelItem::FolderType) - return get_directory_icon(); - else - return get_file_icon(); - } - if (index.column() == 0 && role == Qt::CheckStateRole) { - if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::IGNORED) - return Qt::Unchecked; - if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::MIXED) - return Qt::PartiallyChecked; - return Qt::Checked; - } - if (role != Qt::DisplayRole) - return QVariant(); + TorrentContentModelItem* item = static_cast(index.internalPointer()); + if ((index.column() == 0) && (role == Qt::DecorationRole)) { + if (item->itemType() == TorrentContentModelItem::FolderType) + return get_directory_icon(); + else + return get_file_icon(); + } + if ((index.column() == 0) && (role == Qt::CheckStateRole)) { + if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::IGNORED) + return Qt::Unchecked; + if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::MIXED) + return Qt::PartiallyChecked; + return Qt::Checked; + } + if (role != Qt::DisplayRole) + return QVariant(); - return item->data(index.column()); + return item->data(index.column()); } Qt::ItemFlags TorrentContentModel::flags(const QModelIndex& index) const { - if (!index.isValid()) - return 0; + if (!index.isValid()) + return 0; - if (itemType(index) == TorrentContentModelItem::FolderType) - return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsTristate; + if (itemType(index) == TorrentContentModelItem::FolderType) + return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | Qt::ItemIsTristate; - return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable; + return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable; } QVariant TorrentContentModel::headerData(int section, Qt::Orientation orientation, int role) const { - if (orientation == Qt::Horizontal && role == Qt::DisplayRole) - return m_rootItem->data(section); + if ((orientation == Qt::Horizontal) && (role == Qt::DisplayRole)) + return m_rootItem->data(section); - return QVariant(); + return QVariant(); } QModelIndex TorrentContentModel::index(int row, int column, const QModelIndex& parent) const { - if (parent.isValid() && parent.column() != 0) + if (parent.isValid() && (parent.column() != 0)) + return QModelIndex(); + + if (column >= TorrentContentModelItem::NB_COL) + return QModelIndex(); + + TorrentContentModelFolder* parentItem; + if (!parent.isValid()) + parentItem = m_rootItem; + else + parentItem = static_cast(parent.internalPointer()); + Q_ASSERT(parentItem); + + if (row >= parentItem->childCount()) + return QModelIndex(); + + TorrentContentModelItem* childItem = parentItem->child(row); + if (childItem) + return createIndex(row, column, childItem); return QModelIndex(); - - if (column >= TorrentContentModelItem::NB_COL) - return QModelIndex(); - - TorrentContentModelFolder* parentItem; - if (!parent.isValid()) - parentItem = m_rootItem; - else - parentItem = static_cast(parent.internalPointer()); - Q_ASSERT(parentItem); - - if (row >= parentItem->childCount()) - return QModelIndex(); - - TorrentContentModelItem* childItem = parentItem->child(row); - if (childItem) - return createIndex(row, column, childItem); - return QModelIndex(); } QModelIndex TorrentContentModel::parent(const QModelIndex& index) const { - if (!index.isValid()) - return QModelIndex(); + if (!index.isValid()) + return QModelIndex(); - TorrentContentModelItem* childItem = static_cast(index.internalPointer()); - if (!childItem) - return QModelIndex(); + TorrentContentModelItem* childItem = static_cast(index.internalPointer()); + if (!childItem) + return QModelIndex(); - TorrentContentModelItem *parentItem = childItem->parent(); - if (parentItem == m_rootItem) - return QModelIndex(); + TorrentContentModelItem *parentItem = childItem->parent(); + if (parentItem == m_rootItem) + return QModelIndex(); - return createIndex(parentItem->row(), 0, parentItem); + return createIndex(parentItem->row(), 0, parentItem); } int TorrentContentModel::rowCount(const QModelIndex& parent) const { - if (parent.column() > 0) - return 0; + if (parent.column() > 0) + return 0; - TorrentContentModelFolder* parentItem; - if (!parent.isValid()) - parentItem = m_rootItem; - else - parentItem = dynamic_cast(static_cast(parent.internalPointer())); + TorrentContentModelFolder* parentItem; + if (!parent.isValid()) + parentItem = m_rootItem; + else + parentItem = dynamic_cast(static_cast(parent.internalPointer())); - return parentItem ? parentItem->childCount() : 0; + return parentItem ? parentItem->childCount() : 0; } void TorrentContentModel::clear() { - qDebug("clear called"); - beginResetModel(); - m_filesIndex.clear(); - m_rootItem->deleteAllChildren(); - endResetModel(); + qDebug("clear called"); + beginResetModel(); + m_filesIndex.clear(); + m_rootItem->deleteAllChildren(); + endResetModel(); } void TorrentContentModel::setupModelData(const BitTorrent::TorrentInfo &info) { - qDebug("setup model data called"); - if (info.filesCount() == 0) - return; + qDebug("setup model data called"); + if (info.filesCount() == 0) + return; - emit layoutAboutToBeChanged(); - // Initialize files_index array - qDebug("Torrent contains %d files", info.filesCount()); - m_filesIndex.reserve(info.filesCount()); + emit layoutAboutToBeChanged(); + // Initialize files_index array + qDebug("Torrent contains %d files", info.filesCount()); + m_filesIndex.reserve(info.filesCount()); - TorrentContentModelFolder* current_parent; - // Iterate over files - for (int i = 0; i < info.filesCount(); ++i) { - current_parent = m_rootItem; - QString path = Utils::Fs::fromNativePath(info.filePath(i)); - // Iterate of parts of the path to create necessary folders - QStringList pathFolders = path.split("/", QString::SkipEmptyParts); - pathFolders.removeLast(); - foreach (const QString& pathPart, pathFolders) { - if (pathPart == ".unwanted") - continue; - TorrentContentModelFolder* new_parent = current_parent->childFolderWithName(pathPart); - if (!new_parent) { - new_parent = new TorrentContentModelFolder(pathPart, current_parent); - current_parent->appendChild(new_parent); - } - current_parent = new_parent; + TorrentContentModelFolder* current_parent; + // Iterate over files + for (int i = 0; i < info.filesCount(); ++i) { + current_parent = m_rootItem; + QString path = Utils::Fs::fromNativePath(info.filePath(i)); + // Iterate of parts of the path to create necessary folders + QStringList pathFolders = path.split("/", QString::SkipEmptyParts); + pathFolders.removeLast(); + foreach (const QString& pathPart, pathFolders) { + if (pathPart == ".unwanted") + continue; + TorrentContentModelFolder* new_parent = current_parent->childFolderWithName(pathPart); + if (!new_parent) { + new_parent = new TorrentContentModelFolder(pathPart, current_parent); + current_parent->appendChild(new_parent); + } + current_parent = new_parent; + } + // Actually create the file + TorrentContentModelFile* fileItem = new TorrentContentModelFile(info.fileName(i), info.fileSize(i), current_parent, i); + current_parent->appendChild(fileItem); + m_filesIndex.push_back(fileItem); } - // Actually create the file - TorrentContentModelFile* fileItem = new TorrentContentModelFile(info.fileName(i), info.fileSize(i), current_parent, i); - current_parent->appendChild(fileItem); - m_filesIndex.push_back(fileItem); - } - emit layoutChanged(); + emit layoutChanged(); } void TorrentContentModel::selectAll() { - for (int i=0; ichildCount(); ++i) { - TorrentContentModelItem* child = m_rootItem->child(i); - if (child->priority() == prio::IGNORED) - child->setPriority(prio::NORMAL); - } - emit dataChanged(index(0, 0), index(rowCount(), columnCount())); + for (int i = 0; i < m_rootItem->childCount(); ++i) { + TorrentContentModelItem* child = m_rootItem->child(i); + if (child->priority() == prio::IGNORED) + child->setPriority(prio::NORMAL); + } + emit dataChanged(index(0, 0), index(rowCount(), columnCount())); } void TorrentContentModel::selectNone() { - for (int i=0; ichildCount(); ++i) { - m_rootItem->child(i)->setPriority(prio::IGNORED); - } - emit dataChanged(index(0, 0), index(rowCount(), columnCount())); + for (int i = 0; i < m_rootItem->childCount(); ++i) + m_rootItem->child(i)->setPriority(prio::IGNORED); + emit dataChanged(index(0, 0), index(rowCount(), columnCount())); } From 829012ae3ca6505fe5dc07e3c4d574019691c790 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 9 Jan 2016 17:20:14 +0800 Subject: [PATCH 083/238] Use C++11 initializer list --- src/gui/torrentcontentmodel.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index dd89bf19c..8fe113968 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -56,8 +56,7 @@ namespace TorrentContentModel::TorrentContentModel(QObject *parent) : QAbstractItemModel(parent) - , m_rootItem(new TorrentContentModelFolder(QList() << tr("Name") << tr("Size") - << tr("Progress") << tr("Download Priority"))) + , m_rootItem(new TorrentContentModelFolder(QList({ tr("Name"), tr("Size"), tr("Progress"), tr("Download Priority") }))) { } From 6ff1722dbfec84ea890409c44f10390af963e200 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 9 Jan 2016 17:25:22 +0800 Subject: [PATCH 084/238] Replace names with camelCase style --- src/gui/torrentcontentmodel.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index 8fe113968..ac4269048 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -41,13 +41,13 @@ namespace { - QIcon get_directory_icon() + QIcon getDirectoryIcon() { static QIcon cached = GuiIconProvider::instance()->getIcon("inode-directory"); return cached; } - QIcon get_file_icon() + QIcon getFileIcon() { static QIcon cached = GuiIconProvider::instance()->getIcon("text-plain"); return cached; @@ -180,9 +180,9 @@ QVariant TorrentContentModel::data(const QModelIndex& index, int role) const TorrentContentModelItem* item = static_cast(index.internalPointer()); if ((index.column() == 0) && (role == Qt::DecorationRole)) { if (item->itemType() == TorrentContentModelItem::FolderType) - return get_directory_icon(); + return getDirectoryIcon(); else - return get_file_icon(); + return getFileIcon(); } if ((index.column() == 0) && (role == Qt::CheckStateRole)) { if (item->data(TorrentContentModelItem::COL_PRIO).toInt() == prio::IGNORED) @@ -290,10 +290,10 @@ void TorrentContentModel::setupModelData(const BitTorrent::TorrentInfo &info) qDebug("Torrent contains %d files", info.filesCount()); m_filesIndex.reserve(info.filesCount()); - TorrentContentModelFolder* current_parent; + TorrentContentModelFolder* currentParent; // Iterate over files for (int i = 0; i < info.filesCount(); ++i) { - current_parent = m_rootItem; + currentParent = m_rootItem; QString path = Utils::Fs::fromNativePath(info.filePath(i)); // Iterate of parts of the path to create necessary folders QStringList pathFolders = path.split("/", QString::SkipEmptyParts); @@ -301,16 +301,16 @@ void TorrentContentModel::setupModelData(const BitTorrent::TorrentInfo &info) foreach (const QString& pathPart, pathFolders) { if (pathPart == ".unwanted") continue; - TorrentContentModelFolder* new_parent = current_parent->childFolderWithName(pathPart); - if (!new_parent) { - new_parent = new TorrentContentModelFolder(pathPart, current_parent); - current_parent->appendChild(new_parent); + TorrentContentModelFolder* newParent = currentParent->childFolderWithName(pathPart); + if (!newParent) { + newParent = new TorrentContentModelFolder(pathPart, currentParent); + currentParent->appendChild(newParent); } - current_parent = new_parent; + currentParent = newParent; } // Actually create the file - TorrentContentModelFile* fileItem = new TorrentContentModelFile(info.fileName(i), info.fileSize(i), current_parent, i); - current_parent->appendChild(fileItem); + TorrentContentModelFile* fileItem = new TorrentContentModelFile(info.fileName(i), info.fileSize(i), currentParent, i); + currentParent->appendChild(fileItem); m_filesIndex.push_back(fileItem); } emit layoutChanged(); From a5e6cd256c98ae72e6f65ca852a8d9f488f52d2d Mon Sep 17 00:00:00 2001 From: buinsky Date: Sun, 10 Jan 2016 12:00:29 +0300 Subject: [PATCH 085/238] WebUI: Fix deleting torrents Fix possible showing "qBittorrent client is not reachable" message on deleting torrents. --- src/webui/www/public/confirmdeletion.html | 1 + src/webui/www/public/scripts/dynamicTable.js | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/webui/www/public/confirmdeletion.html b/src/webui/www/public/confirmdeletion.html index b31869ea6..828f1d54b 100644 --- a/src/webui/www/public/confirmdeletion.html +++ b/src/webui/www/public/confirmdeletion.html @@ -15,6 +15,7 @@ window.parent.closeWindows(); }); $('confirmBtn').addEvent('click', function(e){ + parent.torrentsTable.deselectAll(); new Event(e).stop(); var cmd = 'command/delete'; if($('deleteFromDiskCB').get('checked')) diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index aa1aa9cea..739f71bb8 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -194,6 +194,10 @@ var DynamicTable = new Class({ } }, + deselectAll : function () { + this.cur.empty(); + }, + selectRow : function (rowId) { this.cur.empty(); this.cur.push(rowId); @@ -423,7 +427,7 @@ var DynamicTable = new Class({ }, selectedRowsIds : function () { - return this.cur; + return this.cur.slice(); }, getRowIds : function () { From 165ab473df86e7a80b8872543148dbcff99f940a Mon Sep 17 00:00:00 2001 From: buinsky Date: Sun, 10 Jan 2016 12:11:54 +0300 Subject: [PATCH 086/238] WebUI: Fix torrent table context menu Don't show "Limit download speed" menu item for downloaded torrents. --- src/webui/www/public/scripts/contextmenu.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/webui/www/public/scripts/contextmenu.js b/src/webui/www/public/scripts/contextmenu.js index ff427a66c..066696878 100644 --- a/src/webui/www/public/scripts/contextmenu.js +++ b/src/webui/www/public/scripts/contextmenu.js @@ -181,6 +181,8 @@ var ContextMenu = new Class({ show_f_l_piece_prio = false; if (all_are_downloaded) { + this.hideItem('DownloadLimit'); + this.menu.getElement('a[href$=UploadLimit]').parentNode.addClass('separator'); this.hideItem('SequentialDownload'); this.hideItem('FirstLastPiecePrio'); this.showItem('SuperSeeding'); @@ -204,6 +206,8 @@ var ContextMenu = new Class({ this.setItemChecked('SequentialDownload', all_are_seq_dl); this.setItemChecked('FirstLastPiecePrio', all_are_f_l_piece_prio); + this.showItem('DownloadLimit'); + this.menu.getElement('a[href$=UploadLimit]').parentNode.removeClass('separator'); this.hideItem('SuperSeeding'); } From 5e6c38a5247d7da266d4ca3f0c5f9c7bd37bc966 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 10 Jan 2016 14:48:48 +0200 Subject: [PATCH 087/238] Add info and files for coding style. Issue #2192. --- CODING_GUIDELINES.md | 4 +++- codingStyleQtCreator.xml | 39 ++++++++++++++++++++++++++++++++ uncrustify.cfg | 49 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 codingStyleQtCreator.xml create mode 100644 uncrustify.cfg diff --git a/CODING_GUIDELINES.md b/CODING_GUIDELINES.md index f4b71be9a..c74cbccd2 100644 --- a/CODING_GUIDELINES.md +++ b/CODING_GUIDELINES.md @@ -1,6 +1,8 @@ All new code must follow the following coding guidelines. If you make changes in a file that still uses another coding style, make sure that you follow these guidelines for your changes instead. -**Note:** I will now take your head if you forget and use another style. However, most probably the request will be delayed until you fix your coding style. +**Note 1:** I will not take your head if you forget and use another style. However, most probably the request will be delayed until you fix your coding style. +**Note 2:** You can use the `uncrustify` program/tool to clean up any source file. Use it with the `uncrustify.cfg` configuration file found in the root folder. +**Note 3:** There is also a style for QtCreator but it doesn't cover all cases. In QtCreator `Tools->Options...->C++->Code Style->Import...` and choose the `codingStyleQtCreator.xml` file found in the root folder. ### 1. Curly braces ### #### a. Function blocks, class/struct definitions, namespaces #### diff --git a/codingStyleQtCreator.xml b/codingStyleQtCreator.xml new file mode 100644 index 000000000..0f8ccaae6 --- /dev/null +++ b/codingStyleQtCreator.xml @@ -0,0 +1,39 @@ + + + + + + CodeStyleData + + true + false + false + true + false + true + false + false + true + false + false + false + true + true + false + true + false + true + false + 4 + true + false + 1 + true + 4 + + + + DisplayName + qBittorrent + + diff --git a/uncrustify.cfg b/uncrustify.cfg new file mode 100644 index 000000000..46f444573 --- /dev/null +++ b/uncrustify.cfg @@ -0,0 +1,49 @@ +set FOR foreach + +newlines = LF + +indent_with_tabs = 0 +indent_columns = 4 +indent_switch_case = 0 +indent_namespace = true +indent_class = true +indent_col1_comment = true +indent_access_spec = -4 + +nl_enum_brace = add +nl_union_brace = add +nl_struct_brace = add +nl_class_brace = add +nl_do_brace = remove +nl_if_brace = remove +nl_for_brace = remove +nl_else_brace = remove +nl_while_brace = remove +nl_switch_brace = remove +nl_brace_while = remove +nl_brace_else = remove +nl_try_brace = remove +nl_fcall_brace = remove +nl_fdef_brace = add +nl_after_return = false +nl_brace_else = add +nl_class_leave_one_liners = true + +mod_full_brace_if = remove +mod_full_brace_do = remove +mod_full_brace_while = remove +mod_full_brace_for = remove +mod_full_brace_if_chain = true +mod_full_brace_nl = 3 +mod_full_paren_if_bool = true + +sp_else_brace = add +sp_try_brace = add +sp_arith = add +sp_assign = add +sp_defined_paren = ignore +sp_pp_concat = ignore +sp_pp_stringify = ignore +sp_bool = add +sp_after_class_colon = add +sp_before_class_colon = remove From b863e77b6372ab4ab77f45b8d883c49fd722a1ac Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Sun, 10 Jan 2016 14:56:53 +0200 Subject: [PATCH 088/238] Fix newlines in wiki rendering. --- CODING_GUIDELINES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CODING_GUIDELINES.md b/CODING_GUIDELINES.md index c74cbccd2..28031f201 100644 --- a/CODING_GUIDELINES.md +++ b/CODING_GUIDELINES.md @@ -1,8 +1,8 @@ All new code must follow the following coding guidelines. If you make changes in a file that still uses another coding style, make sure that you follow these guidelines for your changes instead. -**Note 1:** I will not take your head if you forget and use another style. However, most probably the request will be delayed until you fix your coding style. -**Note 2:** You can use the `uncrustify` program/tool to clean up any source file. Use it with the `uncrustify.cfg` configuration file found in the root folder. -**Note 3:** There is also a style for QtCreator but it doesn't cover all cases. In QtCreator `Tools->Options...->C++->Code Style->Import...` and choose the `codingStyleQtCreator.xml` file found in the root folder. +**Note 1:** I will not take your head if you forget and use another style. However, most probably the request will be delayed until you fix your coding style. +**Note 2:** You can use the `uncrustify` program/tool to clean up any source file. Use it with the `uncrustify.cfg` configuration file found in the root folder. +**Note 3:** There is also a style for QtCreator but it doesn't cover all cases. In QtCreator `Tools->Options...->C++->Code Style->Import...` and choose the `codingStyleQtCreator.xml` file found in the root folder. ### 1. Curly braces ### #### a. Function blocks, class/struct definitions, namespaces #### From 00e6e00e716eaba49ea9ad107085b4eea54ba290 Mon Sep 17 00:00:00 2001 From: buinsky Date: Sun, 10 Jan 2016 15:30:34 +0300 Subject: [PATCH 089/238] Edit speed limits and upload ratio icons --- AUTHORS | 5 +++++ src/gui/mainwindow.cpp | 8 ++++---- src/gui/transferlistwidget.cpp | 6 +++--- src/icons.qrc | 2 ++ src/icons/skin/downloadLimit.png | Bin 0 -> 435 bytes src/icons/skin/ratio.png | Bin 370 -> 760 bytes src/icons/skin/uploadLimit.png | Bin 0 -> 406 bytes src/webui/www/private/index.html | 4 ++-- 8 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 src/icons/skin/downloadLimit.png create mode 100644 src/icons/skin/uploadLimit.png diff --git a/AUTHORS b/AUTHORS index e93cb50fa..22b9bbea7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -79,6 +79,11 @@ Images Authors: * file: src/icons/oxygen/checked.png copyright: Victor Buinsky + +* file: src/icons/skin/ratio.png + copyright: Fatcow Web Hosting + license: Creative Commons Attribution 3.0 License + url: http://www.fatcow.com/free-icons Translations authors: * files: src/lang/*.ts diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index c38d4eea8..8dee0e344 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -129,10 +129,10 @@ MainWindow::MainWindow(QWidget *parent) actionOpen->setIcon(GuiIconProvider::instance()->getIcon("list-add")); actionDownload_from_URL->setIcon(GuiIconProvider::instance()->getIcon("insert-link")); - actionSet_upload_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/seeding.png"))); - actionSet_download_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/download.png"))); - actionSet_global_upload_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/seeding.png"))); - actionSet_global_download_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/download.png"))); + actionSet_upload_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/uploadLimit.png"))); + actionSet_download_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/downloadLimit.png"))); + actionSet_global_upload_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/uploadLimit.png"))); + actionSet_global_download_limit->setIcon(QIcon(QString::fromUtf8(":/icons/skin/downloadLimit.png"))); actionCreate_torrent->setIcon(GuiIconProvider::instance()->getIcon("document-edit")); actionAbout->setIcon(GuiIconProvider::instance()->getIcon("help-about")); actionStatistics->setIcon(GuiIconProvider::instance()->getIcon("view-statistics")); diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index 87508d747..2e4cb03b2 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -638,9 +638,9 @@ void TransferListWidget::displayListMenu(const QPoint&) connect(&actionPreview_file, SIGNAL(triggered()), this, SLOT(previewSelectedTorrents())); QAction actionSet_max_ratio(QIcon(QString::fromUtf8(":/icons/skin/ratio.png")), tr("Limit share ratio..."), 0); connect(&actionSet_max_ratio, SIGNAL(triggered()), this, SLOT(setMaxRatioSelectedTorrents())); - QAction actionSet_upload_limit(QIcon(QString::fromUtf8(":/icons/skin/seeding.png")), tr("Limit upload rate..."), 0); + QAction actionSet_upload_limit(QIcon(QString::fromUtf8(":/icons/skin/uploadLimit.png")), tr("Limit upload rate..."), 0); connect(&actionSet_upload_limit, SIGNAL(triggered()), this, SLOT(setUpLimitSelectedTorrents())); - QAction actionSet_download_limit(QIcon(QString::fromUtf8(":/icons/skin/download.png")), tr("Limit download rate..."), 0); + QAction actionSet_download_limit(QIcon(QString::fromUtf8(":/icons/skin/downloadLimit.png")), tr("Limit download rate..."), 0); connect(&actionSet_download_limit, SIGNAL(triggered()), this, SLOT(setDlLimitSelectedTorrents())); QAction actionOpen_destination_folder(GuiIconProvider::instance()->getIcon("inode-directory"), tr("Open destination folder"), 0); connect(&actionOpen_destination_folder, SIGNAL(triggered()), this, SLOT(openSelectedTorrentsFolder())); @@ -777,8 +777,8 @@ void TransferListWidget::displayListMenu(const QPoint&) listMenu.addSeparator(); if (one_not_seed) listMenu.addAction(&actionSet_download_limit); - listMenu.addAction(&actionSet_max_ratio); listMenu.addAction(&actionSet_upload_limit); + listMenu.addAction(&actionSet_max_ratio); if (!one_not_seed && all_same_super_seeding && one_has_metadata) { actionSuper_seeding_mode.setChecked(super_seeding_mode); listMenu.addAction(&actionSuper_seeding_mode); diff --git a/src/icons.qrc b/src/icons.qrc index 693f25b26..b93a209cf 100644 --- a/src/icons.qrc +++ b/src/icons.qrc @@ -370,5 +370,7 @@ icons/oxygen/go-top.png icons/oxygen/checked.png icons/oxygen/office-chart-line.png + icons/skin/downloadLimit.png + icons/skin/uploadLimit.png diff --git a/src/icons/skin/downloadLimit.png b/src/icons/skin/downloadLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c1dc3e56c5ef3c15e607a837651b8a68ed7eed GIT binary patch literal 435 zcmV;k0ZjghP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;js(W8VM(0VGL8K~y+Tjgn7G0znwY_vFV2`W}9RptA{@ z;89alvMzcNOo9&XsY4WavcQ9QOmUMy59>it63R{{)Tv#{lkhsv!oaw^4!iK%d70-A zyR&Pgx)DF5LtKUmTafL?SfB+eI3FZgpam)@4bv>pxPq`s&WcmjF8a9eR%m{|k?x(C zg_i_L%t=Ly>O~e$5E8=};=^0rhso~2iwv^zy$|!&soVUxqt<6b3q0^5BhNr`Tpnhq zyXyl*JS^^vOt4JhPi^!SuZ+zUbgAoneBi*Xz=I?z(H}4bQbQMzSk?k z7hx7Zk^@Z*?<)XDHT#nOH-8?Ov1iTQov^L|Ts}uDh&tUyzQzCm002ovPDHLkV1mrIw6OpH literal 0 HcmV?d00001 diff --git a/src/icons/skin/ratio.png b/src/icons/skin/ratio.png index 49ab7bb7d4246e96f4bb9b588fbe932f3542a76c..a7d83bc30a16f56cc2eb2408e2b0e23b1cf24162 100644 GIT binary patch delta 747 zcmVeSaefwW^{L9a%BKPWN%_+AW3auXJt}l zVPtu6$z?nM00NpxL_t(|+Juu`NEA^N$IsmT&@dCN*iwsC(FY}aD2=uxQPz^= zm}UOqaL$}_=RZHra2cR_eaSk+3(^6e7d=rd^&^Cg=9;aarVV-Q~cnM)aB0QF+c`SC*Ji%hg-DDqm@rOarS<9B0;Nm%7kVQ|% zr(4Hn=Jd23*MC)4?ra}+AI&x-64&Wd^%}Ib z*}AV=MeM3G%O~P#Y^0HXquO-+qP5_rOso>1!N$t6FM)_76y<;LqU3e^LPL$Edy3@) zlBD>sG=jGJ3NblRN8*u=yH#Bj`n?EyLzRQ3lx4d~Ie)pkU_dT9Pn8q3sZhr2(h~H# zv}UWxrV?mNcR2HLM_Q0b@V+A_YcMU~Ro! dZtzQh0RT&JXJbHbv@!qy002ovPDHLkV1kKzXdD0l literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}dw@@f>;G=n|3CmF@uOZYgn~Zq z|Gk_b?o8$XQ>8(S>GJ>gm;GOA`+u$f|DBot_Z9!2D)s;3od35s{r~j%|F6#=D^BLQYZF#;>8X zcjAmS`;VVJ|Ni6sIeZmB6)m1Fjv*Csq34c^H5mxBK2!{HQRFzJ@+C?C{r?)Z$0s`P zznWKHdhoct^oMez(<<9^PyG#)W3bWAnzpnvBZ%Wv=Dg)bKUgRB`zN1aZFjlf>9
      IS-p!PC{xWt~$(6964Aw2uG) diff --git a/src/icons/skin/uploadLimit.png b/src/icons/skin/uploadLimit.png new file mode 100644 index 0000000000000000000000000000000000000000..87ae05fa91a1739a111bcd3c714e83bd31306950 GIT binary patch literal 406 zcmV;H0crk;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;js(W8VM(0S8G$K~y+Tt&zP-!(bGKvqWf}TrK#6m*84= zL8y1&O$gqCNJ!D4v;_wj9R!!+D0XZ?9J;u;2s*ily16_(Z~V)b9zqZU51j9u=RM?0 zA|RsE;7?fgpB8u|@jl}NGE{qx;WjO>#l^OjUyo|_9CxN+;u8I}7v3J>SQBT_TR(Move to bottom)QBT_TR QBT_TR(Move to bottom)QBT_TR
  • -
  • QBT_TR(Limit download rate...)QBT_TR QBT_TR(Limit download rate...)QBT_TR
  • -
  • QBT_TR(Limit upload rate...)QBT_TR QBT_TR(Limit upload rate...)QBT_TR
  • +
  • QBT_TR(Limit download rate...)QBT_TR QBT_TR(Limit download rate...)QBT_TR
  • +
  • QBT_TR(Limit upload rate...)QBT_TR QBT_TR(Limit upload rate...)QBT_TR
  • QBT_TR(Super seeding mode)QBT_TR QBT_TR(Super seeding mode)QBT_TR
  • QBT_TR(Download in sequential order)QBT_TR QBT_TR(Download in sequential order)QBT_TR
  • QBT_TR(Download first and last piece first)QBT_TR QBT_TR(Download first and last piece first)QBT_TR
  • From 0779b29022c27d1431f2cf168fd5feccdafb005d Mon Sep 17 00:00:00 2001 From: vlakoff Date: Mon, 11 Jan 2016 15:27:01 +0100 Subject: [PATCH 090/238] Fixes in French translation for installer --- .../windows/installer-translations/french.nsi | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/dist/windows/installer-translations/french.nsi b/dist/windows/installer-translations/french.nsi index 1e776b4b5..2df781a9d 100644 --- a/dist/windows/installer-translations/french.nsi +++ b/dist/windows/installer-translations/french.nsi @@ -11,11 +11,11 @@ LangString inst_torrent ${LANG_FRENCH} "Ouvrir fichiers .torrent avec qBittorren ;LangString inst_magnet ${LANG_ENGLISH} "Open magnet links with qBittorrent" LangString inst_magnet ${LANG_FRENCH} "Ouvrir liens magnet avec qBittorrent" ;LangString inst_firewall ${LANG_ENGLISH} "Add Windows Firewall rule" -LangString inst_firewall ${LANG_FRENCH} "Ajouter régle Pare-Feu Windows" +LangString inst_firewall ${LANG_FRENCH} "Ajouter règle Pare-Feu Windows" ;LangString inst_firewallinfo ${LANG_ENGLISH} "Adding Windows Firewall rule" -LangString inst_firewallinfo ${LANG_FRENCH} "Ajout régle Pare-Feu Windows" +LangString inst_firewallinfo ${LANG_FRENCH} "Ajout règle Pare-Feu Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." -LangString inst_warning ${LANG_FRENCH} "qBittorrent est en exécution. Veuillez fermer l'application avant l'installation." +LangString inst_warning ${LANG_FRENCH} "qBittorrent est en cours d'exécution. Veuillez fermer l'application avant l'installation." ;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." LangString inst_uninstall_question ${LANG_FRENCH} "A previous installation was detected. It will be uninstalled without deleting user settings." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." @@ -32,20 +32,20 @@ LangString remove_files ${LANG_FRENCH} "Supprimer fichiers" ;LangString remove_shortcuts ${LANG_ENGLISH} "Remove shortcuts" LangString remove_shortcuts ${LANG_FRENCH} "Supprimer raccourcis" ;LangString remove_associations ${LANG_ENGLISH} "Remove file associations" -LangString remove_associations ${LANG_FRENCH} "Supprimer fichiers associés" +LangString remove_associations ${LANG_FRENCH} "Supprimer associations de fichiers" ;LangString remove_registry ${LANG_ENGLISH} "Remove registry keys" -LangString remove_registry ${LANG_FRENCH} "supprimer clés de registre" +LangString remove_registry ${LANG_FRENCH} "Supprimer clés de registre" ;LangString remove_conf ${LANG_ENGLISH} "Remove configuration files" LangString remove_conf ${LANG_FRENCH} "Supprimer fichiers de configuration" ;LangString remove_firewall ${LANG_ENGLISH} "Remove Windows Firewall rule" -LangString remove_firewall ${LANG_FRENCH} "Supprimer régle Pare-Feu Windows" +LangString remove_firewall ${LANG_FRENCH} "Supprimer règle Pare-Feu Windows" ;LangString remove_firewallinfo ${LANG_ENGLISH} "Removing Windows Firewall rule" -LangString remove_firewallinfo ${LANG_FRENCH} "Suppression régle Pare-Feu Windows" +LangString remove_firewallinfo ${LANG_FRENCH} "Suppression règle Pare-Feu Windows" ;LangString remove_cache ${LANG_ENGLISH} "Remove torrents and cached data" LangString remove_cache ${LANG_FRENCH} "Supprimer torrents et données cachées" ;LangString uninst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before uninstalling." -LangString uninst_warning ${LANG_FRENCH} "qBittorrent est en exécution. Veuillez fermer l'application avant la désinstallation." +LangString uninst_warning ${LANG_FRENCH} "qBittorrent est en cours d'exécution. Veuillez fermer l'application avant la désinstallation." ;LangString uninst_tor_warn ${LANG_ENGLISH} "Not removing .torrent association. It is associated with:" -LangString uninst_tor_warn ${LANG_FRENCH} "Ne peut pas supprimer l'association du .torrent. Elle est associée avec:" +LangString uninst_tor_warn ${LANG_FRENCH} "Ne peut pas supprimer l'association du .torrent. Elle est associée avec :" ;LangString uninst_mag_warn ${LANG_ENGLISH} "Not removing magnet association. It is associated with:" -LangString uninst_mag_warn ${LANG_FRENCH} "Ne peut pas supprimer l'association du magnet. Elle est associée avec:" +LangString uninst_mag_warn ${LANG_FRENCH} "Ne peut pas supprimer l'association du magnet. Elle est associée avec :" From bb9516c5cbe54b7194597b34793e67e759e6f1c9 Mon Sep 17 00:00:00 2001 From: vlakoff Date: Mon, 11 Jan 2016 15:27:11 +0100 Subject: [PATCH 091/238] Complete French translation for installer --- dist/windows/installer-translations/french.nsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/windows/installer-translations/french.nsi b/dist/windows/installer-translations/french.nsi index 2df781a9d..e9d2dd866 100644 --- a/dist/windows/installer-translations/french.nsi +++ b/dist/windows/installer-translations/french.nsi @@ -17,7 +17,7 @@ LangString inst_firewallinfo ${LANG_FRENCH} "Ajout règle Pare-Feu Windows" ;LangString inst_warning ${LANG_ENGLISH} "qBittorrent is running. Please close the application before installing." LangString inst_warning ${LANG_FRENCH} "qBittorrent est en cours d'exécution. Veuillez fermer l'application avant l'installation." ;LangString inst_uninstall_question ${LANG_ENGLISH} "A previous installation was detected. It will be uninstalled without deleting user settings." -LangString inst_uninstall_question ${LANG_FRENCH} "A previous installation was detected. It will be uninstalled without deleting user settings." +LangString inst_uninstall_question ${LANG_FRENCH} "Une installation précédente a été détectée. Elle sera désinstallée sans supprimer les réglages utilisateur." ;LangString inst_unist ${LANG_ENGLISH} "Uninstalling previous version." LangString inst_unist ${LANG_FRENCH} "Désinstallation de la version précédente." ;LangString launch_qbt ${LANG_ENGLISH} "Launch qBittorrent." From 3a99e3b755551b52a8c816a4a4c8847c99260ccf Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 11 Jan 2016 19:44:44 +0200 Subject: [PATCH 092/238] Various updates on the Windows configuration file. --- winconf.pri | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/winconf.pri b/winconf.pri index 73e79213b..631884355 100644 --- a/winconf.pri +++ b/winconf.pri @@ -22,9 +22,16 @@ LIBS += $$quote(-LC:/qBittorrent/openssl/lib) DEFINES += BOOST_ALL_NO_LIB DEFINES += BOOST_ASIO_HASH_MAP_BUCKETS=1021 DEFINES += BOOST_ASIO_SEPARATE_COMPILATION +# After 1.55 some Windows users reported regular UI freezes. +# This makes ASIO use the pre-1.56 way of doing things. See issue #2003 +DEFINES += BOOST_ASIO_DISABLE_CONNECTEX +# Boost 1.60+ defaults to Vista+ support. The define below enables XP support again. +DEFINES += BOOST_USE_WINAPI_VERSION=0x0501 DEFINES += BOOST_EXCEPTION_DISABLE DEFINES += BOOST_SYSTEM_STATIC_LINK=1 DEFINES += TORRENT_USE_OPENSSL +DEFINES += TORRENT_DISABLE_GEO_IP +DEFINES += TORRENT_DISABLE_RESOLVE_COUNTRIES DEFINES += UNICODE DEFINES += _UNICODE DEFINES += WIN32 From 21f587cc459aba2463118f7019bbee80f4fccc52 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 11 Jan 2016 19:54:51 +0200 Subject: [PATCH 093/238] Sync translations from Transifex and run lupdate. --- src/lang/qbittorrent_ar.ts | 4556 +++++++++++++++------------- src/lang/qbittorrent_be.ts | 2359 ++++++++------- src/lang/qbittorrent_bg.ts | 2253 +++++++------- src/lang/qbittorrent_ca.ts | 2339 ++++++++------- src/lang/qbittorrent_cs.ts | 2361 ++++++++------- src/lang/qbittorrent_da.ts | 2306 +++++++------- src/lang/qbittorrent_de.ts | 2354 ++++++++------- src/lang/qbittorrent_el.ts | 2358 ++++++++------- src/lang/qbittorrent_en.ts | 2288 +++++++------- src/lang/qbittorrent_en_AU.ts | 2260 +++++++------- src/lang/qbittorrent_en_GB.ts | 2260 +++++++------- src/lang/qbittorrent_eo.ts | 5290 +++++++++++++++++---------------- src/lang/qbittorrent_es.ts | 2347 ++++++++------- src/lang/qbittorrent_eu.ts | 2347 ++++++++------- src/lang/qbittorrent_fi.ts | 2282 +++++++------- src/lang/qbittorrent_fr.ts | 3045 ++++++++++--------- src/lang/qbittorrent_gl.ts | 2348 ++++++++------- src/lang/qbittorrent_he.ts | 3002 ++++++++++--------- src/lang/qbittorrent_hi_IN.ts | 2274 +++++++------- src/lang/qbittorrent_hr.ts | 2360 ++++++++------- src/lang/qbittorrent_hu.ts | 2432 ++++++++------- src/lang/qbittorrent_hy.ts | 2275 +++++++------- src/lang/qbittorrent_id.ts | 2337 ++++++++------- src/lang/qbittorrent_it.ts | 2347 ++++++++------- src/lang/qbittorrent_ja.ts | 2346 ++++++++------- src/lang/qbittorrent_ka.ts | 2259 +++++++------- src/lang/qbittorrent_ko.ts | 2793 +++++++++-------- src/lang/qbittorrent_lt.ts | 2518 +++++++++------- src/lang/qbittorrent_nb.ts | 2353 ++++++++------- src/lang/qbittorrent_nl.ts | 2347 ++++++++------- src/lang/qbittorrent_pl.ts | 2347 ++++++++------- src/lang/qbittorrent_pt.ts | 2350 ++++++++------- src/lang/qbittorrent_pt_BR.ts | 2347 ++++++++------- src/lang/qbittorrent_ro.ts | 2518 +++++++++------- src/lang/qbittorrent_ru.ts | 2637 +++++++++------- src/lang/qbittorrent_sk.ts | 2353 ++++++++------- src/lang/qbittorrent_sl.ts | 2318 ++++++++------- src/lang/qbittorrent_sr.ts | 2259 +++++++------- src/lang/qbittorrent_sv.ts | 2320 ++++++++------- src/lang/qbittorrent_tr.ts | 2349 ++++++++------- src/lang/qbittorrent_uk.ts | 2347 ++++++++------- src/lang/qbittorrent_vi.ts | 2344 ++++++++------- src/lang/qbittorrent_zh.ts | 3234 +++++++++++--------- src/lang/qbittorrent_zh_HK.ts | 2346 ++++++++------- src/lang/qbittorrent_zh_TW.ts | 2346 ++++++++------- 45 files changed, 62968 insertions(+), 50443 deletions(-) diff --git a/src/lang/qbittorrent_ar.ts b/src/lang/qbittorrent_ar.ts index 750f4f488..bfe881947 100644 --- a/src/lang/qbittorrent_ar.ts +++ b/src/lang/qbittorrent_ar.ts @@ -87,7 +87,7 @@ Save as - حفظ بشكل + حفظ في @@ -117,7 +117,7 @@ Label: - الملصق: + التصنيف: @@ -127,7 +127,7 @@ Set as default label - + تعيينه كتصنيف افتراضي @@ -142,7 +142,7 @@ Comment: - تعليق: + التعليق: @@ -152,7 +152,7 @@ Info Hash: - + معلومات التحقق من البيانات: @@ -175,172 +175,172 @@ لا تنزّل - - + + I/O Error خطأ إدخال/إخراج - + The torrent file does not exist. ملف التورنت غير موجود. - + Invalid torrent ملف تورنت خاطئ - + Failed to load the torrent: %1 فشل في تنزيل التورنت: %1 - - + + Already in download list موجود في قائمة التنزيل بالفعل - + Free disk space: %1 المساحة الخالية من القرص: %1 - + Not Available This comment is unavailable غير متاح - + Not Available This date is unavailable غير متاح - + Not available غير متوفر - + Invalid magnet link رابط مغناطيسي خاطئ - + Torrent is already in download list. Trackers were merged. - + التورنت موجود بالفعل في قائمة التنزيل. ستُدمج المتتبعات. - - + + Cannot add torrent لا يمكن إضافة التورينت - + Cannot add this torrent. Perhaps it is already in adding state. لا يمكن إضافة هذا التورنت. ربما لأنه في حالة الإضافة - + This magnet link was not recognized لا يمكن التعرف على هذا الرابط المغناطيسي - + Magnet link is already in download list. Trackers were merged. - + الرابط المغناطيسي موجود بالفعل في قائمة التنزيل. ستُدمج المتتبعات. - + Cannot add this torrent. Perhaps it is already in adding. - + لا يمكن إضافة هذا التورنت. ربما لأنه في حالة الإضافة. - + Magnet link رابط مغناطيسي - + Retrieving metadata... يجلب البيانات الوصفية... - + Not Available This size is unavailable. غير متاح - - - + + + Choose save path اختر مسار الحفظ - + Rename the file إعادة تسمية الملف - + New name: الاسم الجديد: - - + + The file could not be renamed لا يمكن إعادة تسمية الملف - + This file name contains forbidden characters, please choose a different one. اسم هذا الملف يحتوي على أحرف محظورة الاستخدام في التسمية. من فضلك اختر اسماٌ آخر. - - + + This name is already in use in this folder. Please use a different name. هذا الاسم مستخدم بالفعل في هذا المجلد. من فضلك اختر اسما آخر. - + The folder could not be renamed لا يمكن إعادة تسمية المجلد - + Rename... إعادة التسمية... - + Priority الأولوية - + Invalid metadata بيانات وصفية خاطئة - + Parsing metadata... يحلّل البيانات الوصفية... - + Metadata retrieval complete اكتمل جلب البيانات الوصفية - + Download Error خطأ في التنزيل @@ -431,10 +431,6 @@ Resolve peer host names اظهار اسم الجهاز للقرين - - Maximum number of half-open connections [0: Disabled] - أكبر كمية من الاتصالات النصف مفتوحة [0: معطلة] - Strict super seeding @@ -453,7 +449,7 @@ Confirm torrent recheck - + تأكيد إعادة التحقق من التورنت @@ -475,12 +471,12 @@ Save resume data interval How often the fastresume file is saved. - + حفظ فترة استئناف البيانات Maximum number of half-open connections [0: Unlimited] - + أكبر عدد من الاتصالات النصف مفتوحة [0: غير محدودة] @@ -529,27 +525,27 @@ To control qBittorrent, access the Web UI at http://localhost:%1 - + للتحكم في كيوبت‎تورنت، ادخل على واجهة استخدام الويب من المتصفح من خلال العنوان التالي: http://localhost:%1 The Web UI administrator user name is: %1 - + اسم المستخدم المسؤول لواجهة الويب هو: %1 The Web UI administrator password is still the default one: %1 - + كلمة السر للمستخدم المسؤول لواجهة الويب ما تزال الكلمة الافتراضية: %1 This is a security risk, please consider changing your password from program preferences. - + هذا خطر أمني، برجاء الأخذ بالاعتبار تغيير كلمة السر من تفضيلات البرنامج. Saving torrent progress... - + حفظ تقدم التورنت... @@ -562,37 +558,37 @@ RSS Downloader - + منزّل RSS... Enable Automated RSS Downloader - + تفعيل مُنزّل RSS الآلي Download Rules - + قواعد التنزيل Rule Definition - + تعريف القاعدة Use Regular Expressions - + استخدام التعبيرات المعتادة Must Contain: - + يجب أن تحتوي: Must Not Contain: - + يجب ألا تحتوي: @@ -602,12 +598,12 @@ Assign Label: - + تعيين تصنيف: Save to a Different Directory - + حفظ إلى مجلد مختلف @@ -628,22 +624,22 @@ Use global settings - + استخدام الإعدادات العامة Always - + دائما Never - أبدا + أبدا Apply Rule to Feeds: - + تطبيق القاعدة على التغذيات: @@ -653,213 +649,213 @@ &Import... - + ا&ستيراد... &Export... - + ت&صدير... - + Matches articles based on episode filter. - + Example: مثال: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name اسم قاعدة جديد - + Please type the name of the new download rule. يرجى كتابة اسم قاعدة التنزيل الجديدة. - - + + Rule name conflict تعارض في اسم القاعدة - - + + A rule with this name already exists, please choose another name. تعارض في اسم القاعدة اختر اسم اخر. - + Are you sure you want to remove the download rule named '%1'? - + هل أنت متأكد من رغبتك في إزالة قاعدة التنزيل المسمّاة "%1"؟ - + Are you sure you want to remove the selected download rules? Are you sure you want to remove the selected download rules? - + Rule deletion confirmation تأكيد حذف القاعدة - + Destination directory المجلد المستهدف - + Invalid action حركة خاطئة - + The list is empty, there is nothing to export. القائمة فارغة، ولا يوجد شيء لتصديره. - + Where would you like to save the list? أين ترغب أن تحفظ القائمة؟ - + Rules list (*.rssrules) قائمة القواعد (*.rssrules) - + I/O Error خطأ إدخال/إخراج - + Failed to create the destination file خطأ في انشاء الملف - + Please point to the RSS download rules file Please point to the RSS download rules file - + Rules list - + قائمة القواعد - + Import Error خطأ في الاستيراد - + Failed to import the selected rules file فشل في استيراد ملف القواعد المختار - + Add new rule... اضافة قاعدة جديدة... - + Delete rule حذف القاعدة - + Rename rule... تغيير تسمية القاعدة... - + Delete selected rules حذف القواعد المختارة - + Rule renaming تغيير تسمية القاعدة - + Please type the new rule name اكتب اسم القاعدة الجديدة - + Regex mode: use Perl-like regular expressions Regex mode: use Perl-like regular expressions - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> @@ -879,12 +875,12 @@ Anonymous mode [ON] - + النمط المجهول [يعمل] Anonymous mode [OFF] - + النمط المجهول [متوقف] @@ -904,42 +900,42 @@ Local Peer Discovery support [ON] - + دعم اكتشاف القرناء المحليين [يعمل] Local Peer Discovery support [OFF] - + دعم اكتشاف القرناء المحليين [متوقف] Encryption support [ON] - + دعم التشفير [يعمل] Encryption support [FORCED] - + دعم التشفير [بالقوة] Encryption support [OFF] - + دعم التشفير [متوقف] Embedded Tracker [ON] - + المتتبع الداخلي [يعمل] Failed to start the embedded tracker! - + فشل محاولة تشغيل المتتبع الداخلي! Embedded Tracker [OFF] - + المتتبع الداخلي [متوقف] @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + متصل - + OFFLINE - + غير متصل - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + لا يمكن حفظ '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + يجري تنزيل "%1"، يرجى الانتظار... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number تمت معالجة قائمة الحظر المعطاة بنجاح: %1 تم تطبيقها. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ القيمة - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1232,7 +1228,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + هل أنت متأكد من رغبتك في حذف '%1' من قائمة النقل؟ @@ -1246,17 +1242,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + الأبيض: قطع ناقصة Green: Partial pieces - + الأخضر: قطع جزئية Blue: Completed pieces - + الأزرق: قطع اكتمل تنزيلها @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread غير مقروء @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line رابط واحد لكل سطر - - Download local torrent - حمل تورنت محلي - Download @@ -1401,7 +1393,7 @@ You should get this information from your Web browser preferences. Global upload rate limit must be greater than 0 or disabled. - + مُعدل حد الرفع العام يجب أن يكون أكبر من 0 أو معطل. @@ -1411,7 +1403,7 @@ You should get this information from your Web browser preferences. Alternative upload rate limit must be greater than 0 or disabled. - + مُعدل حد الرفع البديل يجب أن يكون أكبر من 0 أو معطل. @@ -1496,7 +1488,7 @@ You should get this information from your Web browser preferences. Original authors - + المؤلفين الأصليين @@ -1511,67 +1503,67 @@ You should get this information from your Web browser preferences. Apply - + تطبيق Add - + إضافة Upload Torrents - + رفع التورنتات All - + الكل Downloading - ينزل + التنزيل Seeding - يبذُر + البذر Completed - + المكتمل Resumed - + المُستأنف Paused - ملبث + المُلبث Active - + النشط Inactive - + الغير نشط Save files to location: - حفظ الملفات إلى: + حفظ الملفات إلى المجلد: Label: - + التصنيف: @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? تم تنزيله @@ -1587,17 +1589,17 @@ You should get this information from your Web browser preferences. Logout - + خروج Upload local torrent - + رفع تورنت محلي Are you sure you want to delete the selected torrents from the transfer list? - + هل أنت متأكد من رغبتك في حذف التورنتات المختارة من قائمة النقل؟ @@ -1656,7 +1658,7 @@ You should get this information from your Web browser preferences. Unlabeled (0) - غير مُعلَمة (0) + غير مُصنفة (0) @@ -1671,7 +1673,7 @@ You should get this information from your Web browser preferences. Unlabeled (%1) - غير مُعلَمة (%1) + غير مُصنفة (%1) @@ -1683,17 +1685,17 @@ You should get this information from your Web browser preferences. Add label... - إضافة مُلصق... + إضافة تصنيف... Remove label - إزالة المُلصق + إزالة التصنيف Remove unused labels - إزالة المُلصقات الغير مستخدمة + إزالة التصنيفات الغير مستخدمة @@ -1713,22 +1715,22 @@ You should get this information from your Web browser preferences. New Label - مُلصق جديد + تصنيف جديد Label: - المُلصق + التصنيف: Invalid label name - اسم مُلصق غير صالح + اسم تصنيف غير صالح Please don't use any special characters in the label name. - الرجاء عدم استعمال اسماء تحتوي علي رموز خاصة في اسم الملصق. + برجاء عدم استخدام أي حروف خاصة في اسم التصنيف. @@ -1777,7 +1779,7 @@ You should get this information from your Web browser preferences. On Downloads &Done - + عند انت&هاء التنزيلات @@ -1797,7 +1799,7 @@ You should get this information from your Web browser preferences. Torrent &Creator - + مُ&نشيء التورنت @@ -1822,58 +1824,58 @@ You should get this information from your Web browser preferences. Minimum Priority - + أقل أولوية Top Priority - + أعلى أولوية Decrease Priority - + خفض الأولوية Increase Priority - + زيادة الأولوية Alternative Speed Limits - + حدود السرعات البديلة &Top Toolbar - + شريط الأدوات ال&علوي Display Top Toolbar - + عرض شريط الأدوات العلوي S&peed in Title Bar - + ال&سرعة في شريط العنوان Show Transfer Speed in Title Bar - + عرض السرعة في شريط العنوان &RSS Reader - + &قارئ RSS Search &Engine - + مُ&حرك البحث @@ -1883,17 +1885,17 @@ You should get this information from your Web browser preferences. &Import Existing Torrent... - + ا&ستيراد تورنت موجود... Import Torrent... - + استيراد تورنت... Do&nate! - + ت&برع! @@ -1903,7 +1905,7 @@ You should get this information from your Web browser preferences. &Log - + ال&سجل @@ -1913,47 +1915,43 @@ You should get this information from your Web browser preferences. &Suspend System - + ت&عليق النظام &Hibernate System - + إ&لباث النظام S&hutdown System - + إ&طفاء تشغيل الجهاز &Disabled - + ت&عطيل &Statistics - + الإ&حصائات Check for Updates - + البحث عن تحديثات Check for Program Updates - + التحقق من وجود تحديثات للتطبيق &About &عن - - Exit - خروج - &Pause @@ -1972,7 +1970,7 @@ You should get this information from your Web browser preferences. &Add Torrent File... - + إ&ضافة ملف تورنت... @@ -1982,23 +1980,7 @@ You should get this information from your Web browser preferences. E&xit - - - - Options - خيارات - - - Resume - استئناف - - - Pause - إلباث - - - Delete - حذف + &خروج @@ -2017,23 +1999,19 @@ You should get this information from your Web browser preferences. - + Show أظهر - + Check for program updates التحقق من وجود تحديثات للتطبيق - - Lock qBittorrent - قفل البرنامج - Add Torrent &Link... - + إضافة &رابط تورنت... @@ -2042,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log السجل - + Clear the password إزالة كلمة السر - + Filter torrent list... تصفية قائمة التورنت... - + &Set Password - + ت&عيين كلمة سر - + &Clear Password - + &مسح كلمة السر - + Transfers النقل - + Torrent file association الإرتباط بملف التورنت - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? كيوبت‎تورنت ليس التطبيق الافتراضي لفتح ملفات التورنت والروابط الممغنطة. هل ترغب بربط كيوبت‎تورنت بملفات التورنت والروابط الممغنطة ؟ - + Icons Only أيقونات فقط - + Text Only نص فقط - + Text Alongside Icons النص بجانب الأيقونات - + Text Under Icons النص أسفل الأيقونات - + Follow System Style اتباع شكل النظام - - - + + + UI lock password كلمة سر قفل الواجهة - - - + + + Please type the UI lock password: اكتب كلمة سر قفل الواجهة: - + The password should contain at least 3 characters يجب أن لا تقل كلمة السر عن ثلاثة أحرف - + Password update تحديث كلمة السر - + The UI lock password has been successfully updated تم تحديث كلمة سر قفل الواجهة - + Are you sure you want to clear the password? هل ترغب حقا في إزالة كلمة السر؟ - + Search البحث - + Transfers (%1) النقل (%1) - + Error - + خطأ - + Failed to add torrent: %1 - + فشل في إضافة التورنت: %1 - + Download completion انتهاء التنزيل - + I/O Error i.e: Input/Output Error خطأ في الإخراج/الإدخال - + Recursive download confirmation تأكيد متكرر للتنزيل - + Yes نعم - + No لا - + Never أبدا - + Global Upload Speed Limit حدود سرعة الرفع العامة - + Global Download Speed Limit حدود سرعة التنزيل العامة - + &No - &لا + &لا - + &Yes - &نعم + &نعم - + &Always Yes - + نعم &دائما - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available يوجد تحديث متاح - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version أنت تستخدم الإصدارة الأخيرة - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2258,156 +2242,156 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - A new version is available. Update to version %1? - + توجد إصدارة جديدة متاحة. +التحديث للإصدارة %1 ؟ - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background يتحقق من وجود تحديثات للتطبيق في الخلفية - + Python found in '%1' - + Download error خطأ في التنزيل - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password كلمة سرّ خاطئة - - + + RSS (%1) - + URL download error - + The password is invalid كلمة السرّ خاطئة - - + + DL speed: %1 e.g: Download speed: 10 KiB/s سرعة التنزيل: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s سرعة الرفع: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - [تنزيل: %1, رفع: %2] كيو بت تورنت %3 + [تنزيل: %1, رفع: %2] كيوبت‎تورنت %3 - + Hide إخفاء - + Exiting qBittorrent إغلاق البرنامج - + Some files are currently transferring. Are you sure you want to quit qBittorrent? بعض الملفات تنقل حاليا. هل أنت متأكد أنك ترغب في إغلاق البرنامج؟ - + Open Torrent Files فتح ملف تورنت - + Torrent Files ملفات التورنت - + Options were saved successfully. تم حفظ الخيارات بنجاح. @@ -2415,17 +2399,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2435,32 +2419,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2480,1306 +2464,1355 @@ Are you sure you want to quit qBittorrent? Unexpected redirect to magnet URI. - + إعادة توجيه غير متوقعة لرابط ممغنط. Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - - - N/A - - - - - Asia/Pacific Region - - - - - Europe - - - - - Andorra - - - - - United Arab Emirates - - - - - Afghanistan - - - - - Antigua and Barbuda - - - - - Anguilla - - - - - Albania - - - - - Armenia - - - - - Netherlands Antilles - - - - - Angola - - - - - Antarctica - - - - - Argentina - - - - - American Samoa - - - - - Austria - - - - - Australia - - - - - Aruba - - - - - Azerbaijan - - - - - Bosnia and Herzegovina - - - - - Barbados - - - - - Bangladesh - - - - - Belgium - - - - - Burkina Faso - - - - - Bulgaria - - - - - Bahrain - - - - - Burundi - - - - - Benin - - - - - Bermuda - - - - - Brunei Darussalam - - - - - Bolivia - - - - - Brazil - - - - - Bahamas - - - - - Bhutan - - - - - Bouvet Island - - - - - Botswana - - - - - Belarus - - - - - Belize - - - - - Canada - - - - - Cocos (Keeling) Islands - - - - - Congo, The Democratic Republic of the - - - - - Central African Republic - - - - - Congo - - - - - Switzerland - - - - - Cote D'Ivoire - - - - - Cook Islands - - - - - Chile - - - - - Cameroon - - - - - China - - - - - Colombia - - - - - Costa Rica - - - - - Cuba - - - - - Cape Verde - - - - - Christmas Island - - - - - Cyprus - - - - - Czech Republic - - - - - Germany - - - - - Djibouti - - - - - Denmark - - - - - Dominica - - - - - Dominican Republic - - - - - Algeria - - - - - Ecuador - - - - - Estonia - - - - - Egypt - - - - - Western Sahara - - - - - Eritrea - - - - - Spain - - - - - Ethiopia - - - - - Finland - - - - - Fiji - - - - - Falkland Islands (Malvinas) - - - - - Micronesia, Federated States of - - - - - Faroe Islands - - - - - France - فرنسا - - - - France, Metropolitan - - - - - Gabon - - - - - United Kingdom - - - - - Grenada - - - - - Georgia - - - - - French Guiana - - - - - Ghana - - - - - Gibraltar - - - - - Greenland - - - - - Gambia - - - - - Guinea - - - - - Guadeloupe - - - - - Equatorial Guinea - - - - - Greece - اليونان - - - - South Georgia and the South Sandwich Islands - - - - - Guatemala - - - - - Guam - - - - - Guinea-Bissau - - - - - Guyana - - - - - Hong Kong - - - - - Heard Island and McDonald Islands - - - - - Honduras - - - - - Croatia - - - - - Haiti - - - - - Hungary - - - - - Indonesia - - - - - Ireland - - - - - Israel - - - - - India - - - - - British Indian Ocean Territory - - - - - Iraq - - - - - Iran, Islamic Republic of - - - - - Iceland - - - - - Italy - - - - - Jamaica - - - - - Jordan - - - - - Japan - - - - - Kenya - - - - - Kyrgyzstan - - - - - Cambodia - - - - - Kiribati - - - - - Comoros - - - - - Saint Kitts and Nevis - - - - - Korea, Democratic People's Republic of - - - - - Korea, Republic of - - - - - Kuwait - - - - - Cayman Islands - - - - - Kazakhstan - - - - - Lao People's Democratic Republic - - - - - Lebanon - - - - - Saint Lucia - - - - - Liechtenstein - - - - - Sri Lanka - - - - - Liberia - - - - - Lesotho - - - - - Lithuania - - - - - Luxembourg - - - - - Latvia - - - - - Libyan Arab Jamahiriya - - - - - Morocco - - - - - Monaco - - - - - Moldova, Republic of - - - - - Madagascar - - - - - Marshall Islands - - - - - Macedonia - - - - - Mali - - - - - Myanmar - - - - - Mongolia - - - - - Macau - - - - - Northern Mariana Islands - - - - - Martinique - - - - - Mauritania - - - - - Montserrat - - - - - Malta - - - - - Mauritius - - - - - Maldives - - - - - Malawi - - - - - Mexico - - - - - Malaysia - - - - - Mozambique - - - - - Namibia - - - - - New Caledonia - - - - - Niger - - - - - Norfolk Island - - - - - Nigeria - - - - - Nicaragua - - - - - Netherlands - - - - - Norway - - - - - Nepal - - - - - Nauru - - - - - Niue - - - - - New Zealand - - - - - Oman - - - - - Panama - - - - - Peru - - - - - French Polynesia - - - - - Papua New Guinea - - - - - Philippines - - - - - Pakistan - - - - - Poland - - - - - Saint Pierre and Miquelon - - - - - Pitcairn Islands - - - - - Puerto Rico - - - - - Palestinian Territory - - - - - Portugal - - - - - Palau - - - - - Paraguay - - - - - Qatar - - - - - Reunion - - - - - Romania - - - - - Russian Federation - - - - - Rwanda - - - - - Saudi Arabia - - - - - Solomon Islands - - - - - Seychelles - - - - - Sudan - - - - - Sweden - - - - - Singapore - - - - - Saint Helena - - - - - Slovenia - - - - - Svalbard and Jan Mayen - - - - - Slovakia - - - - - Sierra Leone - - - - - San Marino - - - - - Senegal - - - - - Somalia - - - - - Suriname - - - - - Sao Tome and Principe - - - - - El Salvador - - - - - Syrian Arab Republic - - - - - Swaziland - - - - - Turks and Caicos Islands - - - - - Chad - - - - - French Southern Territories - - - - - Togo - - - - - Thailand - - - - - Tajikistan - - - - - Tokelau - - - - - Turkmenistan - - - - - Tunisia - - - - - Tonga - - - - - Timor-Leste - - - - - Turkey - - - - - Trinidad and Tobago - - - - - Tuvalu - - - - - Taiwan - - - - - Tanzania, United Republic of - - - - - Ukraine - - - - - Uganda - - - - - United States Minor Outlying Islands - - - - - United States - - - - - Uruguay - - - - - Uzbekistan - - - - - Holy See (Vatican City State) - - - - - Saint Vincent and the Grenadines - - - - - Venezuela - - - - - Virgin Islands, British - - - - - Virgin Islands, U.S. - - - - - Vietnam - - - - - Vanuatu - - - - - Wallis and Futuna - - - - - Samoa - - - - - Yemen - - - - - Mayotte - - - Serbia - - - - - South Africa - - - - - Zambia + Venezuela, Bolivarian Republic of - Montenegro - - - - - Zimbabwe - - - - - Anonymous Proxy - - - - - Satellite Provider - - - - - Other - - - - - Aland Islands - - - - - Guernsey - - - - - Isle of Man - - - - - Jersey - - - - - Saint Barthelemy + Viet Nam - Saint Martin + + N/A + غير موجود + + + Asia/Pacific Region + آسيا / المحيط الهادئ + + + Europe + أوروبا + + + + Andorra + أندورا + + + + United Arab Emirates + الإمارات العربية المتحدة + + + + Afghanistan + أفغانستان + + + + Antigua and Barbuda + أنتيغوا وبربودا + + + + Anguilla + أنغيلا + + + + Albania + ألبانيا + + + + Armenia + أرمينيا + + + Netherlands Antilles + جزر الأنتيل الهولندية + + + + Angola + أنغولا + + + + Antarctica + القارة القطبية الجنوبية + + + + Argentina + الأرجنتين + + + + American Samoa + ساموا الأمريكية + + + + Austria + النمسا + + + + Australia + أستراليا + + + + Aruba + أروبا + + + + Azerbaijan + أذربيجان + + + + Bosnia and Herzegovina + البوسنة والهرسك + + + + Barbados + بربادوس + + + + Bangladesh + بنغلاديش + + + + Belgium + بلجيكا + + + + Burkina Faso + بوركينا فاسو + + + + Bulgaria + بلغاريا + + + + Bahrain + البحرين + + + + Burundi + بوروندي + + + + Benin + بنين + + + + Bermuda + برمودا + + + + Brunei Darussalam + بروناي دار السلام + + + Bolivia + بوليفيا + + + + Brazil + البرازيل + + + + Bahamas + جزر البهاما + + + + Bhutan + بوتان + + + + Bouvet Island + جزيرة بوفيت + + + + Botswana + بوتسوانا + + + + Belarus + روسيا البيضاء + + + + Belize + بليز + + + + Canada + كندا + + + + Cocos (Keeling) Islands + جزر كوكوس (كيلينغ) + + + + Congo, The Democratic Republic of the + الكونغو، جمهورية الكونغو الديمقراطية + + + + Central African Republic + جمهورية أفريقيا الوسطى + + + + Congo + الكونغو + + + + Switzerland + سويسرا + + + Cote D'Ivoire + ساحل العاج + + + + Cook Islands + جزر كوك + + + + Chile + تشيلي + + + + Cameroon + الكاميرون + + + + China + الصين + + + + Colombia + كولومبيا + + + + Costa Rica + كوستاريكا + + + + Cuba + كوبا + + + + Cape Verde + الرأس الأخضر + + + + Curacao - + + Christmas Island + جزيرة الكريسماس + + + + Cyprus + قبرص + + + + Czech Republic + جمهورية التشيك + + + + Germany + ألمانيا + + + + Djibouti + جيبوتي + + + + Denmark + الدنمارك + + + + Dominica + دومينيكا + + + + Dominican Republic + جمهورية الدومنيكان + + + + Algeria + الجزائر + + + + Ecuador + الإكوادور + + + + Estonia + استونيا + + + + Egypt + مصر + + + + Western Sahara + الصحراء الغربية + + + + Eritrea + إريتريا + + + + Spain + إسبانيا + + + + Ethiopia + أثيوبيا + + + + Finland + فنلندا + + + + Fiji + فيجي + + + + Falkland Islands (Malvinas) + جزر فوكلاند (مالفيناس) + + + + Micronesia, Federated States of + ولايات ميكرونيزيا الموحدة من + + + + Faroe Islands + جزر فارو + + + + France + فرنسا + + + France, Metropolitan + فرنسا، متروبوليتان + + + + Gabon + الغابون + + + + United Kingdom + المملكة المتحدة + + + + Grenada + غرينادا + + + + Georgia + جورجيا + + + + French Guiana + غيانا الفرنسية + + + + Ghana + غانا + + + + Gibraltar + جبل طارق + + + + Greenland + جرين لاند + + + + Gambia + غامبيا + + + + Guinea + غينيا + + + + Guadeloupe + غوادلوب + + + + Equatorial Guinea + غينيا الإستوائية + + + + Greece + اليونان + + + + South Georgia and the South Sandwich Islands + جورجيا الجنوبية وجزر ساندويتش الجنوبية + + + + Guatemala + غواتيمالا + + + + Guam + غوام + + + + Guinea-Bissau + غينيا بيساو + + + + Guyana + غيانا + + + + Hong Kong + هونج كونج + + + + Heard Island and McDonald Islands + جزيرة هيرد وجزر ماكدونالد + + + + Honduras + هندوراس + + + + Croatia + كرواتيا + + + + Haiti + هايتي + + + + Hungary + هنغاريا + + + + Indonesia + أندونيسيا + + + + Ireland + أيرلندا + + + + Israel + فلسطين + + + + India + الهند + + + + British Indian Ocean Territory + إقليم المحيط الهندي البريطاني + + + + Iraq + العراق + + + + Iran, Islamic Republic of + جمهورية إيران الإسلامية + + + + Iceland + أيسلندا + + + + Italy + إيطاليا + + + + Jamaica + جامايكا + + + + Jordan + الأردن + + + + Japan + اليابان + + + + Kenya + كينيا + + + + Kyrgyzstan + قيرغيزستان + + + + Cambodia + كمبوديا + + + + Kiribati + كيريباس + + + + Comoros + جزر القمر + + + + Saint Kitts and Nevis + سانت كيتس ونيفيس + + + + Korea, Democratic People's Republic of + جمهورية كوريا الشعبية الديمقراطية + + + + Korea, Republic of + جمهورية كوريا + + + + Kuwait + الكويت + + + + Cayman Islands + جزر كايمان + + + + Kazakhstan + كازاخستان + + + + Lao People's Democratic Republic + جمهورية لاو الديمقراطية الشعبية + + + + Lebanon + لبنان + + + + Saint Lucia + سانت لوسيا + + + + Liechtenstein + ليشتنشتاين + + + + Sri Lanka + سيريلانكا + + + + Liberia + ليبيريا + + + + Lesotho + ليسوتو + + + + Lithuania + ليتوانيا + + + + Luxembourg + لوكسمبورغ + + + + Latvia + لاتفيا + + + Libyan Arab Jamahiriya + الجماهيرية العربية الليبية + + + + Morocco + المغرب + + + + Monaco + موناكو + + + + Moldova, Republic of + جمهورية مولدوفا + + + + Madagascar + مدغشقر + + + + Marshall Islands + جزر مارشال + + + Macedonia + مقدونيا + + + + Mali + مالي + + + + Myanmar + ميانمار + + + + Mongolia + منغوليا + + + Macau + ماكاو + + + + Northern Mariana Islands + جزر مريانا الشمالية + + + + Martinique + مارتينيك + + + + Mauritania + موريتانيا + + + + Montserrat + مونتسيرات + + + + Malta + مالطا + + + + Mauritius + موريشيوس + + + + Maldives + جزر المالديف + + + + Malawi + ملاوي + + + + Mexico + المكسيك + + + + Malaysia + ماليزيا + + + + Mozambique + موزمبيق + + + + Namibia + ناميبيا + + + + New Caledonia + كاليدونيا الجديدة + + + + Niger + النيجر + + + + Norfolk Island + جزيرة نورفولك + + + + Nigeria + نيجيريا + + + + Nicaragua + نيكاراغوا + + + + Netherlands + هولندا + + + + Norway + النرويج + + + + Nepal + نيبال + + + + Nauru + ناورو + + + + Niue + نيوي + + + + New Zealand + نيوزيلندا + + + + Oman + عمان + + + + Panama + بناما + + + + Peru + بيرو + + + + French Polynesia + بولينيزيا الفرنسية + + + + Papua New Guinea + بابوا غينيا الجديدة + + + + Philippines + الفلبين + + + + Pakistan + باكستان + + + + Poland + بولندا + + + + Saint Pierre and Miquelon + سان بيار وميكلون + + + Pitcairn Islands + جزر بيتكيرن + + + + Puerto Rico + بورتوريكو + + + Palestinian Territory + الأراضي الفلسطينية + + + + Portugal + البرتغال + + + + Palau + بالاو + + + + Paraguay + باراغواي + + + + Qatar + قطر + + + + Reunion + ريوينيون + + + + Romania + رومانيا + + + + Russian Federation + الفيدرالية الروسية + + + + Rwanda + رواندا + + + + Saudi Arabia + المملكة العربية السعودية + + + + Solomon Islands + جزر سليمان + + + + Seychelles + سيشيل + + + + Sudan + السودان + + + + Sweden + السويد + + + + Singapore + سنغافورة + + + Saint Helena + سانت هيلانة + + + + Slovenia + سلوفينيا + + + + Svalbard and Jan Mayen + سفالبارد وجان مايان + + + + Slovakia + سلوفاكيا + + + + Sierra Leone + سيراليون + + + + San Marino + سان مارينو + + + + Senegal + السنغال + + + + Somalia + الصومال + + + + Suriname + سورينام + + + + Sao Tome and Principe + ساو تومي وبرينسيبي + + + + El Salvador + السلفادور + + + + Syrian Arab Republic + الجمهورية العربية السورية + + + + Swaziland + سوازيلاند + + + + Turks and Caicos Islands + جزر تركس وكايكوس + + + + Chad + تشاد + + + + French Southern Territories + الأقاليم الفرنسية الجنوبية + + + + Togo + توغو + + + + Thailand + تايلاند + + + + Tajikistan + طاجيكستان + + + + Tokelau + توكيلاو + + + + Turkmenistan + تركمانستان + + + + Tunisia + تونس + + + + Tonga + تونغا + + + + Timor-Leste + تيمور الشرقية + + + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + + Turkey + تركيا + + + + Trinidad and Tobago + ترينداد وتوباغو + + + + Tuvalu + توفالو + + + + Taiwan + تايوان + + + + Tanzania, United Republic of + جمهورية تنزانيا المتحدة + + + + Ukraine + أوكرانيا + + + + Uganda + أوغندا + + + + United States Minor Outlying Islands + + + + + United States + الولايات المتحدة + + + + Uruguay + أوروغواي + + + + Uzbekistan + أوزبكستان + + + + Holy See (Vatican City State) + الكرسي الرسولي (دولة الفاتيكان) + + + + Saint Vincent and the Grenadines + سانت فنسنت وجزر غرينادين + + + Venezuela + فنزويلا + + + + Virgin Islands, British + جزر العذراء البريطانية + + + + Virgin Islands, U.S. + جزر فيرجن الأمريكية. + + + Vietnam + فيتنام + + + + Vanuatu + فانواتو + + + + Wallis and Futuna + واليس وفوتونا + + + + Samoa + ساموا + + + + Yemen + اليمن + + + + Mayotte + مايوت + + + + Serbia + صربيا + + + + South Africa + جنوب أفريقيا + + + + Zambia + زامبيا + + + + Montenegro + الجبل الأسود + + + + Zimbabwe + زيمبابوي + + + Other + أخرى + + + + Aland Islands + جزر آلاند + + + + Guernsey + غيرنسي + + + + Isle of Man + جزيرة مان + + + + Jersey + جيرسي + + + + Saint Barthelemy + سانت بارتيليمي + + + Saint Martin + سانت مارتن + + + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3943,64 +3976,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... إضافة قرين جديد... - + Copy selected نسخ المُحدد - - + + Ban peer permanently حظر القرين نهائيا - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition إضافة القرناء - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? هل أنت متأكد من رغبتك في حظر القرناء المختارين نهائيًا؟ - + &Yes &نعم - + &No &لا @@ -4033,13 +4072,211 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + الأبيض: قطع غير متوفرة Blue: Available pieces + الأزرق: قطع متوفرة + + + + PluginSelectDlg + + + Search plugins + ملحقات البحث + + + + Installed search plugins: + + + Name + الاسم + + + + Version + الإصدارة + + + + Url + الرابط + + + + + Enabled + ممكن + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + تستطيع الحصول على محركات بحث جديدة من هنا:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + تثبيت واحد جديد + + + + Check for updates + ابحث عن تحديثات + + + + Close + أغلق + + + + Uninstall + إزالة + + + + + + Yes + نعم + + + + + + + No + لا + + + + Uninstall warning + تحذير إزالة + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + لا يمكن إزالة بعض الملحقات لأنها تأتي مضمنة في البرنامج. +يمكن إزالة الملحقات التي أضفتها بنفسك فقط.. +على كل حال، تم تعطيل هذه الملحقات. + + + + Uninstall success + نجاح الإزالة + + + + All selected plugins were uninstalled successfully + تمت إزالة جميع الملحقات المختارة بنجاح + + + + + New search engine plugin URL + رابط محرك بحث جديد + + + + + URL: + الرابط: + + + + Invalid link + رابط غير صالح + + + + The link doesn't seem to point to a search engine plugin. + الرابط لا يبدو أنه يشير إلى مُلحقة محرك بحث. + + + + Select search plugins + اختر ملحقات البحث + + + + qBittorrent search plugin + ملحقة بحث كيوبت‎تورنت + + + + + + Search plugin update + تحديث ملحقات البحث + + + + All your plugins are already up to date. + جميع ملحقات البحث حديثة. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + تثبيت ملحقات البحث + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + موقع مساعد البحث + + + + Search plugin source: + موقع محرك البحث: + + + + Local file + ملف محلي + + + + Web link + رابط موقع + Preferences @@ -4097,89 +4334,89 @@ Are you sure you want to quit qBittorrent? وضع علامة !qB للملفات الغير منتهية - + Copy .torrent files to: نسخ ملفات .torrent الى المجلد: - + Connections Limits حدود الاتصالات - + Proxy Server خادم البروكسي - + Global Rate Limits - حد السرعة العام + حدود السرعة العامة - + Apply rate limit to transport overhead تطبيق حد السرعة على النقل والتنزيل - + Schedule the use of alternative rate limits تفعيل السرعة البديلة في وقت محدد - + From: from (time1 to time2) - + من: - + To: time1 to time2 - + إلى: - + Enable Local Peer Discovery to find more peers تمكين اكتشاف القرناء المحليين لإيجاد قرناء أكثر - + Encryption mode: نمط التشفير: - + Prefer encryption تفضيل التشفير - + Require encryption طلب التشفير - + Disable encryption تعطيل التشفير - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">للمزيد من المعلومات</a>) - + Maximum active downloads: أقصى عدد للتنزيلات النشطة: - + Maximum active uploads: أقصى عدد للرفع النشط: - + Maximum active torrents: أقصى عدد للتورنتات النشطة: @@ -4204,82 +4441,82 @@ Are you sure you want to quit qBittorrent? عرض محتويات التورنت وبعض الخيارات - + Run external program on torrent completion - + تشغيل برنامج خارجي عند اكتمال تنزيل التورنت - + Port used for incoming connections: الاتصالات تستمع على المنفذ: - + Random عشوائي - + Global maximum number of connections: أقصى عدد من الاتصالات العامة: - + Maximum number of connections per torrent: أقصى عدد من الاتصالات لكل تورنت: - + Maximum number of upload slots per torrent: أقصى عدد من مقاطع الرفع لكل تورنت: - - + + Upload: الرفع: - - + + Download: التنزيل: - - - - + + + + KiB/s ك.ب/ث - + Remove folder حذف المجلد - + Every day كل يوم - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) استبدال القرناء بعملاء بت تورنت متوافقين (µTorrent، Vuze، ...) - + Host: المضيف: - + SOCKS4 SOCKS4 - + Type: النوع: @@ -4378,7 +4615,7 @@ Are you sure you want to quit qBittorrent? Confirmation on exit when torrents are active - + تأكيد الإغلاق عن وجود تورنتات نشطة @@ -4434,7 +4671,7 @@ Are you sure you want to quit qBittorrent? Append the label of the torrent to the save path - وضع الملصق في مجلد الحفظ + وضع التصنيف في مجلد الحفظ @@ -4452,262 +4689,262 @@ Are you sure you want to quit qBittorrent? إضافة التورنتات تلقائيا من: - + Add folder... إضافة مجلد... - + Copy .torrent files for finished downloads to: نسخ ملف التورنت للتحميلات المنتهية الى: - + Email notification upon download completion إرسال تنبيه عبر البريد الإلكتروني عند اكتمال التنزيل - + Destination email: البريد الإلكتروني: - + SMTP server: خادم SMTP: - + This server requires a secure connection (SSL) يتطلب هذا الخادم اتصالا آمنا (SSL) - + Listening Port منفذ الاستماع - + Use UPnP / NAT-PMP port forwarding from my router استخدام UPnP / NAT-PMP لفتح المنافذ تلقائيا - + Use different port on each startup استخدام بورت مختلف عند إعادة التشغيل - + Global maximum number of upload slots: أقصى عدد من مقاطع الرفع : - + Otherwise, the proxy server is only used for tracker connections البروكسي سيفعل على اتصالات المتتبعات فقط - + Use proxy for peer connections استخدام البروكسي على اتصالات القرناء - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted معلومة: كلمة السر يتم حفظها بشكل غير مشفّر - + IP Filtering تنقية الايبي - + Reload the filter تحديث المنقيات - + Apply to trackers التطبيق على المتتبعات - + Apply rate limit to peers on LAN - + تطبيق حدود السرعة على القرناء الموجودين على الشبكة المحلية - + When: متى: - + Weekdays - + أيام الأسبوع - + Weekends - + نهاية الأسبوع - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy الخصوصية - + Enable DHT (decentralized network) to find more peers تفعيل DHT لإيجاد قرناء أكثر - + Enable Peer Exchange (PeX) to find more peers تفعيل PeX لإيجاد قرناء أكثر - + Look for peers on your local network إيجاد القرناء المحليين - + Enable when using a proxy or a VPN connection - + Enable anonymous mode تفعيل الوضع المجهول - + Do not count slow torrents in these limits عدم حساب الملفات البطيئة - + Seed torrents until their ratio reaches بذر التورنتات حتى تصل نسبتهم إلى - + then ثم - + Pause them ألبث التورنتات - + Remove them احذف التورنتات - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router استخدام UPnP / NAT-PMP لفتح المنافذ تلقائيا - + Use HTTPS instead of HTTP استخدام HTTPS بدلا من HTTP - + Import SSL Certificate إستيراد شهادة SSL - + Import SSL Key إستيراد مفتاح SSL - + Certificate: الشهادة: - + Alternative Rate Limits - + حدود السرعة البديلة - + Key: المفتاح: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>معلومات حول الشهادات</a> - + Bypass authentication for localhost عدم استخدام وسائل الامان عند الدخول من هذا الجهاز - + Update my dynamic domain name تحديث Dynamic Dns - + Service: الخدمة: - + Register تسجيل - + Domain name: اسم النطاق: - + (None) (بدون) @@ -4717,61 +4954,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: منفذ: - - - + + + Authentication الاستيثاق - - - - + + + + Username: اسم المستخدم: - - - - + + + + Password: كلمة السرّ: - + Torrent Queueing صف التورنت - + Share Ratio Limiting حد نسبة المشاركة - + Enable Web User Interface (Remote control) Enable Web User Interface (Remote control) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): مسار المرشح (.dat, .p2p, .p2b): @@ -4886,7 +5123,7 @@ Are you sure you want to quit qBittorrent? Speed - السرعة + السرعة @@ -4899,12 +5136,12 @@ Are you sure you want to quit qBittorrent? Availability: - التواجد: + التوافر: Progress: - الحالة: + التقدم: @@ -4975,11 +5212,7 @@ Are you sure you want to quit qBittorrent? Comment: - تعليق: - - - Torrent content: - محتوى التورنت: + التعليق: @@ -5070,13 +5303,13 @@ Are you sure you want to quit qBittorrent? Never - أبدا + أبدا %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 x %2 (لديك %3) @@ -5088,13 +5321,13 @@ Are you sure you want to quit qBittorrent? %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (بذرت لـ %2) %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (%2 كحد أقصى) @@ -5196,18 +5429,18 @@ Are you sure you want to quit qBittorrent? New URL seed New HTTP source - + رابط ذذبذر الجديد New URL seed: - + رابط البذر الجديد: This URL seed is already in the list. - + رابط البذر هذا موجود بالفعل في القائمة. @@ -5264,7 +5497,7 @@ Are you sure you want to quit qBittorrent? You cannot use %1: qBittorrent is already running for this user. - لا يمكنك استخدام %1: كيو بت تورنت يعمل حاليا على هذا المستخدم. + لا يمكنك استخدام %1: كيوبت‎تورنت يعمل حاليا على هذا المستخدم. @@ -5337,7 +5570,9 @@ Are you sure you want to quit qBittorrent? qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility. No further notices will be issued. - + يعتمد هذا البرنامج على تقنية المشاركة، وعند تشغيل أي تورنت ستكون البيانات متاحة للآخرين ليسقبلوها منك. أي محتوى تشاركه سيكون على مسؤليتك الخاصة. + +لن تظهر المزيد من التنبيهات. @@ -5362,12 +5597,12 @@ No further notices will be issued. Torrent name: %1 - + اسم التورنت: %1 Torrent size: %1 - + حجم التورنت: %1 @@ -5378,17 +5613,17 @@ No further notices will be issued. The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + تم تنزيل التورنت في %1. Thank you for using qBittorrent. - + شكرا لاستخدامك كيوبت‎تورنت. [qBittorrent] '%1' has finished downloading - + [كيوبت‎تورنت] انتهى تنزيل "%1" @@ -5398,12 +5633,12 @@ No further notices will be issued. The operation was canceled - + تم إلغاء العملية The remote server closed the connection prematurely, before the entire reply was received and processed - + الخادم اغلق الاتصال نهائيا, قبل إنهاء ومعالجة الطلب @@ -5498,31 +5733,31 @@ No further notices will be issued. Unknown error - + خطأ مجهول - - + + Upgrade - + ترقية - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] لقد قمت بالتحديث من إصدارة قديمة تحتفظ بأشياء مختلفة. ينبغي عليك الترحيل إلى نظام الحفظ الجديد. لن يكون بإمكانك إستخدام إصدارة أقدم من 3.3.0 مجددا. هل ترغب بالمتابعة؟ [نعم/لا] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - لقد قمت بالتحديث من إصدارة قديمة تحتفظ بأشياء مختلفة. ينبغي عليك الترحيل إلى نظام الحفظ الجديد. لن يكون بإمكانك إستخدام إصدارة أقدم من 3.3.0 مجددا. هل ترغب بالمتابعة؟ + لقد قمت بالتحديث من إصدارة قديمة تحتفظ بأشياء مختلفة. ينبغي عليك الترحيل إلى نظام الحفظ الجديد. لن يكون بإمكانك استخدام إصدارة أقدم من 3.3.0 مجددا. هل ترغب بالمتابعة؟ - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5564,7 +5799,7 @@ No further notices will be issued. Torrents: (double-click to download) - + التورنتات: (انقر مزدوجا للتنزيل) @@ -5633,17 +5868,17 @@ No further notices will be issued. RSSImp - + Stream URL: رابط الدفق: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5663,75 +5898,77 @@ No further notices will be issued. مجلد جديد - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + هل أنت متأكد من رغبتك في حذف تغذية RSS المختارة؟ - + Please choose a new name for this RSS feed من فضلك اختر اسما جديدا لتغذية RSS هذه - + New feed name: اسم التغذية الجديد: - + Name already in use الاسم مستخدم مسبقا - + This name is already used by another item, please choose another one. هذا الاسم مستخدم بالفعل، من فضلك اختر اسما آخر. - + Date: التاريخ: - + Author: المؤلف: - + Unread غير مقروء - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - خطأ أثناء فتح الملف الذي تم تنزيله.عبر RSS - - - - Invalid RSS feed at '%1'. - + خطأ أثناء فتح الملف الذي تم تنزيله.عبر RSS @@ -5757,204 +5994,410 @@ No further notices will be issued. اكبر كمية من المقالات الممكنة: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + تصفح... + + + + Choose save path + اختر مسار الحفظ + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder المجلد المراقب - - Download here - حمل هنا + + Save Files to + + + + Download here + حمل هنا - Download path - + مسار التنزيل SearchCategories - All categories - الكل + الكل - Movies - افلام + افلام - TV shows - مسلسلات تلفزيونية + مسلسلات تلفزيونية - Music - موسيقى + موسيقى - Games - العاب + العاب - Anime - أنمي + أنمي - Software - برامج + برامج - Pictures - صور + صور - Books - كتب + كتب SearchEngine - - - Search - البحث + البحث - Please install Python to use the Search Engine. - + برجاء تثبيت "بيثون" لتتمكن من استخدام محرّك البحث. - Empty search pattern - تفريغ نمط البحث + تفريغ نمط البحث - Please type a search pattern first - الرجاء كتابة نمط البحث اولا + الرجاء كتابة نمط البحث اولا - Searching... - يجري البحث... + يجري البحث... - Stop - إيقاف + إيقاف - - Search Engine - محرك البحث + محرك البحث - - Search has finished - انتهى البحث + انتهى البحث - An error occurred during search... - حدث خطأ أثناء البحث... + حدث خطأ أثناء البحث... - - Search aborted - توقف البحث + توقف البحث - All enabled - + الكل مُفعّل - All engines - كل المحركات + كل المحركات - - Multiple... - + متعدد... - - Results <i>(%1)</i>: i.e: Search results + النتائج <i>(%1)</i>: + + + Search returned no results + لم يُعثر على أي نتائج + + + Stopped + متوقف + + + + Unknown search engine plugin file format. - - Search returned no results - لم يُعثر على أي نتائج + + A more recent version of this plugin is already installed. + - - Stopped - متوقف + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + الكل + + + + Movies + افلام + + + + TV shows + مسلسلات تلفزيونية + + + + Music + موسيقى + + + + Games + العاب + + + + Anime + أنمي + + + + Software + برامج + + + + Pictures + صور + + + + Books + كتب SearchListDelegate - - + + Unknown - غير معروف + مجهول SearchTab - + Name i.e: file name الاسم - + Size i.e: file size الحجم - + Seeders i.e: Number of full sources الباذرون - + Leechers i.e: Number of partial sources محمل - + Search engine محرك البحث + + SearchWidget + + + + + + + Search + البحث + + + + Status: + الحالة: + + + + + Stopped + متوقف + + + + Download + تنزيل + + + + Go to description page + ذهاب إلى صفحة الوصف + + + + Copy description page URL + نسخ رابط صفحة الوصف + + + + Search plugins... + + + + + All enabled + الكل مُفعّل + + + + All plugins + + + + + + Multiple... + متعدد... + + + + + + Search Engine + محرك البحث + + + + Please install Python to use the Search Engine. + برجاء تثبيت "بيثون" لتتمكن من استخدام محرّك البحث. + + + + Empty search pattern + تفريغ نمط البحث + + + + Please type a search pattern first + الرجاء كتابة نمط البحث اولا + + + + + Results <i>(%1)</i>: + i.e: Search results + النتائج <i>(%1)</i>: + + + + Searching... + يجري البحث... + + + + Stop + إيقاف + + + + + Search has finished + انتهى البحث + + + + + Search aborted + توقف البحث + + + + Search returned no results + لم يُعثر على أي نتائج + + + + Search has failed + + + + + An error occurred during search... + حدث خطأ أثناء البحث... + + ShutdownConfirmDlg @@ -5980,7 +6423,7 @@ No further notices will be issued. qBittorrent will now exit unless you cancel within the next %1 seconds. - سيتم إغلاق كيو بت تورنت تلقائيا بعد %1 ثوان مالم تقوم بإلغاء ذلك. + سيتم إغلاق كيوبت‎تورنت تلقائيا بعد %1 ثوان مالم تقوم بإلغاء ذلك. @@ -6064,32 +6507,32 @@ No further notices will be issued. Period: - + الفترة: 1 Minute - + دقيقة واحدة 5 Minutes - + 5 دقائق 30 Minutes - + 30 دقيقة 6 Hours - + 6 ساعات Select Graphs - + اختر الرسوم البانية @@ -6162,7 +6605,7 @@ No further notices will be issued. Global ratio: - النسبة الشاملة: + النسبة العامة: @@ -6399,24 +6842,28 @@ No further notices will be issued. TorrentContentModel - + Name الاسم - + Size الحجم - + Progress التقدّم - + + Download Priority + + + Priority - الأولوية + الأولوية @@ -6449,13 +6896,13 @@ No further notices will be issued. Torrent Files (*.torrent) - + ملفات التورنت (torrent.*) Torrent was created successfully: %1 %1 is the path of the torrent - + تم انشاء التورنت بنجاح: %1 @@ -6615,7 +7062,7 @@ No further notices will be issued. Label - الملصق + التصنيف @@ -6768,38 +7215,38 @@ No further notices will be issued. تحذير (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents استئناف التورنتات - + Pause torrents إلباث التورنتات - + Delete torrents حذف التورنتات - - + + All (%1) this is for the tracker filter الكل (%1) @@ -7055,7 +7502,7 @@ No further notices will be issued. %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (بذرت لـ %2) @@ -7067,17 +7514,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status الحالة - + Labels - الملصقات + التصنيفات - + Trackers المتتبعات @@ -7092,7 +7539,7 @@ No further notices will be issued. Label - الملصق + التصنيف @@ -7122,22 +7569,22 @@ No further notices will be issued. New Label - ملصق جديد + تصنيف جديد Label: - الملصق: + التصنيف: Invalid label name - اسم خطأ للملصق + اسم غير صالح للتصنيف Please don't use any special characters in the label name. - الرجاء عدم استعمال اسماء تحتوي علي رموز خاصة في اسم الملصق. + الرجاء عدم استعمال اسماء تحتوي علي رموز خاصة في اسم التصنيف. @@ -7333,7 +7780,7 @@ No further notices will be issued. Copyright %1 2006-2015 The qBittorrent project - + حقوق النسخ %1 2006-2015 مشروع كيوبت‎تورنت @@ -7476,7 +7923,7 @@ No further notices will be issued. Comment: - تعليق: + التعليق: @@ -7492,7 +7939,7 @@ No further notices will be issued. 16 KiB - 512 ك.بايت {16 ?} + 16 ك.بايت @@ -7537,12 +7984,12 @@ No further notices will be issued. 8 MiB - 4 م.بايت {8 ?} + 8 م.بايت 16 MiB - 4 م.بايت {16 ?} + 16 م.بايت @@ -7616,207 +8063,156 @@ No further notices will be issued. engineSelect - Search plugins - ملحقات البحث + ملحقات البحث - Installed search engines: - محركات البحث المثبتة: + محركات البحث المثبتة: - Name - الاسم + الاسم - Version - الإصدارة + الإصدارة - Url - الرابط + الرابط - - Enabled - ممكن + ممكن - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - تستطيع الحصول على محركات بحث جديدة من هنا:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + تستطيع الحصول على محركات بحث جديدة من هنا:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - تثبيت واحد جديد + تثبيت واحد جديد - Check for updates - ابحث عن تحديثات + ابحث عن تحديثات - Close - أغلق + أغلق - Uninstall - إزالة + إزالة engineSelectDlg - Uninstall warning - تحذير إزالة + تحذير إزالة - Uninstall success - نجاح الإزالة + نجاح الإزالة - Invalid plugin - + ملحقة غير صالحة - The search engine plugin is invalid, please contact the author. - + ملحقة محرك بحث غير صالحة. برجاء التواصل مع المؤلف. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - يوجد نسخة أحدث من محرك البحث "%1" مثبتة بالفعل. + يوجد نسخة أحدث من محرك البحث "%1" مثبتة بالفعل. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - لا يمكن تحديث ملحقة محرك البحث "%1"، تم الاحتفاظ بالنسخة القديمة. + لا يمكن تحديث ملحقة محرك البحث "%1"، تم الاحتفاظ بالنسخة القديمة. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - + لا يمكن تثبيت ملحقة البحث '%1'. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + تم تحديث ملحقة البحث '%1' بنجاح. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + تم تثبيت ملحة البحث '%1' بنجاح. - The link doesn't seem to point to a search engine plugin. - الرابط لا يبدو أنه يشير إلى مُلحقة محرك بحث. + الرابط لا يبدو أنه يشير إلى مُلحقة محرك بحث. - Select search plugins - اختر ملحقات البحث + اختر ملحقات البحث - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - + عذرًا، فشل في تثبيت ملحقة البحث '%1'. - - - - - Search plugin install - تثبيت ملحقات البحث + تثبيت ملحقات البحث - - - Yes - نعم + نعم - - - - No - لا + لا - qBittorrent search plugin - + ملحقة بحث كيوبت‎تورنت - - - - Search plugin update - تحديث ملحقات البحث + تحديث ملحقات البحث - - Sorry, update server is temporarily unavailable. - عذرا، خادم التحديث غير متوفر مؤقتا. + عذرا، خادم التحديث غير متوفر مؤقتا. - All your plugins are already up to date. - جميع ملحقات البحث حديثة. + جميع ملحقات البحث حديثة. - All selected plugins were uninstalled successfully - تمت إزالة جميع الملحقات المختارة بنجاح + تمت إزالة جميع الملحقات المختارة بنجاح - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - لا يمكن إزالة بعض الملحقات لأنها تأتي مضمنة في البرنامج. + لا يمكن إزالة بعض الملحقات لأنها تأتي مضمنة في البرنامج. يمكن إزالة الملحقات التي أضفتها بنفسك فقط.. على كل حال، تم تعطيل هذه الملحقات. - Invalid link - رابط غير صالح + رابط غير صالح - - New search engine plugin URL - رابط محرك بحث جديد + رابط محرك بحث جديد - - URL: - الرابط: + الرابط: @@ -7946,169 +8342,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory إختر مكان للتصدير - - - - + + + + Choose a save directory - إختر مكان للحفظ + اختر مجلد الحفظ - + Add directory to scan اضافة مكان الملفات المراد فحصها - - - Supported parameters (case sensitive): - - - - - %N: Torrent name - - - - - %L: Label - - - %F: Content path (same as root path for multifile torrent) - + Supported parameters (case sensitive): + العوامل المدعومة (حساس لحالة الأحرف): + %N: Torrent name + %N: اسم التورنت + + + + %L: Label + %L: تصنيف + + + + %F: Content path (same as root path for multifile torrent) + %F: مسار المحتوى (نفس مسار الجذر لملفات التورنت المتعددة) + + + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: مسار الحفظ - + %C: Number of files - + %Z: Torrent size (bytes) - + %Z: حجم التونت (بالبايتات) - + %T: Current tracker - + %I: Info hash - + %I: معلومات التحقق من البيانات - + Folder is already being watched. المجلد يستعرض الآن. - + Folder does not exist. المجلد غير موجود. - + Folder is not readable. المجلد غير قابل للقراءة. - + Failure فشل - + Failed to add Scan Folder '%1': %2 فشل اضافة المجلد للفحص '%1: %2 - - + + Filters منقيات - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Parsing error - + Failed to parse the provided IP filter Failed to parse the provided IP filter - + Successfully refreshed التحديث ناجح - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number تمت معالجة قائمة الحظر المعطاة بنجاح: %1 تم تطبيقها. - + Invalid key مفتاح خاطئ - + This is not a valid SSL key. هذا مفتاح SSL خاطئ. - + Invalid certificate شهادة خاطئة - + This is not a valid SSL certificate. هذه شهادة SSL خاطئة. - + The start time and the end time can't be the same. لا يمكن أن يكون وقت البدء مطابق لوقت الانتهاء. - + Time Error خطأ في الوقت @@ -8116,24 +8512,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - موقع مساعد البحث + موقع مساعد البحث - Search plugin source: - موقع محرك البحث: + موقع محرك البحث: - Local file - ملف محلي + ملف محلي - Web link - رابط موقع + رابط موقع @@ -8162,40 +8554,32 @@ Those plugins were disabled. search_engine - - Search - البحث + البحث - Status: - الحالة: + الحالة: - Stopped - متوقف + متوقف - Download - تنزيل + تنزيل - Go to description page - ذهاب إلى صفحة الوصف + ذهاب إلى صفحة الوصف - Copy description page URL - + نسخ رابط صفحة الوصف - Search engines... - محركات البحث... + محركات البحث... diff --git a/src/lang/qbittorrent_be.ts b/src/lang/qbittorrent_be.ts index 83afde839..ee0b5520f 100644 --- a/src/lang/qbittorrent_be.ts +++ b/src/lang/qbittorrent_be.ts @@ -127,7 +127,7 @@ Set as default label - + Прызначыць стандартным цэтлікам @@ -175,172 +175,172 @@ Не сцягваць - - + + I/O Error Памылка ўводу/вываду - + The torrent file does not exist. Torrent-файл не існуе. - + Invalid torrent Памылковы торэнт - + Failed to load the torrent: %1 Не выйшла загрузіць торэнт: %1 - - + + Already in download list Ужо ў спісе сцягванняў - + Free disk space: %1 Свабодная прастора: %1 - + Not Available This comment is unavailable Не даступны - + Not Available This date is unavailable Не даступна - + Not available Не даступна - + Invalid magnet link Памылковая Magnet-спасылка - + Torrent is already in download list. Trackers were merged. Торэнт ужо ў спісе сцягванняў. Трэкеры былі аб'яднаны. - - + + Cannot add torrent Нельга дадаць торэнт - + Cannot add this torrent. Perhaps it is already in adding state. Нельга дадаць гэты торэнт. Мабыць, ён ужо ў стане дадавання. - + This magnet link was not recognized Magnet-спасылка не пазнана - + Magnet link is already in download list. Trackers were merged. Magnet-спасылка ўжо ў спісе сцягванняў. Трэкеры былі аб'яднаны. - + Cannot add this torrent. Perhaps it is already in adding. Нельга дадаць гэты торэнт. Мабыць, ён ужо дадаецца. - + Magnet link Magnet-спасылка - + Retrieving metadata... Атрыманне метазвестак... - + Not Available This size is unavailable. Не даступны - - - + + + Choose save path Пазначце шлях захавання - + Rename the file Пераназваць файл - + New name: Новая назва: - - + + The file could not be renamed Немагчыма пераназваць файл - + This file name contains forbidden characters, please choose a different one. Назва файла змяшчае недазволеныя сімвалы. Калі ласка, дайце іншую назву. - - + + This name is already in use in this folder. Please use a different name. Гэтая назва ўжо выкарыстоўваецца ў каталогу. Калі ласка, дайце іншую назву. - + The folder could not be renamed Немагчыма пераназваць каталог - + Rename... Пераназваць... - + Priority Прыярытэт - + Invalid metadata Хібныя метазвесткі - + Parsing metadata... Ідзе разбор метазвестак... - + Metadata retrieval complete Атрыманне метазвестак скончана - + Download Error Памылка сцягвання @@ -431,10 +431,6 @@ Resolve peer host names Вызначыць назву хоста піра - - Maximum number of half-open connections [0: Disabled] - Макс. колькасць адкрытых на палову злучэнняў [0: Адключана] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Макс. колькасць паўадкрытых злучэнняў [0: неабмежавана] @@ -661,205 +657,205 @@ &Экспарт... - + Matches articles based on episode filter. Распазнае артыкулы паводле фільтру эпізодаў. - + Example: Прыклад: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match распазнае 2, 5, з 8 па 15, 30 і далейшыя эпізоды першага сезону - + Episode filter rules: Правілы фільтру эпізодаў: - + Season number is a mandatory non-zero value Нумар сезону ёсць абавязковым ненулявым значэннем - + Episode number is a mandatory non-zero value Нумар эпізоду ёсць абавязковым ненулявым значэннем - + Filter must end with semicolon Фільтр мусіць канчацца кропкай з коскай - + Three range types for episodes are supported: Падтрымліваюцца тры тыпы дыяпазонаў эпізодаў: - + Single number: <b>1x25;</b> matches episode 25 of season one Адзіночны нумар: <b>1x25;</b> распазнае 25-ы эпізод першага сезону - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Звычайны дыяпазон: <b>1x25-40;</b> распазнае эпізоды з 25-га па 40-ы першага сезону - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Бясконцы дыяпазон: <b>1x25-;</b> распазнае эпізоды з 25-га і далей першага сезону - + Last Match: %1 days ago Апошні вынік: %1 дзён таму - + Last Match: Unknown Апошні вынік: невядома - + New rule name Новая назва правіла - + Please type the name of the new download rule. Калі ласка, дайце назву новаму правілу сцягвання. - - + + Rule name conflict Супярэчнасць назваў правілаў - - + + A rule with this name already exists, please choose another name. Правіла з такой назвай ужо існуе, калі ласка, дайце іншую назву. - + Are you sure you want to remove the download rule named '%1'? Сапраўды жадаеце выдаліць правіла сцягвання '%1'? - + Are you sure you want to remove the selected download rules? Сапраўды жадаеце выдаліць вылучаныя правілы сцягвання? - + Rule deletion confirmation Пацверджанне выдалення правіла - + Destination directory Каталог прызначэння - + Invalid action Недапушчальнае дзеянне - + The list is empty, there is nothing to export. Спіс пусты, няма што экспартаваць. - + Where would you like to save the list? Куды вы жадаеце захаваць спіс? - + Rules list (*.rssrules) Спіс правілаў (*.rssrules) - + I/O Error Памылка ўводу/вываду - + Failed to create the destination file Не выйшла стварыць файл прызначэння - + Please point to the RSS download rules file Пазначце файл з правіламі сцягвання RSS - + Rules list Спіс правілаў - + Import Error Памылка імпарту - + Failed to import the selected rules file Пазначаны файл правілаў чамусьці не імпартуецца - + Add new rule... Дадаць новае правіла... - + Delete rule Выдаліць правіла - + Rename rule... Пераназваць правіла... - + Delete selected rules Выдаліць вылучаныя правілы - + Rule renaming Пераназыванне правіла - + Please type the new rule name Дайце назву новаму правілу - + Regex mode: use Perl-like regular expressions Рэжым Regex: выкарыстоўваць рэгулярныя выразы як у Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Рэжым шаблонаў: вы можаце выкарыстоўваць<ul><li>? каб акрэсліць любы адзін сімвал</li><li>* каб акрэсліць некалькі (ці ніводнага) любых сімвалаў</li><li>Прагальныя знакі лічацца аператарамі І</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Рэжым шаблонаў: вы можаце выкарыстоўваць<ul><li>? каб акрэсліць любы адзін сімвал</li><li>* каб акрэсліць некалькі (ці ніводнага) любых сімвалаў</li><li>| каб ужыць аператар ЦІ</li></ul> @@ -944,65 +940,65 @@ '%1' reached the maximum ratio you set. Removing... - + Стасунак '%1' дасягнуў зададзенага максімума. Выдаленне... '%1' reached the maximum ratio you set. Pausing... - + Стасунак '%1' дасягнуў зададзенага максімума. Спыненне... - + System network status changed to %1 e.g: System network status changed to ONLINE Стан сеткі сістэмы змяніўся на %1 - + ONLINE У СЕТЦЫ - + OFFLINE ПА-ЗА СЕТКАЙ - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Настáўленні сеткі %1 змяніліся, абнаўленне прывязкі сеансу - + Unable to decode '%1' torrent file. Не выйшла дэкадаваць торэнт-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' У торэнт '%2' убудавана рэкурсіўнае сцягванне файла '%1' - + Couldn't save '%1.torrent' Не выйшла захаваць '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. бо %1 адключаны. - + because %1 is disabled. this peer was blocked because TCP is disabled. бо %1 адключаны. - + URL seed lookup failed for URL: '%1', message: %2 Не знайшлося сіда па адрасе: '%1', паведамленне: %2 @@ -1019,178 +1015,164 @@ '%1' выдалены са спісу перадач. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Сцягваецца '%1', чакайце... - Torrent Export: torrent is invalid, skipping... - Экспарт торэнта: хібны торэнт, прапускаем... - - - + DHT support [ON] Падтрымка DHT [Укл] - + DHT support [OFF]. Reason: %1 Падтрымка DHT [Адкл]. Прычына: %1 - + DHT support [OFF] Падтрымка DHT [Адкл] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent спрабуе праслухоўваць любы порт інтэрфейсу: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2 - - - + The network interface defined is invalid: %1 Вызначаны сеткавы інтэрфэйс недапушчальны: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent спрабуе праслухоўваць інтэрфейс %1, порт: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent не знайшоў лакальны %1-адрас для праслухоўвання - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2. {1.?} + qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2. - + Tracker '%1' was added to torrent '%2' Трэкер '%1' дададзены да торэнта '%2' - + Tracker '%1' was deleted from torrent '%2' Трэкер '%1' выдалены з торэнта '%2' - + URL seed '%1' was added to torrent '%2' Адрас сіда '%1' дададзены да торэнта '%2' - + URL seed '%1' was removed from torrent '%2' Адрас сіда '%1' выдалены з торэнта '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Не выйшла узнавіць торэнт '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP-фільтр паспяхова прачытаны: ужыта %1 правілаў. - + Error: Failed to parse the provided IP filter. Памылка: не выйшла прачытаць пададзены IP-фільтр. - + Couldn't add torrent. Reason: %1 Не выйшла дадаць торэнт з прычыны: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' узноўлены (хуткае ўзнаўленне) - + '%1' added to download list. 'torrent name' was added to download list. '%1' дададзены да спісу сцягванняў. - + An I/O error occurred, '%1' paused. %2 Памылка ўводу/вываду. '%1' спынены. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: не выйшла перанакіраваць порты, паведамленне: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: перанакіраванне партоў паспяхова адбылося, паведамленне: %1 - + due to IP filter. this peer was blocked due to ip filter. паводле IP-фільтра. - + due to port filter. this peer was blocked due to port filter. паводле порт-фільтра. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. паводле абмежаванняў змяшанага рэжыму i2p. - + because it has a low port. this peer was blocked because it has a low port. бо ён меў малы нумар парта. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent паспяхова праслухоўваецца на інтэрфэйсе %1, порт: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent не здолеў праслухоўвацца на інтэрфейсе %1, порт: %2/%3 з прычыны: %4. {1 ?} {2/%3.?} + qBittorrent не здолеў праслухоўвацца на інтэрфейсе %1, порт: %2/%3 з прычыны: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent не здолеў праслухоўвацца на інтэрфейсе %1, порт: %2/%3 з прычыны: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Вонкавы IP: %1 @@ -1204,12 +1186,12 @@ Не выйшла перанесці торэнт '%1' з прычыны: %2 - + File sizes mismatch for torrent '%1', pausing it. Разыходжанне памераў файлаў торэнта '%1', торэнт спынены. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Хуткае аднаўленне змесціва торэнта '%1' не выйшла з прычыны %2, новая праверка... @@ -1234,7 +1216,7 @@ Значэнне - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Звычайна ключы для кукі - '%1', '%2'. @@ -1302,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-стужкі - + Unread Не прачытана @@ -1339,42 +1321,42 @@ You should get this information from your Web browser preferences. Unsupported database file size. - + Такі памер файла базы даных не падтрымліваецца. Metadata error: '%1' entry not found. - + Памылка метазвестак: запіс '%1' не знойдзены. Metadata error: '%1' entry has invalid type. - + Памылка метазвестак: запіс '%1' мае некарэктны тып. Unsupported database version: %1.%2 - + Версія базы даных не падтрымліваецца: %1.%2 Unsupported IP version: %1 - + Версія IP не падтрымліваецца: %1 Unsupported record size: %1 - + Памер запісу не падтрымліваецца: %1 Invalid database type: %1 - + Недапушчальны тып базы даных: %1 Database corrupted: no data section found. - + База даных пашкоджана: не знойдзена раздзелу даных. @@ -1404,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line Адна спасылка на радок - - Download local torrent - Сцягнуць лакальны торэнт - Download @@ -1581,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - Захоўваць новыя сцягванні ў: + Захоўваць файлы сюды: Label: - Цэтлік: + Цэтлік: Cookie: + Кукі: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Сцягнуты @@ -1607,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + Зацягнуць лакальны торэнт @@ -1965,10 +1953,6 @@ You should get this information from your Web browser preferences. &About &Пра qBittorrent - - Exit - Выйсці - &Pause @@ -1999,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit В&ыйсці - - Options - Настáўленні - - - Resume - Узнавіць - - - Pause - Спыніць - - - Delete - Выдаліць - Open URL @@ -2032,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show Паказаць - + Check for program updates Праверыць на існасць абнаўленняў праграмы - - Lock qBittorrent - Замкнуць qBittorrent - Add Torrent &Link... @@ -2057,215 +2021,221 @@ You should get this information from your Web browser preferences. - + Execution Log Лог выканання - + Clear the password Прыбраць пароль - + Filter torrent list... Фільтраваць спіс торэнтаў... - + &Set Password &Задаць пароль - + &Clear Password &Прыбраць пароль - + Transfers Перадачы - + Torrent file association Асацыяцыя Torrent-файлаў - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent не выстаўлены прадвызначанай праграмай для адкрыцця Torrent-файлаў і Magnet-спасылак. Ці жадаеце асацыяваць qBittorrent з Torrent-файламі і Magnet-спасылкамі? - + Icons Only Толькі значкі - + Text Only Толькі тэкст - + Text Alongside Icons Тэкст поруч са значкамі - + Text Under Icons Тэкст пад значкамі - + Follow System Style Паводле сістэмнага стылю - - - + + + UI lock password Пароль замыкання інтэрфейсу - - - + + + Please type the UI lock password: Увядзіце пароль, каб замкнуць інтэрфейс: - + The password should contain at least 3 characters Пароль павінен змяшчаць прынамсі 3 сімвалы - + Password update Абнавіць пароль - + The UI lock password has been successfully updated Пароль замыкання інтэрфейсу паспяхова абноўлены - + Are you sure you want to clear the password? Сапраўды жадаеце прыбраць пароль? - + Search Пошук - + Transfers (%1) Перадачы (%1) - + Error Памылка - + Failed to add torrent: %1 Не выйшла дадаць торэнт: %1 - + Download completion Сканчэнне сцягванняў - + I/O Error i.e: Input/Output Error Памылка ўводу/вываду - + Recursive download confirmation Пацверджанне рэкурсіўнага сцягвання - + Yes Так - + No Не - + Never Ніколі - + Global Upload Speed Limit Агульнае абмежаванне хуткасці раздачы - + Global Download Speed Limit Агульнае абмежаванне хуткасці сцягвання - + &No &Не - + &Yes &Так - + &Always Yes &Заўсёды Так - + Python found in %1 Python знойдзены ў %1 - + Old Python Interpreter Стары Python-інтэпрэтатар - + qBittorrent Update Available Ёсць абнаўленне для qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Выкарыстоўваецца апошняя версія qBittorrent - + Undetermined Python version Версія Python не вызначана - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Сцягванне '%1' скончана. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2274,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Прычына: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Торэнт '%1' змяшчае торэнт-файлы, жадаеце пачаць сцягванне іх змесціва? - + Couldn't download file at URL '%1', reason: %2. Не выйшла сцягнуць файл па адрасе '%1' з прычыны: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Ваш Python версіі %1 састарэў. Абнавіце яго да апошняй версіі, тады пашукавікі запрацуюць. Патрабуецца прынамсі 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Не выйшла вызначыць версію вашага Python (%1). Пашукавік адключаны. - - + + Missing Python Interpreter Няма інтэрпрэтатара Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Для выкарыстання пашукавіка патрабуецца Python, але выглядае, што ён не ўсталяваны. Жадаеце ўсталяваць? - + Python is required to use the search engine but it does not seem to be installed. Для выкарыстання пашукавіка патрабуецца Python, але выглядае, што ён не ўсталяваны. - A new version is available. Update to version %1? - Ёсць новая версія. + Ёсць новая версія. Абнавіцца да версіі %1? - + No updates available. You are already using the latest version. Няма абнаўленняў. Вы ўжо карыстаецеся апошняй версіяй. - + &Check for Updates &Праверыць на абнаўленні - + Checking for Updates... Праверка на абнаўленні... - + Already checking for program updates in the background У фоне ўжо ідзе праверка на абнаўленні праграмы - + Python found in '%1' Python знойдзены ў '%1' - + Download error Памылка сцягвання - + Python setup could not be downloaded, reason: %1. Please install it manually. Усталёўнік Python не можа быць сцягнуты з прычыны: %1. Усталюйце яго ўласнаручна. - - + + Invalid password Памылковы пароль - - + + RSS (%1) RSS (%1) - + URL download error Памылка пры сцягванні па URL - + The password is invalid Уведзены пароль памылковы - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Сцягв: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Разд: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [Сц: %1, Разд: %2] qBittorrent %3 - + Hide Схаваць - + Exiting qBittorrent Сканчэнне працы qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Некаторыя торэнты цяпер актыўныя. Сапраўды жадаеце закрыць qBittorrent? - + Open Torrent Files Пазначце Torrent-файлы - + Torrent Files Torrent-файлы - + Options were saved successfully. Настáўленні паспяхова захаваныя. @@ -2435,17 +2404,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Ваш дынамічны DNS адрас паспяхова абноўлены. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Памылка дынамічнага DNS: служба часова недаступная. Паўторная спроба праз 30 хвілін. - + Dynamic DNS error: hostname supplied does not exist under specified account. Памылка дынамічнага DNS: дадзеная назва хоста не існуе ў вызначаным уліковым запісе. @@ -2455,32 +2424,32 @@ Are you sure you want to quit qBittorrent? Памылка дынамічнага DNS: Нядзейснае імя карыстальніка ці пароль. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Памылка дынамічнага DNS: qBittorrent заблакаваны гэтай службай. Калі ласка, паведаміце пра гэта на http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Памылка дынамічнага DNS: служба вяртае %1. Калі ласка, паведаміце пра гэта на http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Памылка дынамічнага DNS: вашае імя карыстальніка было заблакавана праз злоўжыванні. - + Dynamic DNS error: supplied domain name is invalid. Памылка дынамічнага DNS: дадзеная назва дамену несапраўдная. - + Dynamic DNS error: supplied username is too short. Памылка дынамічнага DNS: гэтае імя карыстальніка занадта кароткае. - + Dynamic DNS error: supplied password is too short. Памылка дынамічнага DNS: дадзены пароль занадта кароткі. @@ -2507,154 +2476,161 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. База даных GeoIP загружана. Тып: %1. Час пабудовы: %2. - + Couldn't load GeoIP database. Reason: %1 Не выйшла загрузіць базу даных GeoIP з прычыны: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Н/Д - Asia/Pacific Region - Азіяцка-Ціхаакіянскі рэгіён + Азіяцка-Ціхаакіянскі рэгіён + + + Europe + Еўропа - Europe - Еўропа - - - Andorra Андора - + United Arab Emirates Аб'яднаныя Арабскія Эміраты - + Afghanistan Афганістан - + Antigua and Barbuda Антыгуа і Барбуда - + Anguilla Ангілья - + Albania Албанія - + Armenia Арменія - Netherlands Antilles - Нідэрландскія Антыльскія выспы + Нідэрландскія Антыльскія выспы - + Angola Ангола - + Antarctica Антарктыда - + Argentina Аргенціна - + American Samoa Амерыканскае Самоа - + Austria Аўстрыя - + Australia Аўстралія - + Aruba Аруба - + Azerbaijan Азербайджан - + Bosnia and Herzegovina Боснія і Герцагавіна - + Barbados Барбадас - + Bangladesh Бангладэш - + Belgium Бельгія - + Burkina Faso Буркіна-Фасо - + Bulgaria Балгарыя - + Bahrain Бахрэйн - + Burundi Бурундзі - + Benin Бенін @@ -2669,1137 +2645,1187 @@ Are you sure you want to quit qBittorrent? Бруней-Даруссалам - Bolivia - Балівія + Балівія - + Brazil Бразілія - + Bahamas Багамскія выспы - + Bhutan Бутан - + Bouvet Island Востраў Буве - + Botswana Батсвана - + Belarus Беларусь - + Belize Беліз - + Canada Канада - + Cocos (Keeling) Islands Какосавыя (Кілінг) выспы - + Congo, The Democratic Republic of the Конга, Дэмакратычная Рэспубліка - + Central African Republic Цэнтральная Афрыканская Рэспубліка - + Congo Конга - + Switzerland Швейцарыя - Cote D'Ivoire - Кот д'Івуар + Кот д'Івуар - + Cook Islands Выспы Кука - + Chile Чылі - + Cameroon Камерун - + China Кітай - + Colombia Калумбія - + Costa Rica Коста-Рыка - + Cuba Куба - + Cape Verde Каба-Вэрдэ - + + Curacao + + + + Christmas Island Выспа Раства - + Cyprus Кіпр - + Czech Republic Чэская Рэспубліка - + Germany Германія - + Djibouti Джыбуці - + Denmark Данія - + Dominica Дамініка - + Dominican Republic Дамініканская Рэспубліка - + Algeria Алжыр - + Ecuador Эквадор - + Estonia Эстонія - + Egypt Егіпет - + Western Sahara Заходняя Сахара - + Eritrea Эрытрэя - + Spain Іспанія - + Ethiopia Эфіопія - + Finland Фінляндыя - + Fiji Фіджы - + Falkland Islands (Malvinas) Фалкленскія выспы (Мальдзівы) - + Micronesia, Federated States of Мікранезія, Фэдэратыўныя Штаты - + Faroe Islands Фарэрскія выспы - + France Францыя - France, Metropolitan - Францыя, Метраполія + Францыя, Метраполія - + Gabon Габон - + United Kingdom Злучанае Каралеўства - + Grenada Грэнада - + Georgia Грузія - + French Guiana Французская Гвіяна - + Ghana Гана - + Gibraltar Гібралтар - + Greenland Грэнландыя - + Gambia Гамбія - + Guinea Гвінея - + Guadeloupe Гвадэлупа - + Equatorial Guinea Экватарыяльная Гвінея - + Greece Грэцыя - + South Georgia and the South Sandwich Islands Паўднёвая Джорджыя і Паўднёвыя Сандвічавы выспы - + Guatemala Гватэмала - + Guam Гуам - + Guinea-Bissau Гвінея-Бісаў - + Guyana Гаяна - + Hong Kong Ганконг - + Heard Island and McDonald Islands Выспа Херд і выспы Макдональд - + Honduras Гандурас - + Croatia Харватыя - + Haiti Гаіці - + Hungary Венгрыя - + Indonesia Інданезія - + Ireland Ірландыя - + Israel Ізраіль - + India Індыя - + British Indian Ocean Territory Брытанская тэрыторыя Індыйскага акіяна - + Iraq Ірак - + Iran, Islamic Republic of Іран, Ісламская Рэспубліка - + Iceland Ісландыя - + Italy Італія - + Jamaica Ямайка - + Jordan Іарданія - + Japan Японія - + Kenya Кенія - + Kyrgyzstan Кіргізія - + Cambodia Камбоджа - + Kiribati Кірыбаці - + Comoros Каморскія выспы - + Saint Kitts and Nevis Сэнт-Кітс і Нэвіс - + Korea, Democratic People's Republic of Карэйская Народна-Дэмакратычная Рэспубліка - + Korea, Republic of Карэя, Рэспубліка - + Kuwait Кувейт - + Cayman Islands Кайманавы выспы - + Kazakhstan Казахстан - + Lao People's Democratic Republic Лаоская Народна-Дэмакратычная Рэспубліка - + Lebanon Ліван - + Saint Lucia Сэнт-Люсія - + Liechtenstein Ліхтэнштэйн - + Sri Lanka Шры Ланка - + Liberia Ліберыя - + Lesotho Лесота - + Lithuania Літва - + Luxembourg Люксембург - + Latvia Латвія - Libyan Arab Jamahiriya - Лівійская Арабская Джамахірыя + Лівійская Арабская Джамахірыя - + Morocco Марока - + Monaco Манака - + Moldova, Republic of Малдова, Рэспубліка - + Madagascar Мадагаскар - + Marshall Islands Маршалавы выспы - Macedonia - Македонія + Македонія - + Mali Малі - + Myanmar М'янма - + Mongolia Манголія - Macau - Макао + Макао - + Northern Mariana Islands Паўночныя Марыянскія выспы - + Martinique Марцініка - + Mauritania Маўрытанія - + Montserrat Мантсерат - + Malta Мальта - + Mauritius Маўрыкій - + Maldives Мальдывы - + Malawi Малаві - + Mexico Мексіка - + Malaysia Малайзія - + Mozambique Мазамбік - + Namibia Намібія - + New Caledonia Новая Каледонія - + Niger Нігер - + Norfolk Island Выспа Норфалк - + Nigeria Нігерыя - + Nicaragua Нікарагуа - + Netherlands Нідэрланды - + Norway Нарвегія - + Nepal Непал - + Nauru Науру - + Niue Ніуе - + New Zealand Новая Зеландыя - + Oman Аман - + Panama Панама - + Peru Перу - + French Polynesia Французская Палінезія - + Papua New Guinea Папуа-Новая Гвінея - + Philippines Філіпіны - + Pakistan Пакістан - + Poland Польшча - + Saint Pierre and Miquelon Сен-П'ер і Мікелон - Pitcairn Islands - Піткэрн + Піткэрн - + Puerto Rico Пуэрта-Рыка - Palestinian Territory - Палестынская тэрыторыя + Палестынская тэрыторыя - + Portugal Партугалія - + Palau Палаў - + Paraguay Парагвай - + Qatar Катар - + Reunion Уз'яднанне - + Romania Румынія - + Russian Federation Расійская Федэрацыя - + Rwanda Руанда - + Saudi Arabia Сірыя - + Solomon Islands Саламонавы выспы - + Seychelles Сейшэльскія выспы - + Sudan Судан - + Sweden Швецыя - + Singapore Сінгапур - Saint Helena - Выспа Святой Алены + Выспа Святой Алены - + Slovenia Славенія - + Svalbard and Jan Mayen Шпіцбэрген і Ян-Майен - + Slovakia Славакія - + Sierra Leone Сьера-Леонэ - + San Marino Сан-Марына - + Senegal Сенегал - + Somalia Самалі - + Suriname Сурынам - + Sao Tome and Principe Сан-Томе і Прынсэп - + El Salvador Сальвадор - + Syrian Arab Republic Сірыйская Арабская Рэспубліка - + Swaziland Свазіленд - + Turks and Caicos Islands Цёркс і Кайкас - + Chad Чад - + French Southern Territories Французскія Паўднёвыя тэрыторыі - + Togo Таго - + Thailand Тайланд - + Tajikistan Таджыкістан - + Tokelau Такелаў - + Turkmenistan Туркменістан - + Tunisia Туніс - + Tonga Тонга - + Timor-Leste Тымор-Лешці - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Турцыя - + Trinidad and Tobago Трынідад і Табага - + Tuvalu Тувалу - + Taiwan Тайвань - + Tanzania, United Republic of Танзанія, Аб'яднаная Рэспубліка - + Ukraine Украіна - + Uganda Уганда - + United States Minor Outlying Islands Знешнія малыя выспы ЗША - + United States ЗША - + Uruguay Уругвай - + Uzbekistan Узбекістан - + Holy See (Vatican City State) Святы Пасад (Дзяржава-горад Ватыкан) - + Saint Vincent and the Grenadines Сэнт-Вінсэнт і Грэнадыны - Venezuela - Венесуэла + Венесуэла - + Virgin Islands, British Віргінскія выспы, Брытанскія - + Virgin Islands, U.S. Віргінскія выспы, ЗША - Vietnam - В'етнам + В'етнам - + Vanuatu Вануату - + Wallis and Futuna Уоліс і Футуна - + Samoa Самоа - + Yemen Емен - + Mayotte Маёта - + Serbia Сербія - + South Africa Паўднёвая Афрыка - + Zambia Замбія - + Montenegro Чарнагорыя - + Zimbabwe Зімбабвэ - Anonymous Proxy - Ананімны проксі + Ананімны проксі - Satellite Provider - Спадарожнікавы правайдар + Спадарожнікавы правайдар - Other - Іншае + Іншае - + Aland Islands Аландскія выспы - + Guernsey Выспа Гернсі - + Isle of Man Выспа Мэн - + Jersey Джэрсі - + Saint Barthelemy Сен-Бартэльмі - Saint Martin - Сен-Мартэн + Сен-Мартэн - + Could not uncompress GeoIP database file. Не выйшла распакаваць файл з базай даных GeoIP. - + Couldn't save downloaded GeoIP database file. Не выйшла захаваць сцягнуты файл з базай даных GeoIP. - + Successfully updated GeoIP database. База звестак GeoIP паспяхова абноўлена. - + Couldn't download GeoIP database file. Reason: %1 Не выйшла сцягнуць файл з базай даных GeoIP з прычыны: %1 @@ -3830,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - зацікаўлены(лакальна) і заглухшы(пір) + зацікаўлены (лакальны) і заглухшы (пір) interested(local) and unchoked(peer) - зацікаўлены(лакальна) і незаглухшы(пір) + зацікаўлены (лакальны) і ажыўшы (пір) interested(peer) and choked(local) - зацікаўлены(пір) і заглухшы(лакальна) + зацікаўлены (пір) і заглухшы (лакальны) interested(peer) and unchoked(local) - зацікаўлены(пір) і незаглухшы(лакальна) + зацікаўлены (пір) і ажыўшы (лакальны) optimistic unchoke - аптымістычна незаглухшы + аптымістычнае ажыўленне peer snubbed - грэблівы пір + грэблівы пір incoming connection - уваходнае злучэнне + уваходнае злучэнне not interested(local) and unchoked(peer) - незацікаўлены(лакальна) і незаглухшы(пір) + незацікаўлены (лакальны) і ажыўшы (пір) not interested(peer) and unchoked(local) - незацікаўлены(пір) і незаглухшы(лакальна) + незацікаўлены (пір) і ажыўшы (лакальны) peer from PEX - пір з PEX + пір з PEX peer from DHT - пір з DHT + пір з DHT encrypted traffic - зашыфраваны трафік + шыфраваны трафік encrypted handshake - зашыфраваны "поціск рук" + шыфраванае рукапацісканне peer from LSD - пір з LSD + пір з LSD @@ -3963,123 +3989,73 @@ Are you sure you want to quit qBittorrent? Рэлевантнасць - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Дадаць новы пір... - + Copy selected Капіяваць у буфер абмену - - + + Ban peer permanently Заблакаваць пір назаўсёды - + Manually adding peer '%1'... Ручное даданне піра '%1'... - + The peer '%1' could not be added to this torrent. Пір '%1' не можа быць дадзены да гэтага торэнта. - + Manually banning peer '%1'... Ручное блакаванне піра '%1'... - - + + Peer addition Даданне піра - + Some peers could not be added. Check the Log for details. Некаторыя піры нельга дадаць. Глядзіце лог па падрабязнасці. - + The peers were added to this torrent. Піры дададзены да торэнта. - + Are you sure you want to ban permanently the selected peers? Сапраўды жадаеце заблакаваць вылучаныя піры назаўсёды? - + &Yes &Так - + &No &Не - - interested(local) and choked(peer) - зацікаўлены(лакальна) і заглухшы(пір) - - - interested(local) and unchoked(peer) - зацікаўлены(лакальна) і незаглухшы(пір) - - - interested(peer) and choked(local) - зацікаўлены(пір) і заглухшы(лакальна) - - - interested(peer) and unchoked(local) - зацікаўлены(пір) і незаглухшы(лакальна) - - - optimistic unchoke - аптымістычна незаглухшы - - - peer snubbed - грэблівы пір - - - incoming connection - уваходнае злучэнне - - - not interested(local) and unchoked(peer) - незацікаўлены(лакальна) і незаглухшы(пір) - - - not interested(peer) and unchoked(local) - незацікаўлены(пір) і незаглухшы(лакальна) - - - peer from PEX - пір з PEX - - - peer from DHT - пір з DHT - - - encrypted traffic - зашыфраваны трафік - - - encrypted handshake - зашыфраваны "поціск рук" - - - peer from LSD - пір з LSD - PeersAdditionDlg @@ -4117,6 +4093,203 @@ Are you sure you want to quit qBittorrent? Сіні: Даступныя кавалкі + + PluginSelectDlg + + + Search plugins + Пошукавыя ўбудовы + + + + Installed search plugins: + + + + + Name + Назва + + + + Version + Версія + + + + Url + Спасылка + + + + + Enabled + Уключаны + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Новыя пошукавыя ўбудовы можна атрымаць тут:: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Усталяваць новую + + + + Check for updates + Праверыць абнаўленні + + + + Close + Закрыць + + + + Uninstall + Выдаліць + + + + + + Yes + Так + + + + + + + No + Не + + + + Uninstall warning + Папярэджанне пры выдаленні + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Некаторыя ўбудовы немагчыма выдаліць, бо яны ёсць часткай qBittorrent. Выдаліць можна толькі тыя, што вы ўсталёўвалі самастойна. +Яны былі адключаны. + + + + Uninstall success + Выдаленне выканана + + + + All selected plugins were uninstalled successfully + Усе вылучаныя ўбудовы паспяхова выдалены + + + + + New search engine plugin URL + URL новай пошукавай убудовы + + + + + URL: + URL: + + + + Invalid link + Памылковая спасылка + + + + The link doesn't seem to point to a search engine plugin. + Не падобна, каб гэтая спасылка вяла да пошукавай убудовы. + + + + Select search plugins + Пазначце пошукавыя ўбудовы + + + + qBittorrent search plugin + Пошукавая ўбудова qBittorrent + + + + + + Search plugin update + Абнаўленне пошукавай убудовы + + + + All your plugins are already up to date. + Усе вашыя ўбудовы ўжо і так апошніх версій. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Усталяванне пошукавай убудовы + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Крыніца ўбудовы + + + + Search plugin source: + Крыніца пошукавай убудовы: + + + + Local file + Лакальны файл + + + + Web link + Web-спасылка + + Preferences @@ -4173,89 +4346,89 @@ Are you sure you want to quit qBittorrent? Дадаць пашырэнне .!qB да няскончаных файлаў - + Copy .torrent files to: Капіяваць файлы .torrent у: - + Connections Limits Абмежаванні злучэнняў - + Proxy Server Проксі-сервер - + Global Rate Limits Агульныя абмежаванні хуткасці - + Apply rate limit to transport overhead Абмяжоўваць хуткасць звязаных выдаткаў перадачы - + Schedule the use of alternative rate limits Задзейнічаць альтэрнатыўныя абмежаванні хуткасці па раскладзе - + From: from (time1 to time2) З: - + To: time1 to time2 Да: - + Enable Local Peer Discovery to find more peers Выяўляць лакальныя піры (LPD), каб знаходзіць больш піраў - + Encryption mode: Рэжым шыфравання: - + Prefer encryption Аддаваць перавагу шыфраванню - + Require encryption Патрабаваць шыфраванне - + Disable encryption Адключыць шыфраванне - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Даведацца больш</a>) - + Maximum active downloads: Максімум актыўных сцягванняў: - + Maximum active uploads: Максімум актыўных раздач: - + Maximum active torrents: Максімум актыўных торэнтаў: @@ -4280,82 +4453,82 @@ Are you sure you want to quit qBittorrent? Паказваць змесціва торэнта і некаторыя настáўленні - + Run external program on torrent completion Запусціць іншую праграму па сканчэнні сцягвання торэнта - + Port used for incoming connections: Для ўваходных злучэнняў выкарыстоўваць порт: - + Random Выпадковы - + Global maximum number of connections: Агульнае абмежаванне колькасці злучэнняў: - + Maximum number of connections per torrent: Максімальная колькасць злучэнняў на торэнт: - + Maximum number of upload slots per torrent: Максімальная колькасць слотаў раздачы на торэнт: - - + + Upload: Раздача: - - + + Download: Сцягванне: - - - - + + + + KiB/s КіБ/с - + Remove folder Выдаліць каталог - + Every day Кожны дзень - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Абмен пірамі з сумяшчальнымі Bittorrent-кліентамі (µTorrent, Vuze, ...) - + Host: Хост: - + SOCKS4 SOCKS4 - + Type: Тып: @@ -4528,262 +4701,262 @@ Are you sure you want to quit qBittorrent? Аўтаматычна дадаваць торэнты з: - + Add folder... Дадаць каталог... - + Copy .torrent files for finished downloads to: Капіяваць .torrent файлы скончаных сцягванняў у: - + Email notification upon download completion Паведаміць на Email пасля сканчэння сцягвання - + Destination email: Email для паведамлення: - + SMTP server: SMTP-сервер: - + This server requires a secure connection (SSL) Гэты сервер патрабуе бяспечнага злучэння (SSL) - + Listening Port Слухаць порт - + Use UPnP / NAT-PMP port forwarding from my router Выкарыстоўваць UPnP / NAT-PMP з майго маршрутызатара - + Use different port on each startup Выкарыстоўваць выпадковы порт пры запуску - + Global maximum number of upload slots: Глабальны максімум слотаў раздачы: - + Otherwise, the proxy server is only used for tracker connections Інакш проксі-сервер выкарыстоўваецца толькі для злучэння з трэкерамі - + Use proxy for peer connections Выкарыстоўваць проксі для злучэння з пірамі - + Disable connections not supported by proxies Адключыць злучэнні, якія проксі не падтрымлівае - + Use proxy only for torrents Выкарыстоўваць проксі толькі для торэнтаў - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS-стужкі, пошукавыя рухавікі, абнаўленні праграмы і ўсё астатняе, апроч торэнт-перадач і звязаных аперацый (такіх як абмен пірамі) будзе выкарыстоўваць непасрэднае злучэнне - + Info: The password is saved unencrypted Для даведкі: пароль захаваны незашыфраваным - + IP Filtering Фільтраванне па IP - + Reload the filter Перачытаць фільтр - + Apply to trackers Ужыць да трэкераў - + Apply rate limit to peers on LAN Абмяжоўваць хуткасць піраў у LAN - + When: Калі: - + Weekdays Будні - + Weekends Выходныя - + Rate Limits Settings Настáўленні абмежавання хуткасці - + Enable µTP protocol Уключыць пратакол µTP - + Apply rate limit to µTP protocol Ужываць абмежаванне хуткасці да пратакола µTP - + Privacy Прыватнасць - + Enable DHT (decentralized network) to find more peers Задзейнічаць DHT (дэцэнтралізаваная сетка), каб знаходзіць больш піраў - + Enable Peer Exchange (PeX) to find more peers Абменьвацца пірамі (PeX), каб знаходзіць больш піраў - + Look for peers on your local network Шукаць піры ў маёй лакальнай сетцы - + Enable when using a proxy or a VPN connection Уключыць, калі выкарыстоўваецца проксі ці VPN-злучэнне - + Enable anonymous mode Задзейнічаць ананімны рэжым - + Do not count slow torrents in these limits Не ўлічваць марудныя торэнты ў гэтых абмежаваннях - + Seed torrents until their ratio reaches Спыніць раздачы, калі іх стасункі дасягнуць значэння - + then а затым - + Pause them спыніць іх - + Remove them выдаліць іх - + Automatically add these trackers to new downloads: Аўтаматычна дадаваць гэтыя трэкеры да новых сцягванняў: - + Use UPnP / NAT-PMP to forward the port from my router Выкарыстоўваць UPnP / NAT-PMP для перанакіравання парта праз мой маршрутызатар - + Use HTTPS instead of HTTP Выкарыстоўваць HTTPS замест HTTP - + Import SSL Certificate Імпартаваць SSL-сертыфікат - + Import SSL Key Імпартаваць SSL-ключ - + Certificate: Сертыфікат: - + Alternative Rate Limits Альтэрнатыўныя абмежаванні хуткасці - + Key: Ключ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Інфармацыя пра сертыфікаты</a> - + Bypass authentication for localhost Прапускаць аўтэнтыфікацыю ў localhost - + Update my dynamic domain name Абнаўляць маю дынамічную назву дамену - + Service: Служба: - + Register Рэгістрацыя - + Domain name: Назва дамену: - + (None) (няма) @@ -4793,61 +4966,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Порт: - - - + + + Authentication Аўтэнтыфікацыя - - - - + + + + Username: Імя карыстальніка: - - - - + + + + Password: Пароль: - + Torrent Queueing Задзейнічаць чарговасць торэнтаў - + Share Ratio Limiting Абмежаванне стасунку раздачы - + Enable Web User Interface (Remote control) Задзейнічаць web-інтэрфейс (адлеглае кіраванне) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Шлях да фільтраў (.dat, .p2p, .p2b): @@ -5053,10 +5226,6 @@ Are you sure you want to quit qBittorrent? Comment: Каментар: - - Torrent content: - Змесціва торэнта: - Select All @@ -5578,28 +5747,28 @@ No further notices will be issued. Невядомая памылка - - + + Upgrade Абнавіць - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Вы абнаўляецеся з надта старой версіі, якая захоўвае звесткі па-іншаму. Вы мусіць міграваць на новую сістэму захоўвання. Вы не зможаце ізноў выкарыстоўваць версію, старэйшую за 3.3.0. Працягваць? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Вы абнаўляецеся з надта старой версіі, якая захоўвае звесткі па-іншаму. Вы мусіць міграваць на новую сістэму захоўвання. Калі працягнеце, то не зможаце ізноў выкарыстоўваць версію, старэйшую за 3.3.0. - + Couldn't migrate torrent with hash: %1 Нельга міграваць торэнт з хэшам %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Немагчыма міграваць торэнт. Недапушчальная для хуткага ўзнаўлення назва файла: %1 @@ -5710,17 +5879,17 @@ No further notices will be issued. RSSImp - + Stream URL: Адрас плыні: - + Please type a RSS stream URL Увядзіце URL RSS-плыні - + This RSS feed is already in the list. Гэтая RSS-стужка ўжо ў спісе. @@ -5740,75 +5909,92 @@ No further notices will be issued. Новы каталог - + Deletion confirmation Пацверджанне выдалення - + Are you sure you want to delete the selected RSS feeds? Сапраўды жадаеце выдаліць гэтыя RSS-стужкі? - + Please choose a new name for this RSS feed Дайце новую назву гэтай RSS-стужцы - + New feed name: Новая назва стужкі: - + Name already in use Гэткая назва ўжо ёсць - + This name is already used by another item, please choose another one. Гэтую назву ўжо мае іншы элемент. Калі ласка, пазначце іншую. - + Date: Дата: - + Author: Аўтар: - + Unread Не прачытана - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Не выйшла аўтаматычна сцягнуць '%1' з RSS-стужкі '%2', бо ён не змяшчае торэнта ці магнет-спасылкі... + Не выйшла аўтаматычна сцягнуць '%1' з RSS-стужкі '%2', бо ён не змяшчае торэнта ці магнет-спасылкі... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Аўтаматычнае сцягванне торэнта '%1' з RSS-стужкі '%2'... + Аўтаматычнае сцягванне торэнта '%1' з RSS-стужкі '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Не выйшла аўтаматычна сцягнуць '%1' з RSS-стужкі '%2', бо ён не змяшчае торэнта ці магнет-спасылкі... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Аўтаматычнае сцягванне торэнта '%1' з RSS-стужкі '%2'... RssParser - Failed to open downloaded RSS file. - Не выйшла адкрыць сцягнуты файл RSS. + Не выйшла адкрыць сцягнуты файл RSS. - Invalid RSS feed at '%1'. - Нядзейсная RSS-стужка '%1'. + Нядзейсная RSS-стужка '%1'. @@ -5834,168 +6020,249 @@ No further notices will be issued. Максімум артыкулаў на стужку: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Агляд... + + + + Choose save path + Пазначце шлях захавання + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Каталогі, за якімі сачыць - - Download here - Сцягваць сюды + + Save Files to + + + + Download here + Сцягваць сюды - Download path - Шлях сцягвання + Шлях сцягвання SearchCategories - All categories - Усе катэгорыі + Усе катэгорыі - Movies - Кіно + Кіно - TV shows - Тэлеперадачы + Тэлеперадачы - Music - Музыка + Музыка - Games - Гульні + Гульні - Anime - Анімэ + Анімэ - Software - Софт + Софт - Pictures - Выявы + Выявы - Books - Кнігі + Кнігі SearchEngine - - - Search - Пошук + Пошук - Please install Python to use the Search Engine. - Каб скарыстацца пашукавіком, усталюйце Python. + Каб скарыстацца пашукавіком, усталюйце Python. - Empty search pattern - Спустошыць шаблон пошуку + Спустошыць шаблон пошуку - Please type a search pattern first - Спачатку ўвядзіце шаблон пошуку + Спачатку ўвядзіце шаблон пошуку - Searching... - Ідзе пошук... + Ідзе пошук... - Stop - Стоп + Стоп - - Search Engine - Пашукавік + Пашукавік - - Search has finished - Пошук скончаны + Пошук скончаны - An error occurred during search... - Падчас пошуку ўзнікла памылка... + Падчас пошуку ўзнікла памылка... - - Search aborted - Пошук перапынены + Пошук перапынены - All enabled - Усе ўключаны + Усе ўключаны - All engines - Усе пашукавікі + Усе пашукавікі - - Multiple... - Множны... + Множны... - - Results <i>(%1)</i>: i.e: Search results - Вынікі <i>(%1)</i>: + Вынікі <i>(%1)</i>: - Search returned no results - Пошук не даў вынікаў + Пошук не даў вынікаў - Stopped - Спынена + Спынена + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Усе катэгорыі + + + + Movies + Кіно + + + + TV shows + Тэлеперадачы + + + + Music + Музыка + + + + Games + Гульні + + + + Anime + Анімэ + + + + Software + Софт + + + + Pictures + Выявы + + + + Books + Кнігі SearchListDelegate - - + + Unknown Невядома @@ -6003,35 +6270,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Назва - + Size i.e: file size Памер - + Seeders i.e: Number of full sources Раздаюць - + Leechers i.e: Number of partial sources Сцягваюць - + Search engine Пашукавік + + SearchWidget + + + + + + + Search + Пошук + + + + Status: + Стан: + + + + + Stopped + Спынена + + + + Download + Сцягнуць + + + + Go to description page + Перайсці да старонкі з апісаннем + + + + Copy description page URL + Скапіяваць адрас старонкі з апісаннем + + + + Search plugins... + + + + + All enabled + Усе ўключаны + + + + All plugins + + + + + + Multiple... + Множны... + + + + + + Search Engine + Пашукавік + + + + Please install Python to use the Search Engine. + Каб скарыстацца пашукавіком, усталюйце Python. + + + + Empty search pattern + Спустошыць шаблон пошуку + + + + Please type a search pattern first + Спачатку ўвядзіце шаблон пошуку + + + + + Results <i>(%1)</i>: + i.e: Search results + Вынікі <i>(%1)</i>: + + + + Searching... + Ідзе пошук... + + + + Stop + Стоп + + + + + Search has finished + Пошук скончаны + + + + + Search aborted + Пошук перапынены + + + + Search returned no results + Пошук не даў вынікаў + + + + Search has failed + + + + + An error occurred during search... + Падчас пошуку ўзнікла памылка... + + ShutdownConfirmDlg @@ -6476,24 +6868,28 @@ No further notices will be issued. TorrentContentModel - + Name Назва - + Size Памер - + Progress Рух - + + Download Priority + + + Priority - Прыярытэт + Прыярытэт @@ -6845,38 +7241,38 @@ No further notices will be issued. З папярэджаннямі (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Не выйшла дэкадаваць фавікон па адрасе '%1'. Спроба сцягнуць фавікон у фармаце PNG. - + Couldn't decode favicon for URL '%1'. Не выйшла дэкадаваць фавікон па адрасе '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Не выйшла сцягнуць фавікон па адрасе '%1' з прычыны: %2 - + Resume torrents Узнавіць торэнты - + Pause torrents Спыніць торэнты - + Delete torrents Выдаліць торэнты - - + + All (%1) this is for the tracker filter Усе (%1) @@ -7144,17 +7540,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Стан - + Labels Цэтлікі - + Trackers Трэкеры @@ -7693,206 +8089,155 @@ No further notices will be issued. engineSelect - Search plugins - Пошукавыя ўбудовы + Пошукавыя ўбудовы - Installed search engines: - Усталяваныя пашукавікі: + Усталяваныя пашукавікі: - Name - Назва + Назва - Version - Версія + Версія - Url - Спасылка + Спасылка - - Enabled - Уключаны + Уключаны - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Новыя пошукавыя ўбудовы можна атрымаць тут:: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Новыя пошукавыя ўбудовы можна атрымаць тут:: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Усталяваць новую + Усталяваць новую - Check for updates - Праверыць абнаўленні + Праверыць абнаўленні - Close - Закрыць + Закрыць - Uninstall - Выдаліць + Выдаліць engineSelectDlg - Uninstall warning - Папярэджанне пры выдаленні + Папярэджанне пры выдаленні - Uninstall success - Выдаленне выканана + Выдаленне выканана - Invalid plugin - Нядзейсная ўбудова + Нядзейсная ўбудова - The search engine plugin is invalid, please contact the author. - Пошукавая ўбудова нядзейсная, напішыце аўтару. + Пошукавая ўбудова нядзейсная, напішыце аўтару. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Больш новая версія ўбудовы '%1' ужо ўсталявана. + Больш новая версія ўбудовы '%1' ужо ўсталявана. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Пошукавая ўбудова '%1' не можа быць абноўлена, пакінута старая версія. + Пошукавая ўбудова '%1' не можа быць абноўлена, пакінута старая версія. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Пошукавая ўбудова '%1' не можа быць усталявана. + Пошукавая ўбудова '%1' не можа быць усталявана. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Пошукавая ўбудова '%1' паспяхова абноўлена. + Пошукавая ўбудова '%1' паспяхова абноўлена. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Пошукавая ўбудова '%1' паспяхова ўсталяваная. + Пошукавая ўбудова '%1' паспяхова ўсталяваная. - The link doesn't seem to point to a search engine plugin. - Не падобна, каб гэтая спасылка вяла да пошукавай убудовы. + Не падобна, каб гэтая спасылка вяла да пошукавай убудовы. - Select search plugins - Пазначце пошукавыя ўбудовы + Пазначце пошукавыя ўбудовы - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Выбачайце, не выйшла ўсталяваць убудову '%1'. + Выбачайце, не выйшла ўсталяваць убудову '%1'. - - - - - Search plugin install - Усталяванне пошукавай убудовы + Усталяванне пошукавай убудовы - - - Yes - Так + Так - - - - No - Не + Не - qBittorrent search plugin - Пошукавая ўбудова qBittorrent + Пошукавая ўбудова qBittorrent - - - - Search plugin update - Абнаўленне пошукавай убудовы + Абнаўленне пошукавай убудовы - - Sorry, update server is temporarily unavailable. - Выбачайце, сервер абнаўленняў часова недаступны. + Выбачайце, сервер абнаўленняў часова недаступны. - All your plugins are already up to date. - Усе вашыя ўбудовы ўжо і так апошніх версій. + Усе вашыя ўбудовы ўжо і так апошніх версій. - All selected plugins were uninstalled successfully - Усе вылучаныя ўбудовы паспяхова выдалены + Усе вылучаныя ўбудовы паспяхова выдалены - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Некаторыя ўбудовы немагчыма выдаліць, бо яны ёсць часткай qBittorrent. Выдаліць можна толькі тыя, што вы ўсталёўвалі самастойна. + Некаторыя ўбудовы немагчыма выдаліць, бо яны ёсць часткай qBittorrent. Выдаліць можна толькі тыя, што вы ўсталёўвалі самастойна. Яны былі адключаны. - Invalid link - Памылковая спасылка + Памылковая спасылка - - New search engine plugin URL - URL новай пошукавай убудовы + URL новай пошукавай убудовы - - URL: - URL: + URL: @@ -8022,169 +8367,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Пазначце каталог для экспарту - - - - + + + + Choose a save directory Пазначце каталог для захавання - + Add directory to scan Дадайце каталог для сачэння - + Supported parameters (case sensitive): Падтрымліваюцца параметры (рэгістр улічваецца): - + %N: Torrent name %N: Назва торэнта - + %L: Label %L: Цэтлік - + %F: Content path (same as root path for multifile torrent) %F: Шлях прызначэння (тое ж, што і каранёвы шлях для шматфайлавага торэнта) - + %R: Root path (first torrent subdirectory path) %R: Каранёвы шлях (галоўны шлях для падкаталога торэнта) - + %D: Save path %D: Шлях захавання - + %C: Number of files %C: Колькасць файлаў - + %Z: Torrent size (bytes) %Z: Памер торэнта (у байтах) - + %T: Current tracker %T: Дзейны трэкер - + %I: Info hash %I: Хэш - + Folder is already being watched. qBittorrent ужо сочыць за гэтым каталогам. - + Folder does not exist. Каталог не існуе. - + Folder is not readable. Каталог не прыдатны да чытання. - + Failure Няўдача - + Failed to add Scan Folder '%1': %2 Не выйшла дадаць каталог для сачэння '%1': %2 - - + + Filters Фільтры - - + + Choose an IP filter file Пазначце файл IP-фільтру - + SSL Certificate SSL-сертыфікат - + SSL Key SSL-ключ - + Parsing error Памылка разбору - + Failed to parse the provided IP filter Не выйшла прачытаць гэты IP-фільтр - + Successfully refreshed Паспяхова абноўлены - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP фільтр паспяхова прачытаны: ужыта %1 правілаў. - + Invalid key Нядзейсны ключ - + This is not a valid SSL key. Гэты SSL-ключ нядзейсны. - + Invalid certificate Нядзейсны сертыфікат - + This is not a valid SSL certificate. Гэты SSL-сертыфікат нядзейсны. - + The start time and the end time can't be the same. Час пачатку і час сканчэння не могуць супадаць. - + Time Error Памылка часу @@ -8192,24 +8537,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Крыніца ўбудовы + Крыніца ўбудовы - Search plugin source: - Крыніца пошукавай убудовы: + Крыніца пошукавай убудовы: - Local file - Лакальны файл + Лакальны файл - Web link - Web-спасылка + Web-спасылка @@ -8238,40 +8579,32 @@ Those plugins were disabled. search_engine - - Search - Пошук + Пошук - Status: - Стан: + Стан: - Stopped - Спынена + Спынена - Download - Сцягнуць + Сцягнуць - Go to description page - Перайсці да старонкі з апісаннем + Перайсці да старонкі з апісаннем - Copy description page URL - Скапіяваць адрас старонкі з апісаннем + Скапіяваць адрас старонкі з апісаннем - Search engines... - Пашукавікі... + Пашукавікі... diff --git a/src/lang/qbittorrent_bg.ts b/src/lang/qbittorrent_bg.ts index 55737d829..3136e5a4c 100644 --- a/src/lang/qbittorrent_bg.ts +++ b/src/lang/qbittorrent_bg.ts @@ -175,172 +175,172 @@ Не сваляй - - + + I/O Error Грешка на Вход/Изход - + The torrent file does not exist. Торент файла не съществува. - + Invalid torrent Невалиден торент - + Failed to load the torrent: %1 Неуспешно зареждане на торент:%1 - - + + Already in download list Вече е в списъка за сваляне - + Free disk space: %1 Свободно дисково пространство: %1 - + Not Available This comment is unavailable Не е налично - + Not Available This date is unavailable Не е налично - + Not available Не е наличен - + Invalid magnet link Невалидна магнитна връзка - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Тази магнитна връзка не се разпознава - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Магнитна връзка - + Retrieving metadata... Извличане на метаданни... - + Not Available This size is unavailable. Не е наличен - - - + + + Choose save path Избери път за съхранение - + Rename the file Преименувай файла - + New name: Ново име: - - + + The file could not be renamed Файлът не може да се преименува - + This file name contains forbidden characters, please choose a different one. Името на файла съдържа забранени символи, моля изберете различно име. - - + + This name is already in use in this folder. Please use a different name. Това име вече съществува в тази папка. Моля, ползвайте различно име. - + The folder could not be renamed Папката не може да се преименува - + Rename... Преименувай... - + Priority Предимство - + Invalid metadata - + Parsing metadata... Проверка на метаданните... - + Metadata retrieval complete Извличането на метаданни завърши - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Намери имената на получаващата двойка - - Maximum number of half-open connections [0: Disabled] - Максимален брой полу-отворени връзки [0: Изключен] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Намерени статии, базирани на епизодичен филтър. - + Example: Пример: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match ще търси резултати 2, 5, 8 през 15, 30 и повече епизода на първи сезон - + Episode filter rules: Правила на епизодния филтър: - + Season number is a mandatory non-zero value Номерът на сезона трябва да бъде със стойност, различна от нула - + Episode number is a mandatory non-zero value - + Filter must end with semicolon Филтърът трябва да завършва с точка и запетая - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Име на ново правила - + Please type the name of the new download rule. Моля, въведете името на новото правило за сваляне. - - + + Rule name conflict Конфликт в имената на правилата - - + + A rule with this name already exists, please choose another name. Правило с това име вече съществува, моля изберете друго име. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Сигурни ли сте че искате да изтриете избраните правила? - + Rule deletion confirmation Потвърждение за изтриване на правилото - + Destination directory Директория цел - + Invalid action Невалидно действие - + The list is empty, there is nothing to export. Списъка е празен, няма какво да се експортира. - + Where would you like to save the list? Къде искате да се съхрани списъка? - + Rules list (*.rssrules) Листа с правила (*.rssrules) - + I/O Error В/И Грешка - + Failed to create the destination file Неуспешно създавене на файла-получател - + Please point to the RSS download rules file Моля посочете файла с правила за сваляне на RSS - + Rules list Списък с правила - + Import Error Грешка при внос - + Failed to import the selected rules file Неуспешно внасяне на избрания файл с правила - + Add new rule... Добави ново правило... - + Delete rule Изтрий правилото - + Rename rule... Преименувай правилото... - + Delete selected rules Изтрий избраните правила - + Rule renaming Преименуване на правилото - + Please type the new rule name Моля напишете името на новото правило - + Regex mode: use Perl-like regular expressions Режим регулярни изрази: ползвайте подобни на Perl регулярни изрази - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Режим Жокер: можете да ползвате<ul><li>? за заместване на всеки единичен знак</li><li>* за заместване от нула до много различни знаци</li><li>Паузите се броят като оператор AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Режим Жокер: можете да ползвате<ul><li>? за заместване на всеки отделен знак</li><li>* за заместване на нула или много знаци</li><li>| се ползва като OR оператор</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] DHT поддръжка [ИЗКЛ] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успешно вмъкване на дадения IP филтър: %1 правила бяха добавени. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Стойност - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS канали - + Unread Непрочетен @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Само един линк на реда - - Download local torrent - Сваляне на местен торент - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Свалени @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Относно - - Exit - Изход - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Покажи - + Check for program updates Проверка за обновления на програмата - - Lock qBittorrent - Заключи qBittorrent - Add Torrent &Link... @@ -2026,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Изпълнение на Запис - + Clear the password Изчистване на паролата - + Filter torrent list... Филтриране на торент от списъка... - + &Set Password - + &Clear Password - + Transfers Трансфери - + Torrent file association Свързване на торент файла - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent не е вашето приложение по подразбиране за отваряне на файлове торент или Магнитни връзки. Искате ли да свържете qBittorrent към файлове торент и Магнитни връзки? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password Парола за потребителски интерфейс - - - + + + Please type the UI lock password: Моля въведете парола за заключване на потребителския интерфейс: - + The password should contain at least 3 characters Паролата трябва да съдържа поне 3 символа - + Password update Обновяване на парола - + The UI lock password has been successfully updated Паролата за заключване на потребителския интерфейс бе успешно обновена - + Are you sure you want to clear the password? Наистина ли искате да изчистите паролата? - + Search Търси - + Transfers (%1) Трансфери (%1) - + Error - + Failed to add torrent: %1 - + Download completion Завършва свалянето - + I/O Error i.e: Input/Output Error В/И Грешка - + Recursive download confirmation Допълнително потвърждение за сваляне - + Yes Да - + No Не - + Never Никога - + Global Upload Speed Limit Общ лимит Скорост на качване - + Global Download Speed Limit Общ лимит Скорост на сваляне - + &No &Не - + &Yes &Да - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2242,155 +2242,149 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter Липсващ интерпретатор на Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Проверката за обновления на програмата вече е извършена - + Python found in '%1' - + Download error Грешка при сваляне - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Невалидна парола - - + + RSS (%1) - + URL download error - + The password is invalid Невалидна парола - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Скрий - + Exiting qBittorrent Напускам qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Някои файлове се прехвърлят. Сигурни ли сте че искате да напуснете qBittorrent? - + Open Torrent Files Отвори Торент Файлове - + Torrent Files Торент Файлове - + Options were saved successfully. Опциите бяха съхранени успешно. @@ -2398,17 +2392,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2418,32 +2412,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2470,154 +2464,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2632,1137 +2621,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Франция + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Франция + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Гърция - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3926,64 +3905,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Добави нова двойка... - + Copy selected - - + + Ban peer permanently Спри двойката завинаги - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Добавяне на двойка - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Сигурни ли сте че искате да спрете завинаги избраните двойки? - + &Yes &Да - + &No &Не @@ -4024,6 +4009,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Търси добавки + + + + Installed search plugins: + + + + + Name + Име + + + + Version + Версия + + + + Url + Url + + + + + Enabled + Включено + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Можете да вземете нови добавки за търсачката тук: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Инсталирай нов + + + + Check for updates + Провери за обновяване + + + + Close + Затвори + + + + Uninstall + Деинсталирай + + + + + + Yes + Да + + + + + + + No + Не + + + + Uninstall warning + Предупреждение за деинсталиране + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Успешно деинсталиране + + + + All selected plugins were uninstalled successfully + Всички избрани добавки бяха успешно деинсталирани + + + + + New search engine plugin URL + Нов URL за добавки на търсачката + + + + + URL: + URL: + + + + Invalid link + Невалиден адрес + + + + The link doesn't seem to point to a search engine plugin. + Връзката изглежда не води към добавката за търсачката. + + + + Select search plugins + Избери добавки за търсене + + + + qBittorrent search plugin + + + + + + + Search plugin update + Добавката за търсене е обновена + + + + All your plugins are already up to date. + Всички ваши добавки са вече обновени. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Инсталиране на добавка за търсене + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Източник на добавката + + + + Search plugin source: + Търсене на източници на добавки: + + + + Local file + Локален файл + + + + Web link + Web линк + + Preferences @@ -4080,89 +4261,89 @@ Are you sure you want to quit qBittorrent? Добави .!qB разширение към незавършени файлове - + Copy .torrent files to: Копирай .торент файловете в: - + Connections Limits Ограничения на Връзката - + Proxy Server Прокси сървър - + Global Rate Limits Ограничения на Общо Ниво - + Apply rate limit to transport overhead Прилагане на пределна скорост за превишено пренасяне - + Schedule the use of alternative rate limits График на използване на Алтернативни Ограничения - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Включи Откриване на локална връзка за намиране на повече връзки - + Encryption mode: Режим на кодиране: - + Prefer encryption Предпочитано кодиране - + Require encryption Изисква кодиране - + Disable encryption Изключи кодиране - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Повече информация</a>) - + Maximum active downloads: Максимум активни сваляния: - + Maximum active uploads: Максимум активни качвания: - + Maximum active torrents: Максимум активни торенти: @@ -4187,82 +4368,82 @@ Are you sure you want to quit qBittorrent? Показване съдържание на торента и някои опции - + Run external program on torrent completion - + Port used for incoming connections: Порт ползван за входящи връзки: - + Random Приблизително - + Global maximum number of connections: Общ максимален брой на връзки: - + Maximum number of connections per torrent: Максимален брой връзки на торент: - + Maximum number of upload slots per torrent: Максимален брой слотове за качване на торент: - - + + Upload: Качване: - - + + Download: Сваляне: - - - - + + + + KiB/s KiB/с - + Remove folder Премахни папка - + Every day Всеки ден - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Обмени двойки със съвместими Битторент клиенти (µTorrent, Vuze, ...) - + Host: Хост: - + SOCKS4 SOCKS4 - + Type: Вид: @@ -4435,262 +4616,262 @@ Are you sure you want to quit qBittorrent? Автоматично добави торенти от: - + Add folder... Добави папка... - + Copy .torrent files for finished downloads to: Копирай .torrent файловете от приключилите изтегляния в: - + Email notification upon download completion Уведомяване с е-мейл при завършване на свалянето - + Destination email: Е-мейл получател: - + SMTP server: SMTP сървър: - + This server requires a secure connection (SSL) Този сървър изисква защитена връзка (SSL) - + Listening Port Порт за прослушване - + Use UPnP / NAT-PMP port forwarding from my router Ползвай UPnP / NAT-PMP порт прехвърляне от моя рутер - + Use different port on each startup Използвай различен порт при всяко стартиране - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections В противен случай, прокси сървъра се използва само за връзки на тракера - + Use proxy for peer connections Използвайте прокси за взаимно свързване - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering IP филтриране - + Reload the filter Зареди повторно филтъра - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Когато: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Лично - + Enable DHT (decentralized network) to find more peers Включи мрежа DHT (децентрализирана) за намиране на повече връзки - + Enable Peer Exchange (PeX) to find more peers Включи Peer Exchange (PeX) за намиране на повече връзки - + Look for peers on your local network Търси връзки на твоята локална мрежа - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Включи анонимен режим - + Do not count slow torrents in these limits Не изчислявай бавни торенти в тези лимити - + Seed torrents until their ratio reaches Давай торентите докато съотношението се увеличи - + then тогава - + Pause them Сложи ги в пауза - + Remove them Премахни ги - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Ползвай UPnP / NAT-PMP за препращане порта на моя рутер - + Use HTTPS instead of HTTP Ползвай HTTPS вместо HTTP - + Import SSL Certificate Вмъкни SSL Сертификат - + Import SSL Key Вмъкни SSL Ключ - + Certificate: Сертификат: - + Alternative Rate Limits - + Key: Ключ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Информация за сертификати</a> - + Bypass authentication for localhost Заобиколи удостоверяването за локален хост - + Update my dynamic domain name Обнови моето динамично име на домейн - + Service: Услуга: - + Register Регистър - + Domain name: Име на домейн: - + (None) (без) @@ -4700,61 +4881,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Порт: - - - + + + Authentication Удостоверяване - - - - + + + + Username: Име на потребителя: - - - - + + + + Password: Парола: - + Torrent Queueing Серия Торенти - + Share Ratio Limiting Ограничаване Съотношението на Споделяне - + Enable Web User Interface (Remote control) Включи Интерфейс на Web Потребител (Отдалечен контрол) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Филтър път (.dat, .p2p, .p2b): @@ -4960,10 +5141,6 @@ Are you sure you want to quit qBittorrent? Comment: Коментар: - - Torrent content: - Съдържание на Торента: - Select All @@ -5483,28 +5660,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5615,17 +5792,17 @@ No further notices will be issued. RSSImp - + Stream URL: Поток URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5645,74 +5822,69 @@ No further notices will be issued. Нова папка - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Моля изберете ново име за този RSS канал - + New feed name: Име на нов канал: - + Name already in use Името вече се ползва - + This name is already used by another item, please choose another one. Това име се ползва от друг елемент, моля изберете друго. - + Date: Дата: - + Author: Автор: - + Unread Непрочетен - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... - RssParser + Rss::Private::Parser - - Failed to open downloaded RSS file. - - - - - Invalid RSS feed at '%1'. + + Invalid RSS feed. @@ -5739,168 +5911,220 @@ No further notices will be issued. Максимум статии на feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Преглед... + + + + Choose save path + Избери път за съхранение + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Наблюдавана Папка - - Download here - Свали тук + + Save Files to + - - Download path - + Download here + Свали тук SearchCategories - All categories - Всички категории + Всички категории - Movies - Филми + Филми - TV shows - TV шоу + TV шоу - Music - Музика + Музика - Games - Игри + Игри - Anime - Анимация + Анимация - Software - Софтуер + Софтуер - Pictures - Снимки + Снимки - Books - Книги + Книги SearchEngine - - - Search - Търси + Търси - - Please install Python to use the Search Engine. - - - - Empty search pattern - Празен образец за търсене + Празен образец за търсене - Please type a search pattern first - Моля първо въведете образец за търсене + Моля първо въведете образец за търсене - Searching... - Търсене... + Търсене... - Stop - Спиране + Спиране - - Search Engine - Търсачка + Търсачка - - Search has finished - Търсенето завърши + Търсенето завърши - An error occurred during search... - Намерена грешка при търсенето... + Намерена грешка при търсенето... - - Search aborted - Търсенето е прекъснато + Търсенето е прекъснато - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Търсене завършено без резултат + Търсене завършено без резултат - - Stopped - Спрян + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Всички категории + + + + Movies + Филми + + + + TV shows + TV шоу + + + + Music + Музика + + + + Games + Игри + + + + Anime + Анимация + + + + Software + Софтуер + + + + Pictures + Снимки + + + + Books + Книги SearchListDelegate - - + + Unknown Неизвестен @@ -5908,35 +6132,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Име - + Size i.e: file size Размер - + Seeders i.e: Number of full sources Даващи - + Leechers i.e: Number of partial sources Вземащи - + Search engine Програма за търсене + + SearchWidget + + + + + + + Search + Търси + + + + Status: + Състояние: + + + + + Stopped + Спрян + + + + Download + Свали + + + + Go to description page + Отиди в страницата с описанието + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Търсачка + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Празен образец за търсене + + + + Please type a search pattern first + Моля първо въведете образец за търсене + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Търсене... + + + + Stop + Спиране + + + + + Search has finished + Търсенето завърши + + + + + Search aborted + Търсенето е прекъснато + + + + Search returned no results + Търсене завършено без резултат + + + + Search has failed + + + + + An error occurred during search... + Намерена грешка при търсенето... + + ShutdownConfirmDlg @@ -6381,24 +6730,28 @@ No further notices will be issued. TorrentContentModel - + Name Име - + Size Размер - + Progress Изпълнение - + + Download Priority + + + Priority - Предимство + Предимство @@ -6750,38 +7103,38 @@ No further notices will be issued. Внимание (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Продължи торентите - + Pause torrents Пауза на торентите - + Delete torrents Изтрий торентите - - + + All (%1) this is for the tracker filter @@ -7049,17 +7402,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Състояние - + Labels Етикети - + Trackers Тракери @@ -7598,205 +7951,107 @@ No further notices will be issued. engineSelect - Search plugins - Търси добавки + Търси добавки - Installed search engines: - Инсталирани търсачки: + Инсталирани търсачки: - Name - Име + Име - Version - Версия + Версия - Url - Url + Url - - Enabled - Включено + Включено - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Можете да вземете нови добавки за търсачката тук: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Можете да вземете нови добавки за търсачката тук: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Инсталирай нов + Инсталирай нов - Check for updates - Провери за обновяване + Провери за обновяване - Close - Затвори + Затвори - Uninstall - Деинсталирай + Деинсталирай engineSelectDlg - Uninstall warning - Предупреждение за деинсталиране + Предупреждение за деинсталиране - Uninstall success - Успешно деинсталиране + Успешно деинсталиране - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Връзката изглежда не води към добавката за търсачката. + Връзката изглежда не води към добавката за търсачката. - Select search plugins - Избери добавки за търсене + Избери добавки за търсене - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Инсталиране на добавка за търсене + Инсталиране на добавка за търсене - - - Yes - Да + Да - - - - No - Не + Не - - qBittorrent search plugin - - - - - - - Search plugin update - Добавката за търсене е обновена + Добавката за търсене е обновена - - Sorry, update server is temporarily unavailable. - Съжалявам, сървъра за обновяване е временно недостъпен. + Съжалявам, сървъра за обновяване е временно недостъпен. - All your plugins are already up to date. - Всички ваши добавки са вече обновени. + Всички ваши добавки са вече обновени. - All selected plugins were uninstalled successfully - Всички избрани добавки бяха успешно деинсталирани + Всички избрани добавки бяха успешно деинсталирани - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Невалиден адрес + Невалиден адрес - - New search engine plugin URL - Нов URL за добавки на търсачката + Нов URL за добавки на търсачката - - URL: - URL: + URL: @@ -7926,169 +8181,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Изберете Директория за Експорт - - - - + + + + Choose a save directory Изберете директория за съхранение - + Add directory to scan Добави директория за сканиране - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Папката вече се наблюдава. - + Folder does not exist. Папката не съществува. - + Folder is not readable. Папката не се чете. - + Failure Грешка - + Failed to add Scan Folder '%1': %2 Грешка при добавяне Папка за Сканиране '%1': %2 - - + + Filters Филтри - - + + Choose an IP filter file - + SSL Certificate SSL сертификат - + SSL Key SSL ключ - + Parsing error Грешка при вмъкване - + Failed to parse the provided IP filter Неуспешно вмъкване на дадения IP филтър - + Successfully refreshed Успешно обновен - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успешно вмъкване на дадения IP филтър: %1 правила бяха добавени. - + Invalid key Невалиден ключ - + This is not a valid SSL key. Това е невалиден SSL-ключ. - + Invalid certificate Невалиден сертификат - + This is not a valid SSL certificate. Това не е валиден SSL сертификат. - + The start time and the end time can't be the same. Времето на стартиране и приключване не може да бъде едно и също. - + Time Error Грешка във времето @@ -8096,24 +8351,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Източник на добавката + Източник на добавката - Search plugin source: - Търсене на източници на добавки: + Търсене на източници на добавки: - Local file - Локален файл + Локален файл - Web link - Web линк + Web линк @@ -8142,40 +8393,28 @@ Those plugins were disabled. search_engine - - Search - Търси + Търси - Status: - Състояние: + Състояние: - Stopped - Спрян + Спрян - Download - Свали + Свали - Go to description page - Отиди в страницата с описанието + Отиди в страницата с описанието - - Copy description page URL - - - - Search engines... - Търсачки... + Търсачки... diff --git a/src/lang/qbittorrent_ca.ts b/src/lang/qbittorrent_ca.ts index 302107121..04381d2ce 100644 --- a/src/lang/qbittorrent_ca.ts +++ b/src/lang/qbittorrent_ca.ts @@ -175,172 +175,172 @@ No ho baixis - - + + I/O Error Error d'entrada-sortida - + The torrent file does not exist. L'arxiu Torrent no existeix. - + Invalid torrent Torrent invàlid - + Failed to load the torrent: %1 No ha estat possible carregar el Torrent: %1 - - + + Already in download list Ja és a la llista de baixades - + Free disk space: %1 Espai disponible en disc: %1 - + Not Available This comment is unavailable No disponible - + Not Available This date is unavailable No disponible - + Not available No disponible - + Invalid magnet link Enllaç imant invàlid. - + Torrent is already in download list. Trackers were merged. El Torrent ja és a la llista de baixades. Els rastrejadors han estat fusionats. - - + + Cannot add torrent No es pot afegir el Torrent - + Cannot add this torrent. Perhaps it is already in adding state. No s'ha pogut afegir aquest Torrent. Potser està en estat d'addició. - + This magnet link was not recognized Aquest enllaç imant no és reconegut. - + Magnet link is already in download list. Trackers were merged. El Torrent ja és a la llista de baixades. Els rastrejadors han estat fusionats. - + Cannot add this torrent. Perhaps it is already in adding. No s'ha pogut afegir aquest Torrent. Potser ja s'està afegint. - + Magnet link Enllaç imant - + Retrieving metadata... Rebent metadades... - + Not Available This size is unavailable. No disponible - - - + + + Choose save path Seleccioneu camí de desada - + Rename the file Reanomena l'arxiu - + New name: Nou nom: - - + + The file could not be renamed L'arxiu no es pot reanomenar - + This file name contains forbidden characters, please choose a different one. Aquest nom d'arxiu conté caràcters prohibits, escolliu un de diferent. - - + + This name is already in use in this folder. Please use a different name. Aquest nom ja és en ús en aquesta carpeta. Utilitzeu un de diferent. - + The folder could not be renamed La carpeta no pot ser reanomenada - + Rename... Reanomena... - + Priority Prioritat - + Invalid metadata Metadades no vàlides - + Parsing metadata... Analitzant metadades... - + Metadata retrieval complete Recuperació de metadades completada - + Download Error Error de baixada @@ -431,10 +431,6 @@ Resolve peer host names Resol noms d'hostes en xarxa de punt a punt - - Maximum number of half-open connections [0: Disabled] - Capacitat màxima de connexions obertes [0: Desactivat] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Emparella articles basant-se en el filtre d'episodis. - + Example: Exemple: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match emparellarà 2, 5 i 8 a través del 15 i 30 i els propers episodis de la primera temporada - + Episode filter rules: Regles del filtre d'episodis: - + Season number is a mandatory non-zero value El número de temporada ha de ser un valor diferent de zero - + Episode number is a mandatory non-zero value El número d'episodi ha de ser un valor diferent de zero - + Filter must end with semicolon El filtre ha d'acabar en punt i coma - + Three range types for episodes are supported: Són suportats tres tipus de rangs d'episodis: - + Single number: <b>1x25;</b> matches episode 25 of season one Un sol nombre: <b>1x25;<b> emparella l'episodi 25 de la temporada u - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Rang normal: <b>1x25-40;<b> adjunta de l'episodi 25 al 40 de la primera temporada - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Rang infinit: <b>1x25-;</b> adjunta l'episodi 25 i els propers de la primera temporada - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Nova regla - + Please type the name of the new download rule. Escriviu el nom de la nova regla de baixada. - - + + Rule name conflict Conflicte amb el nom de la regla - - + + A rule with this name already exists, please choose another name. Ja existena una regla amb aquest nom, si us plau, trieu un altre nom. - + Are you sure you want to remove the download rule named '%1'? Esteu segur que voleu eliminar la regla de baixada anomenada '%1'? - + Are you sure you want to remove the selected download rules? Segur que voleu eliminar les normes de descàrrega seleccionada? - + Rule deletion confirmation Confirmar eliminar regla - + Destination directory Directori de destinació - + Invalid action Acció no vàlida - + The list is empty, there is nothing to export. La llista està buida, no hi ha res per exportar. - + Where would you like to save the list? On voleu desar la llista? - + Rules list (*.rssrules) Llista de regles (*.rssrules) - + I/O Error Error d'entrada-sortida - + Failed to create the destination file No s'ha pogut crear l'arxiu de destí - + Please point to the RSS download rules file Si us plau, seleccioneu les normes de descàrrega de canals RSS - + Rules list Llista de regles - + Import Error Error al importar - + Failed to import the selected rules file No s'ha pogut importar el fitxer de la regla seleccionada - + Add new rule... Afegir nova regla... - + Delete rule Eliminar regla - + Rename rule... Reanomena regla... - + Delete selected rules Eliminar regles seleccionades - + Rule renaming Regla renombrada - + Please type the new rule name Si us plau, escriviu el nom de la nova regla - + Regex mode: use Perl-like regular expressions Mode Regex: utilitza Perl-like en expressions regulars - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Ús de comodins: es pot usar<ul><li>? perquè coincideixi amb qualsevol caràcter individual</li><li>* per fer coincidir zero o més dels caràcters</li><li> com Espais en blanc i</li></ul> per al operadore AND - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Ús de comodins: es pot usar<ul><li>? perquè coincideixi amb qualsevol caràcter individual</li><li>* per fer coincidir zero o més dels caràcters</li><li> com Espais en blanc i</li></ul> per al operadore OR @@ -952,65 +948,57 @@ %1 ha assolit el ràtio màxim establert. Pausant... - Error: Could not create torrent export directory: '%1' - Error: No s'ha pogut crear el directori d'exportació Torrent: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Error: no s'ha pogut exportar el Torrent '%1', potser encara no te metadades. - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. No s'han pogut descodificar '%1' arxius Torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descàrrega recursiva d'arxiu %1 integrada al Torrent %2 - + Couldn't save '%1.torrent' No s'ha pogut desar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. perquè %1 es troba inhabilitat. - + because %1 is disabled. this peer was blocked because TCP is disabled. perquè %1 es troba inhabilitat. - + URL seed lookup failed for URL: '%1', message: %2 Ha fallat la cerca de llavor per a la URL: %1, missatge: %2 @@ -1027,178 +1015,164 @@ '%1' ha estat eliminat de la llista de transferència. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Baixant '%1', espereu... - Torrent Export: torrent is invalid, skipping... - Exportació del Torrent: el Torrent no és vàlid, ometent... - - - + DHT support [ON] Suport DHT [Encès] - + DHT support [OFF]. Reason: %1 Suport DHT [Apagat]. Raó: %1 - + DHT support [OFF] Suport DHT [Encès] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent està intentant contactar a algun port interfície: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent ha fallat en intentar contactar a algun port interfície: %1. Raó: %2 - - - + The network interface defined is invalid: %1 La interfície de la xarxa definida no és vàlida:%1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent està intentant contactar a l'interfície %1 del port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent no ha trobat una adreça local %1 per a contactar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent ha fallat en intentar contactar a algun port interfície: %1. Raó: %2. {1.?} + - + Tracker '%1' was added to torrent '%2' El rastrejador '%1' ha estat afegit al Torrent '%2' - + Tracker '%1' was deleted from torrent '%2' El rastrejador '%1' ha estat eliminat del Torrent '%2' - + URL seed '%1' was added to torrent '%2' La llavor URL '%1' ha estat afegida al Torrent '%2' - + URL seed '%1' was removed from torrent '%2' La llavor URL '%1' ha estat eliminada del Torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossible reprendre el Torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analitzat satisfactòriament el filtre IP: %1 regles han estat aplicades. - + Error: Failed to parse the provided IP filter. Error: Ha fallat l'anàlisi del filtre IP proporcionat. - + Couldn't add torrent. Reason: %1 No s'ha pogut afegir el Torrent: '%1'. Raó: %2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' reprès. (represa ràpida) - + '%1' added to download list. 'torrent name' was added to download list. '%1' afegit a la llista de baixades. - + An I/O error occurred, '%1' paused. %2 S'ha produït un error d'entrada-sortida, '%1' pausat. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Ha fallat el mapatge del port, missatge: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapatge del port reeixit, missatge: %1 - + due to IP filter. this peer was blocked due to ip filter. degut al filtre IP. - + due to port filter. this peer was blocked due to port filter. degut al filtre de ports. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. degut a restriccions mixtes i2p. - + because it has a low port. this peer was blocked because it has a low port. perquè te un port baix. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent està contactant satisfactòriament en la interfície %1 del port: %2%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent ha fallat intentant contactar en la interfície %1 port: %2%3. Raó: %4. {1 ?} {2/%3.?} + - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent ha fallat intentant contactar en la interfície %1 port: %2%3. Raó: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP externa: %1 @@ -1212,12 +1186,12 @@ No s'ha pogut moure el Torrent: '%1'. Raó: %2 - + File sizes mismatch for torrent '%1', pausing it. La mida de l'arxiu no coincideix amb el Torrent '%1', pausat-lo. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... S'han negat les dades per a la represa ràpida del Torrent '%1'. Raó: %2. Comprovant de nou... @@ -1242,7 +1216,7 @@ Valor - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Les claus comunes per a les galetes són: '%1', '%2'. @@ -1310,12 +1284,12 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< FeedListWidget - + RSS feeds Canals RSS - + Unread No llegits @@ -1412,10 +1386,6 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< Only one link per line Només un enllaç per línia - - Download local torrent - Baixa Torrent local - Download @@ -1602,7 +1572,17 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Baixat @@ -1973,10 +1953,6 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< &About &Quant a - - Exit - Surt - &Pause @@ -2007,22 +1983,6 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< E&xit T&anca - - Options - Opcions - - - Resume - Reprèn - - - Pause - Pausa - - - Delete - Elimina - Open URL @@ -2040,19 +2000,15 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< - + Show Mostrar - + Check for program updates Cerca actualitzacions del programa - - Lock qBittorrent - Bloca qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< - + Execution Log Execució Log - + Clear the password Neteja la contrasenya - + Filter torrent list... Filtra la llista de Torrents... - + &Set Password &Estableix contrasenya - + &Clear Password &Esborra contrasenya - + Transfers Transferint - + Torrent file association Associació d'arxius Torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent no és l'aplicació per defecte per obrir arxius torrent o enllaços imant. ¿Voleu que qBittorrent sigui el programa per defecte per gestionar aquests arxius? - + Icons Only Només icones - + Text Only Només text - + Text Alongside Icons Text al costat de les icones - + Text Under Icons Text sota les icones - + Follow System Style Seguir l'estil del sistema - - - + + + UI lock password Contrasenya de bloqueig - - - + + + Please type the UI lock password: Escriviu la contrasenya de bloqueig: - + The password should contain at least 3 characters Com a mínim la contrasenya ha de tenir 3 caràcters - + Password update Actualització de contrasenya - + The UI lock password has been successfully updated La contrasenya de bloqueig de qBittorrent s'ha actualitzat correctament - + Are you sure you want to clear the password? Esteu segurs que voleu netejar la contrasenya? - + Search Cerca - + Transfers (%1) Transferències (%1) - + Error Error - + Failed to add torrent: %1 No ha estat possible afegir el Torrent: %1 - + Download completion Descàrrega completada - + I/O Error i.e: Input/Output Error Error d'entrada-sortida - + Recursive download confirmation Confirmació descàrregues recursives - + Yes - + No No - + Never Mai - + Global Upload Speed Limit Velocitat límit global de pujada - + Global Download Speed Limit Velocitat límit global de descàrrega - + &No &No - + &Yes &Sí - + &Always Yes &Sempre sí - + Python found in %1 Python trobat en %1 - + Old Python Interpreter Intèrpret de Python antic - + qBittorrent Update Available Actualització de qBittorrent disponible - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Ja feu servir la darrera versió de qBittorrent - + Undetermined Python version Versió de Python no determinada - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' ha acabat de descarregar-se. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Raó: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Aquest torrent '%1' conté arxius Torrent, vol seguir endavant amb la seva descàrrega? - + Couldn't download file at URL '%1', reason: %2. No s'ha pogut baixar l'arxiu en la URL '%1', raó: %2 - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. La versió de Python %1 no està actualitzada. Actualitzeu a la darrera versió per a que funcionin els motors de cerca. Mínim requerit: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. No s'ha pogut determinar la vostra versió de Python (%1). Motor de cerca inhabilitat. - - + + Missing Python Interpreter Falta intèrpret Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Es requereix Python per a fer servir el motor de cerca i sembla que no el teniu instal·lat. Voleu instal·lar-lo ara? - + Python is required to use the search engine but it does not seem to be installed. Es requereix Python per a fer servir el motor de cerca i sembla que no el teniu instal·lat. - A new version is available. Update to version %1? - Hi ha una nova versió disponible. + Hi ha una nova versió disponible. Voleu actualitzar a la versió %1? - + No updates available. You are already using the latest version. No hi ha actualitzacions disponibles. Esteu fent servir la darrera versió. - + &Check for Updates &Cerca actualitzacions - + Checking for Updates... Cercant actualitzacions... - + Already checking for program updates in the background Ja s'estan cercant actualitzacions en segon terme - + Python found in '%1' Python ha trobat en %1 - + Download error Error de baixada - + Python setup could not be downloaded, reason: %1. Please install it manually. No ha estat possible baixar l'instal·lador de Python, raó: 51. Instal·leu-lo manualment. - - + + Invalid password Contrasenya no vàlida - - + + RSS (%1) RSS (%1) - + URL download error error al baixar l'URL - + The password is invalid La contrasenya no és vàlida - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Velocitat de baixada: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Velocitat de pujada: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [B: %1, P: %2] qBittorrent %3 - + Hide Amaga - + Exiting qBittorrent Tancant qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Alguns arxius encara s'estan transferint. Esteu segur que voleu tancar qBittorrent? - + Open Torrent Files Obre arxius Torrent - + Torrent Files Arxius Torrent - + Options were saved successfully. Opcions desades correctament. @@ -2443,17 +2404,17 @@ Esteu segur que voleu tancar qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. El vostre DNS dinàmic ha estat correctament actualitzat. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Error de DNS dinàmica: El servei no està disponible temporalment, nou reintent en 30 minuts. - + Dynamic DNS error: hostname supplied does not exist under specified account. Error de DNS dinàmica: el nom d'amfitrió proporcionat no existeix en el compte especificat. @@ -2463,32 +2424,32 @@ Esteu segur que voleu tancar qBittorrent? Error DNS dinàmica: nom d'usuari/contrasenya no vàlides. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Error de DNS dinàmica: qBittorrent ha estat inclòs en la Llista Negra, si us plau, informar d'això a http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Error de DNS dinàmica: %1 ha estat rebutjat pel servei, si us plau, informe d'aquest error a http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Error de DNS dinàmica: El seu nom d'usuari ha estat blocat degut a un abús. - + Dynamic DNS error: supplied domain name is invalid. Error de DNS dinàmica: el nom d'usuari subministrat és massa curt. - + Dynamic DNS error: supplied username is too short. Error de DNS dinàmica: el nom d'usuari proporcionat és massa curt. - + Dynamic DNS error: supplied password is too short. Error de DNS dinàmica: el nom d'usuari subministrat és massa curt. @@ -2515,154 +2476,161 @@ Esteu segur que voleu tancar qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Base de dades GeoIP carregada. Tipus: %1. Temps de compilació: %2. - + Couldn't load GeoIP database. Reason: %1 No s'ha pogut carregar la base de dades GeoIP. Raó: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A No disponible - Asia/Pacific Region - Regió Àsia-Pacífic + Regió Àsia-Pacífic + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emirats Àrabs Units - + Afghanistan Afganistan - + Antigua and Barbuda Antigua i Barbuda - + Anguilla Anguilla - + Albania Albània - + Armenia Armènia - Netherlands Antilles - Antilles Neerlandeses + Antilles Neerlandeses - + Angola Angola - + Antarctica Antàrtica - + Argentina Argentina - + American Samoa Samoa Nord-americana - + Austria Àustria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaidjan - + Bosnia and Herzegovina Bòsnia i Hercegovina - + Barbados Barbados - + Bangladesh Bangladeix - + Belgium Bèlgica - + Burkina Faso Burkina Faso - + Bulgaria Bulgària - + Bahrain Bahrain - + Burundi Burundi - + Benin Benín @@ -2677,1137 +2645,1187 @@ Esteu segur que voleu tancar qBittorrent? Brunei - Bolivia - Bolívia + Bolívia - + Brazil Brasil - + Bahamas Bahames - + Bhutan Bhutan - + Bouvet Island Bouvet - + Botswana Botswana - + Belarus Bielorússia - + Belize Belize - + Canada Canadà - + Cocos (Keeling) Islands Illes Cocos (Keeling) - + Congo, The Democratic Republic of the Congo, República Democràtica del - + Central African Republic República Centreafricana - + Congo Congo - + Switzerland Suïssa - Cote D'Ivoire - Costa d'Ivori + Costa d'Ivori - + Cook Islands Illes Cook - + Chile Xile - + Cameroon Camerun - + China Xina - + Colombia Colòmbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cap Verd - + + Curacao + + + + Christmas Island Illa Christmas - + Cyprus Xipre - + Czech Republic República Txeca - + Germany Alemanya - + Djibouti Djibouti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Algèria - + Ecuador Equador - + Estonia Estònia - + Egypt Egipte - + Western Sahara Sahara Occidental - + Eritrea Eritrea - + Spain Espanya - + Ethiopia Etiòpia - + Finland Finlàndia - + Fiji Fiji - + Falkland Islands (Malvinas) Illes Malvines (Falkland) - + Micronesia, Federated States of Micronèsia - + Faroe Islands Illes Fèroe - + France França - France, Metropolitan - França metropolitana + França metropolitana - + Gabon Gabon - + United Kingdom Regne Unit - + Grenada Grenada - + Georgia Geòrgia - + French Guiana Guaiana Francesa - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlàndia - + Gambia Gàmbia - + Guinea Guinea - + Guadeloupe Guadalupe (França) - + Equatorial Guinea Guinea Equatorial - + Greece Grècia - + South Georgia and the South Sandwich Islands Illes Geòrgia del Sud i Sandwich del Sud - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Illes Heard i McDonald - + Honduras Hondures - + Croatia Croàcia - + Haiti Haití - + Hungary Hongria - + Indonesia Indonèsia - + Ireland Irlanda - + Israel Israel - + India Índia - + British Indian Ocean Territory Territori Britànic de l'Oceà Índic - + Iraq Irak - + Iran, Islamic Republic of Iran - + Iceland Islàndia - + Italy Itàlia - + Jamaica Jamaica - + Jordan Jordània - + Japan Japó - + Kenya Kènia - + Kyrgyzstan Kirguizistan - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comores - + Saint Kitts and Nevis Saint Christopher i Nevis - + Korea, Democratic People's Republic of Corea del Nord - + Korea, Republic of Corea del Sud - + Kuwait Kuwait - + Cayman Islands Illes Caiman - + Kazakhstan Kazakhstan - + Lao People's Democratic Republic Laos - + Lebanon Líban - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libèria - + Lesotho Lesotho - + Lithuania Lituània - + Luxembourg Luxemburg - + Latvia Letònia - Libyan Arab Jamahiriya - Líbia + Líbia - + Morocco Marroc - + Monaco Mònaco - + Moldova, Republic of Moldàvia - + Madagascar Madagascar - + Marshall Islands Illes Marshall - Macedonia - Macedònia + Macedònia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongòlia - Macau - Macau + Macau - + Northern Mariana Islands Illes Mariannes Septentrionals - + Martinique Martinica - + Mauritania Mauritània - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurici - + Maldives Maldives - + Malawi Malawi - + Mexico Mèxic - + Malaysia Malàsia - + Mozambique Moçambic - + Namibia Namíbia - + New Caledonia Nova Caledònia - + Niger Níger - + Norfolk Island Illa Norfolk - + Nigeria Nigèria - + Nicaragua Nicaragua - + Netherlands Països Baixos - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nova Zelanda - + Oman Oman - + Panama Panamà - + Peru Perú - + French Polynesia Polinèsia Francesa - + Papua New Guinea Papua Nova Guinea - + Philippines Filipines - + Pakistan Pakistan - + Poland Polònia - + Saint Pierre and Miquelon Saint-Pierre i Miquelon - Pitcairn Islands - Illes Pitcairn + Illes Pitcairn - + Puerto Rico Puerto Rico - Palestinian Territory - Palestina + Palestina - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunió - + Romania Romania - + Russian Federation Federació Russa - + Rwanda Rwanda - + Saudi Arabia Aràbia Saudí - + Solomon Islands Illes Solomon - + Seychelles Seychelles - + Sudan Sudan - + Sweden Suècia - + Singapore Singapur - Saint Helena - Santa Helena + Santa Helena - + Slovenia Eslovènia - + Svalbard and Jan Mayen Svalbard i Jan mayen - + Slovakia Eslovàquia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somàlia - + Suriname Surinam - + Sao Tome and Principe São Tomé i Príncipe - + El Salvador El Salvador - + Syrian Arab Republic República Àrab Siriana - + Swaziland Swazilàndia - + Turks and Caicos Islands Illes Turks i Caicos - + Chad Txad - + French Southern Territories Terres Australs i Antàrtiques Franceses - + Togo Togo - + Thailand Tailàndia - + Tajikistan Tadjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tuníssia - + Tonga Tonga - + Timor-Leste Timor Oriental - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turquia - + Trinidad and Tobago Trinitat i Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzània - + Ukraine Ucraïna - + Uganda Uganda - + United States Minor Outlying Islands Illes Perifèriques Menors dels EUA - + United States Estats Units - + Uruguay Uruguai - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Ciutat del Vaticà - + Saint Vincent and the Grenadines Saint Vincent i les Grenadines - Venezuela - Veneçuela + Veneçuela - + Virgin Islands, British Illes Verges Britàniques - + Virgin Islands, U.S. Illes Verges Nord-americanes - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis i Futuna - + Samoa Samoa - + Yemen Iemen - + Mayotte Mayotte - + Serbia Sèrbia - + South Africa Sud Àfrica - + Zambia Zàmbia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Servidor intermediari anònim + Servidor intermediari anònim - Satellite Provider - Proveïdor satèl·lit + Proveïdor satèl·lit - Other - Altres + Altres - + Aland Islands Illes Åland - + Guernsey Guernsey - + Isle of Man Illa de Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - Sant Martí + Sant Martí - + Could not uncompress GeoIP database file. No ha estat possible descomprimir l'arxiu de base de dades GeoIP. - + Couldn't save downloaded GeoIP database file. No ha estat possible desar l'arxiu de base de dades GeoIP baixat. - + Successfully updated GeoIP database. Base de dades GeoIP actualitzada correctament. - + Couldn't download GeoIP database file. Reason: %1 No s'ha pogut baixar la base de dades GeoIP. Raó: %1 @@ -3838,72 +3856,72 @@ Esteu segur que voleu tancar qBittorrent? interested(local) and choked(peer) - interessats (local) i muts (parells) + interested(local) and unchoked(peer) - interessats (local) i no muts (parells) + interested(peer) and choked(local) - interessats (parells) i muts (local) + interested(peer) and unchoked(local) - interessats (parells) i no muts (local) + optimistic unchoke - unchoke optimista + peer snubbed - parell desairat + incoming connection - connexió entrant + not interested(local) and unchoked(peer) - no interessats (local) i no muts (parells) + not interested(peer) and unchoked(local) - no interessats (parells) i no muts (local) + peer from PEX - parell de PEX + peer from DHT - parell de DHT + encrypted traffic - trànsit encriptat + encrypted handshake - salutació encriptada + peer from LSD - parell de LSD + @@ -3971,123 +3989,73 @@ Esteu segur que voleu tancar qBittorrent? Relevancia - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Afegir nou Parell... - + Copy selected Copia seleccionats - - + + Ban peer permanently Prohibició permanent de Parells - + Manually adding peer '%1'... Afegint manualment el parell '%1'... - + The peer '%1' could not be added to this torrent. No s'ha pogut afegir el parell '%1' a aquest Torrent. - + Manually banning peer '%1'... Bandejant manualment el parell '%1'... - - + + Peer addition Incorporar Parell - + Some peers could not be added. Check the Log for details. No s'han pogut afegir alguns parells. Reviseu el registre per a més detalls. - + The peers were added to this torrent. Els parells ha estat afegits al Torrent. - + Are you sure you want to ban permanently the selected peers? Esteu segur que voleu bandejar permanentment els parells seleccionats? - + &Yes &Sí - + &No &No - - interested(local) and choked(peer) - interessats (local) i muts (parells) - - - interested(local) and unchoked(peer) - interessats (local) i no muts (parells) - - - interested(peer) and choked(local) - interessats (parells) i muts (local) - - - interested(peer) and unchoked(local) - interessats (parells) i no muts (local) - - - optimistic unchoke - unchoke optimista - - - peer snubbed - parell desairat - - - incoming connection - connexió entrant - - - not interested(local) and unchoked(peer) - no interessats (local) i no muts (parells) - - - not interested(peer) and unchoked(local) - no interessats (parells) i no muts (local) - - - peer from PEX - parell de PEX - - - peer from DHT - parell de DHT - - - encrypted traffic - trànsit encriptat - - - encrypted handshake - salutació encriptada - - - peer from LSD - parell de LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Esteu segur que voleu tancar qBittorrent? + + PluginSelectDlg + + + Search plugins + Cerca plugins + + + + Installed search plugins: + + + + + Name + Nom + + + + Version + Versió + + + + Url + Url + + + + + Enabled + Habilitat + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pots obtenir nous plugins de motors de cerca aquí <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instal-lar-ne un de nou + + + + Check for updates + Cerca actualitzacions + + + + Close + Tancar + + + + Uninstall + Desinstal-lar + + + + + + Yes + + + + + + + + No + No + + + + Uninstall warning + Alerta de desinstal-lació + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Alguns connectors no s'han pogut instal·lar perquè ja són inclosos al qBittorrent. Només els que has afegit tu mateix poden ser desinstal·lats. +De totes maneres, aquests connectors han estat inhabilitats. + + + + Uninstall success + Desinstal-lació correcta + + + + All selected plugins were uninstalled successfully + Tots els plugins seleccionats van ser instal-lats reeixidament + + + + + New search engine plugin URL + URL del nou plugin de motor de cerca + + + + + URL: + URL: + + + + Invalid link + Enllaç invàlid + + + + The link doesn't seem to point to a search engine plugin. + L'enllaç no sembla portar a un connector de motor de cerca. + + + + Select search plugins + Seleccioni els plugins de recerca + + + + qBittorrent search plugin + Connector de cerca qBittorrent + + + + + + Search plugin update + Actualització del plugin de recerca + + + + All your plugins are already up to date. + Tots els teus plugins ja estan actualitzats. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instal-lar plugin de recerca + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Font del plugin + + + + Search plugin source: + Font del plugin de recerca: + + + + Local file + Arxiu local + + + + Web link + Vincle web + + Preferences @@ -4181,89 +4346,89 @@ Esteu segur que voleu tancar qBittorrent? Afegeix .!qB com extensió per als fitxers incomplets - + Copy .torrent files to: Copia arxius .torrent a: - + Connections Limits Límits de connexió - + Proxy Server Servidor Proxy - + Global Rate Limits Límits globals de Ràtio - + Apply rate limit to transport overhead Aplicar límit de ràtio per transport sobrecarregat - + Schedule the use of alternative rate limits Programar l'ús de límits de ràtio alternativa - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Habilitar Trobat Local de Pares per trobar més parells - + Encryption mode: Mode de xifrat: - + Prefer encryption Preferència de xifrat - + Require encryption Necessiten xifrat - + Disable encryption Deshabilitar xifrat - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Més informació</a>) - + Maximum active downloads: Màxim d'arxius Baixant: - + Maximum active uploads: Màxim d'arxius Pujant: - + Maximum active torrents: Màxim d'arxius Torrents: @@ -4288,82 +4453,82 @@ Esteu segur que voleu tancar qBittorrent? Mostrar el contingut del Torrent i opcions - + Run external program on torrent completion Executar un programa extern en acabar el torrent - + Port used for incoming connections: Port utilitzat per a connexions entrants: - + Random Aleatori - + Global maximum number of connections: Nombre global màxim de connexions: - + Maximum number of connections per torrent: Nombre màxim de connexions per Torrent: - + Maximum number of upload slots per torrent: Nombre màxim de ranures de pujada per Torrent: - - + + Upload: Pujada: - - + + Download: Baixada: - - - - + + + + KiB/s KiB/s - + Remove folder Esborrar carpeta - + Every day Tots - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Intercanviar parells amb clients Bittorrent compatibles (μTorrent, Vuze,...) - + Host: Hoste: - + SOCKS4 SOCKS4 - + Type: Tipus: @@ -4536,262 +4701,262 @@ Esteu segur que voleu tancar qBittorrent? Carregar automàticament arxius Torrents des de: - + Add folder... Afegeix carpeta... - + Copy .torrent files for finished downloads to: Copia arxius .torrent de les baixades finalitzades a: - + Email notification upon download completion Avisa'm per correu electrònic de la finalització de les descàrregues - + Destination email: Adreça de correu electrònic: - + SMTP server: Servidor SMTP: - + This server requires a secure connection (SSL) El servidor requereix una connexió segura (SSL) - + Listening Port Port de contacte - + Use UPnP / NAT-PMP port forwarding from my router Utilitza UPnP / NAT-PMP reenviament de ports del router - + Use different port on each startup Fes servir ports diferents a cada inici - + Global maximum number of upload slots: Nombre global màxim de solcs de pujada: - + Otherwise, the proxy server is only used for tracker connections Per contra, el servidor proxy s'utilitzarà només per les connexions tracker - + Use proxy for peer connections Utilitza proxy per a les connexions entre parells - + Disable connections not supported by proxies Desactiva connexions no suportades per servidors intermediaris - + Use proxy only for torrents Utilitza servidor intermediari només per als Torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Les fonts RSS, motors de cerca, actualitzacions del programa o altres coses que no siguin transferències Torrent i operacions relacionades (com intercanvis de parells) faran servir una connexió directa - + Info: The password is saved unencrypted Info: La contrasenya desada no és encriptada - + IP Filtering filtrat IP - + Reload the filter Actualització del filtre - + Apply to trackers Aplica als rastrejadors - + Apply rate limit to peers on LAN Aplica taxa límit als parells en LAN - + When: Quan: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Privacitat - + Enable DHT (decentralized network) to find more peers Activar DHT (xarxa descentralitzada) per trobar més parells - + Enable Peer Exchange (PeX) to find more peers Habilitar intercanvi de parells (PEX) per trobar més parells - + Look for peers on your local network Podeu cercar parells a la teva xarxa local - + Enable when using a proxy or a VPN connection Habilita quan utilitzi un servidor intermediari o una connexió VPN - + Enable anonymous mode Activar manera anònima - + Do not count slow torrents in these limits No comptar amb Torrents lents fora d'aquests límits - + Seed torrents until their ratio reaches Ratio compartició de llavors Torrent - + then després - + Pause them Pausar - + Remove them Esborrar - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Utilitza UPnP / NAT-PMP per transmetre al port del meu router - + Use HTTPS instead of HTTP Utilitza HTTPS en lloc de HTTP - + Import SSL Certificate Importació de certificats SSL - + Import SSL Key Importar clau SSL - + Certificate: Certificat: - + Alternative Rate Limits - + Key: Clau: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informació sobre els certificats</a> - + Bypass authentication for localhost Eludir la autenticació per localhost - + Update my dynamic domain name Actualitzar el meu nom de domini dinàmic - + Service: Servei: - + Register Registre - + Domain name: Nom de domini: - + (None) (Cap) @@ -4801,61 +4966,61 @@ Esteu segur que voleu tancar qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Autentificació - - - - + + + + Username: Nom d'Usuari: - - - - + + + + Password: Contrasenya: - + Torrent Queueing Torrents en cua - + Share Ratio Limiting Límit de Ràtio de Compartició - + Enable Web User Interface (Remote control) Habilitar interfície Web d'usuari (Control remot) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Ruta de Filtre (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Esteu segur que voleu tancar qBittorrent? Comment: Comentari: - - Torrent content: - Contingut del Torrent: - Select All @@ -5587,28 +5748,28 @@ No es mostraran més avisos. Error desconegut - - + + Upgrade Actualitza - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Heu actualitzat des d'una versió antiga que desava les coses de manera diferent. Heu de migrar al nou sistema de desada i no podreu tornar a fer servir una versió més antiga de 3.3.0. Voleu continuar? - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Heu actualitzat des d'una versió antiga que desava les coses de manera diferent. Heu de migrar al nou sistema de desada. Si continueu, no podreu tornar a fer servir una versió més antiga de la 3.3.0. - + Couldn't migrate torrent with hash: %1 No s'ha pogut migrar el Torrent amb la funció resum (hash): %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 No s'ha pogut migrar el torrent. Nom del fitxer de represa ràpida invàlid: %1 @@ -5719,17 +5880,17 @@ No es mostraran més avisos. RSSImp - + Stream URL: URL del Canal: - + Please type a RSS stream URL Escriviu una URL d'un canal RSS - + This RSS feed is already in the list. Aquesta font RSS ja és a la llista. @@ -5749,75 +5910,92 @@ No es mostraran més avisos. Nova carpeta - + Deletion confirmation Confirmació de supressió - + Are you sure you want to delete the selected RSS feeds? Esteu segurs que voleu eliminar les fonts RSS seleccionades? - + Please choose a new name for this RSS feed Si us plau, elegeixi un nou nom per al Canal RSS - + New feed name: Nom del nou Canal: - + Name already in use Aquest nom ja es troba en ús - + This name is already used by another item, please choose another one. Aquest nom ja s'està usant, si us plau, elegeixi un altre. - + Date: Data: - + Author: Autor: - + Unread No llegits - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - La baixada automàtica de '%1' de la font 'RSS' %2 ha fallat perquè no conté un Torrent o enllaç imant... + La baixada automàtica de '%1' de la font 'RSS' %2 ha fallat perquè no conté un Torrent o enllaç imant... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Baixant automàticament '%1' Torrent de '%2' fonts RSS... + Baixant automàticament '%1' Torrent de '%2' fonts RSS... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + La baixada automàtica de '%1' de la font 'RSS' %2 ha fallat perquè no conté un Torrent o enllaç imant... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Baixant automàticament '%1' Torrent de '%2' fonts RSS... RssParser - Failed to open downloaded RSS file. - No s'ha pogut obrir l'arxiu RSS baixat. + No s'ha pogut obrir l'arxiu RSS baixat. - Invalid RSS feed at '%1'. - Proveïdor d'RSS invàlid en '%1'. + Proveïdor d'RSS invàlid en '%1'. @@ -5843,168 +6021,245 @@ No es mostraran més avisos. Nombre màxim d'articles per Canal: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Explora... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Cerca fitxers .torrents - - Download here - Descarregar Torrent aquí + + Save Files to + - - Download path - + Download here + Descarregar Torrent aquí SearchCategories - All categories - Totes les categories + Totes les categories - Movies - Vídeos + Vídeos - TV shows - Programes TV + Programes TV - Music - Música + Música - Games - Jocs + Jocs - Anime - Anime + Anime - Software - Programes + Programes - Pictures - Imatges + Imatges - Books - Llibres + Llibres SearchEngine - - - Search - Cerca + Cerca - Please install Python to use the Search Engine. - Instal·leu Python per a fer servir el motor de cerca. + Instal·leu Python per a fer servir el motor de cerca. - Empty search pattern - Patró de recerca buit + Patró de recerca buit - Please type a search pattern first - Si us plau escrigui un patró de recerca primer + Si us plau escrigui un patró de recerca primer - Searching... - Buscant... + Buscant... - Stop - Atura + Atura - - Search Engine - Motor de cerca + Motor de cerca - - Search has finished - Recerca acabada + Recerca acabada - An error occurred during search... - Va ocórrer un error durant la recerca... + Va ocórrer un error durant la recerca... - - Search aborted - Recerca avortada + Recerca avortada - All enabled - Tot habilitat + Tot habilitat - All engines - Tots els motors + Tots els motors - - Multiple... - Múltiple... + Múltiple... - - Results <i>(%1)</i>: i.e: Search results - Resulats <i>(%1)</i>: + Resulats <i>(%1)</i>: - Search returned no results - La recerca no va tornar resultats + La recerca no va tornar resultats - Stopped - Detinguts + Detinguts + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Totes les categories + + + + Movies + Vídeos + + + + TV shows + Programes TV + + + + Music + Música + + + + Games + Jocs + + + + Anime + Anime + + + + Software + Programes + + + + Pictures + Imatges + + + + Books + Llibres SearchListDelegate - - + + Unknown Desconegut @@ -6012,35 +6267,160 @@ No es mostraran més avisos. SearchTab - + Name i.e: file name Nom - + Size i.e: file size Mida - + Seeders i.e: Number of full sources Llavors - + Leechers i.e: Number of partial sources Leechers - + Search engine Motor de cerca + + SearchWidget + + + + + + + Search + Cerca + + + + Status: + Estat: + + + + + Stopped + + + + + Download + + + + + Go to description page + Pàgina de descripció + + + + Copy description page URL + Copia la pàgina URL de descripció + + + + Search plugins... + + + + + All enabled + Tot habilitat + + + + All plugins + + + + + + Multiple... + Múltiple... + + + + + + Search Engine + Motor de cerca + + + + Please install Python to use the Search Engine. + Instal·leu Python per a fer servir el motor de cerca. + + + + Empty search pattern + Patró de recerca buit + + + + Please type a search pattern first + Si us plau escrigui un patró de recerca primer + + + + + Results <i>(%1)</i>: + i.e: Search results + Resulats <i>(%1)</i>: + + + + Searching... + Buscant... + + + + Stop + Atura + + + + + Search has finished + Recerca acabada + + + + + Search aborted + Recerca avortada + + + + Search returned no results + La recerca no va tornar resultats + + + + Search has failed + + + + + An error occurred during search... + Va ocórrer un error durant la recerca... + + ShutdownConfirmDlg @@ -6485,24 +6865,28 @@ No es mostraran més avisos. TorrentContentModel - + Name Nom - + Size Mida - + Progress Progrés - + + Download Priority + + + Priority - Prioritat + Prioritat @@ -6854,38 +7238,38 @@ No es mostraran més avisos. Advertència (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. No s'ha pogut descodificar la icona del web de la URL '%1'. Proveu a baixar la icona de web en format PNG. - + Couldn't decode favicon for URL '%1'. No s'ha pogut descodificar la icona del web de la URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 No s'ha pogut baixar la icona del web de la URL '%1'. Raó: '%2' - + Resume torrents Reprèn Torrents - + Pause torrents Pausa Torrents - + Delete torrents Elimina Torrents - - + + All (%1) this is for the tracker filter Tots (%1) @@ -7153,17 +7537,17 @@ No es mostraran més avisos. TransferListFiltersWidget - + Status Estat - + Labels Etiquetes - + Trackers Rastrejadors @@ -7702,206 +8086,147 @@ No es mostraran més avisos. engineSelect - Search plugins - Cerca plugins + Cerca plugins - Installed search engines: - Motors de cerca instal-lats: + Motors de cerca instal-lats: - Name - Nom + Nom - Version - Versió + Versió - Url - Url + Url - - Enabled - Habilitat + Habilitat - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pots obtenir nous plugins de motors de cerca aquí <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pots obtenir nous plugins de motors de cerca aquí <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instal-lar-ne un de nou + Instal-lar-ne un de nou - Check for updates - Cerca actualitzacions + Cerca actualitzacions - Close - Tancar + Tancar - Uninstall - Desinstal-lar + Desinstal-lar engineSelectDlg - Uninstall warning - Alerta de desinstal-lació + Alerta de desinstal-lació - Uninstall success - Desinstal-lació correcta + Desinstal-lació correcta - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Una versió més recent del connector de motor de cerca '%1' ja està instal·lada. + Una versió més recent del connector de motor de cerca '%1' ja està instal·lada. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - El connector de motor de cerca '%1' no s'ha pogut actualitzar, es mantindrà la versió antiga. + El connector de motor de cerca '%1' no s'ha pogut actualitzar, es mantindrà la versió antiga. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - El connector de motor de cerca '%1' no ha pogut ser instal·lat. + El connector de motor de cerca '%1' no ha pogut ser instal·lat. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - El connector de motor de cerca '%1' ha estat actualitzat reeixidament. + El connector de motor de cerca '%1' ha estat actualitzat reeixidament. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - El connector de motor de cerca '%1' ha estat instal·lat reeixidament. + El connector de motor de cerca '%1' ha estat instal·lat reeixidament. - The link doesn't seem to point to a search engine plugin. - L'enllaç no sembla portar a un connector de motor de cerca. + L'enllaç no sembla portar a un connector de motor de cerca. - Select search plugins - Seleccioni els plugins de recerca + Seleccioni els plugins de recerca - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - La instal·lació del connector de cerca '%1' ha fallat. + La instal·lació del connector de cerca '%1' ha fallat. - - - - - Search plugin install - Instal-lar plugin de recerca + Instal-lar plugin de recerca - - - Yes - + - - - - No - No + No - qBittorrent search plugin - Connector de cerca qBittorrent + Connector de cerca qBittorrent - - - - Search plugin update - Actualització del plugin de recerca + Actualització del plugin de recerca - - Sorry, update server is temporarily unavailable. - Ho sento, el servidor d'actualització aquesta temporalment no disponible. + Ho sento, el servidor d'actualització aquesta temporalment no disponible. - All your plugins are already up to date. - Tots els teus plugins ja estan actualitzats. + Tots els teus plugins ja estan actualitzats. - All selected plugins were uninstalled successfully - Tots els plugins seleccionats van ser instal-lats reeixidament + Tots els plugins seleccionats van ser instal-lats reeixidament - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alguns connectors no s'han pogut instal·lar perquè ja són inclosos al qBittorrent. Només els que has afegit tu mateix poden ser desinstal·lats. + Alguns connectors no s'han pogut instal·lar perquè ja són inclosos al qBittorrent. Només els que has afegit tu mateix poden ser desinstal·lats. De totes maneres, aquests connectors han estat inhabilitats. - Invalid link - Enllaç invàlid + Enllaç invàlid - - New search engine plugin URL - URL del nou plugin de motor de cerca + URL del nou plugin de motor de cerca - - URL: - URL: + URL: @@ -8031,169 +8356,169 @@ De totes maneres, aquests connectors han estat inhabilitats. options_imp - - + + Choose export directory Seleccioni directori d'exportació - - - - + + + + Choose a save directory Seleccioneu un directori per a desar - + Add directory to scan Afegir directori per escanejar - + Supported parameters (case sensitive): Paràmetres suportats - + %N: Torrent name %N: Nom del Torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Camí de desada - + %C: Number of files %C: Nombre de files - + %Z: Torrent size (bytes) %Z Mida del Torrent (bytes) - + %T: Current tracker %T: Rastrejador actual - + %I: Info hash %I: Informació de la funció resum (hash) - + Folder is already being watched. Aquesta carpeta ja està seleccionada per escanejar. - + Folder does not exist. La carpeta no existeix. - + Folder is not readable. La carpeta no és llegible. - + Failure Error - + Failed to add Scan Folder '%1': %2 No es pot escanejar aquesta carpetes '%1':%2 - - + + Filters Filtres - - + + Choose an IP filter file Seleccioneu un arxiu de filtre de IP - + SSL Certificate Certificat SSL - + SSL Key Clau SSL - + Parsing error Error d'anàlisi - + Failed to parse the provided IP filter No s'ha pogut analitzar el filtratge IP - + Successfully refreshed Actualitzat amb èxit - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analitzat satisfactòriament el filtre IP: %1 regla ha estat aplicada. - + Invalid key Clau no vàlida - + This is not a valid SSL key. Aquesta no és una clau SSL vàlida. - + Invalid certificate Certificat no vàlid - + This is not a valid SSL certificate. Aquest no és un Certificat SSL vàlid. - + The start time and the end time can't be the same. Els temps d'inici i d'acabament no poden ser els mateixos. - + Time Error Error de temps @@ -8201,24 +8526,20 @@ De totes maneres, aquests connectors han estat inhabilitats. pluginSourceDlg - Plugin source - Font del plugin + Font del plugin - Search plugin source: - Font del plugin de recerca: + Font del plugin de recerca: - Local file - Arxiu local + Arxiu local - Web link - Vincle web + Vincle web @@ -8247,40 +8568,32 @@ De totes maneres, aquests connectors han estat inhabilitats. search_engine - - Search - Cerca + Cerca - Status: - Estat: + Estat: - Stopped - Detingut + Detingut - Download - Descarregar + Descarregar - Go to description page - Pàgina de descripció + Pàgina de descripció - Copy description page URL - Copia la pàgina URL de descripció + Copia la pàgina URL de descripció - Search engines... - Motors de cerca... + Motors de cerca... diff --git a/src/lang/qbittorrent_cs.ts b/src/lang/qbittorrent_cs.ts index cdcf87626..81dc016d6 100644 --- a/src/lang/qbittorrent_cs.ts +++ b/src/lang/qbittorrent_cs.ts @@ -175,172 +175,172 @@ Nestahovat - - + + I/O Error Chyba I/O - + The torrent file does not exist. Torrent soubor neexistuje. - + Invalid torrent Neplatný torrent - + Failed to load the torrent: %1 Selhalo načtení torrentu: %1 - - + + Already in download list Torrent je již v seznamu ke stažení - + Free disk space: %1 Volné místo na disku: %1 - + Not Available This comment is unavailable Není k dispozici - + Not Available This date is unavailable Není k dispozici - + Not available Není k dispozici - + Invalid magnet link Neplatný magnet odkaz - + Torrent is already in download list. Trackers were merged. Torrent je již v seznamu ke stažení. Trackery byly sloučeny. - - + + Cannot add torrent Nelze přidat torrent - + Cannot add this torrent. Perhaps it is already in adding state. Nelze přidat tento torrent. Zřejmě se již jednou přidává. - + This magnet link was not recognized Tento magnet odkaz nebyl rozpoznán - + Magnet link is already in download list. Trackers were merged. Magnet je již v seznamu ke stažení. Trackery byly sloučeny. - + Cannot add this torrent. Perhaps it is already in adding. Nelze přidat tento torrent. Zřejmě se již jednou přidává. - + Magnet link Magnet odkaz - + Retrieving metadata... Načítám metadata... - + Not Available This size is unavailable. Není k dispozici - - - + + + Choose save path Vyberte cestu pro uložení - + Rename the file Přejmenovat soubor - + New name: Nový název: - - + + The file could not be renamed Soubor nelze přejmenovat - + This file name contains forbidden characters, please choose a different one. Název souboru obsahuje nepovolené znaky, zvolte prosím jiný. - - + + This name is already in use in this folder. Please use a different name. Tento název je již v tomto adresáři použit. Vyberte prosím jiný název. - + The folder could not be renamed Adresář nelze přejmenovat - + Rename... Přejmenovat... - + Priority Priorita - + Invalid metadata Neplatná metadata - + Parsing metadata... Analýza metadat... - + Metadata retrieval complete Načítání metadat dokončeno - + Download Error Chyba stahování @@ -431,10 +431,6 @@ Resolve peer host names Zjišťovat názvy počítačů protějšků - - Maximum number of half-open connections [0: Disabled] - Maximální počet napůl otevřených spojení [0: Vypnuto] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Články odpovídající filtru epizod. - + Example: Příklad: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match odpovídá 2, 5, 8 až 15, 30 a dalším epizodám první sezóny - + Episode filter rules: Pravidla filtru epizod: - + Season number is a mandatory non-zero value Číslo sezóny je povinná nenulová hodnota - + Episode number is a mandatory non-zero value Číslo epizody je povinná nenulová hodnota - + Filter must end with semicolon Filtr musí být ukončen středníkem - + Three range types for episodes are supported: Jsou podporovány tři typy rozsahu pro epizody: - + Single number: <b>1x25;</b> matches episode 25 of season one Jedno číslo: <b>1x25;</b> odpovídá epizodě 25 první sezóny - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Rozsah: <b>1x25-40;</b> odpovídá epizodám 25 až 40 první sezóny - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Neomezený rozsah: <b>1x25-;</b> odpovídá epizodě 25 a dalším epizodám první sezóny - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Nový název pravidla - + Please type the name of the new download rule. Napište název nového pravidla stahování, prosím. - - + + Rule name conflict Název pravidla koliduje - - + + A rule with this name already exists, please choose another name. Pravidlo s tímto názvem již existuje, vyberte prosím název jiný. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Opravdu chcete odstranit označená pravidla? - + Rule deletion confirmation Potvrdit smazání pravidla - + Destination directory Cílový adresář - + Invalid action Neplatná akce - + The list is empty, there is nothing to export. Seznam je prázdný, není co exportovat. - + Where would you like to save the list? Kam chcete seznam uložit? - + Rules list (*.rssrules) Seznam pravidel (*.rssrules) - + I/O Error Chyba I/O - + Failed to create the destination file Nezdařilo se vytvořit cílový soubor - + Please point to the RSS download rules file Odkažte na soubor s pravidly stahování RSS, prosím - + Rules list Seznam pravidel - + Import Error Import selhal - + Failed to import the selected rules file Import vybraného seznamu pravidel se nezdařil - + Add new rule... Přidat nové pravidlo... - + Delete rule Smazat pravidlo - + Rename rule... Přejmenovat pravidlo... - + Delete selected rules Smazat označená pravidla - + Rule renaming Přejmenování pravidla - + Please type the new rule name Napište název nového pravidla, prosím - + Regex mode: use Perl-like regular expressions Regex mód: použijte Perl syntaxi pro regulární výrazy - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Zástupné znaky: lze použít<ul><li>? který odpovídá libovolnému jednomu znaku</li><li>* který odpovídá žádnému nebo více libovolným znakům</li><li>Mezery se počítají jako operátor AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Zástupné znaky: lze použít<ul><li>? který odpovídá libovolnému jednomu znaku</li><li>* který odpovídá žádnému nebo více libovolným znakům</li><li>| odpovídá operátoru OR</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,178 +1015,164 @@ '%1' byl odstraněn ze seznamu přenosů. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Stahuji '%1', prosím čekejte... - Torrent Export: torrent is invalid, skipping... - Torrent Export: torrent je neplatný, přeskakuji... - - - + DHT support [ON] Podpora DHT [ZAP] - + DHT support [OFF]. Reason: %1 Podpora DHT [VYP]. Důvod: %1 - + DHT support [OFF] Podpora DHT [VYP] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent se pokouší naslouchat na jakémkoli rozhraní, portu: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent selhal naslouchat na rozhraní %1. Důvod: %2 - - - + The network interface defined is invalid: %1 Nastavené síťové rozhraní je neplatné: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent se pokouší naslouchat na rozhraní %1, portu: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nenalezl místní adresu %1 na které by měl naslouchat - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent selhal naslouchat na rozhraní %1. Důvod: %2. {1.?} + - + Tracker '%1' was added to torrent '%2' Tracker '%1' byl přidán do torrentu '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' byl odebrán z torrentu '%2' - + URL seed '%1' was added to torrent '%2' URL zdroj '%1' byl přidán do torrentu '%2' - + URL seed '%1' was removed from torrent '%2' URL zdroj '%1' byl odebrán z torrentu '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nelze obnovit torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP filter byl úspěšně zpracován: bylo aplikováno %1 pravidel. - + Error: Failed to parse the provided IP filter. Chyba: Nepovedlo se zpracovat poskytnutý IP filtr. - + Couldn't add torrent. Reason: %1 Nelze přidat torrent. Důvod: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' obnoven. (rychlé obnovení) - + '%1' added to download list. 'torrent name' was added to download list. '%1' přidán do seznamu stahování. - + An I/O error occurred, '%1' paused. %2 Došlo k chybě I/O, '%1' je pozastaven. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Namapování portů selhalo, zpráva: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Namapování portů bylo úspěšné, zpráva: %1 - + due to IP filter. this peer was blocked due to ip filter. kvůli IP filtru. - + due to port filter. this peer was blocked due to port filter. kvůli port filtru. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. kvůli omezením i2p mixed módu. - + because it has a low port. this peer was blocked because it has a low port. kvůli nízkému portu. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent naslouchá na rozhraní %1, portu: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent selhal naslouchat na rozhraní %1, portu: %2/%3, důvod: %4. {1 ?} {2/%3.?} + - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent selhal naslouchat na rozhraní %1, portu: %2/%3, důvod: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Externí IP: %1 @@ -1204,12 +1186,12 @@ Nelze přesunout torrent: '%1'. Důvod: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1234,7 +1216,7 @@ Hodnota - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Obvyklé klíče pro cookie jsou : '%1', '%2'. @@ -1302,12 +1284,12 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. FeedListWidget - + RSS feeds RSS kanály - + Unread Nepřečtené @@ -1404,10 +1386,6 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.Only one link per line Pouze jeden odkaz na řádek - - Download local torrent - Stáhnout lokální torrent - Download @@ -1594,7 +1572,17 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Staženo @@ -1965,10 +1953,6 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.&About O &aplikaci - - Exit - Ukončit - &Pause @@ -1999,22 +1983,6 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.E&xit &Konec - - Options - Možnosti - - - Resume - Obnovit - - - Pause - Pozastavit - - - Delete - Smazat - Open URL @@ -2032,19 +2000,15 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. - + Show Ukázat - + Check for program updates Zkontrolovat aktualizace programu - - Lock qBittorrent - Zamknout qBittorrent - Add Torrent &Link... @@ -2057,215 +2021,221 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. - + Execution Log Záznamy programu (Log) - + Clear the password Vymazat heslo - + Filter torrent list... Filtrovat seznam torrentů... - + &Set Password Na&stavit heslo - + &Clear Password Vyma&zat heslo - + Transfers Přenosy - + Torrent file association Asociace souboru .torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent není výchozí aplikací pro otevírání souborů .torrent ani Magnet odkazů. Chcete asociovat qBittorrent se soubory .torrent a Magnet odkazy? - + Icons Only Jen ikony - + Text Only Jen text - + Text Alongside Icons Text vedle ikon - + Text Under Icons Text pod ikonama - + Follow System Style Jako systémový styl - - - + + + UI lock password Heslo pro zamknutí UI - - - + + + Please type the UI lock password: Zadejte prosím heslo pro zamknutí UI: - + The password should contain at least 3 characters Heslo musí obsahovat nejméně 3 znaky - + Password update Změna hesla - + The UI lock password has been successfully updated Heslo pro zamknutí UI bylo úspěšně změněno - + Are you sure you want to clear the password? Opravdu chcete vymazat heslo? - + Search Hledat - + Transfers (%1) Přenosy (%1) - + Error Chyba - + Failed to add torrent: %1 Selhalo načtení torrentu: %1 - + Download completion Kompletace stahování - + I/O Error i.e: Input/Output Error Chyba I/O - + Recursive download confirmation Potvrzení rekurzivního stahování - + Yes Ano - + No Ne - + Never Nikdy - + Global Upload Speed Limit Celkový limit rychlosti odesílání - + Global Download Speed Limit Celkový limit rychlosti stahování - + &No &Ne - + &Yes &Ano - + &Always Yes Vžd&y - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2273,159 +2243,158 @@ Chcete asociovat qBittorrent se soubory .torrent a Magnet odkazy? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter Chybí překladač jazyka Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - A new version is available. Update to version %1? - Je k dispozici nová verze. + Je k dispozici nová verze. Aktualizovat na verzi %1? - + No updates available. You are already using the latest version. Nejsou žádné aktualizace. Již používáte nejnovější verzi. - + &Check for Updates Zkontrolovat aktualiza&ce - + Checking for Updates... Kontrolování aktualizací... - + Already checking for program updates in the background Kontrola aktualizací programu již probíha na pozadí - + Python found in '%1' - + Download error Chyba stahování - + Python setup could not be downloaded, reason: %1. Please install it manually. Instalační soubor Pythonu nelze stáhnout, důvod: %1. Nainstalujte jej prosím ručně. - - + + Invalid password Neplatné heslo - - + + RSS (%1) - + URL download error Chyba stahování URL - + The password is invalid Heslo je neplatné - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Rychlost stahování: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Rychlost odesílání: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [S: %1, O: %2] qBittorrent %3 - + Hide Skrýt - + Exiting qBittorrent Ukončování qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Některé soubory se právě přenášejí. Opravdu chcete ukončit qBittorrent? - + Open Torrent Files Otevřít torrent soubory - + Torrent Files Torrent soubory - + Options were saved successfully. Nastavení bylo úspěšně uloženo. @@ -2433,17 +2402,17 @@ Opravdu chcete ukončit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Vašedynamická DNS byla úspěšně aktualizována. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Chyba dynamické DNS: Služba je dočasně nedostupná, akce bude opakována za 30 minut. - + Dynamic DNS error: hostname supplied does not exist under specified account. Chyba dynamické DNS: poskytnutý název hostitele pod tímto účtem neexistuje. @@ -2453,32 +2422,32 @@ Opravdu chcete ukončit qBittorrent? Chyba dynamické DNS: Chybné jméno/heslo. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamické DNS: qBittorrent je na černé listině této služby, nahlašte prosím chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamické DNS: služba odpověděla %1, nahlašte prosím chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Chyba dynamické DNS: Vaše přihlašovací jméno bylo zablokováno v důsledku zneužití. - + Dynamic DNS error: supplied domain name is invalid. Chyba dynamické DNS: poskytnuté doménové jméno je neplatné. - + Dynamic DNS error: supplied username is too short. Chyba dynamické DNS: poskytnuté přihlašovací jméno je příliš krátké. - + Dynamic DNS error: supplied password is too short. Chyba dynamické DNS: poskytnuté heslo je příliš krátké. @@ -2505,154 +2474,149 @@ Opravdu chcete ukončit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2667,1137 +2631,1127 @@ Opravdu chcete ukončit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Francie + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Francie + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Řecko - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3828,72 +3782,72 @@ Opravdu chcete ukončit qBittorrent? interested(local) and choked(peer) - zájem(místní) a přiškrcený(protějšek) + interested(local) and unchoked(peer) - zájem(místní) a uvoľnený(protějšek) + interested(peer) and choked(local) - zájem(protějšek) a přiškrcený(místní) + interested(peer) and unchoked(local) - zájem(protějšek) a uvoľnený(místní) + optimistic unchoke - optimisticky uvolněný + peer snubbed - lokálně zasekaný + incoming connection - příchozí spojení + not interested(local) and unchoked(peer) - nezájem(místní) a uvoľnený(protějšek) + not interested(peer) and unchoked(local) - nezájem(protějšek) a uvoľnený(místní) + peer from PEX - protějšek z PEX + peer from DHT - protějšek z DHT + encrypted traffic - šifrovaný přenos + encrypted handshake - šifrovaný handshake + peer from LSD - lokální protějšek (z LSD) + @@ -3961,123 +3915,73 @@ Opravdu chcete ukončit qBittorrent? Důležitost - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Přidat nový protějšek... - + Copy selected Kopírovat vybrané - - + + Ban peer permanently Natrvalo zakázat protějšek - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Přidání protějšku - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Opravdu chcete natrvalo zakázat označené protějšky? - + &Yes &Ano - + &No &Ne - - interested(local) and choked(peer) - zájem(místní) a přiškrcený(protějšek) - - - interested(local) and unchoked(peer) - zájem(místní) a uvoľnený(protějšek) - - - interested(peer) and choked(local) - zájem(protějšek) a přiškrcený(místní) - - - interested(peer) and unchoked(local) - zájem(protějšek) a uvoľnený(místní) - - - optimistic unchoke - optimisticky uvolněný - - - peer snubbed - lokálně zasekaný - - - incoming connection - příchozí spojení - - - not interested(local) and unchoked(peer) - nezájem(místní) a uvoľnený(protějšek) - - - not interested(peer) and unchoked(local) - nezájem(protějšek) a uvoľnený(místní) - - - peer from PEX - protějšek z PEX - - - peer from DHT - protějšek z DHT - - - encrypted traffic - šifrovaný přenos - - - encrypted handshake - šifrovaný handshake - - - peer from LSD - lokální protějšek (z LSD) - PeersAdditionDlg @@ -4115,6 +4019,202 @@ Opravdu chcete ukončit qBittorrent? + + PluginSelectDlg + + + Search plugins + Zásuvné moduly pro vyhledávání + + + + Installed search plugins: + + + + + Name + Název + + + + Version + Verze + + + + Url + URL + + + + + Enabled + Zapnuto + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nové vyhledávače můžete získat zde: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Nainstalovat nový + + + + Check for updates + Zkontrolovat aktualizace + + + + Close + Zavřít + + + + Uninstall + Odinstalovat + + + + + + Yes + Ano + + + + + + + No + Ne + + + + Uninstall warning + Upozornění na odstranění + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Odstranění bylo úspěšné + + + + All selected plugins were uninstalled successfully + Všechny zásuvné moduly byly úspěšně odstraněny + + + + + New search engine plugin URL + URL nového vyhledávacího modulu + + + + + URL: + URL: + + + + Invalid link + Neplatný odkaz + + + + The link doesn't seem to point to a search engine plugin. + Odkaz zřejmě neodkazuje na zásuvný modul vyhledávače. + + + + Select search plugins + Vybrat vyhledávače + + + + qBittorrent search plugin + qBittorrent - vyhledávače + + + + + + Search plugin update + Aktualizovat vyhledávač + + + + All your plugins are already up to date. + Všechny zásuvné moduly jsou aktuální. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Nainstalovat vyhledávač + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Zdroj zásuvného modulu + + + + Search plugin source: + Hledat zdroj zásuvného modulu: + + + + Local file + Místní soubor + + + + Web link + Webový odkaz + + Preferences @@ -4171,89 +4271,89 @@ Opravdu chcete ukončit qBittorrent? Přidat příponu .!qB k nedokončeným souborům - + Copy .torrent files to: Kopírovat soubory .torrent do: - + Connections Limits Limit připojení - + Proxy Server Proxy server - + Global Rate Limits Celkové limity rychlosti - + Apply rate limit to transport overhead Použít limity rychlosti pro režijní provoz - + Schedule the use of alternative rate limits Načasovat použití alternativních limitů rychlosti - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Zapnout Local Peer Discovery k nalezení většího počtu protějšků - + Encryption mode: Režim šifrování: - + Prefer encryption Upřednostňovat šifrování - + Require encryption Vyžadovat šifrování - + Disable encryption Zakázat šifrování - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Více informací</a>) - + Maximum active downloads: Max. počet aktivních stahování: - + Maximum active uploads: Max. počet aktivních odesílání: - + Maximum active torrents: Maximální počet aktivních torrentů: @@ -4278,82 +4378,82 @@ Opravdu chcete ukončit qBittorrent? Zobrazit obsah torrentu a některé volby - + Run external program on torrent completion - + Port used for incoming connections: Port použitý pro příchozí spojení: - + Random Náhodný - + Global maximum number of connections: Celkový maximální počet připojení: - + Maximum number of connections per torrent: Maximální počet spojení na torrent: - + Maximum number of upload slots per torrent: Maximální počet slotů pro odesílání na torrent: - - + + Upload: Odesílání: - - + + Download: Stahování: - - - - + + + + KiB/s KiB/s - + Remove folder Odstranit adresář - + Every day Každý den - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Vyměňovat protějšky s kompatibilními klienty Bittorrent (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Typ: @@ -4526,262 +4626,262 @@ Opravdu chcete ukončit qBittorrent? Automaticky přidávat .torrent soubory z: - + Add folder... Přidat adresář ... - + Copy .torrent files for finished downloads to: Kopírovat .torrent soubory dokončených stahování do: - + Email notification upon download completion Oznámení emailem po dokončení stahování - + Destination email: Cílový Email: - + SMTP server: Server SMTP: - + This server requires a secure connection (SSL) Tento server vyžaduje zabezpečené připojení (SSL) - + Listening Port Naslouchat na portu - + Use UPnP / NAT-PMP port forwarding from my router Použít přesměrování portů UPnP / NAT-PMP z mého routeru - + Use different port on each startup Při každém spuštění použít náhodné porty - + Global maximum number of upload slots: Celkový maximální počet slotů pro odesílání: - + Otherwise, the proxy server is only used for tracker connections V opačném případě je proxy server použit pouze pro připojení k trackeru - + Use proxy for peer connections Použít proxy pro připojení k protějškům - + Disable connections not supported by proxies Zakázat připojení nepodporována proxy připojením - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Info: Heslo je uloženo nezašifrované - + IP Filtering Filtrování IP - + Reload the filter Obnovit filtr - + Apply to trackers Platí pro trackery - + Apply rate limit to peers on LAN - + When: Kdy: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Soukromí - + Enable DHT (decentralized network) to find more peers Zapnout DHT síť (decentralizovaná síť) k nalezení většího počtu protějšků - + Enable Peer Exchange (PeX) to find more peers Zapnout Peer Exchange (PeX) k nalezení většího počtu protějšků - + Look for peers on your local network Hledat protějšky na lokální síti - + Enable when using a proxy or a VPN connection Povolit při použití proxy nebo VPN připojení - + Enable anonymous mode Zapnout anonymní režim - + Do not count slow torrents in these limits Nezapočítávat pomalé torrenty do těchto limitů - + Seed torrents until their ratio reaches Sdílet torrenty dokud poměr sdílení nedosáhne - + then potom - + Pause them Pozastavit je - + Remove them Odstranit je - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Použít UPnP / NAT-PMP k přesměrování portu z mého routeru - + Use HTTPS instead of HTTP Použít HTTPS místo HTTP - + Import SSL Certificate Importovat SSL certifikát - + Import SSL Key Importovat SSL klíč - + Certificate: Certifikát: - + Alternative Rate Limits - + Key: Klíč: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informace o certifikátech</a> - + Bypass authentication for localhost Přeskočit přihlášení pro místní připojení - + Update my dynamic domain name Aktualizovat moje dynamické doménové jméno - + Service: Služba: - + Register Registrovat - + Domain name: Doménové jméno: - + (None) (žádný) @@ -4791,61 +4891,61 @@ Opravdu chcete ukončit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Ověření - - - - + + + + Username: Uživatelské jméno: - - - - + + + + Password: Heslo: - + Torrent Queueing Řazení torrentů do fronty - + Share Ratio Limiting Omezení poměru sdílení - + Enable Web User Interface (Remote control) Zapnout webové rozhraní (dálkové ovládání) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Cesta k filtru (.dat, .p2p, .p2b): @@ -5051,10 +5151,6 @@ Opravdu chcete ukončit qBittorrent? Comment: Komentář: - - Torrent content: - Obsah torrentu: - Select All @@ -5577,28 +5673,28 @@ Další upozornění již nebudou zobrazena. Neznámá chyba - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5709,17 +5805,17 @@ Další upozornění již nebudou zobrazena. RSSImp - + Stream URL: URL kanálu: - + Please type a RSS stream URL Prosím napište URL RSS kanálu - + This RSS feed is already in the list. Tento RSS kanál už v seznamu existuje. @@ -5739,75 +5835,77 @@ Další upozornění již nebudou zobrazena. Nový adresář - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Prosím vyberte nový název pro tento RSS kanál - + New feed name: Název nového kanálu: - + Name already in use Název je již používán - + This name is already used by another item, please choose another one. Tento název je již používán, vyberte prosím jiný. - + Date: Datum: - + Author: Autor: - + Unread Nepřečtené - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Selhalo otevření staženého RSS souboru. - - - - Invalid RSS feed at '%1'. - + Selhalo otevření staženého RSS souboru. @@ -5833,168 +5931,232 @@ Další upozornění již nebudou zobrazena. Maximální počet článků na kanál: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Procházet... + + + + Choose save path + Vyberte cestu pro uložení + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Sledovaný adresář - - Download here - Stáhnout zde + + Save Files to + - - Download path - + Download here + Stáhnout zde SearchCategories - All categories - Všechny kategorie + Všechny kategorie - Movies - Filmy + Filmy - TV shows - TV seriály + TV seriály - Music - Hudba + Hudba - Games - Hry + Hry - Anime - Anime + Anime - Software - Software + Software - Pictures - Obrázky + Obrázky - Books - Knihy + Knihy SearchEngine - - - Search - Hledat + Hledat - - Please install Python to use the Search Engine. - - - - Empty search pattern - Prázdný hledaný řetězec + Prázdný hledaný řetězec - Please type a search pattern first - Nejdříve prosím napište hledaný řetězec + Nejdříve prosím napište hledaný řetězec - Searching... - Hledám... + Hledám... - Stop - Zastavit + Zastavit - - Search Engine - Vyhledávač + Vyhledávač - - Search has finished - Hledání ukončeno + Hledání ukončeno - An error occurred during search... - Během hledání nastala chyba... + Během hledání nastala chyba... - - Search aborted - Hledání přerušeno + Hledání přerušeno - All enabled - Vše zapnuto + Vše zapnuto - All engines - Všechny vyhledávače + Všechny vyhledávače - - Multiple... - Vícenásobný... + Vícenásobný... - - - Results <i>(%1)</i>: - i.e: Search results + Search returned no results + Nebyly nalezeny žádné výsledky + + + + Unknown search engine plugin file format. - - Search returned no results - Nebyly nalezeny žádné výsledky + + A more recent version of this plugin is already installed. + - - Stopped - Zastaveno + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Všechny kategorie + + + + Movies + Filmy + + + + TV shows + TV seriály + + + + Music + Hudba + + + + Games + Hry + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Obrázky + + + + Books + Knihy SearchListDelegate - - + + Unknown Neznámá @@ -6002,35 +6164,160 @@ Další upozornění již nebudou zobrazena. SearchTab - + Name i.e: file name Název - + Size i.e: file size Velikost - + Seeders i.e: Number of full sources Seedeři - + Leechers i.e: Number of partial sources Leecheři - + Search engine Vyhledávač + + SearchWidget + + + + + + + Search + Hledat + + + + Status: + Status: + + + + + Stopped + Zastaveno + + + + Download + + + + + Go to description page + Přejít na stránku s popisem + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + Vše zapnuto + + + + All plugins + + + + + + Multiple... + Vícenásobný... + + + + + + Search Engine + Vyhledávač + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Prázdný hledaný řetězec + + + + Please type a search pattern first + Nejdříve prosím napište hledaný řetězec + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Hledám... + + + + Stop + Zastavit + + + + + Search has finished + Hledání ukončeno + + + + + Search aborted + Hledání přerušeno + + + + Search returned no results + Nebyly nalezeny žádné výsledky + + + + Search has failed + + + + + An error occurred during search... + Během hledání nastala chyba... + + ShutdownConfirmDlg @@ -6475,24 +6762,28 @@ Další upozornění již nebudou zobrazena. TorrentContentModel - + Name Název - + Size Velikost - + Progress Průběh - + + Download Priority + + + Priority - Priorita + Priorita @@ -6844,38 +7135,38 @@ Další upozornění již nebudou zobrazena. Varování (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Obnovit torrenty - + Pause torrents Pozastavit torrenty - + Delete torrents Smazat torrenty - - + + All (%1) this is for the tracker filter Vše (%1) @@ -7143,17 +7434,17 @@ Další upozornění již nebudou zobrazena. TransferListFiltersWidget - + Status Status - + Labels Štítky - + Trackers Trackery @@ -7692,205 +7983,111 @@ Další upozornění již nebudou zobrazena. engineSelect - Search plugins - Zásuvné moduly pro vyhledávání + Zásuvné moduly pro vyhledávání - Installed search engines: - Nainstalované vyhledávače: + Nainstalované vyhledávače: - Name - Název + Název - Version - Verze + Verze - Url - URL + URL - - Enabled - Zapnuto + Zapnuto - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nové vyhledávače můžete získat zde: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nové vyhledávače můžete získat zde: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Nainstalovat nový + Nainstalovat nový - Check for updates - Zkontrolovat aktualizace + Zkontrolovat aktualizace - Close - Zavřít + Zavřít - Uninstall - Odinstalovat + Odinstalovat engineSelectDlg - Uninstall warning - Upozornění na odstranění + Upozornění na odstranění - Uninstall success - Odstranění bylo úspěšné + Odstranění bylo úspěšné - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Odkaz zřejmě neodkazuje na zásuvný modul vyhledávače. + Odkaz zřejmě neodkazuje na zásuvný modul vyhledávače. - Select search plugins - Vybrat vyhledávače + Vybrat vyhledávače - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Nainstalovat vyhledávač + Nainstalovat vyhledávač - - - Yes - Ano + Ano - - - - No - Ne + Ne - qBittorrent search plugin - qBittorrent - vyhledávače + qBittorrent - vyhledávače - - - - Search plugin update - Aktualizovat vyhledávač + Aktualizovat vyhledávač - - Sorry, update server is temporarily unavailable. - Omlouváme se, server s aktualizacemi je dočasně nedostupný. + Omlouváme se, server s aktualizacemi je dočasně nedostupný. - All your plugins are already up to date. - Všechny zásuvné moduly jsou aktuální. + Všechny zásuvné moduly jsou aktuální. - All selected plugins were uninstalled successfully - Všechny zásuvné moduly byly úspěšně odstraněny + Všechny zásuvné moduly byly úspěšně odstraněny - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Neplatný odkaz + Neplatný odkaz - - New search engine plugin URL - URL nového vyhledávacího modulu + URL nového vyhledávacího modulu - - URL: - URL: + URL: @@ -8020,169 +8217,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Vyberte adresář pro export - - - - + + + + Choose a save directory Vyberte adresář pro ukládání - + Add directory to scan Přidat adresář ke sledování - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Adresář je již sledován. - + Folder does not exist. Adresář neexistuje. - + Folder is not readable. Adresář nelze přečíst. - + Failure Chyba - + Failed to add Scan Folder '%1': %2 Nelze přidat adresář ke sledování '%1': %2 - - + + Filters Filtry - - + + Choose an IP filter file Vyberte soubor s IP filtry - + SSL Certificate SSL certifikát - + SSL Key SSL klíč - + Parsing error Chyba zpracování - + Failed to parse the provided IP filter Nepovedlo se zpracovat poskytnutý IP filtr - + Successfully refreshed Úspěšně obnoveno - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP filter byl úspěšně zpracován: bylo aplikováno %1 pravidel. - + Invalid key Neplatný klíč - + This is not a valid SSL key. Toto není platný SSL klíč. - + Invalid certificate Neplatný certifikát - + This is not a valid SSL certificate. Toto není platný SSL certifikát. - + The start time and the end time can't be the same. Časy začátku a konce nemůžou být stejné. - + Time Error Chyba času @@ -8190,24 +8387,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Zdroj zásuvného modulu + Zdroj zásuvného modulu - Search plugin source: - Hledat zdroj zásuvného modulu: + Hledat zdroj zásuvného modulu: - Local file - Místní soubor + Místní soubor - Web link - Webový odkaz + Webový odkaz @@ -8236,40 +8429,28 @@ Those plugins were disabled. search_engine - - Search - Hledat + Hledat - Status: - Status: + Status: - Stopped - Zastaveno + Zastaveno - Download - Stahování + Stahování - Go to description page - Přejít na stránku s popisem + Přejít na stránku s popisem - - Copy description page URL - - - - Search engines... - Vyhledávače... + Vyhledávače... diff --git a/src/lang/qbittorrent_da.ts b/src/lang/qbittorrent_da.ts index 2607965ee..d5da3ec3f 100644 --- a/src/lang/qbittorrent_da.ts +++ b/src/lang/qbittorrent_da.ts @@ -175,172 +175,172 @@ Hent ikke - - + + I/O Error I/O Fejl - + The torrent file does not exist. Torrent filen eksistere ikke. - + Invalid torrent Ugyldig torrent - + Failed to load the torrent: %1 Kunne ikke indlæse torrent: %1 - - + + Already in download list Allerede i download listen - + Free disk space: %1 - + Not Available This comment is unavailable Ikke tilgængelig - + Not Available This date is unavailable Ikke tilgængelig - + Not available Ikke tilgængelig - + Invalid magnet link Ugyldig magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Dette magnet link blev ikke genkendt - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Modtager metadata... - + Not Available This size is unavailable. Ikke tilgængelig - - - + + + Choose save path Vælg destinationen - + Rename the file Omdøb filen - + New name: Nyt navn: - - + + The file could not be renamed Filen kunne ikke omdøbes - + This file name contains forbidden characters, please choose a different one. Filnavnet indeholder forbudte tegn, vælg venligst nogle andre. - - + + This name is already in use in this folder. Please use a different name. Navnet for denne mappe er allerede i brug. Vælg venligst et andet. - + The folder could not be renamed Mappen kunne ikke omdøbes - + Rename... Omdøb... - + Priority Prioritet - + Invalid metadata - + Parsing metadata... Behandler metadata... - + Metadata retrieval complete Metadata modtaget - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Oversæt peer host navn - - Maximum number of half-open connections [0: Disabled] - Maks antal af halvt åbne forbindelsers [0: Deaktiveret] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: Eksempel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Ny regl navn - + Please type the name of the new download rule. Skriv navnet på den nye download regl. - - + + Rule name conflict Regl navn konflikt - - + + A rule with this name already exists, please choose another name. En regl med dette navn eksistere allerede, vælg et andet. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Er du sikker på at du vil fjerne de valgte download regler? - + Rule deletion confirmation Regl sletning bekræftelse - + Destination directory Destinations mappe - + Invalid action Ugyldig handling - + The list is empty, there is nothing to export. Listen er tom, der er ikke noget at eksportere. - + Where would you like to save the list? Hvor vil du gemme listen? - + Rules list (*.rssrules) Regl list (*.rssrules) - + I/O Error I/O Fejl - + Failed to create the destination file Kunne ikke oprette destinationsfilen - + Please point to the RSS download rules file Navigere til RSS download regler filen - + Rules list Regl liste - + Import Error Import Fejl - + Failed to import the selected rules file Kunne ikke importere valgte regl fil - + Add new rule... Tilføj ny regl... - + Delete rule Slet regl - + Rename rule... Omdøb regl... - + Delete selected rules Slet valgte regler - + Rule renaming Omdøb regl - + Please type the new rule name Skriv det nye regl navn - + Regex mode: use Perl-like regular expressions Regex modus: brug Perl-like regelmæssige udtryk - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard-tilstand: Du kan bruge <ul> <li>? til at matche et enkelt tegn </ li> <li> * at matche nul eller flere af ethvert tegn </ li> <li> blanke tæller som og operatørerne </ li> </ ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard-tilstand: Du kan bruge <ul> <li>? til at matche et enkelt tegn </ li> <li> * at matche nul eller flere tegn </ li> <li> | bruges som OR operator </ li> </ ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Værdi - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread Ulæst @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Kun et link per linje - - Download local torrent - Download lokal torrent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Hentet @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Om - - Exit - Afslut - &Pause @@ -1984,10 +1982,6 @@ You should get this information from your Web browser preferences. E&xit - - Delete - Slet - Open URL @@ -2005,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Vis - + Check for program updates Tjek for program opdateringer - - Lock qBittorrent - Lås qBittorrent - Add Torrent &Link... @@ -2030,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Eksekveret Log - + Clear the password Ryd adgangskode - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers Overførelser - + Torrent file association Torrent fil tilknyttelse - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent er ikke standard programmet til åbning af torrent filer eller magnet links. Vil du tilknytte qBittorrent til torrent filer og Magnet links? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password Brugerflade låsekode - - - + + + Please type the UI lock password: Indtast brugerfladens låsekode: - + The password should contain at least 3 characters Adgangskoden bør indeholde mindst 3 bogstaver - + Password update Opdater adgangskode - + The UI lock password has been successfully updated Brugerfladens låsekode blev opdateret - + Are you sure you want to clear the password? Er du sikker på at du vil rydde adgangskoden? - + Search Søg - + Transfers (%1) Overførelser (%1) - + Error - + Failed to add torrent: %1 - + Download completion Download færdig - + I/O Error i.e: Input/Output Error I/O Fejl - + Recursive download confirmation Rekursiv download bekræftet - + Yes Ja - + No Nej - + Never Aldrig - + Global Upload Speed Limit Global Upload hastighedsbegrænsning - + Global Download Speed Limit Global Download hastighedsbegrænsning - + &No &Nej - + &Yes &Ja - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2246,157 +2242,151 @@ Vil du tilknytte qBittorrent til torrent filer og Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Tjekker allerede for program opdateringer i baggrunden - + Python found in '%1' - + Download error Download fejl - + Python setup could not be downloaded, reason: %1. Please install it manually. Python kunne ikke hentes pga: %1. Installer venligst manuelt. - - + + Invalid password Ugyldig adgangskode - - + + RSS (%1) - + URL download error - + The password is invalid Adgangskoden er ugyldig - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Skjul - + Exiting qBittorrent Luk qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Der er igangværende overførelser. Er du sikker på at du vil afslutte qBittorrent? - + Open Torrent Files Åben Torrent Filer - + Torrent Files Torrent Filer - + Options were saved successfully. Indstillinger blev gemt. @@ -2404,17 +2394,17 @@ Er du sikker på at du vil afslutte qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2424,32 +2414,32 @@ Er du sikker på at du vil afslutte qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2476,154 +2466,149 @@ Er du sikker på at du vil afslutte qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2638,1137 +2623,1127 @@ Er du sikker på at du vil afslutte qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Frankrig + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Frankrig + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grækenland - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3824,12 +3799,12 @@ Er du sikker på at du vil afslutte qBittorrent? peer snubbed - Peer afbrudt + incoming connection - Indgående forbindelse + @@ -3844,27 +3819,27 @@ Er du sikker på at du vil afslutte qBittorrent? peer from PEX - peer fra PEX + peer from DHT - peer fra DHT + encrypted traffic - krypteret trafik + encrypted handshake - krypteret håndtryk + peer from LSD - peer fra LSD + @@ -3932,95 +3907,73 @@ Er du sikker på at du vil afslutte qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Tilføj ny peer... - + Copy selected - - + + Ban peer permanently Bandlys peer permanent - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Tilføjelse af peer - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Er du sikker på at du vil bandlyse de valgte peers permanent? - + &Yes &Ja - + &No &Nej - - peer snubbed - Peer afbrudt - - - incoming connection - Indgående forbindelse - - - peer from PEX - peer fra PEX - - - peer from DHT - peer fra DHT - - - encrypted traffic - krypteret trafik - - - encrypted handshake - krypteret håndtryk - - - peer from LSD - peer fra LSD - PeersAdditionDlg @@ -4058,6 +4011,202 @@ Er du sikker på at du vil afslutte qBittorrent? + + PluginSelectDlg + + + Search plugins + Søge plugins + + + + Installed search plugins: + + + + + Name + Navn + + + + Version + + + + + Url + Url + + + + + Enabled + Slået til + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan finde nye søgetjenester her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Installer en ny + + + + Check for updates + Tjek for opdateringer + + + + Close + Luk + + + + Uninstall + Afinstaller + + + + + + Yes + Ja + + + + + + + No + Nej + + + + Uninstall warning + Afindstallations advarsel + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Afindstallationen lykkedes + + + + All selected plugins were uninstalled successfully + Afindstallationen af alle valgte plugins lykkedes + + + + + New search engine plugin URL + Ny søgemaskine plugin URL + + + + + URL: + URL: + + + + Invalid link + Ugyldigt link + + + + The link doesn't seem to point to a search engine plugin. + Dette link lader ikke til at henvise til et søgemaskine plugin. + + + + Select search plugins + Vælg søge plugin + + + + qBittorrent search plugin + + + + + + + Search plugin update + Søge plugin opdatering + + + + All your plugins are already up to date. + Alle dine plugins er af nyeste udgave. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Søge plugin indstallation + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Plugin kilde + + + + Search plugin source: + Søgemaskine plugin kilde: + + + + Local file + Lokal fil + + + + Web link + Web link + + Preferences @@ -4114,89 +4263,89 @@ Er du sikker på at du vil afslutte qBittorrent? Tilføj .!qB til ukomplette filer - + Copy .torrent files to: Kopier .torrent filer til: - + Connections Limits Forbindelsesbegrænsninger - + Proxy Server Proxy Server - + Global Rate Limits Global hastighedsbegrænsninger - + Apply rate limit to transport overhead Begrænsninger gælder også transportdata (overhead) - + Schedule the use of alternative rate limits Planlæg alternative hastighedsbegrænsning - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Aktiver søgning efter peers på det lokale netværk - + Encryption mode: Krypterings tilstand: - + Prefer encryption Foretræk kryptering - + Require encryption Kræv kryptering - + Disable encryption Ingen kryptering - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mere information</a>) - + Maximum active downloads: Maks antal downloads: - + Maximum active uploads: Maks antal uploads: - + Maximum active torrents: Maks antal aktive torrents: @@ -4221,82 +4370,82 @@ Er du sikker på at du vil afslutte qBittorrent? Vis torrent indhold og nogle indstillinger - + Run external program on torrent completion - + Port used for incoming connections: Port for indgående forbindelser: - + Random Tilfældig - + Global maximum number of connections: Global maks antal forbindelser: - + Maximum number of connections per torrent: Maks antal forbindelser per torrent: - + Maximum number of upload slots per torrent: Maks antal upload pladser per torrent: - - + + Upload: Sendehastighed: - - + + Download: Modtagehastighed: - - - - + + + + KiB/s KiB/s - + Remove folder Fjern mappe - + Every day Hver dag - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Udveksel peers med kompatible Bittorrent klienter (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Type: @@ -4469,262 +4618,262 @@ Er du sikker på at du vil afslutte qBittorrent? Automatisk tilføj torrents fra: - + Add folder... Tilføj mappe... - + Copy .torrent files for finished downloads to: Kopier færdige .torrent downloads til: - + Email notification upon download completion E-post notification ved download færdig - + Destination email: E-post addresse: - + SMTP server: SMTP server: - + This server requires a secure connection (SSL) Denne server kræver en sikker forbindelse (SSL) - + Listening Port Port egenskaber - + Use UPnP / NAT-PMP port forwarding from my router Brug UPnP / NAT PMP port viderstilling fra min router - + Use different port on each startup Brug tilfældig port ved programstart - + Global maximum number of upload slots: Global maks antal upload forbindelser: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections Brug proxy til peer forbindelser - + Disable connections not supported by proxies Deaktivere forbindelser ikke supporteret af proxier. - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering IP Filtrering - + Reload the filter Genindlæs filter - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Når: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Privat - + Enable DHT (decentralized network) to find more peers Aktiver DHT netværk for at finde flere peers - + Enable Peer Exchange (PeX) to find more peers Aktivere Peer Udveksling (PeX) for at finde flere peers - + Look for peers on your local network Søg efter peers på lokalt netværk - + Enable when using a proxy or a VPN connection Aktivere når der bruges proxy eller VPN forbindelse - + Enable anonymous mode Aktiver anonym tilstand - + Do not count slow torrents in these limits Tæl ikke langsomme torrents med i disse begrænsninger - + Seed torrents until their ratio reaches Seed torrents indtil deleforhold er - + then og så - + Pause them Pause dem - + Remove them Fjern dem - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Brug UPnP / NAT-PMP tol viderstilling af port fra min router - + Use HTTPS instead of HTTP Brug HTTPS istedetfor HTTP - + Import SSL Certificate Importer SSL Certifikat - + Import SSL Key Importer SSL Nøgle - + Certificate: Certifikat: - + Alternative Rate Limits - + Key: Nøgle: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information om certifikater</a> - + Bypass authentication for localhost Omgå autentificering for lokalhost - + Update my dynamic domain name Opdater mit dynamiske domænenavn - + Service: Service: - + Register Registrer - + Domain name: Domænenavn: - + (None) (Ingen) @@ -4734,61 +4883,61 @@ Er du sikker på at du vil afslutte qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Identifikation - - - - + + + + Username: Brugernavn: - - - - + + + + Password: Adgangskode: - + Torrent Queueing Torrent Kø - + Share Ratio Limiting Begræns deleforhold - + Enable Web User Interface (Remote control) Aktiver Web brugerflade (Fjernkontrol) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filter sti (.dat, .p2p, .p2b): @@ -4994,10 +5143,6 @@ Er du sikker på at du vil afslutte qBittorrent? Comment: Kommentar: - - Torrent content: - Torrent indhold: - Select All @@ -5517,28 +5662,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5649,17 +5794,17 @@ No further notices will be issued. RSSImp - + Stream URL: Stream URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5679,75 +5824,77 @@ No further notices will be issued. Ny mappe - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Vælg venligst et nyt navn til denne RSS feed - + New feed name: Nyt feed navn: - + Name already in use Navn allerede i brug - + This name is already used by another item, please choose another one. Dette navn er allerede i brug et andet sted, vælg venligst et andet navn. - + Date: Dato: - + Author: Forfatter: - + Unread Ulæst - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Kunne ikke åbne RSS fil. - - - - Invalid RSS feed at '%1'. - + Kunne ikke åbne RSS fil. @@ -5773,168 +5920,220 @@ No further notices will be issued. Maks antal emner per feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Overvåget mapper - - Download here - Hent hertil + + Save Files to + - - Download path - + Download here + Hent hertil SearchCategories - All categories - Alle kategorier + Alle kategorier - Movies - Film + Film - TV shows - TV serier + TV serier - Music - Musik + Musik - Games - Spil + Spil - Anime - Anime + Anime - Software - Programmer + Programmer - Pictures - Billeder + Billeder - Books - Bøger + Bøger SearchEngine - - - Search - Søg + Søg - - Please install Python to use the Search Engine. - - - - Empty search pattern - Tomt søge kriterie + Tomt søge kriterie - Please type a search pattern first - Indtast venligst et søge kriterie først + Indtast venligst et søge kriterie først - Searching... - Søger... + Søger... - Stop - Stop + Stop - - Search Engine - Søgemaskine + Søgemaskine - - Search has finished - Søgningen er færdig + Søgningen er færdig - An error occurred during search... - Der opstod en fejl under søgningen... + Der opstod en fejl under søgningen... - - Search aborted - Søgning afbrudt + Søgning afbrudt - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Søgningen gav intet resultat + Søgningen gav intet resultat - - Stopped - Stoppet + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Alle kategorier + + + + Movies + Film + + + + TV shows + TV serier + + + + Music + Musik + + + + Games + Spil + + + + Anime + Anime + + + + Software + Programmer + + + + Pictures + Billeder + + + + Books + Bøger SearchListDelegate - - + + Unknown Ukendt @@ -5942,35 +6141,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Navn - + Size i.e: file size Størrelse - + Seeders i.e: Number of full sources Seedere - + Leechers i.e: Number of partial sources Leechere - + Search engine Søgemaskine + + SearchWidget + + + + + + + Search + Søg + + + + Status: + Status: + + + + + Stopped + Stoppet + + + + Download + + + + + Go to description page + Gå til beskrivelse + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Søgemaskine + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Tomt søge kriterie + + + + Please type a search pattern first + Indtast venligst et søge kriterie først + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Søger... + + + + Stop + Stop + + + + + Search has finished + Søgningen er færdig + + + + + Search aborted + Søgning afbrudt + + + + Search returned no results + Søgningen gav intet resultat + + + + Search has failed + + + + + An error occurred during search... + Der opstod en fejl under søgningen... + + ShutdownConfirmDlg @@ -6415,24 +6739,28 @@ No further notices will be issued. TorrentContentModel - + Name Navn - + Size Størrelse - + Progress Fremgang - + + Download Priority + + + Priority - Prioritet + Prioritet @@ -6784,38 +7112,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents Slet torrents - - + + All (%1) this is for the tracker filter @@ -7083,17 +7411,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Status - + Labels Mærkater - + Trackers Trackere @@ -7632,205 +7960,103 @@ No further notices will be issued. engineSelect - Search plugins - Søge plugins + Søge plugins - Installed search engines: - Indstallerede søgemaskiner: + Indstallerede søgemaskiner: - Name - Navn + Navn - - Version - - - - Url - Url + Url - - Enabled - Slået til + Slået til - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan finde nye søgetjenester her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan finde nye søgetjenester her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Installer en ny + Installer en ny - Check for updates - Tjek for opdateringer + Tjek for opdateringer - Close - Luk + Luk - Uninstall - Afinstaller + Afinstaller engineSelectDlg - Uninstall warning - Afindstallations advarsel + Afindstallations advarsel - Uninstall success - Afindstallationen lykkedes + Afindstallationen lykkedes - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Dette link lader ikke til at henvise til et søgemaskine plugin. + Dette link lader ikke til at henvise til et søgemaskine plugin. - Select search plugins - Vælg søge plugin + Vælg søge plugin - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Søge plugin indstallation + Søge plugin indstallation - - - Yes - Ja + Ja - - - - No - Nej + Nej - - qBittorrent search plugin - - - - - - - Search plugin update - Søge plugin opdatering + Søge plugin opdatering - - Sorry, update server is temporarily unavailable. - Beklager, opdaterings-serveren er midlertidigt utilgængelig. + Beklager, opdaterings-serveren er midlertidigt utilgængelig. - All your plugins are already up to date. - Alle dine plugins er af nyeste udgave. + Alle dine plugins er af nyeste udgave. - All selected plugins were uninstalled successfully - Afindstallationen af alle valgte plugins lykkedes + Afindstallationen af alle valgte plugins lykkedes - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Ugyldigt link + Ugyldigt link - - New search engine plugin URL - Ny søgemaskine plugin URL + Ny søgemaskine plugin URL - - URL: - URL: + URL: @@ -7960,169 +8186,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Vælg eksport mappe - - - - + + + + Choose a save directory Vælg en standard mappe - + Add directory to scan Tilføj mappe til skanning - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Mappe bliver allerede overvåget. - + Folder does not exist. Mappen eksistere ikke. - + Folder is not readable. Mappen kan ikke læses. - + Failure Fejlede - + Failed to add Scan Folder '%1': %2 Kunne ikke skanne mappe '%1': %2 - - + + Filters Filtre - - + + Choose an IP filter file - + SSL Certificate SSL Certifikat - + SSL Key SSL nøgle - + Parsing error - + Failed to parse the provided IP filter - + Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Ugyldig nøgle - + This is not a valid SSL key. Dette er ikke en gyldig SSL nøgle. - + Invalid certificate Ugyldigt certifikat - + This is not a valid SSL certificate. Dette er ikke gyldigt SSL certifikat - + The start time and the end time can't be the same. Start og slut tiden kan ikke være ens. - + Time Error Tid Fejl @@ -8130,24 +8356,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Plugin kilde + Plugin kilde - Search plugin source: - Søgemaskine plugin kilde: + Søgemaskine plugin kilde: - Local file - Lokal fil + Lokal fil - Web link - Web link + Web link @@ -8176,40 +8398,28 @@ Those plugins were disabled. search_engine - - Search - Søg + Søg - Status: - Status: + Status: - Stopped - Stoppet + Stoppet - Download - Download + Download - Go to description page - Gå til beskrivelse + Gå til beskrivelse - - Copy description page URL - - - - Search engines... - Søgemskiner... + Søgemskiner... diff --git a/src/lang/qbittorrent_de.ts b/src/lang/qbittorrent_de.ts index 724740e6e..686d687dd 100644 --- a/src/lang/qbittorrent_de.ts +++ b/src/lang/qbittorrent_de.ts @@ -127,7 +127,7 @@ Set as default label - + Als Standard-Label festlegen @@ -175,172 +175,172 @@ Nicht herunterladen - - + + I/O Error I/O Fehler - + The torrent file does not exist. Die Torrent-Datei existiert nicht. - + Invalid torrent Ungültiger Torrent - + Failed to load the torrent: %1 Laden des Torrents fehlgeschlagen: %1 - - + + Already in download list Bereits in der Downloadliste - + Free disk space: %1 Freier Speicherplatz: %1 - + Not Available This comment is unavailable Nicht verfügbar - + Not Available This date is unavailable Nicht verfügbar - + Not available Nicht verfügbar - + Invalid magnet link Ungültiger Magnet-Link - + Torrent is already in download list. Trackers were merged. Torrent befindet sich bereits in der Downloadliste. Tracker wurden zusammengeführt. - - + + Cannot add torrent Kann torrent nicht hinzufügen - + Cannot add this torrent. Perhaps it is already in adding state. Kann diesen Torrent nicht hinzufügen. Vielleicht wird er bereits gerade hinzugefügt. - + This magnet link was not recognized Dieser Magnet-Link wurde nicht erkannt - + Magnet link is already in download list. Trackers were merged. Magnet-Link befindet sich bereits in der Downloadliste. Tracker wurden zusammengeführt. - + Cannot add this torrent. Perhaps it is already in adding. Kann diesen Torrent nicht hinzufügen. Vielleicht wird er bereits gerade hinzugefügt. - + Magnet link Magnet-Link - + Retrieving metadata... Frage Metadaten ab ... - + Not Available This size is unavailable. Nicht verfügbar - - - + + + Choose save path Speicherpfad auswählen - + Rename the file Datei umbenennen - + New name: Neuer Name: - - + + The file could not be renamed Die Datei konnte nicht umbenannt werden - + This file name contains forbidden characters, please choose a different one. Der Dateiname enthält ungültige Zeichen - bitte einen anderen Namen wählen. - - + + This name is already in use in this folder. Please use a different name. Der Dateiname wird in diesem Verzeichnis bereits verwendet - bitte einen anderen Namen wählen. - + The folder could not be renamed Das Verzeichnis konnte nicht umbenannt werden - + Rename... Umbenennen ... - + Priority Priorität - + Invalid metadata Ungültige Metadaten - + Parsing metadata... Analysiere Metadaten ... - + Metadata retrieval complete Abfrage Metadaten komplett - + Download Error Downloadfehler @@ -431,10 +431,6 @@ Resolve peer host names Hostnamen der Peers auflösen - - Maximum number of half-open connections [0: Disabled] - Maximale Anzahl halboffener Verbindungen [0: Deaktiviert] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maximale Anzahl halboffener Verbindungen [0: Unbegrenzt] @@ -661,205 +657,205 @@ &Exportieren... - + Matches articles based on episode filter. Artikel stimmt entsprechend Folgenfilter überein. - + Example: Beispiel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match passt zu 2, 5, 8 bis 15, 30 und kommenden Folgen von Staffel eins - + Episode filter rules: Folgenfilterregeln: - + Season number is a mandatory non-zero value Staffel-Nummer ist zwingend eine Zahl über Null - + Episode number is a mandatory non-zero value Folgen-Nummer ist zwingend eine Zahl über Null - + Filter must end with semicolon Filter müssen mit einem Strichpunkt enden - + Three range types for episodes are supported: Drei Bereichstypen für Folgen werden unterstützt: - + Single number: <b>1x25;</b> matches episode 25 of season one Einzeln: <b>1x25;</b> passt zur Folge 25 von Staffel eins - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Bereich: <b>1x25-40;</b> passt zu den Folgen 25 bis 40 von Staffel eins - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Endlos: <b>1x25-;</b> passt zu allen Folgen beginnend mit 25 von Staffel eins - + Last Match: %1 days ago Letzte Übereinstimmung: vor %1 Tagen - + Last Match: Unknown Letzte Übereinstimmung: Unbekannt - + New rule name Neuer Regelname - + Please type the name of the new download rule. Bitte einen neuen Namen für die Downloadregel eingeben. - - + + Rule name conflict Regelnamenskonflikt - - + + A rule with this name already exists, please choose another name. Eine Regel mit diesem Namen existiert bereits - bitte einen anderen Namen wählen. - + Are you sure you want to remove the download rule named '%1'? Soll die Downloadregel '%1' wirklich entfernt werden? - + Are you sure you want to remove the selected download rules? Sollen die ausgewählten Downloadregeln wirklich entfernt werden? - + Rule deletion confirmation Regellöschung bestätigen - + Destination directory Zielverzeichnis - + Invalid action Ungültige Aktion - + The list is empty, there is nothing to export. Die Liste ist leer, es gibt nichts zu exportieren. - + Where would you like to save the list? Wohin soll die Liste gespeichert werden? - + Rules list (*.rssrules) Regelliste (*.rssrules) - + I/O Error E/A-Fehler - + Failed to create the destination file Fehler beim Erstellen der Zieldatei - + Please point to the RSS download rules file Bitte die RSS-Downloadregeldatei angeben - + Rules list Regelliste - + Import Error Fehler beim Import - + Failed to import the selected rules file Import der ausgewählten Regeldatei fehlgeschlagen - + Add new rule... Neue Regel hinzufügen ... - + Delete rule Regel löschen - + Rename rule... Regel umbenennen ... - + Delete selected rules Ausgewählte Regeln löschen - + Rule renaming Regelumbenennung - + Please type the new rule name Bitte einen neuen Namen für die Regel eingeben - + Regex mode: use Perl-like regular expressions Regex Modus: Perlartige Reguläre Ausdrücke verwenden - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard Modus: Es können folgende Wildcards verwendet werden<ul><li>? um ein einzelnes Zeichen zu matchen</li><li>* um keine oder mehrere Zeichen zu matchen</li><li>Leerzeichen werden als UND Operator gewertet</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard Modus: Es können folgende Wildcards verwendet werden<ul><li>? um ein einzelnes Zeichen zu matchen</li><li>* um keine oder mehrere Zeichen zu matchen</li><li>| wird als ODER Operator gewertet</li></ul> @@ -904,12 +900,12 @@ Local Peer Discovery support [ON] - Lokale Peers (LPD) finden [EIN] + Lokale Peer Suche (LSD) [EIN] Local Peer Discovery support [OFF] - Lokale Peers (LPD) finden [AUS] + Lokale Peer Suche (LSD) [AUS] @@ -952,65 +948,57 @@ '%1' hat das gesetzte maximale Verhältnis erreicht. Wird angehalten ... - Error: Could not create torrent export directory: '%1' - Fehler: Konnte das Verzeichnis für den Torrent-Export nicht erstellen: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Fehler: Konnte den Torrent '%1' nicht exportieren - vielleicht fehlen noch Metadaten. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Systemnetzwerkstatus auf %1 geändert - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Die Netzwerk-Konfiguration von %1 hat sich geändert - die Sitzungsbindung wird erneuert - + Unable to decode '%1' torrent file. '%1' Torrentdatei kann nicht dekodiert werden. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursiver Download von Datei '%1', eingebettet in Torrent '%2' - + Couldn't save '%1.torrent' '%1.torrent' konnte nicht gespeichert werden - + because %1 is disabled. this peer was blocked because uTP is disabled. weil %1 deaktiviert ist. - + because %1 is disabled. this peer was blocked because TCP is disabled. weil %1 deaktiviert ist. - + URL seed lookup failed for URL: '%1', message: %2 URL Überprüfung für die Seed-URL '%1' ist fehlgeschlagen; Grund: %2 @@ -1027,178 +1015,164 @@ '%1' wurde von der Übertragungsliste entfernt. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Herunterladen von '%1' - bitte warten ... - Torrent Export: torrent is invalid, skipping... - Torrent-Export: Ungültiger Torrent - wird verworfen ... - - - + DHT support [ON] DHT-Unterstützung [EIN] - + DHT support [OFF]. Reason: %1 DHT-Unterstützung [AUS]. Grund: %1 - + DHT support [OFF] DHT-Unterstützung [AUS] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent versucht auf allen beliebigen Ports zu lauschen: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2 - - - + The network interface defined is invalid: %1 Das angegebene Netzwerkinterface ist ungültig: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent versucht auf Interface %1 Port %2 zu lauschen - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent konnte auf die zu lauschende lokale Adresse %1 nicht finden - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2. {1.?} + qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2. - + Tracker '%1' was added to torrent '%2' Tracker '%1' wurde dem Torrent '%2' hinzugefügt - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' wurde vom Torrent '%2' entfernt - + URL seed '%1' was added to torrent '%2' URL Seed '%1' wurde dem Torrent '%2' hinzugefügt - + URL seed '%1' was removed from torrent '%2' URL Seed '%1' wurde vom Torrent '%2' entfernt - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Konnte Torrent %1 nicht fortsetzen. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Der IP-Filter wurde erfolgreich analysiert. Es wurden %1 Regeln angewendet. - + Error: Failed to parse the provided IP filter. Fehler: IP-Filter konnte nicht analysiert werden. - + Couldn't add torrent. Reason: %1 Konnte den Torrent nicht hinzufügen. Grund: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' fortgesetzt. (Schnelles Fortsetzen) - + '%1' added to download list. 'torrent name' was added to download list. '%1' der Downloadliste hinzugefügt. - + An I/O error occurred, '%1' paused. %2 Ein I/O Fehler ist aufgetreten, '%1' angehalten. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Fehler beim Portmapping, Meldung: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Portmapping erfolgreich, Meldung: %1 - + due to IP filter. this peer was blocked due to ip filter. wegen IP-Filter. - + due to port filter. this peer was blocked due to port filter. wegen Port-Filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. auf Grund von Beschränkungen für den gemischten i2p-Modus. - + because it has a low port. this peer was blocked because it has a low port. weil der Port niedrig ist. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent lauscht erfolgreich auf Interface %1 Port %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4. {1 ?} {2/%3.?} + qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Externe IP: %1 @@ -1212,12 +1186,12 @@ Konnte den Torrent '%1' nicht verschieben. Grund: %2 - + File sizes mismatch for torrent '%1', pausing it. Dateigrößen des Torrent '%1' stimmen nicht überein, wird angehalten. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Fortsetzungsdaten des Torrent '%1' wurden zurückgewiesen. Grund: '%2'. Prüfe erneut ... @@ -1242,7 +1216,7 @@ Wert - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Gängige Schlüssel für Cookies sind: '%1', '%2'. @@ -1310,12 +1284,12 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. FeedListWidget - + RSS feeds RSS-Feeds - + Unread Ungelesen @@ -1412,10 +1386,6 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Only one link per line Nur ein Link pro Zeile - - Download local torrent - Lokalen Torrent herunterladen - Download @@ -1589,20 +1559,30 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Save files to location: - Datei(en) hierhin speichern: + Datei(en) hierhin speichern: Label: - Label: + Label: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Heruntergeladen @@ -1615,7 +1595,7 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Upload local torrent - + Lade lokalen Torrent hoch @@ -1973,10 +1953,6 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. &About &Über - - Exit - Beenden - &Pause @@ -2007,22 +1983,6 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. E&xit &Beenden - - Options - Optionen - - - Resume - Fortsetzen - - - Pause - Pausieren - - - Delete - Löschen - Open URL @@ -2040,19 +2000,15 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. - + Show Zeige - + Check for program updates Auf Programm-Updates prüfen - - Lock qBittorrent - qBittorrent sperren - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. - + Execution Log Ausführungs-Log - + Clear the password Passwort löschen - + Filter torrent list... Torrent-Liste filtern ... - + &Set Password Passwort fe&stlegen - + &Clear Password Passwort lös&chen - + Transfers Übertragungen - + Torrent file association Verknüpfung mit Torrent-Dateien - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent ist nicht die Standardapplikation um Torrent-Dateien oder Magnet-Links zu öffnen. Sollen Torrent-Dateien und Magnet-Links immer mit qBittorent geöffnet werden? - + Icons Only Nur Icons - + Text Only Nur Text - + Text Alongside Icons Text neben Symbolen - + Text Under Icons Text unter Symbolen - + Follow System Style Systemstil folgen - - - + + + UI lock password Passwort um den qBittorrent-Bildschirm zu sperren - - - + + + Please type the UI lock password: Bitte das Passwort für den gesperrten qBittorrent-Bildschirm eingeben: - + The password should contain at least 3 characters Das Passwort sollte aus mindestens drei Zeichen bestehen - + Password update Passwort aktualisieren - + The UI lock password has been successfully updated Das Passwort zum Sperren des qBittorrent-Bildschirms wurde erfolgreich aktualisiert - + Are you sure you want to clear the password? Soll das Passwort wirklich gelöscht werden? - + Search Suche - + Transfers (%1) Übertragungen (%1) - + Error Fehler - + Failed to add torrent: %1 Konnte Torrent nicht hinzufügen: %1 - + Download completion Download beendet - + I/O Error i.e: Input/Output Error E/A-Fehler - + Recursive download confirmation Rekursiven Download bestätigen - + Yes Ja - + No Nein - + Never Niemals - + Global Upload Speed Limit Globale Begrenzung der Uploadgeschwindigkeit - + Global Download Speed Limit Globale Begrenzung der Downloadgeschwindigkeit - + &No &Nein - + &Yes &Ja - + &Always Yes &Immer ja - + Python found in %1 Python in %1 gefunden - + Old Python Interpreter Veralteter Python-Interpreter - + qBittorrent Update Available Aktualisierung von qBittorrent verfügbar - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Neueste Version von qBittorrent wird bereits verwendet. - + Undetermined Python version Unbekannte Version von Python - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' wurde heruntergeladen. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Sollen Torrent-Dateien und Magnet-Links immer mit qBittorent geöffnet werden? - + The torrent '%1' contains torrent files, do you want to proceed with their download? Der Torrent '%1' enthält weitere Torrent Dateien. Sollen diese auch heruntergeladen werden? - + Couldn't download file at URL '%1', reason: %2. Konnte Datei von URL '%1' nicht laden. Grund: '%2'. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Die installierte Version von Python ist %1 und ist veraltet. Für die Funktion der Suchmaschine muss mindestens auf die Version 2.7.0 oder 3.3.0 aktualisiert werden. - + Couldn't determine your Python version (%1). Search engine disabled. Konnte Python-Version nicht feststellen (%1). Suchmaschine wurde deaktiviert. - - + + Missing Python Interpreter Fehlender Python-Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python wird benötigt um die Suchmaschine benutzen zu können, scheint aber nicht installiert zu sein. Soll Python jetzt installiert werden? - + Python is required to use the search engine but it does not seem to be installed. Python wird benötigt um die Suchmaschine benutzen zu können, scheint aber nicht installiert zu sein. - A new version is available. Update to version %1? - Eine neue Version ist verfügbar. + Eine neue Version ist verfügbar. Auf Version %1 aktualisieren? - + No updates available. You are already using the latest version. Es ist keine Aktualisierung verfügbar da bereits die neueste Version verwendet wird. - + &Check for Updates Auf Aktualisierungen prüfen - + Checking for Updates... Prüfe auf Aktualisierungen ... - + Already checking for program updates in the background Überprüfung auf Programm-Aktualisierungen läuft bereits im Hintergrund - + Python found in '%1' Python in '%1' gefunden - + Download error Downloadfehler - + Python setup could not be downloaded, reason: %1. Please install it manually. Python konnte nicht heruntergeladen werden; Grund: %1. Bitte manuell installieren. - - + + Invalid password Ungültiges Passwort - - + + RSS (%1) RSS (%1) - + URL download error Fehler beim Laden der URL - + The password is invalid Das Passwort ist ungültig - - + + DL speed: %1 e.g: Download speed: 10 KiB/s DL-Geschw.: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s UL-Geschw.: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, U: %2] qBittorrent %3 - + Hide Ausblenden - + Exiting qBittorrent Beende qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Zur Zeit werden Dateien übertragen. Soll qBittorrent wirklich beendet werden? - + Open Torrent Files Öffne Torrent-Dateien - + Torrent Files Torrent-Dateien - + Options were saved successfully. Einstellungen wurden erfolgreich gespeichert. @@ -2443,17 +2404,17 @@ Soll qBittorrent wirklich beendet werden? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Der dynamische DNS-Eintrag wurde erfolgreich aktualisiert. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dynamischer DNS Fehler: Der Dienst ist vorübergehend nicht erreichbar. Ein neuer Versuch wird in 30 Minuten gestartet. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dynamischer DNS Fehler: Der Hostname existiert nicht für den angegebenen Account. @@ -2463,32 +2424,32 @@ Soll qBittorrent wirklich beendet werden? Dynamischer DNS Fehler: Ungültiger Benutzername/Passwort. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dynamischer DNS Fehler: qBittorrent wurde durch den Dienst geblacklisted. Bitte melden sie einen Bug unter http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dynamischer DNS Fehler: Der Dienst hat %1 zurückgegeben. Bitte diesen Bug unter http://bugs.qbittorrent.org melden. - + Dynamic DNS error: Your username was blocked due to abuse. Dynamischer DNS Fehler: Der Benutzername wurde wegen Missbrauch geblockt. - + Dynamic DNS error: supplied domain name is invalid. Dynamischer DNS Fehler: Angegebener Domainname ist ungültig. - + Dynamic DNS error: supplied username is too short. Dynamischer DNS Fehler: Angegebener Benutzername ist zu kurz. - + Dynamic DNS error: supplied password is too short. Dynamischer DNS Fehler: Angegebenes Passwort ist zu kurz. @@ -2515,154 +2476,161 @@ Soll qBittorrent wirklich beendet werden? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP-Datenbank geladen. Typ: %1. Erstellungsdatum: %2. - + Couldn't load GeoIP database. Reason: %1 Konnte GeoIP-Datenbank nicht laden. Grund: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/V - Asia/Pacific Region - Asien/Pazifikraum + Asien/Pazifikraum + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Vereinigte Arabische Emirate - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua und Barbuda - + Anguilla Anguilla - + Albania Albanien - + Armenia Armenien - Netherlands Antilles - Niederländische Antillen + Niederländische Antillen - + Angola Angola - + Antarctica Antarktika - + Argentina Argentinien - + American Samoa Amerikanisch-Samoa - + Austria Österreich - + Australia Australien - + Aruba Aruba - + Azerbaijan Aserbaidschan - + Bosnia and Herzegovina Bosnien und Herzegowina - + Barbados Barbados - + Bangladesh Bangladesch - + Belgium Belgien - + Burkina Faso Burkina Faso - + Bulgaria Bulgarien - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Soll qBittorrent wirklich beendet werden? Brunei - Bolivia - Bolivien + Bolivien - + Brazil Brasilien - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Bouvetinsel - + Botswana Botswana - + Belarus Weißrussland - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kokos-Inseln (Keeling-Inseln) - + Congo, The Democratic Republic of the Kongo - + Central African Republic Zentralafrikanische Republik - + Congo Kongo - + Switzerland Schweiz - Cote D'Ivoire - Elfenbeinküste + Elfenbeinküste - + Cook Islands Cookinseln - + Chile Chile - + Cameroon Kamerun - + China China - + Colombia Kolumbien - + Costa Rica Costa Rica - + Cuba Kuba - + Cape Verde Kap Verde - + + Curacao + + + + Christmas Island Weihnachtsinsel - + Cyprus Zypern - + Czech Republic Tschechien - + Germany Deutschland - + Djibouti Dschibuti - + Denmark Dänemark - + Dominica Dominica - + Dominican Republic Dominikanische Republik - + Algeria Algerien - + Ecuador Ecuador - + Estonia Estland - + Egypt Ägypten - + Western Sahara Westsahara - + Eritrea Eritrea - + Spain Spanien - + Ethiopia Äthiopien - + Finland Finnland - + Fiji Fidschi - + Falkland Islands (Malvinas) Falkland-Inseln - + Micronesia, Federated States of Mikronesien - + Faroe Islands Färöer-Inseln - + France Frankreich - France, Metropolitan - Metropolitan-Frankreich + Metropolitan-Frankreich - + Gabon Gabun - + United Kingdom Vereinigtes Königreich - + Grenada Grenada - + Georgia Georgien - + French Guiana Französisch-Guayana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Grönland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Äquatorialguinea - + Greece Griechenland - + South Georgia and the South Sandwich Islands Südgeorgien und die Südlichen Sandwichinseln - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Heard und die McDonaldinseln - + Honduras Honduras - + Croatia Kroatien - + Haiti Haiti - + Hungary Ungarn - + Indonesia Indonesien - + Ireland Irland - + Israel Israel - + India Indien - + British Indian Ocean Territory Das Britische Territorium im Indischen Ozean - + Iraq Irak - + Iran, Islamic Republic of Iran, Islamische Republik - + Iceland Island - + Italy Italien - + Jamaica Jamaika - + Jordan Jordanien - + Japan Japan - + Kenya Kenia - + Kyrgyzstan Kirgisistan - + Cambodia Kambodscha - + Kiribati Kiribati - + Comoros Komoren - + Saint Kitts and Nevis St. Kitts und Nevis - + Korea, Democratic People's Republic of Korea, Demokratische Volksrepublik - + Korea, Republic of Korea, Republik - + Kuwait Kuwait - + Cayman Islands Kaimaninseln - + Kazakhstan Kasachstan - + Lao People's Democratic Republic Laos - + Lebanon Libanon - + Saint Lucia St. Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litauen - + Luxembourg Luxemburg - + Latvia Lettland - Libyan Arab Jamahiriya - Libyen + Libyen - + Morocco Marokko - + Monaco Monaco - + Moldova, Republic of Moldawien, Republik - + Madagascar Madagaskar - + Marshall Islands Marshallinseln - Macedonia - Mazedonien + Mazedonien - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolei - Macau - Macau + Macau - + Northern Mariana Islands Nördliche Marianen - + Martinique Martinique - + Mauritania Mauretanien - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Malediven - + Malawi Malawi - + Mexico Mexiko - + Malaysia Malaysia - + Mozambique Mosambik - + Namibia Namibia - + New Caledonia Neukaledonien - + Niger Niger - + Norfolk Island Norfolkinsel - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Niederlande - + Norway Norwegen - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Neuseeland - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Französisch-Polynesien - + Papua New Guinea Papua-Neuguinea - + Philippines Philippinen - + Pakistan Pakistan - + Poland Polen - + Saint Pierre and Miquelon Saint-Pierre und Miquelon - Pitcairn Islands - Pitcairninseln + Pitcairninseln - + Puerto Rico Puerto Rico - Palestinian Territory - Palästinensische Autonomiegebiete + Palästinensische Autonomiegebiete - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion La Réunion - + Romania Rumänien - + Russian Federation Russische Föderation - + Rwanda Ruanda - + Saudi Arabia Saudi-Arabien - + Solomon Islands Salomonen - + Seychelles Seychellen - + Sudan Sudan - + Sweden Schweden - + Singapore Singapur - Saint Helena - St. Helena + St. Helena - + Slovenia Slowenien - + Svalbard and Jan Mayen Spitzbergen (Inselgruppe) - + Slovakia Slowakei - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe São Tomé und Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Arabische Republik Syrien - + Swaziland Swasiland - + Turks and Caicos Islands Turks- und Caicosinseln - + Chad Tschad - + French Southern Territories Französische Süd- und Antarktisgebiete - + Togo Togo - + Thailand Thailand - + Tajikistan Tadschikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunesien - + Tonga Tonga - + Timor-Leste Osttimor - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Türkei - + Trinidad and Tobago Trinidad und Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tansania - + Ukraine Ukraine - + Uganda Uganda - + United States Minor Outlying Islands Kleinere Inselbesitzungen der Vereinigten Staaten - + United States Vereinigte Staaten - + Uruguay Uruguay - + Uzbekistan Usbekistan - + Holy See (Vatican City State) Heiliger Stuhl (Staat der Vatikanstadt) - + Saint Vincent and the Grenadines St. Vincent und die Grenadinen - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Britische Jungferninseln - + Virgin Islands, U.S. Amerikanische Jungferninseln - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis und Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Serbien - + South Africa Südafrika - + Zambia Sambia - + Montenegro Montenegro - + Zimbabwe Simbabwe - Anonymous Proxy - Anonymer Proxy + Anonymer Proxy - Satellite Provider - Satelliten-Provider + Satelliten-Provider - Other - Andere + Andere - + Aland Islands Åland - + Guernsey Britische Kanalinseln - + Isle of Man Insel Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - St. Martin + St. Martin - + Could not uncompress GeoIP database file. Konnte GeoIP-Datenbank nicht entpacken. - + Couldn't save downloaded GeoIP database file. Konnte die heruntergeladene GeoIP-Datenbank nicht speichern. - + Successfully updated GeoIP database. Die GeoIP-Datenbank wurde erfolgreich aktualisiert. - + Couldn't download GeoIP database file. Reason: %1 Konnte GeoIP-Datenbank nicht herunterladen. Grund: %1 @@ -3838,72 +3856,72 @@ Soll qBittorrent wirklich beendet werden? interested(local) and choked(peer) - Interessiert (Lokal) und verstopft (Peer) + Interessiert (Lokal) und verstopft (Peer) interested(local) and unchoked(peer) - Interessiert (Lokal) und frei verfügbar (Peer) + Interessiert (Lokal) und frei verfügbar (Peer) interested(peer) and choked(local) - Interessiert (Peer) und verstopft (Lokal) + Interessiert (Peer) und verstopft (Lokal) interested(peer) and unchoked(local) - Interessiert (Peer) und frei verfügbar (Lokal) + Interessiert (Peer) und frei verfügbar (Lokal) optimistic unchoke - Optimistische Freigabe + Optimistische Freigabe peer snubbed - Peer abgewiesen + Peer abgewiesen incoming connection - eingehende Verbindung + eingehende Verbindung not interested(local) and unchoked(peer) - Nicht interessiert (Lokal) und frei verfügbar (Peer) + Nicht interessiert (Lokal) und frei verfügbar (Peer) not interested(peer) and unchoked(local) - Nicht interessiert (Peer) und frei verfügbar (Lokal) + Nicht interessiert (Peer) und frei verfügbar (Lokal) peer from PEX - Peer von PEX + Peer von PEX peer from DHT - Peer von DHT + Peer von DHT encrypted traffic - verschlüsselter Datenverkehr + verschlüsselter Datenverkehr encrypted handshake - verschlüsselter Handshake + verschlüsselter Handshake peer from LSD - Peer von LSD + Peer von LSD @@ -3971,123 +3989,73 @@ Soll qBittorrent wirklich beendet werden? Relevanz - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Füge einen neuen Peer hinzu ... - + Copy selected Ausgewählte kopieren - - + + Ban peer permanently Peer dauerhaft bannen - + Manually adding peer '%1'... Peer '%1' von Hand hinzufügen ... - + The peer '%1' could not be added to this torrent. Der Peer '%1' konnte diesem Torrent nicht hinzugefügt werden. - + Manually banning peer '%1'... Peer '%1' von Hand bannen ... - - + + Peer addition Peer hinzufügen - + Some peers could not be added. Check the Log for details. Einige Peers konnten nicht hinzugefügt werden. Bitte das Log für weitere Details überprüfen. - + The peers were added to this torrent. Die Peers wurden diesem Torrent hinzugefügt. - + Are you sure you want to ban permanently the selected peers? Sollen die ausgewählten Peers wirklich dauerhaft gebannt werden? - + &Yes &Ja - + &No &Nein - - interested(local) and choked(peer) - Interessiert (Lokal) und verstopft (Peer) - - - interested(local) and unchoked(peer) - Interessiert (Lokal) und frei verfügbar (Peer) - - - interested(peer) and choked(local) - Interessiert (Peer) und verstopft (Lokal) - - - interested(peer) and unchoked(local) - Interessiert (Peer) und frei verfügbar (Lokal) - - - optimistic unchoke - Optimistische Freigabe - - - peer snubbed - Peer abgewiesen - - - incoming connection - eingehende Verbindung - - - not interested(local) and unchoked(peer) - Nicht interessiert (Lokal) und frei verfügbar (Peer) - - - not interested(peer) and unchoked(local) - Nicht interessiert (Peer) und frei verfügbar (Lokal) - - - peer from PEX - Peer von PEX - - - peer from DHT - Peer von DHT - - - encrypted traffic - verschlüsselter Datenverkehr - - - encrypted handshake - verschlüsselter Handshake - - - peer from LSD - Peer von LSD - PeersAdditionDlg @@ -4125,6 +4093,204 @@ Soll qBittorrent wirklich beendet werden? Blau: Verfügbare Teile + + PluginSelectDlg + + + Search plugins + Suchplugins + + + + Installed search plugins: + + + + + Name + + + + + Version + Version + + + + Url + URL + + + + + Enabled + Aktiviert + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Intalliere eine Neue + + + + Check for updates + Auf Updates prüfen + + + + Close + Schließen + + + + Uninstall + Deinstallieren + + + + + + Yes + Ja + + + + + + + No + Nein + + + + Uninstall warning + Deinstallations-Warnung + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Einige Plugins konnten nicht deinstalliert werden, da sie ein fester Bestandteil von qBittorrent sind. +Nur Plugins, die auch selber installiert wurden können auch wieder entfernt werden. +Die Plugins wurden jedoch deaktiviert. + + + + Uninstall success + Deinstallation erfolgreich + + + + All selected plugins were uninstalled successfully + Alle ausgewählten Plugins wurden erfolgreich deinstalliert + + + + + New search engine plugin URL + Neue Suchmaschinen-Plugin-URL + + + + + URL: + URL: + + + + Invalid link + Ungültiger Link + + + + The link doesn't seem to point to a search engine plugin. + Der Link scheint auf kein Suchmaschinen-Plugin zu weisen. + + + + Select search plugins + Wähle Suchplugin + + + + qBittorrent search plugin + qBittorrent Suchplugin + + + + + + Search plugin update + Such-Plugin update + + + + All your plugins are already up to date. + Alle Plugins sind auf dem neuesten Stand. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Suchplugin installieren + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Plugin Quelle + + + + Search plugin source: + Such Plugin Quelle: + + + + Local file + Lokale Datei + + + + Web link + Web Link + + Preferences @@ -4181,89 +4347,89 @@ Soll qBittorrent wirklich beendet werden? .!qB Dateinamenerweiterung für unvollständige Dateien verwenden - + Copy .torrent files to: .torrent Dateien kopieren nach: - + Connections Limits Verbindungsbeschränkung - + Proxy Server Proxy-Server - + Global Rate Limits Globale Verhältnisbegrenzung - + Apply rate limit to transport overhead Verhältnisbegrenzung auf Transport Overhead anwenden - + Schedule the use of alternative rate limits Benutzung von alternativen Verhältnisbegrenzungen verwenden - + From: from (time1 to time2) Von: - + To: time1 to time2 An: - + Enable Local Peer Discovery to find more peers - Lokale Peer Auffindung (LPD) aktivieren um mehr Peers zu finden + Lokale Peer Suche (LSD) aktivieren um mehr Peers zu finden - + Encryption mode: Verschlüsselungsmodus: - + Prefer encryption Verschlüsselung bevorzugen - + Require encryption Verschlüsselung verlangen - + Disable encryption Verschlüsselung deaktivieren - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Weitere Informationen in englisch</a>) - + Maximum active downloads: Maximal aktive Downloads: - + Maximum active uploads: Maximal aktive Uploads: - + Maximum active torrents: Maximal aktive Torrents: @@ -4288,82 +4454,82 @@ Soll qBittorrent wirklich beendet werden? Zeige Inhalt des Torrent und einige Optionen - + Run external program on torrent completion Externes Programm ausführen wenn Torrent vollständig ist - + Port used for incoming connections: Port für eingehende Verbindungen: - + Random Zufällig - + Global maximum number of connections: Maximale globale Anzahl der Verbindungen: - + Maximum number of connections per torrent: Maximale Anzahl der Verbindungen pro Torrent: - + Maximum number of upload slots per torrent: Maximale Anzahl Upload-Slots pro Torrent: - - + + Upload: Hochladen: - - + + Download: Herunterladen: - - - - + + + + KiB/s KiB/s - + Remove folder Verzeichnis entfernen - + Every day Jeden Tag - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Peers mit kompatiblen Bittorrent-Programmen austauschen (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Typ: @@ -4536,262 +4702,262 @@ Soll qBittorrent wirklich beendet werden? .torrent-Dateien aus diesem Verzeichnis automatisch hinzufügen: - + Add folder... Verzeichnis hinzufügen ... - + Copy .torrent files for finished downloads to: .torrent-Datei von fertiggestellten Torrents kopieren nach: - + Email notification upon download completion E-Mail Benachrichtigung wenn Download fertiggestellt ist - + Destination email: Empfängeradresse: - + SMTP server: SMTP Server: - + This server requires a secure connection (SSL) Dieser Server benötigt eine sichere Verbindung (SSL) - + Listening Port Port auf dem gelauscht wird - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP Portweiterleitung des Routers verwenden - + Use different port on each startup Bei jedem Anwendungsstart einen anderen Port verwenden - + Global maximum number of upload slots: Globale maximale Anzahl von Upload-Slots: - + Otherwise, the proxy server is only used for tracker connections Andererseits wird der Proxyserver nur für Tracker-Verbindungen verwendet - + Use proxy for peer connections Proxy für Peer-Verbindungen verwenden - + Disable connections not supported by proxies Deaktiviere Verbindungen die nicht von Proxys unterstützt werden - + Use proxy only for torrents Proxy nur für Torrents verwenden - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS-Feeds, Suchmaschinen, Software-Updates und alles Sonstige als Torrents selber und die damit verbundene Übertragungen (z.B. Peeraustausch) werden eine direkte Verbindung verwenden - + Info: The password is saved unencrypted Info: Das Passwort wird unverschlüsselt gespeichert! - + IP Filtering IP-Filterung - + Reload the filter Filter neu laden - + Apply to trackers Zu Trackern hinzufügen - + Apply rate limit to peers on LAN Verhältnisbegrenzung auch für Peers im LAN verwenden - + When: Wann: - + Weekdays Wochentage - + Weekends Wochenenden - + Rate Limits Settings Einstellungen für Verhältnisbegrenzungen - + Enable µTP protocol µTP-Protokoll aktivieren - + Apply rate limit to µTP protocol Verhältnisbegrenzung für das µTP-Protokoll verwenden - + Privacy Privatsphäre - + Enable DHT (decentralized network) to find more peers Dezentralisiertes Netzwerk (DHT) aktivieren um mehr Peers zu finden - + Enable Peer Exchange (PeX) to find more peers Peer-Austausch (PeX) aktivieren um mehr Peers zu finden - + Look for peers on your local network Nach Peers im lokalen Netzwek suchen - + Enable when using a proxy or a VPN connection Aktiviere wenn ein Proxy oder ein VPN in Benutzung ist - + Enable anonymous mode Anonymen Modus aktivieren - + Do not count slow torrents in these limits Bei diesen Begrenzungen langsame Torrents nicht mit einbeziehen - + Seed torrents until their ratio reaches Torrents seeden bis dieses Verhältnis erreicht wurde - + then dann - + Pause them Anhalten - + Remove them Entfernen - + Automatically add these trackers to new downloads: Diese Tracker automatisch zu neuen Downloads hinzufügen: - + Use UPnP / NAT-PMP to forward the port from my router UPnP / NAT-PMP um den Port des Routers weiterzuleiten - + Use HTTPS instead of HTTP HTTPS anstatt von HTTP verwenden - + Import SSL Certificate SSL-Zertifikat importieren - + Import SSL Key SSL-Schlüssel importieren - + Certificate: Zertifikat: - + Alternative Rate Limits Alternative Verhältnisbegrenzungen - + Key: Schlüssel: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informationen über Zertifikate</a> - + Bypass authentication for localhost Authentifizierung für Localhost umgehen - + Update my dynamic domain name Dynamischen Domainnamen aktualisieren - + Service: Dienst: - + Register Registrieren - + Domain name: Domainname: - + (None) (Keine) @@ -4801,61 +4967,61 @@ Soll qBittorrent wirklich beendet werden? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Authentifizierung - - - - + + + + Username: Benutzername: - - - - + + + + Password: Passwort: - + Torrent Queueing Warteschlange für Torrents - + Share Ratio Limiting Shareverhältnis-Begrenzung - + Enable Web User Interface (Remote control) Webinterface (Fernbedienung) einschalten - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Pfad zur Filterdatei (.dat, .p2p, p2b): @@ -5062,10 +5228,6 @@ Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwe Comment: Kommentar: - - Torrent content: - Inhalt des Torrents: - Select All @@ -5588,28 +5750,28 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Unbekannter Fehler - - + + Upgrade Aktualisieren - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Es wurde von einer älteren Version aktualisiert die eine andere Speicherart verwendete, daher muss die Speicherungsart aktualisiert werden. Es kann aber danach keine ältere Version als 3.3.0 mehr verwendet werden. Soll jetzt wirklich aktualisiert werden? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Es wurde von einer älteren Version aktualisiert die eine andere Speicherart verwendete, daher muss die Speicherungsart aktualisiert werden. Es kann aber danach keine ältere Version als 3.3.0 mehr verwendet werden. - + Couldn't migrate torrent with hash: %1 Konnte den Torrent mit hash %1 nicht migrieren. - + Couldn't migrate torrent. Invalid fastresume file name: %1 Konnte den Torrent nicht migrieren. Ungültiger Name der Fortsetzungsdatei: %1 @@ -5720,17 +5882,17 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw RSSImp - + Stream URL: Stream URL: - + Please type a RSS stream URL Bitte eine RSS Stream Adresse eingeben - + This RSS feed is already in the list. Dieser RSS-Feed ist bereits in der Liste. @@ -5750,75 +5912,92 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Neues Verzeichnis - + Deletion confirmation Löschbestätigung - + Are you sure you want to delete the selected RSS feeds? Sind Sie sicher, dass Sie die ausgewählten RSS-Feeds löschen möchten? - + Please choose a new name for this RSS feed Bitte einen neuen Namen für diesen RSS-Feed wählen - + New feed name: Neuer Feed-Name: - + Name already in use Name wird bereits verwendet - + This name is already used by another item, please choose another one. Dieser Name wird bereits von einem anderen Eintrag verwendet - bitte einen anderen Namen wählen. - + Date: Datum: - + Author: Autor: - + Unread Ungelesen - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... + Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Lade Torrent '%1' automatisch von RSS-Feed '%2' ... + Lade Torrent '%1' automatisch von RSS-Feed '%2' ... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Lade Torrent '%1' automatisch von RSS-Feed '%2' ... RssParser - Failed to open downloaded RSS file. - Fehler beim Öffnen der geladenen RSS-Datei. + Fehler beim Öffnen der geladenen RSS-Datei. - Invalid RSS feed at '%1'. - Ungültiger RSS-Feed unter '%1'. + Ungültiger RSS-Feed unter '%1'. @@ -5844,168 +6023,249 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Maximale Anzahl der Artikel pro Feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Durchsuchen ... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Überwachtes Verzeichnis - - Download here - Hier herunterladen + + Save Files to + + + + Download here + Hier herunterladen - Download path - Downloadpfad + Downloadpfad SearchCategories - All categories - Alle Kategorien + Alle Kategorien - Movies - Filme + Filme - TV shows - TV-Sendungen + TV-Sendungen - Music - Musik + Musik - Games - Spiele + Spiele - Anime - Anime + Anime - Software - Software + Software - Pictures - Bilder + Bilder - Books - Bücher + Bücher SearchEngine - - - Search - Suche + Suche - Please install Python to use the Search Engine. - Python bitte installieren um die Suchmaschine benützen zu können. + Python bitte installieren um die Suchmaschine benützen zu können. - Empty search pattern - Leere Suchanfrage + Leere Suchanfrage - Please type a search pattern first - Bitte zuerst eine Suchanfrage eingeben + Bitte zuerst eine Suchanfrage eingeben - Searching... - Suche ... + Suche ... - Stop - Stopp + Stopp - - Search Engine - Suchmaschine + Suchmaschine - - Search has finished - Suche abgeschlossen + Suche abgeschlossen - An error occurred during search... - Während der Suche ist ein Fehler aufgetreten ... + Während der Suche ist ein Fehler aufgetreten ... - - Search aborted - Suche abgebrochen + Suche abgebrochen - All enabled - Alle aktiviert + Alle aktiviert - All engines - Alle Suchmaschinen + Alle Suchmaschinen - - Multiple... - Mehrfach ... + Mehrfach ... - - Results <i>(%1)</i>: i.e: Search results - Resultate <i>(%1)</i>: + Resultate <i>(%1)</i>: - Search returned no results - Suche lieferte keine Ergebnisse + Suche lieferte keine Ergebnisse - Stopped - Angehalten + Angehalten + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Alle Kategorien + + + + Movies + Filme + + + + TV shows + TV-Sendungen + + + + Music + Musik + + + + Games + Spiele + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Bilder + + + + Books + Bücher SearchListDelegate - - + + Unknown Unbekannt @@ -6013,35 +6273,160 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw SearchTab - + Name i.e: file name Dateiname - + Size i.e: file size Dateigröße - + Seeders i.e: Number of full sources Seeder - + Leechers i.e: Number of partial sources Leecher - + Search engine Suchmaschine + + SearchWidget + + + + + + + Search + Suche + + + + Status: + Status: + + + + + Stopped + Angehalten + + + + Download + + + + + Go to description page + Zur Beschreibungsseite wechseln + + + + Copy description page URL + Kopiere Beschreibungsseiten-URL + + + + Search plugins... + + + + + All enabled + Alle aktiviert + + + + All plugins + + + + + + Multiple... + Mehrfach ... + + + + + + Search Engine + Suchmaschine + + + + Please install Python to use the Search Engine. + Python bitte installieren um die Suchmaschine benützen zu können. + + + + Empty search pattern + Leere Suchanfrage + + + + Please type a search pattern first + Bitte zuerst eine Suchanfrage eingeben + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultate <i>(%1)</i>: + + + + Searching... + Suche ... + + + + Stop + Stopp + + + + + Search has finished + Suche abgeschlossen + + + + + Search aborted + Suche abgebrochen + + + + Search returned no results + Suche lieferte keine Ergebnisse + + + + Search has failed + + + + + An error occurred during search... + Während der Suche ist ein Fehler aufgetreten ... + + ShutdownConfirmDlg @@ -6486,24 +6871,28 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw TorrentContentModel - + Name Name - + Size Größe - + Progress Fortschritt - + + Download Priority + + + Priority - Priorität + Priorität @@ -6855,38 +7244,38 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Warnung (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Konnte favicon von URL '%1' nicht entschlüsseln. Versuche favicon im PNG-Format herunterzuladen. - + Couldn't decode favicon for URL '%1'. Konnte favicon von URL '%1' nicht entschlüsseln. - + Couldn't download favicon for URL '%1'. Reason: %2 Konnte favicon von URL '%1' nicht laden. Grund: '%2' - + Resume torrents Torrents fortsetzen - + Pause torrents Torrents pausieren - + Delete torrents Torrents löschen - - + + All (%1) this is for the tracker filter Alle (%1) @@ -7154,17 +7543,17 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw TransferListFiltersWidget - + Status Status - + Labels Labels - + Trackers Tracker @@ -7703,207 +8092,156 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw engineSelect - Search plugins - Suchplugins + Suchplugins - Installed search engines: - Installierte Suchmaschinen: + Installierte Suchmaschinen: - Name - Name + Name - Version - Version + Version - Url - URL + URL - - Enabled - Aktiviert + Aktiviert - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Intalliere eine Neue + Intalliere eine Neue - Check for updates - Auf Updates prüfen + Auf Updates prüfen - Close - Schließen + Schließen - Uninstall - Deinstallieren + Deinstallieren engineSelectDlg - Uninstall warning - Deinstallations-Warnung + Deinstallations-Warnung - Uninstall success - Deinstallation erfolgreich + Deinstallation erfolgreich - Invalid plugin - Ungültiges Plugin + Ungültiges Plugin - The search engine plugin is invalid, please contact the author. - Das Suchmaschinen-Plugin ist ungültig - bitte den Author kontaktieren. + Das Suchmaschinen-Plugin ist ungültig - bitte den Author kontaktieren. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Eine neuere Version des Suchmaschinen-Plugins '%1' ist bereits installiert. + Eine neuere Version des Suchmaschinen-Plugins '%1' ist bereits installiert. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' Suchmaschinen-Plugin konnte nicht aktualisiert werden - behalte alte Version. + '%1' Suchmaschinen-Plugin konnte nicht aktualisiert werden - behalte alte Version. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' Suchmaschinen-Plugin konnte nicht installiert werden. + '%1' Suchmaschinen-Plugin konnte nicht installiert werden. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' Suchmaschinen-Plugin wurde erfolgreich aktualisiert. + '%1' Suchmaschinen-Plugin wurde erfolgreich aktualisiert. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' Suchmaschinen-Plugin wurde erfolgreich installiert. + '%1' Suchmaschinen-Plugin wurde erfolgreich installiert. - The link doesn't seem to point to a search engine plugin. - Der Link scheint auf kein Suchmaschinen-Plugin zu weisen. + Der Link scheint auf kein Suchmaschinen-Plugin zu weisen. - Select search plugins - Wähle Suchplugin + Wähle Suchplugin - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Installation des Suchmaschinen-Plugins '%1' fehlgeschlagen. + Installation des Suchmaschinen-Plugins '%1' fehlgeschlagen. - - - - - Search plugin install - Suchplugin installieren + Suchplugin installieren - - - Yes - Ja + Ja - - - - No - Nein + Nein - qBittorrent search plugin - qBittorrent Suchplugin + qBittorrent Suchplugin - - - - Search plugin update - Such-Plugin update + Such-Plugin update - - Sorry, update server is temporarily unavailable. - Update-Server vorübergehend nicht erreichbar. + Update-Server vorübergehend nicht erreichbar. - All your plugins are already up to date. - Alle Plugins sind auf dem neuesten Stand. + Alle Plugins sind auf dem neuesten Stand. - All selected plugins were uninstalled successfully - Alle ausgewählten Plugins wurden erfolgreich deinstalliert + Alle ausgewählten Plugins wurden erfolgreich deinstalliert - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Einige Plugins konnten nicht deinstalliert werden, da sie ein fester Bestandteil von qBittorrent sind. + Einige Plugins konnten nicht deinstalliert werden, da sie ein fester Bestandteil von qBittorrent sind. Nur Plugins, die auch selber installiert wurden können auch wieder entfernt werden. Die Plugins wurden jedoch deaktiviert. - Invalid link - Ungültiger Link + Ungültiger Link - - New search engine plugin URL - Neue Suchmaschinen-Plugin-URL + Neue Suchmaschinen-Plugin-URL - - URL: - URL: + URL: @@ -8033,169 +8371,169 @@ Die Plugins wurden jedoch deaktiviert. options_imp - - + + Choose export directory Export-Verzeichnis wählen - - - - + + + + Choose a save directory Verzeichnis zum Speichern auswählen - + Add directory to scan Verzeichnis zum Scannen hinzufügen - + Supported parameters (case sensitive): Unterstützte Parameter (Groß-/Kleinschreibung beachten): - + %N: Torrent name %N: Name des Torrent - + %L: Label %L: Label - + %F: Content path (same as root path for multifile torrent) %F: Inhaltspfad (gleich wie der Hauptpfad für Mehrdateien-Torrent) - + %R: Root path (first torrent subdirectory path) %R: Hauptpfad (erster Pfad für das Torrent-Unterverzeichnis) - + %D: Save path %D: Speicherpfad - + %C: Number of files %C: Anzahl der Dateien - + %Z: Torrent size (bytes) %Z: Größe des Torrent (in Bytes) - + %T: Current tracker %T: aktueller Tracker - + %I: Info hash %I: Info-Hash - + Folder is already being watched. Ordner wird bereits beobachtet. - + Folder does not exist. Verzeichnis existiert nicht. - + Folder is not readable. Verzeichnis kann nicht gelesen werden. - + Failure Fehler - + Failed to add Scan Folder '%1': %2 Konnte Scan-Verzeichnis '%1' nicht hinzufügen: %2 - - + + Filters Filter - - + + Choose an IP filter file IP-Filter-Datei wählen - + SSL Certificate SSL-Zertifikat - + SSL Key SSL-Schlüssel - + Parsing error Fehler beim Analysieren - + Failed to parse the provided IP filter Fehler beim Analysieren der IP-Filter - + Successfully refreshed Erfolgreich aktualisiert - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Der IP-Filter wurde erfolgreich analysiert. Es wurden %1 Regeln angewendet. - + Invalid key Ungültiger Schlüssel - + This is not a valid SSL key. Dies ist kein gültiger SSL-Schlüssel. - + Invalid certificate Ungültiges Zertifikat - + This is not a valid SSL certificate. Dies ist kein gültiges SSL-Zertifikat. - + The start time and the end time can't be the same. Die Startzeit und die Endzeit können nicht gleich sein. - + Time Error Zeitfehler @@ -8203,24 +8541,20 @@ Die Plugins wurden jedoch deaktiviert. pluginSourceDlg - Plugin source - Plugin Quelle + Plugin Quelle - Search plugin source: - Such Plugin Quelle: + Such Plugin Quelle: - Local file - Lokale Datei + Lokale Datei - Web link - Web Link + Web Link @@ -8249,40 +8583,32 @@ Die Plugins wurden jedoch deaktiviert. search_engine - - Search - Suche + Suche - Status: - Status: + Status: - Stopped - Angehalten + Angehalten - Download - Lade + Lade - Go to description page - Zur Beschreibungsseite wechseln + Zur Beschreibungsseite wechseln - Copy description page URL - Kopiere Beschreibungsseiten-URL + Kopiere Beschreibungsseiten-URL - Search engines... - Suchmaschinen ... + Suchmaschinen ... diff --git a/src/lang/qbittorrent_el.ts b/src/lang/qbittorrent_el.ts index 5ad73009b..adee92ac7 100644 --- a/src/lang/qbittorrent_el.ts +++ b/src/lang/qbittorrent_el.ts @@ -175,172 +175,172 @@ Να μην γίνει λήψη - - + + I/O Error Σφάλμα I/O - + The torrent file does not exist. Το αρχείο torrent δεν υπάρχει. - + Invalid torrent Μη έγκυρο torrent - + Failed to load the torrent: %1 Αποτυχία φόρτωσης του torrent: %1 - - + + Already in download list Ήδη στη λίστα λήψεων - + Free disk space: %1 - + Not Available This comment is unavailable Μη Διαθέσιμο - + Not Available This date is unavailable Μη Διαθέσιμο - + Not available Μη διαθέσιμο - + Invalid magnet link Μη έγκυρος magnet σύνδεσμος - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent Αδυναμία προσθήκης τόρεντ - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Αυτός ο magnet σύνδεσμος δεν αναγνωρίστηκε - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Σύνδεσμος magnet - + Retrieving metadata... Ανάκτηση μεταδεδομένων... - + Not Available This size is unavailable. Μη Διαθέσιμο - - - + + + Choose save path Επιλέξτε την τοποθεσία αποθήκευσης - + Rename the file Μετονομασία αρχείου - + New name: Νέο όνομα: - - + + The file could not be renamed Αυτό το αρχείο δεν ήταν δυνατό να μετονομαστεί - + This file name contains forbidden characters, please choose a different one. Αυτό το όνομα αρχείου περιέχει απαγορευμένους χαρακτήρες, παρακαλώ επιλέξτε ένα διαφορετικό. - - + + This name is already in use in this folder. Please use a different name. Αυτό το όνομα ήδη χρησιμοποιείται σε αυτόν τον φάκελο. Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. - + The folder could not be renamed Ο φάκελος δεν ήταν δυνατό να μετονομαστεί - + Rename... Μετονομασία... - + Priority Προτεραιότητα - + Invalid metadata - + Parsing metadata... Ανάλυση μεταδεδομένων... - + Metadata retrieval complete Ανάκτηση μεταδεδομένων ολοκληρώθηκε - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Επίλυση ονομάτων φορέων διασυνδέσεων - - Maximum number of half-open connections [0: Disabled] - Μέγιστος αριθμός μισάνοιχτων συνδέσεων [0: Απενεργοποιημένο] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Αντιστοιχεί άρθρα βασισμένα στο φίλτρο επεισοδίου. - + Example: Παράδειγμα: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match θα αντιστοιχίσει τα 2, 5, 8 έως 15, 30 και μετέπειτα επεισόδια της πρώτης σεζόν. - + Episode filter rules: Κανόνες φίλτρου επεισοδίου: - + Season number is a mandatory non-zero value Ο αριθμός της σεζόν είναι υποχρεωτική μή μηδενική τιμή - + Episode number is a mandatory non-zero value Ο αριθμός επεισοδίου είναι υποχρεωτική μη μηδενική τιμή - + Filter must end with semicolon Το φίλτρο πρέπει να τελειώνει με άνω τελεία - + Three range types for episodes are supported: Υποστηρίζονται τρεις τύποι εύρους για επεισόδια: - + Single number: <b>1x25;</b> matches episode 25 of season one Μονός αριθμός: <b>1x25;</b> αντιστοιχεί το επεισόδιο 25 της πρώτης σεζόν - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Κανονικό εύρος: <b>1x25-40;</b> αντιστοιχεί τα επεισόδια 25 έως 40 της πρώτης σεζόν - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Άπειρο εύρος: <b>1x25-;</b> αντιστοιχεί τα επεισόδια 25 και προς τα πάνω της πρώτης σεζόν - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Όνομα νέου κανόνα - + Please type the name of the new download rule. Παρακαλώ πληκτρολογήστε το όνομα του νέου κανόνα λήψης. - - + + Rule name conflict Διένεξη ονόματος κανόνα - - + + A rule with this name already exists, please choose another name. Ένας κανόνας με αυτό το όνομα υπάρχει ήδη, παρακαλώ επιλέξτε ένα άλλο όνομα. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Είστε βέβαιοι ότι θέλετε να αφαιρέσετε τους επιλεγμένους κανόνες λήψης; - + Rule deletion confirmation Επιβεβαίωση διαγραφής κανόνα - + Destination directory Κατάλογος προορισμού - + Invalid action Μη έγκυρη ενέργεια - + The list is empty, there is nothing to export. Η λίστα είναι άδεια, δεν υπάρχει τίποτα προς εξαγωγή. - + Where would you like to save the list? Πού θα θέλατε να αποθηκεύσετε τη λίστα; - + Rules list (*.rssrules) Λίστα κανόνων (*.rssrules) - + I/O Error Σφάλμα Ι/Ο - + Failed to create the destination file Αποτυχία δημιουργίας αρχείου προορισμού - + Please point to the RSS download rules file Παρακαλούμε επιλέξτε το αρχείο κανόνων λήψης RSS - + Rules list Λίστα κανόνων - + Import Error Σφάλμα Εισαγωγής - + Failed to import the selected rules file Αποτυχία εισαγωγής του επιλεγμένου αρχείου κανόνων - + Add new rule... Προσθήκη νέου κανόνα... - + Delete rule Διαγραφή κανόνα - + Rename rule... Μετονομασία κανόνα... - + Delete selected rules Διαγραφή επιλεγμένων κανόνων - + Rule renaming Μετονομασία κανόνα - + Please type the new rule name Παρακαλώ πληκτρολογήστε το νέο όνομα κανόνα - + Regex mode: use Perl-like regular expressions Λειτουργία Regex: χρήση κανονικών εκφράσεων παρόμοιων της Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Λειτουργία wildcard: μπορείτε να χρησιμοποιήσετε<ul><li>? για να ταιριάξετε οποιοδήποτε μεμονωμένο χαρακτήρα</li><li>* για να ταιριάξετε μηδέν ή περισσότερους από οποιουσδήποτε χαρακτήρες</li><li>Τα κενά διαστήματα μετρούν ως AND χειριστές</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Λειτουργία wildcard: μπορείτε να χρησιμοποιήσετε<ul><li>? για να ταιριάξετε οποιοδήποτε μεμονωμένο χαρακτήρα</li><li>* για να ταιριάξετε μηδέν ή περισσότερους από οποιουσδήποτε χαρακτήρες</li><li>το | χρησιμοποιείται ως OR χειριστής</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Επιτυχής ανάλυση του παρεχόμενου φίλτρου IP: %1 κανόνες εφαρμόστηκαν. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Τιμή - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds Τροφοδοσίες RSS - + Unread Μη αναγνωσμένα @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Μόνο ένας σύνδεσμος ανά γραμμή - - Download local torrent - Λήψη τοπικού torrent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Έγινε Λήψη @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Σχετικά - - Exit - Έξοδος - &Pause @@ -1984,22 +1982,6 @@ You should get this information from your Web browser preferences. E&xit - - Options - Επιλογές - - - Resume - Συνέχιση - - - Pause - Παύση - - - Delete - Διαγραφή - Open URL @@ -2017,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Εμφάνιση - + Check for program updates Έλεγχος για ενημερώσεις προγράμματος - - Lock qBittorrent - Κλείδωμα του qBittorrent - Add Torrent &Link... @@ -2042,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Αρχείο καταγραφής εκτελεσθέντων - + Clear the password Καθαρισμός του κωδικού πρόσβασης - + Filter torrent list... Φίλτρο λίστας torrent... - + &Set Password - + &Clear Password - + Transfers Μεταφορές - + Torrent file association Συσχετισμός αρχείων torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? Το qBittorrent δεν είναι η προεπιλεγμένη εφαρμογή για το άνοιγμα αρχείων torrent και συνδέσμων Magnet. Θέλετε να συσχετίσετε το qBittorrent με τα αρχεία torrent και συνδέσμους Magnet; - + Icons Only Μόνο Εικονίδια - + Text Only Μόνο Κείμενο - + Text Alongside Icons Κείμενο Δίπλα στα Εικονίδια - + Text Under Icons Κείμενο Κάτω από τα Εικονίδια - + Follow System Style Ακολούθηση Στυλ Συστήματος - - - + + + UI lock password Κωδικός πρόσβασης κλειδώματος Περιβάλλοντος Χρήστη - - - + + + Please type the UI lock password: Παρακαλώ πληκτρολογήστε τον κωδικό πρόσβασης κλειδώματος του Περιβάλλοντος Χρήστη: - + The password should contain at least 3 characters Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 3 χαρακτήρες - + Password update Ενημέρωση κωδικού πρόσβασης - + The UI lock password has been successfully updated Ο κωδικός πρόσβασης κλειδώματος Περιβάλλοντος Χρήστη ενημερώθηκε επιτυχώς - + Are you sure you want to clear the password? Είστε σίγουροι πως θέλετε να εκκαθαρίσετε τον κωδικό; - + Search Αναζήτηση - + Transfers (%1) Μεταφορές (%1) - + Error - + Failed to add torrent: %1 - + Download completion Ολοκλήρωση λήψης - + I/O Error i.e: Input/Output Error Σφάλμα I/O - + Recursive download confirmation Επιβεβαίωση αναδρομικής λήψης - + Yes Ναι - + No Όχι - + Never Ποτέ - + Global Upload Speed Limit Γενικό Όριο Ταχύτητας Αποστολής - + Global Download Speed Limit Γενικό Όριο Ταχύτητας Λήψης - + &No &Όχι - + &Yes &Ναι - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2258,157 +2242,151 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter Έλλειψη Διερμηνέα Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Γίνεται ήδη έλεγχος για ενημερώσεις προγράμματος στο παρασκήνιο - + Python found in '%1' - + Download error Σφάλμα λήψης - + Python setup could not be downloaded, reason: %1. Please install it manually. Η εγκατάσταση του Python δε μπορεί να ληφθεί, αιτία: %1. Παρακαλούμε εγκαταστήστε το χειροκίνητα. - - + + Invalid password Μη έγκυρος κωδικός πρόσβασης - - + + RSS (%1) - + URL download error - + The password is invalid Αυτός ο κωδικός πρόσβασης δεν είναι έγκυρος - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Ταχύτητα ΛΨ: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Ταχύτητα ΑΠ: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [Λ: %1, Α: %2] qBittorrent %3 - + Hide Απόκρυψη - + Exiting qBittorrent Γίνεται έξοδος του qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Μερικά αρχεία μεταφέρονται αυτή τη στιγμή. Είστε σίγουροι ότι θέλετε να κλείσετε το qBittorrent? - + Open Torrent Files Άνοιγμα Αρχείων torrent - + Torrent Files Αρχεία Torrent - + Options were saved successfully. Οι επιλογές αποθηκεύτηκαν επιτυχώς. @@ -2416,17 +2394,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2436,32 +2414,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2488,154 +2466,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2650,1137 +2623,1131 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Γαλλία + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Γαλλία + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Ελλάδα - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - Palestinian Territory - Περιοχή της Παλαιστίνης + Περιοχή της Παλαιστίνης - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3811,72 +3778,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - interested(τοπικά) και choked(διασύνδεση) + interested(local) and unchoked(peer) - interested(τοπικά) και unchoked(διασύνδεση) + interested(peer) and choked(local) - interested(διασύνδεση) και choked(τοπικά) + interested(peer) and unchoked(local) - interested(διασύνδεση) και unchoked(τοπικά) + optimistic unchoke - optimistic unchoke + peer snubbed - snubbed διασύνδεση + incoming connection - εισερχόμενη σύνδεση + not interested(local) and unchoked(peer) - not interested(τοπικά) και unchoked(διασύνδεση) + not interested(peer) and unchoked(local) - not interested(διασυνδεση) and unchoked(τοπικά) + peer from PEX - διασύνδεση απο PEX + peer from DHT - διασύνδεση απο DHT + encrypted traffic - κρυπτογραφημένη κυκλοφορία + encrypted handshake - κρυπτογραφημένη χειραψία + peer from LSD - διασύνδεση απο LSD + @@ -3944,123 +3911,73 @@ Are you sure you want to quit qBittorrent? Συνάφεια - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Προσθήκη νέας διασύνδεσης... - + Copy selected Αντιγραφή επιλεγμένου - - + + Ban peer permanently Μόνιμος αποκλεισμός διασύνδεσης - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Προσθήκη διασύνδεσης - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Είστε σίγουροι ότι θέλετε να αποκλείσετε μόνιμα τις επιλεγμένες διασυνδέσεις; - + &Yes &Ναι - + &No &Όχι - - interested(local) and choked(peer) - interested(τοπικά) και choked(διασύνδεση) - - - interested(local) and unchoked(peer) - interested(τοπικά) και unchoked(διασύνδεση) - - - interested(peer) and choked(local) - interested(διασύνδεση) και choked(τοπικά) - - - interested(peer) and unchoked(local) - interested(διασύνδεση) και unchoked(τοπικά) - - - optimistic unchoke - optimistic unchoke - - - peer snubbed - snubbed διασύνδεση - - - incoming connection - εισερχόμενη σύνδεση - - - not interested(local) and unchoked(peer) - not interested(τοπικά) και unchoked(διασύνδεση) - - - not interested(peer) and unchoked(local) - not interested(διασυνδεση) and unchoked(τοπικά) - - - peer from PEX - διασύνδεση απο PEX - - - peer from DHT - διασύνδεση απο DHT - - - encrypted traffic - κρυπτογραφημένη κυκλοφορία - - - encrypted handshake - κρυπτογραφημένη χειραψία - - - peer from LSD - διασύνδεση απο LSD - PeersAdditionDlg @@ -4098,6 +4015,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Πρόσθετα αναζήτησης + + + + Installed search plugins: + + + + + Name + Όνομα + + + + Version + + + + + Url + Url + + + + + Enabled + Ενεργοποιημένο + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Μπορείτε να βρείτε νέα πρόσθετα μηχανών αναζήτησης εδώ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Εγκατάσταση ενός νέου + + + + Check for updates + Έλεγχος για ενημερώσεις + + + + Close + Κλείσιμο + + + + Uninstall + Απεγκατάσταση + + + + + + Yes + Ναι + + + + + + + No + Όχι + + + + Uninstall warning + Προειδοποίηση απεγκατάστασης + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Επιτυχής απεγκατάσταση + + + + All selected plugins were uninstalled successfully + Όλα τα επιλεγμένα πρόσθετα απεγκαταστάθηκαν επιτυχώς + + + + + New search engine plugin URL + Νέο URL πρόσθετου μηχανής αναζήτησης + + + + + URL: + URL: + + + + Invalid link + Άκυρος σύνδεσμος + + + + The link doesn't seem to point to a search engine plugin. + Ο σύνδεσμος δεν φαίνεται να οδηγεί σε πρόσθετο μηχανής αναζήτησης. + + + + Select search plugins + Επιλέξτε πρόσθετα αναζήτησης + + + + qBittorrent search plugin + + + + + + + Search plugin update + Ενημέρωση πρόσθετου αναζήτησης + + + + All your plugins are already up to date. + Όλα τα πρόσθετά σας είναι ήδη ενημερωμένα. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Εγκατάσταση πρόσθετου αναζήτησης + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Πηγή πρόσθετου + + + + Search plugin source: + Πηγή πρόσθετου αναζήτησης: + + + + Local file + Τοπικό αρχείο + + + + Web link + Σύνδεσμος Ιστού + + Preferences @@ -4154,89 +4267,89 @@ Are you sure you want to quit qBittorrent? Προσάρτηση επέκτασης .!qB σε μη ολοκληρωμένα αρχεία - + Copy .torrent files to: Αντιγραφή αρχείων .torrent στο: - + Connections Limits Όρια Συνδέσεων - + Proxy Server Διακομιστής Μεσολάβησης - + Global Rate Limits Γενικά Όρια Ρυθμού - + Apply rate limit to transport overhead Εφαρμογή ορίων ρυθμού στο κόστος μεταφοράς - + Schedule the use of alternative rate limits Προγραμματισμός χρήσης εναλλακτικών ορίων ρυθμού - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Ενεργοποίηση Ανακάλυψης Τοπικών Διασυνδέσεων για την εύρεση περισσοτέρων διασυνδέσεων - + Encryption mode: Λειτουργία κρυπτογράφησης: - + Prefer encryption Προτίμηση κρυπτογράφησης - + Require encryption Απαίτηση κρυπτογράφησης - + Disable encryption Απενεργοποίηση κρυπτογράφησης - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Περισσότερες πληροφορίες</a>) - + Maximum active downloads: Μέγιστος αριθμός ενεργών λήψεων: - + Maximum active uploads: Μέγιστος αριθμός ενεργών αποστολών: - + Maximum active torrents: Μέγιστος αριθμός ενεργών torrent: @@ -4261,82 +4374,82 @@ Are you sure you want to quit qBittorrent? Εμφάνιση περιεχομένου torrent και μερικών επιλογών - + Run external program on torrent completion - + Port used for incoming connections: Θύρα που χρησιμοποιείται για εισερχόμενες συνδέσεις: - + Random Τυχαία - + Global maximum number of connections: Μέγιστος γενικός αριθμός συνδέσεων: - + Maximum number of connections per torrent: Μέγιστος αριθμός συνδέσεων ανά torrent: - + Maximum number of upload slots per torrent: Μέγιστες θυρίδες αποστολής ανά torrent: - - + + Upload: Αποστολή: - - + + Download: Λήψη: - - - - + + + + KiB/s KiB/δ - + Remove folder Αφαίρεση φακέλου - + Every day Κάθε μέρα - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Ανταλλαγή διασυνδέσεων με συμβατούς πελάτες Bittorrent (μTorrent, Vuze, ...) - + Host: Φορέας: - + SOCKS4 SOCKS4 - + Type: Τύπος: @@ -4509,262 +4622,262 @@ Are you sure you want to quit qBittorrent? Αυτόματη προσθήκη torrent από: - + Add folder... Προσθήκη φακέλου... - + Copy .torrent files for finished downloads to: Αντιγραφή αρχείων .torrent των ολοκληρωμένων λήψεων στο: - + Email notification upon download completion Ειδοποίηση ηλεκτρονικού ταχυδρομείου με την ολοκλήρωση της λήψης - + Destination email: Προοριζόμενο ηλ. ταχυδρομείο: - + SMTP server: Διακομιστής SMTP: - + This server requires a secure connection (SSL) Αυτός ο διακομιστής απαιτεί ασφαλή σύνδεση (SSL) - + Listening Port Θύρα ακρόασης - + Use UPnP / NAT-PMP port forwarding from my router Χρήση προώθησης UPnP / NAT - PMP θυρών από το router μου - + Use different port on each startup Χρήση διαφορετικής θύρας σε κάθε εκκίνηση - + Global maximum number of upload slots: Γενικός μέγιστος αριθμός θυρίδων αποστολής: - + Otherwise, the proxy server is only used for tracker connections Διαφορετικά, ο διακομιστής μεσολάβησης χρησιμοποιείται μόνο για συνδέσεις ιχνηλατών - + Use proxy for peer connections Χρήση μεσολαβητή για συνδέσεις διασύνδεσης - + Disable connections not supported by proxies Απενεργοποίηση συνδέσεων μη υποστηριζόμενων από μεσολαβητές - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Πληροφορία: Ο κωδικός πρόσβασης αποθηκεύτηκε μη κρυπτογραφημένος - + IP Filtering Φιλτράρισμα IP - + Reload the filter Επαναφόρτωση του φίλτρου - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Πότε: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Προσωπικά Δεδομένα - + Enable DHT (decentralized network) to find more peers Ενεργοποίηση DHT (αποκεντροποιημένο δίκτυο) για την εύρεση περισσοτέρων διασυνδέσεων - + Enable Peer Exchange (PeX) to find more peers Ενεργοποίηση Ανταλλαγής Διασυνδέσεων (PeX) για την εύρεση περισσοτέρων διασυνδέσεων - + Look for peers on your local network Αναζήτηση για διασυνδέσεις στο τοπικό σας δίκτυο - + Enable when using a proxy or a VPN connection Ενεργοποίηση όταν χρησιμοποιείτε μεσολαβητή ή μια VPN σύνδεση - + Enable anonymous mode Ενεργοποίηση ανώνυμης λειτουργίας - + Do not count slow torrents in these limits Μη υπολογισμός αργών torrent σε αυτά τα όρια - + Seed torrents until their ratio reaches Διαμοιρασμός των torrent μέχρι η αναλογία τους να φτάσει - + then τότε - + Pause them Σε παύση - + Remove them Διέγραψέ τα - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Χρήση UPnP / NAT-PMP για προώθηση της θύρας από το router μου - + Use HTTPS instead of HTTP Χρήση HTTPS αντί HTTP - + Import SSL Certificate Εισαγωγή Πιστοποιητικού SSL - + Import SSL Key Εισαγωγή Κλειδιού SSL - + Certificate: Πιστοποιητικό: - + Alternative Rate Limits - + Key: Κλειδί: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Πληροφορίες για τα πιστοποιητικά</a> - + Bypass authentication for localhost Παράκαμψη ελέγχου ταυτότητας για localhost - + Update my dynamic domain name Ενημέρωση του δυναμικού ονόματος τομέα μου - + Service: Υπηρεσία: - + Register Εγγραφή - + Domain name: Όνομα τομέα: - + (None) (Κανένα) @@ -4774,61 +4887,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Θύρα: - - - + + + Authentication Έλεγχος Ταυτότητας - - - - + + + + Username: Όνομα χρήστη: - - - - + + + + Password: Κωδικός πρόσβασης: - + Torrent Queueing Torrent Σε Ουρά - + Share Ratio Limiting Περιορισμός Αναλογίας Διαμοιρασμού - + Enable Web User Interface (Remote control) Ενεργοποίηση Περιβάλλοντος Χρήστη Ιστού (Απομακρυσμένη διαχείριση) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Διαδρομή φίλτρου (.dat, .p2p, .p2b): @@ -5034,10 +5147,6 @@ Are you sure you want to quit qBittorrent? Comment: Σχόλιο: - - Torrent content: - Περιεχόμενο torrent: - Select All @@ -5560,28 +5669,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5692,17 +5801,17 @@ No further notices will be issued. RSSImp - + Stream URL: URL ροής: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5722,75 +5831,77 @@ No further notices will be issued. Νέος φάκελος - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Παρακαλώ επιλέξτε ένα νέο όνομα για αυτή την τροφοδοσία RSS - + New feed name: Νέο όνομα τροφοδοσίας: - + Name already in use Το όνομα χρησιμοποιείται ήδη - + This name is already used by another item, please choose another one. Αυτό το όνομα χρησιμοποιείται ήδη από ένα άλλο αντικείμενο, παρακαλώ επιλέξτε ένα άλλο. - + Date: Ημερομηνία: - + Author: Συγγραφέας: - + Unread Μη Αναγνωσμένα - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Αποτυχία ανοίγματος του ληφθέντος RSS αρχείου. - - - - Invalid RSS feed at '%1'. - + Αποτυχία ανοίγματος του ληφθέντος RSS αρχείου. @@ -5816,168 +5927,220 @@ No further notices will be issued. Μέγιστος αριθμός άρθρων ανά τροφοδοσία: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Αναζήτηση... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Φάκελος υπό Παρακολούθηση - - Download here - Λήψη εδώ + + Save Files to + - - Download path - + Download here + Λήψη εδώ SearchCategories - All categories - Όλες οι κατηγορίες + Όλες οι κατηγορίες - Movies - Ταινίες + Ταινίες - TV shows - Τηλεοπτικές σειρές + Τηλεοπτικές σειρές - Music - Μουσική + Μουσική - Games - Παιχνίδια + Παιχνίδια - Anime - Ανιμέ + Ανιμέ - Software - Λογισμικό + Λογισμικό - Pictures - Εικόνες + Εικόνες - Books - Βιβλία + Βιβλία SearchEngine - - - Search - Αναζήτηση + Αναζήτηση - - Please install Python to use the Search Engine. - - - - Empty search pattern - Κενό πρότυπο αναζήτησης + Κενό πρότυπο αναζήτησης - Please type a search pattern first - Παρακαλώ πληκτρολογήστε ένα πρότυπο αναζήτησης πρώτα + Παρακαλώ πληκτρολογήστε ένα πρότυπο αναζήτησης πρώτα - Searching... - Αναζήτηση... + Αναζήτηση... - Stop - Διακοπή + Διακοπή - - Search Engine - Μηχανή Αναζήτησης + Μηχανή Αναζήτησης - - Search has finished - Η αναζήτηση ολοκληρώθηκε + Η αναζήτηση ολοκληρώθηκε - An error occurred during search... - Παρουσιάστηκε σφάλμα κατά τη διάρκεια της αναζήτησης... + Παρουσιάστηκε σφάλμα κατά τη διάρκεια της αναζήτησης... - - Search aborted - Η αναζήτηση ματαιώθηκε + Η αναζήτηση ματαιώθηκε - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Η αναζήτηση δεν επέστρεψε κάποιο αποτέλεσμα + Η αναζήτηση δεν επέστρεψε κάποιο αποτέλεσμα - - Stopped - Σταματημένο + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Όλες οι κατηγορίες + + + + Movies + Ταινίες + + + + TV shows + Τηλεοπτικές σειρές + + + + Music + Μουσική + + + + Games + Παιχνίδια + + + + Anime + Ανιμέ + + + + Software + Λογισμικό + + + + Pictures + Εικόνες + + + + Books + Βιβλία SearchListDelegate - - + + Unknown Άγνωστο @@ -5985,35 +6148,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Όνομα - + Size i.e: file size Μέγεθος - + Seeders i.e: Number of full sources Διαμοιραστές - + Leechers i.e: Number of partial sources Αποδέκτες - + Search engine Μηχανή αναζήτησης + + SearchWidget + + + + + + + Search + Αναζήτηση + + + + Status: + Κατάσταση: + + + + + Stopped + Σταματημένο + + + + Download + Λήψη + + + + Go to description page + Μετάβαση στη σελίδα περιγραφής + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Μηχανή Αναζήτησης + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Κενό πρότυπο αναζήτησης + + + + Please type a search pattern first + Παρακαλώ πληκτρολογήστε ένα πρότυπο αναζήτησης πρώτα + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Αναζήτηση... + + + + Stop + Διακοπή + + + + + Search has finished + Η αναζήτηση ολοκληρώθηκε + + + + + Search aborted + Η αναζήτηση ματαιώθηκε + + + + Search returned no results + Η αναζήτηση δεν επέστρεψε κάποιο αποτέλεσμα + + + + Search has failed + + + + + An error occurred during search... + Παρουσιάστηκε σφάλμα κατά τη διάρκεια της αναζήτησης... + + ShutdownConfirmDlg @@ -6458,24 +6746,28 @@ No further notices will be issued. TorrentContentModel - + Name Όνομα - + Size Μέγεθος - + Progress Πρόοδος - + + Download Priority + + + Priority - Προτεραιότητα + Προτεραιότητα @@ -6827,38 +7119,38 @@ No further notices will be issued. Προειδοποίηση (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Συνέχιση των torrents - + Pause torrents Παύση των torrents - + Delete torrents Διαγραφή των torrents - - + + All (%1) this is for the tracker filter Όλα (%1) @@ -7126,17 +7418,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Κατάσταση - + Labels Ετικέτες - + Trackers Ιχνηλάτες @@ -7675,205 +7967,103 @@ No further notices will be issued. engineSelect - Search plugins - Πρόσθετα αναζήτησης + Πρόσθετα αναζήτησης - Installed search engines: - Εγκατεστημένες μηχανές αναζήτησης: + Εγκατεστημένες μηχανές αναζήτησης: - Name - Όνομα + Όνομα - - Version - - - - Url - Url + Url - - Enabled - Ενεργοποιημένο + Ενεργοποιημένο - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Μπορείτε να βρείτε νέα πρόσθετα μηχανών αναζήτησης εδώ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Μπορείτε να βρείτε νέα πρόσθετα μηχανών αναζήτησης εδώ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Εγκατάσταση ενός νέου + Εγκατάσταση ενός νέου - Check for updates - Έλεγχος για ενημερώσεις + Έλεγχος για ενημερώσεις - Close - Κλείσιμο + Κλείσιμο - Uninstall - Απεγκατάσταση + Απεγκατάσταση engineSelectDlg - Uninstall warning - Προειδοποίηση απεγκατάστασης + Προειδοποίηση απεγκατάστασης - Uninstall success - Επιτυχής απεγκατάσταση + Επιτυχής απεγκατάσταση - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Ο σύνδεσμος δεν φαίνεται να οδηγεί σε πρόσθετο μηχανής αναζήτησης. + Ο σύνδεσμος δεν φαίνεται να οδηγεί σε πρόσθετο μηχανής αναζήτησης. - Select search plugins - Επιλέξτε πρόσθετα αναζήτησης + Επιλέξτε πρόσθετα αναζήτησης - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Εγκατάσταση πρόσθετου αναζήτησης + Εγκατάσταση πρόσθετου αναζήτησης - - - Yes - Ναι + Ναι - - - - No - Όχι + Όχι - - qBittorrent search plugin - - - - - - - Search plugin update - Ενημέρωση πρόσθετου αναζήτησης + Ενημέρωση πρόσθετου αναζήτησης - - Sorry, update server is temporarily unavailable. - Λυπούμαστε, ο διακομιστής ενημέρωσης είναι προσωρινά μη διαθέσιμος. + Λυπούμαστε, ο διακομιστής ενημέρωσης είναι προσωρινά μη διαθέσιμος. - All your plugins are already up to date. - Όλα τα πρόσθετά σας είναι ήδη ενημερωμένα. + Όλα τα πρόσθετά σας είναι ήδη ενημερωμένα. - All selected plugins were uninstalled successfully - Όλα τα επιλεγμένα πρόσθετα απεγκαταστάθηκαν επιτυχώς + Όλα τα επιλεγμένα πρόσθετα απεγκαταστάθηκαν επιτυχώς - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Άκυρος σύνδεσμος + Άκυρος σύνδεσμος - - New search engine plugin URL - Νέο URL πρόσθετου μηχανής αναζήτησης + Νέο URL πρόσθετου μηχανής αναζήτησης - - URL: - URL: + URL: @@ -8003,169 +8193,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Επιλέξτε κατάλογο εξαγωγής - - - - + + + + Choose a save directory Επιλέξτε κατάλογο αποθήκευσης - + Add directory to scan Προσθήκη καταλόγου για σάρωση - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Αυτός ο φάκελος ήδη παρακολουθείται. - + Folder does not exist. Αυτός ο φάκελος δεν υπάρχει. - + Folder is not readable. Αυτός ο φάκελος δεν είναι αναγνώσιμος. - + Failure Αποτυχία - + Failed to add Scan Folder '%1': %2 Αποτυχία προσθήκης Φακέλου για Σάρωση '%1': %2 - - + + Filters Φίλτρα - - + + Choose an IP filter file - + SSL Certificate Πιστοποιητικό SSL - + SSL Key Κλειδί SSL - + Parsing error Σφάλμα ανάλυσης - + Failed to parse the provided IP filter Αποτυχία ανάλυσης του παρεχόμενου φίλτρου IP - + Successfully refreshed Επιτυχής ανανέωση - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Επιτυχής ανάλυση του παρεχόμενου φίλτρου IP: %1 κανόνες εφαρμόστηκαν. - + Invalid key Άκυρο κλειδί - + This is not a valid SSL key. Αυτό δεν είναι έγκυρο κλειδί SSL. - + Invalid certificate Άκυρο πιστοποιητικό - + This is not a valid SSL certificate. Αυτό δεν είναι έγκυρο πιστοποιητικό SSL. - + The start time and the end time can't be the same. Η ώρα έναρξης και η ώρα λήξης δεν μπορούν να είναι ίδιες. - + Time Error Σφάλμα Ώρας @@ -8173,24 +8363,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Πηγή πρόσθετου + Πηγή πρόσθετου - Search plugin source: - Πηγή πρόσθετου αναζήτησης: + Πηγή πρόσθετου αναζήτησης: - Local file - Τοπικό αρχείο + Τοπικό αρχείο - Web link - Σύνδεσμος Ιστού + Σύνδεσμος Ιστού @@ -8219,40 +8405,28 @@ Those plugins were disabled. search_engine - - Search - Αναζήτηση + Αναζήτηση - Status: - Κατάσταση: + Κατάσταση: - Stopped - Σταματημένο + Σταματημένο - Download - Λήψη + Λήψη - Go to description page - Μετάβαση στη σελίδα περιγραφής + Μετάβαση στη σελίδα περιγραφής - - Copy description page URL - - - - Search engines... - Μηχανές αναζήτησης... + Μηχανές αναζήτησης... diff --git a/src/lang/qbittorrent_en.ts b/src/lang/qbittorrent_en.ts index c76919811..9daf9c62d 100644 --- a/src/lang/qbittorrent_en.ts +++ b/src/lang/qbittorrent_en.ts @@ -175,172 +175,172 @@ - - + + I/O Error - + The torrent file does not exist. - + Invalid torrent - + Failed to load the torrent: %1 - - + + Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available - + Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link - + Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path - + Rename the file - + New name: - - + + The file could not be renamed - + This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. - + The folder could not be renamed - + Rename... - + Priority - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -657,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name - + Please type the name of the new download rule. - - + + Rule name conflict - - + + A rule with this name already exists, please choose another name. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? - + Rule deletion confirmation - + Destination directory - + Invalid action - + The list is empty, there is nothing to export. - + Where would you like to save the list? - + Rules list (*.rssrules) - + I/O Error - + Failed to create the destination file - + Please point to the RSS download rules file - + Rules list - + Import Error - + Failed to import the selected rules file - + Add new rule... - + Delete rule - + Rename rule... - + Delete selected rules - + Rule renaming - + Please type the new rule name - + Regex mode: use Perl-like regular expressions - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> @@ -948,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1015,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1186,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1216,7 +1216,7 @@ - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds - + Unread @@ -1571,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? @@ -1989,12 +1999,12 @@ You should get this information from your Web browser preferences. - + Show - + Check for program updates @@ -2010,214 +2020,220 @@ You should get this information from your Web browser preferences. - + Execution Log - + Clear the password - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers - + Torrent file association - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password - - - + + + Please type the UI lock password: - + The password should contain at least 3 characters - + Password update - + The UI lock password has been successfully updated - + Are you sure you want to clear the password? - + Search - + Transfers (%1) - + Error - + Failed to add torrent: %1 - + Download completion - + I/O Error i.e: Input/Output Error - + Recursive download confirmation - + Yes - + No - + Never - + Global Upload Speed Limit - + Global Download Speed Limit - + &No - + &Yes - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2225,155 +2241,149 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background - + Python found in '%1' - + Download error - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password - - + + RSS (%1) - + URL download error - + The password is invalid - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide - + Exiting qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? - + Open Torrent Files - + Torrent Files - + Options were saved successfully. @@ -2381,17 +2391,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2401,32 +2411,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2453,154 +2463,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2615,1137 +2620,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France + Micronesia, Federated States of - France, Metropolitan + Faroe Islands - Gabon + France - United Kingdom + Gabon - Grenada + United Kingdom - Georgia + Grenada - French Guiana + Georgia - Ghana - - - - - Gibraltar + French Guiana - Greenland + Ghana - Gambia + Gibraltar - Guinea + Greenland - Guadeloupe + Gambia - Equatorial Guinea + Guinea - Greece + Guadeloupe - South Georgia and the South Sandwich Islands + Equatorial Guinea - Guatemala + Greece - Guam + South Georgia and the South Sandwich Islands - Guinea-Bissau + Guatemala - Guyana + Guam - Hong Kong + Guinea-Bissau - Heard Island and McDonald Islands + Guyana - Honduras + Hong Kong - Croatia + Heard Island and McDonald Islands - Haiti + Honduras - Hungary + Croatia - Indonesia + Haiti - Ireland + Hungary - Israel + Indonesia - India + Ireland - British Indian Ocean Territory - - - - - Iraq + Israel - Iran, Islamic Republic of + India - Iceland + British Indian Ocean Territory - Italy + Iraq - Jamaica + Iran, Islamic Republic of - Jordan + Iceland - Japan - - - - - Kenya + Italy - Kyrgyzstan + Jamaica - Cambodia + Jordan - Kiribati + Japan - Comoros + Kenya - Saint Kitts and Nevis + Kyrgyzstan - Korea, Democratic People's Republic of + Cambodia - Korea, Republic of + Kiribati - Kuwait + Comoros - Cayman Islands + Saint Kitts and Nevis - Kazakhstan + Korea, Democratic People's Republic of - Lao People's Democratic Republic + Korea, Republic of - Lebanon + Kuwait - Saint Lucia + Cayman Islands - Liechtenstein + Kazakhstan - Sri Lanka + Lao People's Democratic Republic - Liberia + Lebanon - Lesotho + Saint Lucia - Lithuania + Liechtenstein - Luxembourg + Sri Lanka - Latvia + Liberia - Libyan Arab Jamahiriya + Lesotho - Morocco + Lithuania - Monaco + Luxembourg - Moldova, Republic of - - - - - Madagascar + Latvia - Marshall Islands + Morocco - Macedonia + Monaco - Mali - - - - - Myanmar - - - - - Mongolia + Moldova, Republic of - Macau + Madagascar - Northern Mariana Islands - - - - - Martinique + Marshall Islands - Mauritania + Mali - Montserrat + Myanmar - Malta - - - - - Mauritius + Mongolia - Maldives + Northern Mariana Islands - Malawi + Martinique - Mexico + Mauritania - Malaysia + Montserrat - Mozambique + Malta - Namibia + Mauritius - New Caledonia + Maldives - Niger + Malawi - Norfolk Island + Mexico - Nigeria + Malaysia - Nicaragua + Mozambique - Netherlands + Namibia - Norway + New Caledonia - Nepal + Niger - Nauru + Norfolk Island - Niue + Nigeria - New Zealand + Nicaragua - Oman + Netherlands - Panama + Norway - Peru + Nepal - French Polynesia + Nauru - Papua New Guinea + Niue - Philippines + New Zealand - Pakistan + Oman - Poland + Panama - Saint Pierre and Miquelon + Peru - Pitcairn Islands + French Polynesia - Puerto Rico + Papua New Guinea - Palestinian Territory + Philippines - Portugal + Pakistan - Palau + Poland - Paraguay - - - - - Qatar + Saint Pierre and Miquelon - Reunion - - - - - Romania + Puerto Rico - Russian Federation + Portugal - Rwanda + Palau - Saudi Arabia + Paraguay - Solomon Islands + Qatar - Seychelles + Reunion - Sudan - - - - - Sweden + Romania - Singapore + Russian Federation - Saint Helena + Rwanda - Slovenia + Saudi Arabia - Svalbard and Jan Mayen + Solomon Islands - Slovakia + Seychelles - Sierra Leone + Sudan - San Marino + Sweden - Senegal - - - - - Somalia + Singapore - Suriname + Slovenia - Sao Tome and Principe + Svalbard and Jan Mayen - El Salvador + Slovakia - Syrian Arab Republic + Sierra Leone - Swaziland + San Marino - Turks and Caicos Islands + Senegal - Chad + Somalia - French Southern Territories - - - - - Togo + Suriname - Thailand + Sao Tome and Principe - Tajikistan - - - - - Tokelau + El Salvador - Turkmenistan + Syrian Arab Republic - Tunisia + Swaziland - Tonga + Turks and Caicos Islands - Timor-Leste + Chad - Turkey + French Southern Territories - Trinidad and Tobago + Togo - Tuvalu + Thailand - Taiwan + Tajikistan - Tanzania, United Republic of - - - - - Ukraine + Tokelau - Uganda + Turkmenistan - United States Minor Outlying Islands + Tunisia - United States + Tonga + + + + + Timor-Leste + + + + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3909,64 +3904,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... - + Copy selected - - + + Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? - + &Yes - + &No @@ -4007,6 +4008,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + + + + + Installed search plugins: + + + + + Name + + + + + Version + + + + + Url + + + + + + Enabled + + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + + Install a new one + + + + + Check for updates + + + + + Close + + + + + Uninstall + + + + + + + Yes + + + + + + + + No + + + + + Uninstall warning + + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + + + + + All selected plugins were uninstalled successfully + + + + + + New search engine plugin URL + + + + + + URL: + + + + + Invalid link + + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + + + + + qBittorrent search plugin + + + + + + + Search plugin update + + + + + All your plugins are already up to date. + + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + + + + + Search plugin source: + + + + + Local file + + + + + Web link + + + Preferences @@ -4063,89 +4260,89 @@ Are you sure you want to quit qBittorrent? - + Copy .torrent files to: - + Connections Limits - + Proxy Server - + Global Rate Limits - + Apply rate limit to transport overhead - + Schedule the use of alternative rate limits - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Prefer encryption - + Require encryption - + Disable encryption - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: @@ -4170,82 +4367,82 @@ Are you sure you want to quit qBittorrent? - + Run external program on torrent completion - + Port used for incoming connections: - + Random - + Global maximum number of connections: - + Maximum number of connections per torrent: - + Maximum number of upload slots per torrent: - - + + Upload: - - + + Download: - - - - + + + + KiB/s - + Remove folder - + Every day - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Host: - + SOCKS4 - + Type: @@ -4418,262 +4615,262 @@ Are you sure you want to quit qBittorrent? - + Add folder... - + Copy .torrent files for finished downloads to: - + Email notification upon download completion - + Destination email: - + SMTP server: - + This server requires a secure connection (SSL) - + Listening Port - + Use UPnP / NAT-PMP port forwarding from my router - + Use different port on each startup - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering - + Reload the filter - + Apply to trackers - + Apply rate limit to peers on LAN - + When: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Do not count slow torrents in these limits - + Seed torrents until their ratio reaches - + then - + Pause them - + Remove them - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router - + Use HTTPS instead of HTTP - + Import SSL Certificate - + Import SSL Key - + Certificate: - + Alternative Rate Limits - + Key: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Bypass authentication for localhost - + Update my dynamic domain name - + Service: - + Register - + Domain name: - + (None) @@ -4683,61 +4880,61 @@ Are you sure you want to quit qBittorrent? - + HTTP - - + + Port: - - - + + + Authentication - - - - + + + + Username: - - - - + + + + Password: - + Torrent Queueing - + Share Ratio Limiting - + Enable Web User Interface (Remote control) - + SOCKS5 - + Filter path (.dat, .p2p, .p2b): @@ -5462,28 +5659,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5594,17 +5791,17 @@ No further notices will be issued. RSSImp - + Stream URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5624,74 +5821,69 @@ No further notices will be issued. - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed - + New feed name: - + Name already in use - + This name is already used by another item, please choose another one. - + Date: - + Author: - + Unread - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... - RssParser + Rss::Private::Parser - - Failed to open downloaded RSS file. - - - - - Invalid RSS feed at '%1'. + + Invalid RSS feed. @@ -5719,167 +5911,136 @@ No further notices will be issued. - ScanFoldersModel + ScanFoldersDelegate - - Watched Folder + + Watch Folder - - Download here + + Default Folder - - Download path + + Browse... + + + + + Choose save path - SearchCategories + ScanFoldersModel - - All categories + + Watch Folder - - Movies + + Default Folder - - TV shows + + Watched Folder - - Music - - - - - Games - - - - - Anime - - - - - Software - - - - - Pictures - - - - - Books + + Save Files to SearchEngine - - - - Search + + Unknown search engine plugin file format. - - Please install Python to use the Search Engine. + + A more recent version of this plugin is already installed. - - Empty search pattern + + + Plugin is not supported. - - Please type a search pattern first + + Update server is temporarily unavailable. %1 - - Searching... + + + Failed to download the plugin file. %1 - - Stop + + An incorrect update info received. - - - Search Engine + + All categories - - - Search has finished + + Movies - - An error occurred during search... + + TV shows - - - Search aborted + + Music - - All enabled + + Games - - All engines + + Anime - - - Multiple... + + Software - - - Results <i>(%1)</i>: - i.e: Search results + + Pictures - - Search returned no results - - - - - Stopped + + Books SearchListDelegate - - + + Unknown @@ -5887,35 +6048,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name - + Size i.e: file size - + Seeders i.e: Number of full sources - + Leechers i.e: Number of partial sources - + Search engine + + SearchWidget + + + + + + + Search + + + + + Status: + + + + + + Stopped + + + + + Download + + + + + Go to description page + + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + + + + + Please type a search pattern first + + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + + + + + Stop + + + + + + Search has finished + + + + + + Search aborted + + + + + Search returned no results + + + + + Search has failed + + + + + An error occurred during search... + + + ShutdownConfirmDlg @@ -6360,23 +6646,23 @@ No further notices will be issued. TorrentContentModel - + Name - + Size - + Progress - - Priority + + Download Priority @@ -6729,38 +7015,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7028,17 +7314,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status - + Labels - + Trackers @@ -7574,210 +7860,6 @@ No further notices will be issued. - - engineSelect - - - Search plugins - - - - - Installed search engines: - - - - - Name - - - - - Version - - - - - Url - - - - - - Enabled - - - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - - - Install a new one - - - - - Check for updates - - - - - Close - - - - - Uninstall - - - - - engineSelectDlg - - - Uninstall warning - - - - - Uninstall success - - - - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - - Select search plugins - - - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - - Search plugin install - - - - - - - Yes - - - - - - - - No - - - - - qBittorrent search plugin - - - - - - - - Search plugin update - - - - - - Sorry, update server is temporarily unavailable. - - - - - All your plugins are already up to date. - - - - - All selected plugins were uninstalled successfully - - - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - - Invalid link - - - - - - New search engine plugin URL - - - - - - URL: - - - errorDialog @@ -7905,196 +7987,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory - - - - + + + + Choose a save directory - + Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. - + Folder does not exist. - + Folder is not readable. - + Failure - + Failed to add Scan Folder '%1': %2 - - + + Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error - + Failed to parse the provided IP filter - + Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key - + This is not a valid SSL key. - + Invalid certificate - + This is not a valid SSL certificate. - + The start time and the end time can't be the same. - + Time Error - - pluginSourceDlg - - - Plugin source - - - - - Search plugin source: - - - - - Local file - - - - - Web link - - - preview @@ -8118,43 +8177,4 @@ Those plugins were disabled. - - search_engine - - - - Search - - - - - Status: - - - - - Stopped - - - - - Download - - - - - Go to description page - - - - - Copy description page URL - - - - - Search engines... - - - diff --git a/src/lang/qbittorrent_en_AU.ts b/src/lang/qbittorrent_en_AU.ts index 72e336463..9bb195239 100644 --- a/src/lang/qbittorrent_en_AU.ts +++ b/src/lang/qbittorrent_en_AU.ts @@ -175,172 +175,172 @@ Do not download - - + + I/O Error I/O Error - + The torrent file does not exist. The torrent file does not exist. - + Invalid torrent Invalid torrent - + Failed to load the torrent: %1 Failed to load the torrent: %1 - - + + Already in download list Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available Not available - + Invalid magnet link Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized This magnet link was not recognised - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path Choose save path - + Rename the file Rename the file - + New name: New name: - - + + The file could not be renamed The file could not be renamed - + This file name contains forbidden characters, please choose a different one. This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. This name is already in use in this folder. Please use a different name. - + The folder could not be renamed The folder could not be renamed - + Rename... Rename... - + Priority Priority - + Invalid metadata - + Parsing metadata... Parsing metadata... - + Metadata retrieval complete Metadata retrieval complete - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Resolve peer host names - - Maximum number of half-open connections [0: Disabled] - Maximum number of half-open connections [0: Disabled] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name New rule name - + Please type the name of the new download rule. Please type the name of the new download rule. - - + + Rule name conflict Rule name conflict - - + + A rule with this name already exists, please choose another name. A rule with this name already exists, please choose another name. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Are you sure you want to remove the selected download rules? - + Rule deletion confirmation Rule deletion confirmation - + Destination directory Destination directory - + Invalid action Invalid action - + The list is empty, there is nothing to export. The list is empty, there is nothing to export. - + Where would you like to save the list? Where would you like to save the list? - + Rules list (*.rssrules) Rules list (*.rssrules) - + I/O Error I/O Error - + Failed to create the destination file Failed to create the destination file - + Please point to the RSS download rules file Please point to the RSS download rules file - + Rules list - + Import Error Import Error - + Failed to import the selected rules file Failed to import the selected rules file - + Add new rule... Add new rule... - + Delete rule Delete rule - + Rename rule... Rename rule... - + Delete selected rules Delete selected rules - + Rule renaming Rule renaming - + Please type the new rule name Please type the new rule name - + Regex mode: use Perl-like regular expressions Regex mode: use Perl-like regular expressions - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>White-spaces count as AND operators</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Value - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread Unread @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Only one link per line - - Download local torrent - Download local torrent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Downloaded @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &About - - Exit - Exit - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Show - + Check for program updates - - Lock qBittorrent - Lock qBittorrent - Add Torrent &Link... @@ -2026,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Execution Log - + Clear the password Clear the password - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers Transfers - + Torrent file association Torrent file association - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password UI lock password - - - + + + Please type the UI lock password: Please type the UI lock password: - + The password should contain at least 3 characters The password should contain at least 3 characters - + Password update Password update - + The UI lock password has been successfully updated The UI lock password has been successfully updated - + Are you sure you want to clear the password? Are you sure you want to clear the password? - + Search Search - + Transfers (%1) Transfers (%1) - + Error - + Failed to add torrent: %1 - + Download completion Download completion - + I/O Error i.e: Input/Output Error I/O Error - + Recursive download confirmation Recursive download confirmation - + Yes Yes - + No No - + Never Never - + Global Upload Speed Limit Global Upload Speed Limit - + Global Download Speed Limit Global Download Speed Limit - + &No &No - + &Yes &Yes - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2242,156 +2242,150 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background - + Python found in '%1' - + Download error Download error - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Invalid password - - + + RSS (%1) - + URL download error - + The password is invalid The password is invalid - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Hide - + Exiting qBittorrent Exiting qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Some files are currently transferring. Are you sure you want to quit qBittorrent? - + Open Torrent Files Open Torrent Files - + Torrent Files Torrent Files - + Options were saved successfully. Options were saved successfully. @@ -2399,17 +2393,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2419,32 +2413,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2471,154 +2465,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2633,1137 +2622,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - France + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + France + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3927,64 +3906,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Add a new peer... - + Copy selected - - + + Ban peer permanently Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Peer addition - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Are you sure you want to ban permanently the selected peers? - + &Yes &Yes - + &No &No @@ -4025,6 +4010,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Search plug-ins + + + + Installed search plugins: + + + + + Name + Name + + + + Version + + + + + Url + URL + + + + + Enabled + Enabled + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Install a new one + + + + Check for updates + Check for updates + + + + Close + Close + + + + Uninstall + Uninstall + + + + + + Yes + Yes + + + + + + + No + No + + + + Uninstall warning + Uninstall warning + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Uninstall success + + + + All selected plugins were uninstalled successfully + All selected plug-ins were uninstalled successfully + + + + + New search engine plugin URL + New search engine plug-in URL + + + + + URL: + URL: + + + + Invalid link + Invalid link + + + + The link doesn't seem to point to a search engine plugin. + The link doesn't seem to point to a search engine plug-in. + + + + Select search plugins + Select search plug-ins + + + + qBittorrent search plugin + + + + + + + Search plugin update + Search plug-in update + + + + All your plugins are already up to date. + All your plug-ins are already up to date. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Search plug-in install + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Plug-in source + + + + Search plugin source: + Search plug-in source: + + + + Local file + Local file + + + + Web link + Web link + + Preferences @@ -4081,89 +4262,89 @@ Are you sure you want to quit qBittorrent? Append .!qB extension to incomplete files - + Copy .torrent files to: Copy .torrent files to: - + Connections Limits Connections Limits - + Proxy Server Proxy Server - + Global Rate Limits Global Rate Limits - + Apply rate limit to transport overhead Apply rate limit to transport overhead - + Schedule the use of alternative rate limits Schedule the use of alternative rate limits - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Enable Local Peer Discovery to find more peers - + Encryption mode: Encryption mode: - + Prefer encryption Prefer encryption - + Require encryption Require encryption - + Disable encryption Disable encryption - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: Maximum active downloads: - + Maximum active uploads: Maximum active uploads: - + Maximum active torrents: Maximum active torrents: @@ -4188,82 +4369,82 @@ Are you sure you want to quit qBittorrent? Display torrent content and some options - + Run external program on torrent completion - + Port used for incoming connections: Port used for incoming connections: - + Random Random - + Global maximum number of connections: Global maximum number of connections: - + Maximum number of connections per torrent: Maximum number of connections per torrent: - + Maximum number of upload slots per torrent: Maximum number of upload slots per torrent: - - + + Upload: Upload: - - + + Download: Download: - - - - + + + + KiB/s KiB/s - + Remove folder Remove folder - + Every day Every day - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Type: @@ -4436,262 +4617,262 @@ Are you sure you want to quit qBittorrent? Automatically add torrents from: - + Add folder... Add folder... - + Copy .torrent files for finished downloads to: Copy .torrent files for finished downloads to: - + Email notification upon download completion E-mail notification upon download completion - + Destination email: Destination e-mail: - + SMTP server: SMTP server: - + This server requires a secure connection (SSL) This server requires a secure connection (SSL) - + Listening Port Listening Port - + Use UPnP / NAT-PMP port forwarding from my router Use UPnP / NAT-PMP port forwarding from my router - + Use different port on each startup Use different port on each start-up - + Global maximum number of upload slots: Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections Use proxy for peer connections - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering IP Filtering - + Reload the filter Reload the filter - + Apply to trackers - + Apply rate limit to peers on LAN - + When: When: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Privacy - + Enable DHT (decentralized network) to find more peers Enable DHT (decentralised network) to find more peers - + Enable Peer Exchange (PeX) to find more peers Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network Look for peers on your local network - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Enable anonymous mode - + Do not count slow torrents in these limits Do not count slow torrents in these limits - + Seed torrents until their ratio reaches Seed torrents until their ratio reaches - + then then - + Pause them Pause them - + Remove them Remove them - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Use UPnP / NAT-PMP to forward the port from my router - + Use HTTPS instead of HTTP Use HTTPS instead of HTTP - + Import SSL Certificate Import SSL Certificate - + Import SSL Key Import SSL Key - + Certificate: Certificate: - + Alternative Rate Limits - + Key: Key: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Bypass authentication for localhost Bypass authentication for localhost - + Update my dynamic domain name Update my dynamic domain name - + Service: Service: - + Register Register - + Domain name: Domain name: - + (None) (None) @@ -4701,61 +4882,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Authentication - - - - + + + + Username: Username: - - - - + + + + Password: Password: - + Torrent Queueing Torrent Queueing - + Share Ratio Limiting Share Ratio Limiting - + Enable Web User Interface (Remote control) Enable Web User Interface (Remote control) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filter path (.dat, .p2p, .p2b): @@ -4961,10 +5142,6 @@ Are you sure you want to quit qBittorrent? Comment: Comment: - - Torrent content: - Torrent content: - Select All @@ -5484,28 +5661,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5616,17 +5793,17 @@ No further notices will be issued. RSSImp - + Stream URL: Stream URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5646,75 +5823,77 @@ No further notices will be issued. New folder - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Please choose a new name for this RSS feed - + New feed name: New feed name: - + Name already in use Name already in use - + This name is already used by another item, please choose another one. This name is already used by another item, please choose another one. - + Date: Date: - + Author: Author: - + Unread Unread - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Failed to open downloaded RSS file. - - - - Invalid RSS feed at '%1'. - + Failed to open downloaded RSS file. @@ -5740,168 +5919,220 @@ No further notices will be issued. Maximum number of articles per feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + + + + + Choose save path + Choose save path + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Watched Folder - - Download here - Download here + + Save Files to + - - Download path - + Download here + Download here SearchCategories - All categories - All categories + All categories - Movies - Movies + Movies - TV shows - TV shows + TV shows - Music - Music + Music - Games - Games + Games - Anime - Anime + Anime - Software - Software + Software - Pictures - Pictures + Pictures - Books - Books + Books SearchEngine - - - Search - Search + Search - - Please install Python to use the Search Engine. - - - - Empty search pattern - Empty search pattern + Empty search pattern - Please type a search pattern first - Please type a search pattern first + Please type a search pattern first - Searching... - Searching... + Searching... - Stop - Stop + Stop - - Search Engine - Search Engine + Search Engine - - Search has finished - Search has finished + Search has finished - An error occurred during search... - An error occurred during search... + An error occurred during search... - - Search aborted - Search aborted + Search aborted - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Search returned no results + Search returned no results - - Stopped - Stopped + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + All categories + + + + Movies + Movies + + + + TV shows + TV shows + + + + Music + Music + + + + Games + Games + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Pictures + + + + Books + Books SearchListDelegate - - + + Unknown Unknown @@ -5909,35 +6140,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Name - + Size i.e: file size Size - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + Search engine Search engine + + SearchWidget + + + + + + + Search + Search + + + + Status: + Status: + + + + + Stopped + Stopped + + + + Download + Download + + + + Go to description page + Go to description page + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Search Engine + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Empty search pattern + + + + Please type a search pattern first + Please type a search pattern first + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Searching... + + + + Stop + Stop + + + + + Search has finished + Search has finished + + + + + Search aborted + Search aborted + + + + Search returned no results + Search returned no results + + + + Search has failed + + + + + An error occurred during search... + An error occurred during search... + + ShutdownConfirmDlg @@ -6382,24 +6738,28 @@ No further notices will be issued. TorrentContentModel - + Name Name - + Size Size - + Progress Progress - + + Download Priority + + + Priority - Priority + Priority @@ -6751,38 +7111,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7050,17 +7410,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Status - + Labels Labels - + Trackers Trackers @@ -7599,205 +7959,103 @@ No further notices will be issued. engineSelect - Search plugins - Search plug-ins + Search plug-ins - Installed search engines: - Installed search engines: + Installed search engines: - Name - Name + Name - - Version - - - - Url - URL + URL - - Enabled - Enabled + Enabled - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Install a new one + Install a new one - Check for updates - Check for updates + Check for updates - Close - Close + Close - Uninstall - Uninstall + Uninstall engineSelectDlg - Uninstall warning - Uninstall warning + Uninstall warning - Uninstall success - Uninstall success + Uninstall success - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - The link doesn't seem to point to a search engine plug-in. + The link doesn't seem to point to a search engine plug-in. - Select search plugins - Select search plug-ins + Select search plug-ins - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Search plug-in install + Search plug-in install - - - Yes - Yes + Yes - - - - No - No + No - - qBittorrent search plugin - - - - - - - Search plugin update - Search plug-in update + Search plug-in update - - Sorry, update server is temporarily unavailable. - Sorry, update server is temporarily unavailable. + Sorry, update server is temporarily unavailable. - All your plugins are already up to date. - All your plug-ins are already up to date. + All your plug-ins are already up to date. - All selected plugins were uninstalled successfully - All selected plug-ins were uninstalled successfully + All selected plug-ins were uninstalled successfully - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Invalid link + Invalid link - - New search engine plugin URL - New search engine plug-in URL + New search engine plug-in URL - - URL: - URL: + URL: @@ -7927,169 +8185,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Choose export directory - - - - + + + + Choose a save directory Choose a save directory - + Add directory to scan Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Folder is already being watched. - + Folder does not exist. Folder does not exist. - + Folder is not readable. Folder is not readable. - + Failure Failure - + Failed to add Scan Folder '%1': %2 Failed to add Scan Folder '%1': %2 - - + + Filters Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Parsing error - + Failed to parse the provided IP filter Failed to parse the provided IP filter - + Successfully refreshed Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Invalid key Invalid key - + This is not a valid SSL key. This is not a valid SSL key. - + Invalid certificate Invalid certificate - + This is not a valid SSL certificate. This is not a valid SSL certificate. - + The start time and the end time can't be the same. The start time and the end time can't be the same. - + Time Error Time Error @@ -8097,24 +8355,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Plug-in source + Plug-in source - Search plugin source: - Search plug-in source: + Search plug-in source: - Local file - Local file + Local file - Web link - Web link + Web link @@ -8143,40 +8397,28 @@ Those plugins were disabled. search_engine - - Search - Search + Search - Status: - Status: + Status: - Stopped - Stopped + Stopped - Download - Download + Download - Go to description page - Go to description page + Go to description page - - Copy description page URL - - - - Search engines... - Search engines... + Search engines... diff --git a/src/lang/qbittorrent_en_GB.ts b/src/lang/qbittorrent_en_GB.ts index 805727e9d..9f390ad3a 100644 --- a/src/lang/qbittorrent_en_GB.ts +++ b/src/lang/qbittorrent_en_GB.ts @@ -175,172 +175,172 @@ Do not download - - + + I/O Error I/O Error - + The torrent file does not exist. The torrent file does not exist. - + Invalid torrent Invalid torrent - + Failed to load the torrent: %1 Failed to load the torrent: %1 - - + + Already in download list Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available Not available - + Invalid magnet link Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized This magnet link was not recognised - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path Choose save path - + Rename the file Rename the file - + New name: New name: - - + + The file could not be renamed The file could not be renamed - + This file name contains forbidden characters, please choose a different one. This file name contains forbidden characters, please choose a different one. - - + + This name is already in use in this folder. Please use a different name. This name is already in use in this folder. Please use a different name. - + The folder could not be renamed The folder could not be renamed - + Rename... Rename... - + Priority Priority - + Invalid metadata - + Parsing metadata... Parsing metadata... - + Metadata retrieval complete Metadata retrieval complete - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Resolve peer host names - - Maximum number of half-open connections [0: Disabled] - Maximum number of half-open connections [0: Disabled] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name New rule name - + Please type the name of the new download rule. Please type the name of the new download rule. - - + + Rule name conflict Rule name conflict - - + + A rule with this name already exists, please choose another name. A rule with this name already exists, please choose another name. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Are you sure you want to remove the selected download rules? - + Rule deletion confirmation Rule deletion confirmation - + Destination directory Destination directory - + Invalid action Invalid action - + The list is empty, there is nothing to export. The list is empty, there is nothing to export. - + Where would you like to save the list? Where would you like to save the list? - + Rules list (*.rssrules) Rules list (*.rssrules) - + I/O Error I/O Error - + Failed to create the destination file Failed to create the destination file - + Please point to the RSS download rules file Please point to the RSS download rules file - + Rules list - + Import Error Import Error - + Failed to import the selected rules file Failed to import the selected rules file - + Add new rule... Add new rule... - + Delete rule Delete rule - + Rename rule... Rename rule... - + Delete selected rules Delete selected rules - + Rule renaming Rule renaming - + Please type the new rule name Please type the new rule name - + Regex mode: use Perl-like regular expressions Regex mode: use Perl-like regular expressions - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>White-spaces count as AND operators</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Value - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread Unread @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Only one link per line - - Download local torrent - Download local torrent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Downloaded @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &About - - Exit - Exit - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Show - + Check for program updates - - Lock qBittorrent - Lock qBittorrent - Add Torrent &Link... @@ -2026,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Execution Log - + Clear the password Clear the password - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers Transfers - + Torrent file association Torrent file association - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password UI lock password - - - + + + Please type the UI lock password: Please type the UI lock password: - + The password should contain at least 3 characters The password should contain at least 3 characters - + Password update Password update - + The UI lock password has been successfully updated The UI lock password has been successfully updated - + Are you sure you want to clear the password? Are you sure you want to clear the password? - + Search Search - + Transfers (%1) Transfers (%1) - + Error - + Failed to add torrent: %1 - + Download completion Download completion - + I/O Error i.e: Input/Output Error I/O Error - + Recursive download confirmation Recursive download confirmation - + Yes Yes - + No No - + Never Never - + Global Upload Speed Limit Global Upload Speed Limit - + Global Download Speed Limit Global Download Speed Limit - + &No &No - + &Yes &Yes - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2242,156 +2242,150 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background - + Python found in '%1' - + Download error Download error - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Invalid password - - + + RSS (%1) - + URL download error - + The password is invalid The password is invalid - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Hide - + Exiting qBittorrent Exiting qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Some files are currently transferring. Are you sure you want to quit qBittorrent? - + Open Torrent Files Open Torrent Files - + Torrent Files Torrent Files - + Options were saved successfully. Options were saved successfully. @@ -2399,17 +2393,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2419,32 +2413,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2471,154 +2465,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2633,1137 +2622,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - France + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + France + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3927,64 +3906,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Add a new peer... - + Copy selected - - + + Ban peer permanently Ban peer permanently - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Peer addition - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Are you sure you want to ban permanently the selected peers? - + &Yes &Yes - + &No &No @@ -4025,6 +4010,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Search plug-ins + + + + Installed search plugins: + + + + + Name + Name + + + + Version + + + + + Url + URL + + + + + Enabled + Enabled + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Install a new one + + + + Check for updates + Check for updates + + + + Close + Close + + + + Uninstall + Uninstall + + + + + + Yes + Yes + + + + + + + No + No + + + + Uninstall warning + Uninstall warning + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Uninstall success + + + + All selected plugins were uninstalled successfully + All selected plug-ins were uninstalled successfully + + + + + New search engine plugin URL + New search engine plug-in URL + + + + + URL: + URL: + + + + Invalid link + Invalid link + + + + The link doesn't seem to point to a search engine plugin. + The link doesn't seem to point to a search engine plug-in. + + + + Select search plugins + Select search plug-ins + + + + qBittorrent search plugin + + + + + + + Search plugin update + Search plug-in update + + + + All your plugins are already up to date. + All your plug-ins are already up to date. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Search plug-in install + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Plug-in source + + + + Search plugin source: + Search plug-in source: + + + + Local file + Local file + + + + Web link + Web link + + Preferences @@ -4081,89 +4262,89 @@ Are you sure you want to quit qBittorrent? Append .!qB extension to incomplete files - + Copy .torrent files to: Copy .torrent files to: - + Connections Limits Connections Limits - + Proxy Server Proxy Server - + Global Rate Limits Global Rate Limits - + Apply rate limit to transport overhead Apply rate limit to transport overhead - + Schedule the use of alternative rate limits Schedule the use of alternative rate limits - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Enable Local Peer Discovery to find more peers - + Encryption mode: Encryption mode: - + Prefer encryption Prefer encryption - + Require encryption Require encryption - + Disable encryption Disable encryption - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: Maximum active downloads: - + Maximum active uploads: Maximum active uploads: - + Maximum active torrents: Maximum active torrents: @@ -4188,82 +4369,82 @@ Are you sure you want to quit qBittorrent? Display torrent content and some options - + Run external program on torrent completion - + Port used for incoming connections: Port used for incoming connections: - + Random Random - + Global maximum number of connections: Global maximum number of connections: - + Maximum number of connections per torrent: Maximum number of connections per torrent: - + Maximum number of upload slots per torrent: Maximum number of upload slots per torrent: - - + + Upload: Upload: - - + + Download: Download: - - - - + + + + KiB/s KiB/s - + Remove folder Remove folder - + Every day Every day - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Type: @@ -4436,262 +4617,262 @@ Are you sure you want to quit qBittorrent? Automatically add torrents from: - + Add folder... Add folder... - + Copy .torrent files for finished downloads to: Copy .torrent files for finished downloads to: - + Email notification upon download completion E-mail notification upon download completion - + Destination email: Destination e-mail: - + SMTP server: SMTP server: - + This server requires a secure connection (SSL) This server requires a secure connection (SSL) - + Listening Port Listening Port - + Use UPnP / NAT-PMP port forwarding from my router Use UPnP / NAT-PMP port forwarding from my router - + Use different port on each startup Use different port on each start-up - + Global maximum number of upload slots: Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections Use proxy for peer connections - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering IP Filtering - + Reload the filter Reload the filter - + Apply to trackers - + Apply rate limit to peers on LAN - + When: When: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Privacy - + Enable DHT (decentralized network) to find more peers Enable DHT (decentralised network) to find more peers - + Enable Peer Exchange (PeX) to find more peers Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network Look for peers on your local network - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Enable anonymous mode - + Do not count slow torrents in these limits Do not count slow torrents in these limits - + Seed torrents until their ratio reaches Seed torrents until their ratio reaches - + then then - + Pause them Pause them - + Remove them Remove them - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Use UPnP / NAT-PMP to forward the port from my router - + Use HTTPS instead of HTTP Use HTTPS instead of HTTP - + Import SSL Certificate Import SSL Certificate - + Import SSL Key Import SSL Key - + Certificate: Certificate: - + Alternative Rate Limits - + Key: Key: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Bypass authentication for localhost Bypass authentication for localhost - + Update my dynamic domain name Update my dynamic domain name - + Service: Service: - + Register Register - + Domain name: Domain name: - + (None) (None) @@ -4701,61 +4882,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Authentication - - - - + + + + Username: Username: - - - - + + + + Password: Password: - + Torrent Queueing Torrent Queueing - + Share Ratio Limiting Share Ratio Limiting - + Enable Web User Interface (Remote control) Enable Web User Interface (Remote control) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filter path (.dat, .p2p, .p2b): @@ -4961,10 +5142,6 @@ Are you sure you want to quit qBittorrent? Comment: Comment: - - Torrent content: - Torrent content: - Select All @@ -5484,28 +5661,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5616,17 +5793,17 @@ No further notices will be issued. RSSImp - + Stream URL: Stream URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5646,75 +5823,77 @@ No further notices will be issued. New folder - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Please choose a new name for this RSS feed - + New feed name: New feed name: - + Name already in use Name already in use - + This name is already used by another item, please choose another one. This name is already used by another item, please choose another one. - + Date: Date: - + Author: Author: - + Unread Unread - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Failed to open downloaded RSS file. - - - - Invalid RSS feed at '%1'. - + Failed to open downloaded RSS file. @@ -5740,168 +5919,220 @@ No further notices will be issued. Maximum number of articles per feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + + + + + Choose save path + Choose save path + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Watched Folder - - Download here - Download here + + Save Files to + - - Download path - + Download here + Download here SearchCategories - All categories - All categories + All categories - Movies - Movies + Movies - TV shows - TV shows + TV shows - Music - Music + Music - Games - Games + Games - Anime - Anime + Anime - Software - Software + Software - Pictures - Pictures + Pictures - Books - Books + Books SearchEngine - - - Search - Search + Search - - Please install Python to use the Search Engine. - - - - Empty search pattern - Empty search pattern + Empty search pattern - Please type a search pattern first - Please type a search pattern first + Please type a search pattern first - Searching... - Searching... + Searching... - Stop - Stop + Stop - - Search Engine - Search Engine + Search Engine - - Search has finished - Search has finished + Search has finished - An error occurred during search... - An error occurred during search... + An error occurred during search... - - Search aborted - Search aborted + Search aborted - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Search returned no results + Search returned no results - - Stopped - Stopped + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + All categories + + + + Movies + Movies + + + + TV shows + TV shows + + + + Music + Music + + + + Games + Games + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Pictures + + + + Books + Books SearchListDelegate - - + + Unknown Unknown @@ -5909,35 +6140,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Name - + Size i.e: file size Size - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + Search engine Search engine + + SearchWidget + + + + + + + Search + Search + + + + Status: + Status: + + + + + Stopped + Stopped + + + + Download + Download + + + + Go to description page + Go to description page + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Search Engine + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Empty search pattern + + + + Please type a search pattern first + Please type a search pattern first + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Searching... + + + + Stop + Stop + + + + + Search has finished + Search has finished + + + + + Search aborted + Search aborted + + + + Search returned no results + Search returned no results + + + + Search has failed + + + + + An error occurred during search... + An error occurred during search... + + ShutdownConfirmDlg @@ -6382,24 +6738,28 @@ No further notices will be issued. TorrentContentModel - + Name Name - + Size Size - + Progress Progress - + + Download Priority + + + Priority - Priority + Priority @@ -6751,38 +7111,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7050,17 +7410,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Status - + Labels Labels - + Trackers Trackers @@ -7599,205 +7959,103 @@ No further notices will be issued. engineSelect - Search plugins - Search plug-ins + Search plug-ins - Installed search engines: - Installed search engines: + Installed search engines: - Name - Name + Name - - Version - - - - Url - URL + URL - - Enabled - Enabled + Enabled - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Install a new one + Install a new one - Check for updates - Check for updates + Check for updates - Close - Close + Close - Uninstall - Uninstall + Uninstall engineSelectDlg - Uninstall warning - Uninstall warning + Uninstall warning - Uninstall success - Uninstall success + Uninstall success - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - The link doesn't seem to point to a search engine plug-in. + The link doesn't seem to point to a search engine plug-in. - Select search plugins - Select search plug-ins + Select search plug-ins - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Search plug-in install + Search plug-in install - - - Yes - Yes + Yes - - - - No - No + No - - qBittorrent search plugin - - - - - - - Search plugin update - Search plug-in update + Search plug-in update - - Sorry, update server is temporarily unavailable. - Sorry, update server is temporarily unavailable. + Sorry, update server is temporarily unavailable. - All your plugins are already up to date. - All your plug-ins are already up to date. + All your plug-ins are already up to date. - All selected plugins were uninstalled successfully - All selected plug-ins were uninstalled successfully + All selected plug-ins were uninstalled successfully - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Invalid link + Invalid link - - New search engine plugin URL - New search engine plug-in URL + New search engine plug-in URL - - URL: - URL: + URL: @@ -7927,169 +8185,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Choose export directory - - - - + + + + Choose a save directory Choose a save directory - + Add directory to scan Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Folder is already being watched. - + Folder does not exist. Folder does not exist. - + Folder is not readable. Folder is not readable. - + Failure Failure - + Failed to add Scan Folder '%1': %2 Failed to add Scan Folder '%1': %2 - - + + Filters Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Parsing error - + Failed to parse the provided IP filter Failed to parse the provided IP filter - + Successfully refreshed Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Invalid key Invalid key - + This is not a valid SSL key. This is not a valid SSL key. - + Invalid certificate Invalid certificate - + This is not a valid SSL certificate. This is not a valid SSL certificate. - + The start time and the end time can't be the same. The start time and the end time can't be the same. - + Time Error Time Error @@ -8097,24 +8355,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Plug-in source + Plug-in source - Search plugin source: - Search plug-in source: + Search plug-in source: - Local file - Local file + Local file - Web link - Web link + Web link @@ -8143,40 +8397,28 @@ Those plugins were disabled. search_engine - - Search - Search + Search - Status: - Status: + Status: - Stopped - Stopped + Stopped - Download - Download + Download - Go to description page - Go to description page + Go to description page - - Copy description page URL - - - - Search engines... - Search engines... + Search engines... diff --git a/src/lang/qbittorrent_eo.ts b/src/lang/qbittorrent_eo.ts index 448a8e69c..d00ee7a02 100644 --- a/src/lang/qbittorrent_eo.ts +++ b/src/lang/qbittorrent_eo.ts @@ -34,7 +34,7 @@ E-mail: - Retpoŝto: + Retpoŝtadreso: @@ -59,7 +59,7 @@ This version of qBittorrent was built against the following libraries: - Ĉi tiu versio de qBittorrent konstruiĝis kun la sekvaj bibliotekoj: + Ĉi tiu versio de qBittorrent konstruiĝis kun la jenaj bibliotekoj: @@ -102,7 +102,7 @@ Never show again - Neniam remontri + Neniam remontru @@ -127,12 +127,12 @@ Set as default label - + Agordi kiel la defaŭlta etikedo Torrent Information - Informoj de la Torento + Informoj de la torento @@ -172,177 +172,177 @@ Do not download - Ne elŝuti + Ne elŝutu - - + + I/O Error - Eneliga Eraro + Eneliga eraro - + The torrent file does not exist. La torentodosiero ne ekzistas. - + Invalid torrent - Nevalida torento + Malvalida torento - + Failed to load the torrent: %1 - Malsukcesis ŝargi la torenton: %1 + Ne eblis ŝargi la torenton: %1 - - + + Already in download list Jam en la elŝuta listo - + Free disk space: %1 Libera diskospaco: %1 - + Not Available This comment is unavailable Ne Disponeblas - + Not Available This date is unavailable Ne Disponeblas - + Not available Ne disponeblas - + Invalid magnet link - Nevalida magnet-ligilo + Malvalida magnet-ligilo - + Torrent is already in download list. Trackers were merged. - La torento jam estas en la elŝuta listo. La ŝanĝospuriloj kunfandiĝis. + La torento jam estas en la elŝuta listo. La spuriloj kunfandiĝis. - - + + Cannot add torrent Ne eblas aldoni la torenton - + Cannot add this torrent. Perhaps it is already in adding state. Ne eblas aldoni ĉi tiun torenton. Ĝi eble jam estas en la aldonata stato. - + This magnet link was not recognized Ĉi tiu magnet-ligilo ne estis rekonata - + Magnet link is already in download list. Trackers were merged. - La magnet-ligilo jam estas en la elŝuta listo. La ŝanĝospuriloj kunfandiĝis. + La magnet-ligilo jam estas en la elŝuta listo. La spuriloj kunfandiĝis. - + Cannot add this torrent. Perhaps it is already in adding. Ne eblas aldoni ĉi tiun torenton. Ĝi eble jam estas aldonata. - + Magnet link Magnet-ligilo - + Retrieving metadata... - Ricevante metadatumojn... + Ricevante metadatenojn... - + Not Available This size is unavailable. - Ne Disponeblas + Ne disponeblas - - - + + + Choose save path Elektu la dosierindikon por konservi - + Rename the file - Renomi la dosieron + Renomu la dosieron - + New name: Nova nomo: - - + + The file could not be renamed La dosiero ne eblis renomiĝi - + This file name contains forbidden characters, please choose a different one. La dosiernomo enhavas malpermesitajn signojn, bonvolu elekti alian. - - + + This name is already in use in this folder. Please use a different name. La nomo jam estas uzata en ĉi tiu dosierujo. Bonvolu uzi alian nomon. - + The folder could not be renamed La dosierujo ne eblis renomiĝi - + Rename... Renomi... - + Priority Prioritato - + Invalid metadata - Nevalidaj metadatumoj - - - - Parsing metadata... - Sintakse analizante metadatumojn... + Malvalidaj metadatenoj - Metadata retrieval complete - La ricevo de metadatumoj finiĝis + Parsing metadata... + Sintakse analizante metadatenojn... - + + Metadata retrieval complete + La ricevo de metadatenoj finiĝis + + + Download Error - Elŝuta Eraro + Elŝuta eraro @@ -370,12 +370,12 @@ Recheck torrents on completion - + Rekontroli torentojn post fino Transfer list refresh interval - + Intervalo inter aktualigoj de la transmetlisto @@ -408,12 +408,12 @@ Disk cache expiry interval - + Intervalo por senvalidigado de la diska kaŝmemoro Enable OS cache - + Ebligi operaciuman kaŝmemoron @@ -439,27 +439,27 @@ Network Interface (requires restart) - + Retinterfaco (nepras relanĉi) Listen on IPv6 address (requires restart) - + Aŭdu per adreso IPv6 (nepras relanĉi) Confirm torrent recheck - + Konfirmi rekontrolon de la torento Exchange trackers with other peers - + Interŝanĝi spurilojn kun aliaj samtavolanoj Always announce to all trackers - Ĉiam konekti al ĉiuj ŝanĝospuriloj + Ĉiam konekti al ĉiuj spuriloj @@ -471,12 +471,12 @@ Save resume data interval How often the fastresume file is saved. - Konserv-intervalo de reaktivigaj datumoj + Intervalo inter konservoj de reaktivigaj datenoj Maximum number of half-open connections [0: Unlimited] - + Maksimuma nombro da duon-malfermitaj konektoj [0: Senlime] @@ -491,22 +491,22 @@ Enable embedded tracker - + Ebligu enigitan spurilon Embedded tracker port - + Enigita spurila pordo Check for software updates - + Kontroli programaran ĝisdatigadon Use system icon theme - + Uzi sisteman bildsimbolaron @@ -553,12 +553,12 @@ Save to: - Konservi en: + Konservu en: RSS Downloader - + RSS-elŝutilo @@ -568,42 +568,42 @@ Download Rules - + Elŝutaj reguloj Rule Definition - + Difino de regulo Use Regular Expressions - + Uzi regulajn esprimojn Must Contain: - + Nepras enhavi: Must Not Contain: - + Nepras ne enhavi: Episode Filter: - + Epizodfiltrilo: Assign Label: - + Atribui etikedon: Save to a Different Directory - + Konservi en alian dosierujon @@ -624,17 +624,17 @@ Use global settings - + Uzi la mallokan agordon Always - + Ĉiam Never - Neniam + Neniam @@ -649,213 +649,213 @@ &Import... - + &Enporti... &Export... - + E&lporti... - + Matches articles based on episode filter. - + Example: Ekzemplo: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Epizodfiltrilaj reguloj: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Lasta kongruo: antaŭ %1 tagoj - + Last Match: Unknown - + Lasta kongruo: Nekonata - + New rule name Nova regulnomo - + Please type the name of the new download rule. - + Bonvolu tajpi la nomon de la nova elŝutregulo. - - + + Rule name conflict - + Regulnoma konflikto - - + + A rule with this name already exists, please choose another name. - + Are you sure you want to remove the download rule named '%1'? - - - - - Are you sure you want to remove the selected download rules? - + Ĉu vi certas, ke vi volas forigi la elŝutregulon, kies nomo estas '%1'? - Rule deletion confirmation - + Are you sure you want to remove the selected download rules? + Ĉu vi certas, ke vi volas forigi la elektitajn elŝutregulojn? - + + Rule deletion confirmation + Regul-foriga konfirmado + + + Destination directory Celdosierujo - + Invalid action - Nevalida ago + Malvalida ago - + The list is empty, there is nothing to export. La listo malplenas, estas nenio por elporti. - + Where would you like to save the list? Kie vi volas konservi la liston? - + Rules list (*.rssrules) Listo da reguloj (*.rssrules) - + I/O Error - Eneliga Eraro + Eneliga eraro - + Failed to create the destination file - + Ne eblis krei la celdosieron - + Please point to the RSS download rules file - + Rules list Listo da reguloj - + Import Error - Enporta Eraro + Enporta eraro - + Failed to import the selected rules file - + Add new rule... Aldoni novan regulon... - + Delete rule Forigi la regulon - + Rename rule... Renomi la regulon... - + Delete selected rules Forigi elektitajn regulojn - + Rule renaming - + Regul-renomado - + Please type the new rule name - + Bonvolu tajpi la novan regulnomon - + Regex mode: use Perl-like regular expressions - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> @@ -870,17 +870,17 @@ HTTP User-Agent is '%1' - + HTTP-uzantagento estas '%1' Anonymous mode [ON] - Sennoma modo [ŜALTITA] + Sennoma reĝimo [ŜALTITA] Anonymous mode [OFF] - Sennoma modo [MALŜALTITA] + Sennoma reĝimo [MALŜALTITA] @@ -925,7 +925,7 @@ Embedded Tracker [ON] - + Enigita spurilo [ŜALTITA] @@ -935,7 +935,7 @@ Embedded Tracker [OFF] - + Enigita spurilo [MALŜALTITA] @@ -948,65 +948,65 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + KONEKTITA - + OFFLINE - + MALKONEKTITA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Ne eblas malkodi la torentdosieron '%1' - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + Ne eblis konservi dosieron '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + ĉar %1 estas malebligita. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + ĉar %1 estas malebligita. - + URL seed lookup failed for URL: '%1', message: %2 - + URL-fonta elserĉo malsukcesis kun la URL-adreso: '%1', mesaĝo: %2 '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' estis forigita de la transmetlisto kaj diskilo. @@ -1015,164 +1015,164 @@ '%1' foriĝis de la transmetlisto. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - Elŝutante na '%1', bonvolu atendi... + '%1' estas elŝutata, bonvolu atendi... - + DHT support [ON] Subteno de DHT [ŜALTITA] - + DHT support [OFF]. Reason: %1 Subteno de DHT [MALŜALTITA]. Kial: %1 - + DHT support [OFF] Subteno de DHT [MALŜALTITA] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + La difinita reta interfaco malvalidas: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent provantas aŭskulti per interfaco %1 pordo: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent ne trovis lokan adreson de %1 por aŭskulti - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + qBittorrent ne eblis aŭskulti per iu ajn interfaco pordo: %1. Kialo: %2 - + Tracker '%1' was added to torrent '%2' - Ŝanĝospurilo '%1' aldoniĝis al la torento '%2' + Spurilo '%1' aldoniĝis al la torento '%2' - + Tracker '%1' was deleted from torrent '%2' - Ŝanĝospurilo '%1' foriĝis de la torento '%2' + Spurilo '%1' foriĝis de la torento '%2' - + URL seed '%1' was added to torrent '%2' URL-fonto '%1' aldoniĝis al la torento '%2' - + URL seed '%1' was removed from torrent '%2' - + URL-fonto '%1' foriĝis de torento '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ne eblas reaktivigi la torenton '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 Ne eblis aldoni la torenton. Kial: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' reaktiviĝis. (rapida reaktiviĝo) - + '%1' added to download list. 'torrent name' was added to download list. '%1' aldoniĝis al la elŝutlisto. - + An I/O error occurred, '%1' paused. %2 Eneliga eraro okazis, '%1' paŭzis. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. pro IP-filtrilo. - + due to port filter. this peer was blocked due to port filter. - pro porda filtro. + pro porda filtrilo. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. ĉar ĝi havas malaltan pordon. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent sukcese aŭskultantas per interfaco %1 pordo: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent ne eblis aŭskulti per interfaco %1 pordo: %2/%3. Kialo: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Ekstera IP-adreso: %1 @@ -1186,12 +1186,12 @@ Ne eblis movigi la torenton: '%1'. Kial: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1201,7 +1201,7 @@ Cookies management - + Kuketadministrado @@ -1216,7 +1216,7 @@ Valoro - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1228,7 +1228,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + Ĉu vi certas, ke vi volas '%1' foriĝi de la transmetlisto? @@ -1242,17 +1242,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + Blankaj: Mankaj pecoj Green: Partial pieces - + Verdak: Partaj pecoj Blue: Completed pieces - + Bluaj: Finitaj pecoj @@ -1271,24 +1271,24 @@ You should get this information from your Web browser preferences. <font color='red'>%1</font> was blocked %2 x.y.z.w was blocked - + <font color='red'>%1</font> blokiĝis %2 <font color='red'>%1</font> was banned x.y.z.w was banned - + <font color='red'>%1</font> forbariĝis FeedListWidget - + RSS feeds - + RSS-fluoj - + Unread Nelegita @@ -1320,7 +1320,7 @@ You should get this information from your Web browser preferences. Unsupported database file size. - + Nesubtenata databank-dosiergrando. @@ -1335,7 +1335,7 @@ You should get this information from your Web browser preferences. Unsupported database version: %1.%2 - + Nesubtenata datenbank-versio: %1.%2 @@ -1350,7 +1350,7 @@ You should get this information from your Web browser preferences. Invalid database type: %1 - + Malvalida datenbanktipo: %1 @@ -1378,66 +1378,62 @@ You should get this information from your Web browser preferences. Download Torrents from their URL or Magnet link - + Elŝuti torentojn de ties URL-ligiloj aŭ magnet-ligiloj Only one link per line Nur po unu ligilo por linio - - Download local torrent - Elŝuti lokan torenton - Download - + Elŝuti Global upload rate limit must be greater than 0 or disabled. - + La malloka alŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. Global download rate limit must be greater than 0 or disabled. - + La malloka elŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. Alternative upload rate limit must be greater than 0 or disabled. - + La alternativa alŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. Alternative download rate limit must be greater than 0 or disabled. - + La alternativa elŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. Maximum active downloads must be greater than -1. - + La maksimumo de aktivaj elŝutoj nepras esti pli ol -1. Maximum active uploads must be greater than -1. - + La maksimumo de aktivaj alŝutoj nepras esti pli ol -1. Maximum active torrents must be greater than -1. - + La maksimumo de aktivaj torentoj nepras esti pli ol -1. Maximum number of connections limit must be greater than 0 or disabled. - + La maksimuma limo de la nombro da konektoj nepras esti aŭ pli ol 0 aŭ malebligita. Maximum number of connections per torrent limit must be greater than 0 or disabled. - + La maksimuma limo de la nombro da konektoj por torento nepras esti aŭ pli ol 0 aŭ malebligita. @@ -1472,7 +1468,7 @@ You should get this information from your Web browser preferences. Invalid Username or Password. - Nevalida Uzantnomo aŭ Pasvorto. + Malvalida uzantnomo aŭ pasvorto. @@ -1487,7 +1483,7 @@ You should get this information from your Web browser preferences. Upload Failed! - Alŝuto Malsukcesis! + Alŝuto malsukcesis! @@ -1562,23 +1558,33 @@ You should get this information from your Web browser preferences. Save files to location: - Konservi dosierojn al la loko: + Konservi dosierojn al la loko: Label: - Etikedo: + Etikedo: Cookie: + Kuketo: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? - Elŝutis + Elŝutita @@ -1588,22 +1594,22 @@ You should get this information from your Web browser preferences. Upload local torrent - + Alŝuti lokan torenton Are you sure you want to delete the selected torrents from the transfer list? - + Ĉu vi certas, ke vi volas forigi la elektitajn torentojn de la transmetlisto? The Web UI username must be at least 3 characters long. - + La uzantnomo por TTT-UI nepras esti almenaŭ 3 signojn longa. The Web UI password must be at least 3 characters long. - + La pasvorto por TTT-UI nepras esti almenaŭ 3 signojn longa. @@ -1613,7 +1619,7 @@ You should get this information from your Web browser preferences. qBittorrent client is not reachable - + La qBittorrent-kliento ne atingiĝeblas. @@ -1623,17 +1629,17 @@ You should get this information from your Web browser preferences. The following parameters are supported: - + La jenaj parametroj estas subtenataj: Torrent path - + Torentindiko Torrent name - + Nomo de la torento @@ -1704,7 +1710,7 @@ You should get this information from your Web browser preferences. Delete torrents - Forigi la torentojn + Forigu la torentojn @@ -1719,7 +1725,7 @@ You should get this information from your Web browser preferences. Invalid label name - Nevalida etikednomo + Malvalida etikednomo @@ -1828,18 +1834,18 @@ You should get this information from your Web browser preferences. Decrease Priority - + Malpliigi prioritaton Increase Priority - + Pliigi prioritaton Alternative Speed Limits - + Alternativaj rapidlimoj @@ -1864,37 +1870,37 @@ You should get this information from your Web browser preferences. &RSS Reader - + &RSS-legilo Search &Engine - + &Serĉilo L&ock qBittorrent - Ŝl&osi na qBittorrent + Ŝl&osi la qBittorrent-klienton &Import Existing Torrent... - E&nporti Ekzistantan Torenton... + E&nportu Ekzistantan Torenton... Import Torrent... - Enporti Torenton... + Enportu Torenton... Do&nate! - Do&naci! + Do&nacu! R&esume All - R&eaktivigi Ĉion + R&eaktivigu Ĉion @@ -1904,22 +1910,22 @@ You should get this information from your Web browser preferences. &Exit qBittorrent - Ĉ&esigi na qBittorrent + Ĉ&esigi la qBittorrent-klienton &Suspend System - + &Haltetigi la sistemon &Hibernate System - + &Diskodormigi la sistemon S&hutdown System - + Mal&ŝalti la sistemon @@ -1934,72 +1940,52 @@ You should get this information from your Web browser preferences. Check for Updates - + Kontroli ĝisdatigadon Check for Program Updates - + Kontroli programaran ĝisdatigadon &About &Pri - - Exit - Ĉesigi - &Pause - &Paŭzigi + &Paŭzigu &Delete - &Forigi + &Forigu P&ause All - &Paŭzigi Ĉion + &Paŭzigu Ĉion &Add Torrent File... - Aldoni Torent&dosieron... + Aldonu Torent&dosieron... Open - Malfermi + Malfermu E&xit - &Ĉesi - - - Options - Opcioj - - - Resume - Reaktivigi - - - Pause - Paŭzigi - - - Delete - Forigi + &Ĉesu Open URL - Malfermi na URL + Malfermu URL-adreson @@ -2009,401 +1995,405 @@ You should get this information from your Web browser preferences. Lock - Ŝlosi + Ŝlosu - + Show - Montri + Montru - + Check for program updates - - - - Lock qBittorrent - Ŝlosi na qBittorrent + Kontroli programaran ĝisdatigadon Add Torrent &Link... - Aldoni Torent&ligilon... + Aldonu Torent&ligilon... If you like qBittorrent, please donate! - + Se qBittorrent plaĉas al vi, bonvolu donaci! - + Execution Log - + Clear the password - + Vakigi la pasvorton - + Filter torrent list... - + Filtri la torentliston... - + &Set Password - + &Agordi pasvorton - + &Clear Password - + &Vakigi la pasvorton - + Transfers - + Transmetoj - + Torrent file association - + Torentdosiera asocio - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - + Icons Only - + Nur bildsimboloj - + Text Only - + Nur Teksto - + Text Alongside Icons - + Teksto apud bildsimboloj - + Text Under Icons - + Teksto sub bildsimboloj - + Follow System Style - + Uzi la sisteman stilon - - - + + + UI lock password - + UI-ŝlosa pasvorto - - - + + + Please type the UI lock password: - + Bonvolu tajpi la UI-ŝlosilan pasvorton: - + The password should contain at least 3 characters - + La pasvorto devus enhavi almenaŭ 3 signojn - + Password update - + Pasvortĝisdatigado - + The UI lock password has been successfully updated - + La UI-ŝlosa pasvorto sukcese ĝisdatiĝis - + Are you sure you want to clear the password? - + Ĉu vi certas, ke vi volas vakigi la pasvorton? - + Search - Serĉo + Serĉu - + Transfers (%1) - + Transmetoj (%1) - + Error Eraro - + Failed to add torrent: %1 - Malsukcesis aldoni la torenton: %1 + Ne eblis aldoni la torenton: %1 - + Download completion - + Elŝutfino - + I/O Error i.e: Input/Output Error - Eneliga Eraro + Eneliga eraro - + Recursive download confirmation - + Yes Jes - + No Ne - + Never Neniam - + Global Upload Speed Limit Malloka Alŝutrapidlimo - + Global Download Speed Limit Malloka Elŝutrapidlimo - + &No &Ne - + &Yes &Jes - + &Always Yes &Ĉiam Jes - + Python found in %1 - + Pitono trovita en %1 - + Old Python Interpreter - + Malnova Pitona interpretilo - + qBittorrent Update Available + Ĝisdatigo por qBittorrent disponeblas + + + + A new version is available. +Do you want to download %1? - + Already Using the Latest qBittorrent Version - + La lasta versio de qBittorrent jam estas uzata - + Undetermined Python version - + Pitona versio ne estas determinita - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + '%1' finiĝis elŝuton. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + Eneliga eraro ozakis por la torento '%1'. +Kial: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + La torento '%1' enhavas torentdosierojn. Ĉu vi volas ilin elŝuti? - + Couldn't download file at URL '%1', reason: %2. - + Ne eblis elŝuti dosieron ĉe URL '%1', kialo: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Manka Pitona interpretilo - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Pitono estas bezona por uzi la serĉilon, sed ŝajnas, ke ĝi ne estas instalita. +Ĉu vi volas instali ĝin nun? - + Python is required to use the search engine but it does not seem to be installed. - + Pitono estas bezona por uzi la serĉilon, sed ŝajnas, ke ĝi ne estas instalita. - A new version is available. Update to version %1? - Nova versio disponeblas. + Nova versio disponeblas. Ĉu ĝisdatigu al la versio %1? - + No updates available. You are already using the latest version. Neniu ĝisdatigo disponeblas. Vi jam uzas la aktualan version. - + &Check for Updates - + &Kontroli ĝisdatigadon - + Checking for Updates... - + Kontrolante ĝisdatigadon... - + Already checking for program updates in the background - + Jam kontrolante programan ĝisdatigon fone - + Python found in '%1' - + Pitono trovita en '%1' - + Download error Elŝuta eraro - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password - Nevalida pasvorto + Malvalida pasvorto - - + + RSS (%1) RSS (%1) - + URL download error URL-elŝuta eraro - + The password is invalid - La pasvorto nevalidas + La pasvorto malvalidas - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Elŝutrapido: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Alŝutrapido: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [E: %1, A: %2] qBittorrent %3 - + Hide Kaŝi - + Exiting qBittorrent - Ĉesigante na qBittorrent + qBittorrent ĉesantas - + Some files are currently transferring. Are you sure you want to quit qBittorrent? - + Kelkaj dosieroj transmetantas. +Ĉu vi certas, ke vi volas ĉesigi la qBittorrent-klienton? - + Open Torrent Files Malfermi Torentdosierojn - + Torrent Files Torentdosieroj - + Options were saved successfully. Opcioj konserviĝis sukcese. @@ -2411,54 +2401,54 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Via dinamika domajna nomsistemo ĝisdatiĝis sukcese. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dinamika domajna nomsistema eraro: la servo ne disponeblas dumtempe. Reprovonte post 30 minutoj. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Dinamika domajna nomsistema eraro: la registrita gastignomo ne ekzistas per la specifita konto. Dynamic DNS error: Invalid username/password. - + Dinamika domajna nomsistema eraro: malvalida uzantnomo/pasvorto. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dinamika domajna nomsistema eraro: qBittorrent listiĝis je nigra listo de la servo, bonvolu raporti cimon ĉe http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dinamika domajna nomsistema eraro: %1 reportiĝis de la servo, bonvolu raporti cimon ĉe http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dinamika domajna nomsistema eraro: via uzantnomo blokiĝis pro misuzado. - + Dynamic DNS error: supplied domain name is invalid. - + Dinamika domajna nomsistema eraro: la registrita domajna nomo malvalidas. - + Dynamic DNS error: supplied username is too short. - + Dinamika domajna nomsistema eraro: la registrita uzantnomo tro mallongas. - + Dynamic DNS error: supplied password is too short. - + Dinamika domajna nomsistema eraro: la registrita pasvorto tro mallongas. @@ -2466,12 +2456,12 @@ Are you sure you want to quit qBittorrent? I/O Error - Eneliga Eraro + Eneliga eraro The file size is %1. It exceeds the download limit of %2. - + La dosiergrando estas %1. Tiom estas pli ol la elŝutlimo %2. @@ -2483,1299 +2473,1356 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - - - N/A - - - - - Asia/Pacific Region - - - - - Europe - - - - - Andorra - - - - - United Arab Emirates - - - - - Afghanistan - - - - - Antigua and Barbuda - - - - - Anguilla - - - - - Albania - - - - - Armenia - - - - - Netherlands Antilles - - - - - Angola - - - - - Antarctica - - - - - Argentina - - - - - American Samoa - - - - - Austria - - - - - Australia - - - - - Aruba - - - - - Azerbaijan - - - - - Bosnia and Herzegovina - - - - - Barbados - - - - - Bangladesh - - - - - Belgium - - - - - Burkina Faso - - - - - Bulgaria - - - - - Bahrain - - - - - Burundi - - - - - Benin - - - - - Bermuda - - - - - Brunei Darussalam - - - - - Bolivia - - - - - Brazil - - - - - Bahamas - - - - - Bhutan - - - - - Bouvet Island - - - - - Botswana - - - - - Belarus - - - - - Belize - - - - - Canada - - - - - Cocos (Keeling) Islands - - - - - Congo, The Democratic Republic of the - - - - - Central African Republic - - - - - Congo - - - - - Switzerland - - - - - Cote D'Ivoire - - - - - Cook Islands - - - - - Chile - - - - - Cameroon - - - - - China - - - - - Colombia - - - - - Costa Rica - - - - - Cuba - - - - - Cape Verde - - - - - Christmas Island - - - - - Cyprus - - - - - Czech Republic - - - - - Germany - - - - - Djibouti - - - - - Denmark - - - - - Dominica - - - - - Dominican Republic - - - - - Algeria - - - - - Ecuador - - - - - Estonia - - - - - Egypt - - - - - Western Sahara - - - - - Eritrea - - - - - Spain - - - - - Ethiopia - - - - - Finland - - - - - Fiji - - - - - Falkland Islands (Malvinas) - - - - - Micronesia, Federated States of - - - - - Faroe Islands - - - - - France - Francujo - - - - France, Metropolitan - - - - - Gabon - - - - - United Kingdom - - - - - Grenada - - - - - Georgia - - - - - French Guiana - - - - - Ghana - - - - - Gibraltar - - - - - Greenland - - - - - Gambia - - - - - Guinea - - - - - Guadeloupe - - - - - Equatorial Guinea - - - - - Greece - Grekujo - - - - South Georgia and the South Sandwich Islands - - - - - Guatemala - - - - - Guam - - - - - Guinea-Bissau - - - - - Guyana - - - - - Hong Kong - - - - - Heard Island and McDonald Islands - - - - - Honduras - - - - - Croatia - - - - - Haiti - - - - - Hungary - - - - - Indonesia - - - - - Ireland - - - - - Israel - - - - - India - - - - - British Indian Ocean Territory - - - - - Iraq - - - - - Iran, Islamic Republic of - - - - - Iceland - - - - - Italy - - - - - Jamaica - - - - - Jordan - - - - - Japan - - - - - Kenya - - - - - Kyrgyzstan - - - - - Cambodia - - - - - Kiribati - - - - - Comoros - - - - - Saint Kitts and Nevis - - - - - Korea, Democratic People's Republic of - - - - - Korea, Republic of - - - - - Kuwait - - - - - Cayman Islands - - - - - Kazakhstan - - - - - Lao People's Democratic Republic - - - - - Lebanon - - - - - Saint Lucia - - - - - Liechtenstein - - - - - Sri Lanka - - - - - Liberia - - - - - Lesotho - - - - - Lithuania - - - - - Luxembourg - - - - - Latvia - - - - - Libyan Arab Jamahiriya - - - - - Morocco - - - - - Monaco - - - - - Moldova, Republic of - - - - - Madagascar - - - - - Marshall Islands - - - - - Macedonia - - - - - Mali - - - - - Myanmar - - - - - Mongolia - - - - - Macau - - - - - Northern Mariana Islands - - - - - Martinique - - - - - Mauritania - - - - - Montserrat - - - - - Malta - - - - - Mauritius - - - - - Maldives - - - - - Malawi - - - - - Mexico - - - - - Malaysia - - - - - Mozambique - - - - - Namibia - - - - - New Caledonia - - - - - Niger - - - - - Norfolk Island - - - - - Nigeria - - - - - Nicaragua - - - - - Netherlands - - - - - Norway - - - - - Nepal - - - - - Nauru - - - - - Niue - - - - - New Zealand - - - - - Oman - - - - - Panama - - - - - Peru - - - - - French Polynesia - - - - - Papua New Guinea - - - - - Philippines - - - - - Pakistan - - - - - Poland - - - - - Saint Pierre and Miquelon - - - - - Pitcairn Islands - - - - - Puerto Rico - - - - - Palestinian Territory - - - - - Portugal - - - - - Palau - - - - - Paraguay - - - - - Qatar - - - - - Reunion - - - - - Romania - - - - - Russian Federation - - - - - Rwanda - - - - - Saudi Arabia - - - - - Solomon Islands - - - - - Seychelles - - - - - Sudan - - - - - Sweden - - - - - Singapore - - - - - Saint Helena - - - - - Slovenia - - - - - Svalbard and Jan Mayen - - - - - Slovakia - - - - - Sierra Leone - - - - - San Marino - - - - - Senegal - - - - - Somalia - - - - - Suriname - - - - - Sao Tome and Principe - - - - - El Salvador - - - - - Syrian Arab Republic - - - - - Swaziland - - - - - Turks and Caicos Islands - - - - - Chad - - - - - French Southern Territories - - - - - Togo - - - - - Thailand - - - - - Tajikistan - - - - - Tokelau - - - - - Turkmenistan - - - - - Tunisia - - - - - Tonga - - - - - Timor-Leste - - - - - Turkey - - - - - Trinidad and Tobago - - - - - Tuvalu - - - - - Taiwan - - - - - Tanzania, United Republic of - - - - - Ukraine - - - - - Uganda - - - - - United States Minor Outlying Islands - - - - - United States - - - - - Uruguay - - - - - Uzbekistan - - - - - Holy See (Vatican City State) - - - - - Saint Vincent and the Grenadines - - - - - Venezuela - - - - - Virgin Islands, British - - - - - Virgin Islands, U.S. - - - - - Vietnam - - - - - Vanuatu - - - - - Wallis and Futuna - - - - - Samoa - - - - - Yemen - - - - - Mayotte - - - Serbia - - - - - South Africa - - - - - Zambia + Venezuela, Bolivarian Republic of - Montenegro - - - - - Zimbabwe - - - - - Anonymous Proxy - - - - - Satellite Provider - - - - - Other - - - - - Aland Islands - - - - - Guernsey - - - - - Isle of Man - - - - - Jersey - - - - - Saint Barthelemy + Viet Nam - Saint Martin + + N/A + N/A + + + Asia/Pacific Region + Azio/Pacifika Regiono + + + Europe + Eŭropo + + + + Andorra + Andoro + + + + United Arab Emirates + Unuiĝintaj Arabaj Emirlandoj + + + + Afghanistan + Afganujo + + + + Antigua and Barbuda + Antigvo kaj Barbudo + + + + Anguilla + Angvilo + + + + Albania + Albanujo + + + + Armenia + Armenujo + + + Netherlands Antilles + Nederlandaj Antiloj + + + + Angola + Angolo + + + + Antarctica + Antarkto + + + + Argentina + Argentino + + + + American Samoa + Usona Samoo + + + + Austria + Aŭstrujo + + + + Australia + Aŭstralio + + + + Aruba + Arubo + + + + Azerbaijan + Azerbajĝano + + + + Bosnia and Herzegovina + Bosnujo kaj Hercegovino + + + + Barbados + Barbado + + + + Bangladesh + Bangladeŝo + + + + Belgium + Belgujo + + + + Burkina Faso + Burkino + + + + Bulgaria + Bulgarujo + + + + Bahrain + Barejno + + + + Burundi + Burundo + + + + Benin + Benino + + + + Bermuda + Bermudo + + + + Brunei Darussalam + Brunejo + + + Bolivia + Bolivio + + + + Brazil + Brazilo + + + + Bahamas + Bahamoj + + + + Bhutan + Butano + + + + Bouvet Island + Buvet-Insulo + + + + Botswana + Bocvano + + + + Belarus + Belorusujo + + + + Belize + Belizo + + + + Canada + Kanado + + + + Cocos (Keeling) Islands + Kokosa Insulo + + + + Congo, The Democratic Republic of the + Kongo Kinŝasa + + + + Central African Republic + Centr-Afriko + + + + Congo + Kongo Brazavila + + + + Switzerland + Svislando + + + Cote D'Ivoire + Ebur-Bordo + + + + Cook Islands + Kukinsuloj + + + + Chile + Ĉilio + + + + Cameroon + Kameruno + + + + China + Ĉinujo + + + + Colombia + Kolombio + + + + Costa Rica + Kostariko + + + + Cuba + Kubo + + + + Cape Verde + Kaboverdo + + + + Curacao - + + Christmas Island + Kristnaskinsulo + + + + Cyprus + Kipro + + + + Czech Republic + Ĉeĥujo + + + + Germany + Germanujo + + + + Djibouti + Ĝibutio + + + + Denmark + Danujo + + + + Dominica + Dominiko + + + + Dominican Republic + Domingo + + + + Algeria + Alĝerio + + + + Ecuador + Ekvadoro + + + + Estonia + Estonujo + + + + Egypt + Egiptujo + + + + Western Sahara + Okcidenta Saharo + + + + Eritrea + Eritreo + + + + Spain + Hispanujo + + + + Ethiopia + Etiopujo + + + + Finland + Finnlando + + + + Fiji + Fiĝioj + + + + Falkland Islands (Malvinas) + Falklandoj + + + + Micronesia, Federated States of + Federaciaj Ŝtatoj de Mikronezio + + + + Faroe Islands + Ferooj + + + + France + Francujo + + + France, Metropolitan + Francujo Ĉeflanda + + + + Gabon + Gabono + + + + United Kingdom + Britujo + + + + Grenada + Grenado + + + + Georgia + Kartvelujo + + + + French Guiana + Franca Gviano + + + + Ghana + Ganao + + + + Gibraltar + Ĝibraltaro + + + + Greenland + Gronlando + + + + Gambia + Gambio + + + + Guinea + Gvineo + + + + Guadeloupe + Gvadelupo + + + + Equatorial Guinea + Ekvatora Gvineo + + + + Greece + Grekujo + + + + South Georgia and the South Sandwich Islands + Sud-Georgio kaj Sud-Sandviĉinsuloj + + + + Guatemala + Gvatemalo + + + + Guam + Gvamo + + + + Guinea-Bissau + Gvineo Bisaŭa + + + + Guyana + Gujano + + + + Hong Kong + Honkongo + + + + Heard Island and McDonald Islands + Insulo Herdo kaj insuloj Makdonaldaj + + + + Honduras + Honduro + + + + Croatia + Kroatujo + + + + Haiti + Haitio + + + + Hungary + Hungarujo + + + + Indonesia + Indonezio + + + + Ireland + Irlando + + + + Israel + Israelo + + + + India + Barato + + + + British Indian Ocean Territory + Brita Hindoceana Teritorio + + + + Iraq + Irako + + + + Iran, Islamic Republic of + Irano + + + + Iceland + Islando + + + + Italy + Italujo + + + + Jamaica + Jamajko + + + + Jordan + Jordanio + + + + Japan + Japanujo + + + + Kenya + Kenjo + + + + Kyrgyzstan + Kirgizujo + + + + Cambodia + Kamboĝo + + + + Kiribati + Kiribato + + + + Comoros + Komoroj + + + + Saint Kitts and Nevis + Sankta Kristofo kaj Neviso + + + + Korea, Democratic People's Republic of + Korea Demokratia Popola Respubliko + + + + Korea, Republic of + Korea Respubliko + + + + Kuwait + Kuvajto + + + + Cayman Islands + Kajmana Insularo + + + + Kazakhstan + Kazaĥujo + + + + Lao People's Democratic Republic + Laoso + + + + Lebanon + Libano + + + + Saint Lucia + Sankta Lucio + + + + Liechtenstein + Liĥtenŝtejno + + + + Sri Lanka + Srilanko + + + + Liberia + Liberio + + + + Lesotho + Lesoto + + + + Lithuania + Litovujo + + + + Luxembourg + Luksemburgo + + + + Latvia + Latvujo + + + Libyan Arab Jamahiriya + Libio + + + + Morocco + Maroko + + + + Monaco + Monako + + + + Moldova, Republic of + Moldavujo + + + + Madagascar + Madagaskaro + + + + Marshall Islands + Marŝaloj + + + Macedonia + Makedonujo + + + + Mali + Malio + + + + Myanmar + Birmo + + + + Mongolia + Mongolujo + + + Macau + Makao + + + + Northern Mariana Islands + Nord-Marianoj + + + + Martinique + Martiniko + + + + Mauritania + Maŭritanio + + + + Montserrat + Moncerato + + + + Malta + Malto + + + + Mauritius + Maŭricio + + + + Maldives + Maldivoj + + + + Malawi + Malavio + + + + Mexico + Meksiko + + + + Malaysia + Malajzio + + + + Mozambique + Mozambiko + + + + Namibia + Namibio + + + + New Caledonia + Nov-Kaledonio + + + + Niger + Niĝero + + + + Norfolk Island + Norfolkinsulo + + + + Nigeria + Niĝerio + + + + Nicaragua + Nikaragvo + + + + Netherlands + Nederlando + + + + Norway + Norvegujo + + + + Nepal + Nepalo + + + + Nauru + Nauro + + + + Niue + Niuo + + + + New Zealand + Nov-Zelando + + + + Oman + Omano + + + + Panama + Panamo + + + + Peru + Peruo + + + + French Polynesia + Franca Polinezio + + + + Papua New Guinea + Papuo-Nov-Gvineo + + + + Philippines + Filipinoj + + + + Pakistan + Pakistano + + + + Poland + Pollando + + + + Saint Pierre and Miquelon + Sankta Petro kaj Mikelono + + + Pitcairn Islands + Pitkarna Insularo + + + + Puerto Rico + Portoriko + + + Palestinian Territory + Palestina Aŭtonomio + + + + Portugal + Portugalujo + + + + Palau + Palaŭo + + + + Paraguay + Paragvajo + + + + Qatar + Kataro + + + + Reunion + Reunio + + + + Romania + Rumanujo + + + + Russian Federation + Rusujo + + + + Rwanda + Ruando + + + + Saudi Arabia + Saŭda Arabujo + + + + Solomon Islands + Salomonoj + + + + Seychelles + Sejŝeloj + + + + Sudan + Sudano + + + + Sweden + Svedujo + + + + Singapore + Singapuro + + + Saint Helena + Sankta Heleno + + + + Slovenia + Slovenujo + + + + Svalbard and Jan Mayen + Svalbardo kaj Janmajeno + + + + Slovakia + Slovakujo + + + + Sierra Leone + Sieraleono + + + + San Marino + Sanmarino + + + + Senegal + Senegalo + + + + Somalia + Somalujo + + + + Suriname + Surinamo + + + + Sao Tome and Principe + Sankta Tomaso kaj Principeo + + + + El Salvador + Salvadoro + + + + Syrian Arab Republic + Siria Araba Respubliko + + + + Swaziland + Svazilando + + + + Turks and Caicos Islands + Turkoj kaj Kajkoj + + + + Chad + Ĉado + + + + French Southern Territories + Francaj Sudaj kaj Antarktaj Teritorioj + + + + Togo + Togo + + + + Thailand + Tajlando + + + + Tajikistan + Taĝikujo + + + + Tokelau + Tokelao + + + + Turkmenistan + Turkmenujo + + + + Tunisia + Tunizio + + + + Tonga + Tongo + + + + Timor-Leste + Orienta Timoro + + + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + + Turkey + Turkujo + + + + Trinidad and Tobago + Trinidado kaj Tobago + + + + Tuvalu + Tuvalo + + + + Taiwan + Tajvano + + + + Tanzania, United Republic of + Tanzania Respubliko + + + + Ukraine + Ukrainujo + + + + Uganda + Ugando + + + + United States Minor Outlying Islands + Usonaj Malgrandaj Insuloj + + + + United States + Usono + + + + Uruguay + Urugvajo + + + + Uzbekistan + Uzbekujo + + + + Holy See (Vatican City State) + Vatikano + + + + Saint Vincent and the Grenadines + Sankta Vincento kaj Grenadinoj + + + Venezuela + Venezuelo + + + + Virgin Islands, British + Britaj Virgulininsuloj + + + + Virgin Islands, U.S. + Usonaj Virgulininsuloj + + + Vietnam + Vjetnamujo + + + + Vanuatu + Vanuatuo + + + + Wallis and Futuna + Valiso kaj Futuno + + + + Samoa + Samoo + + + + Yemen + Jemeno + + + + Mayotte + Majoto + + + + Serbia + Serbujo + + + + South Africa + Sud-Afriko + + + + Zambia + Zambio + + + + Montenegro + Montenegro + + + + Zimbabwe + Zimbabvo + + + Anonymous Proxy + Sennoma prokurilo + + + Satellite Provider + Artsatelita provizanto + + + Other + Alia + + + + Aland Islands + Alando + + + + Guernsey + Gvernsejo + + + + Isle of Man + Manksinsulo + + + + Jersey + Ĵersejo + + + + Saint Barthelemy + Sankta Bartolomeo + + + Saint Martin + Sankta Marteno + + + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3798,7 +3845,7 @@ Are you sure you want to quit qBittorrent? Email Notification Error: - + Retpoŝt-atentiga eraro: @@ -3851,27 +3898,27 @@ Are you sure you want to quit qBittorrent? peer from PEX - samtavolano de PEX + samtavolano de PEX peer from DHT - samtavolano de DHT + samtavolano de DHT encrypted traffic - + ĉifrita trafiko encrypted handshake - + ĉifrita kvitanco peer from LSD - samtavolano de LSD + samtavolano de LSD @@ -3889,7 +3936,7 @@ Are you sure you want to quit qBittorrent? Flags - + Flagoj @@ -3936,82 +3983,76 @@ Are you sure you want to quit qBittorrent? Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. + Rilateco + + + + Files + i.e. files that are being downloaded right now - + Add a new peer... Aldoni novan samtavolano... - + Copy selected Kopii la elektiton - - + + Ban peer permanently - + Forbari la samtavolanon daŭre - + Manually adding peer '%1'... - + Permane aldonante la samtavolanon '%1'... - + The peer '%1' could not be added to this torrent. - + La samtavolano '%1' ne eblis aldoniĝi al la torento. - + Manually banning peer '%1'... - + Permane forbarante la samtavolanon '%1'... - - + + Peer addition Aldono de samtavolano - + Some peers could not be added. Check the Log for details. - + Kelkaj samtavolanoj ne eblis aldoniĝi. Kontroli la Protokolon por detaloj. - + The peers were added to this torrent. La samtavolanoj aldoniĝis al la torento. - + Are you sure you want to ban permanently the selected peers? - + Ĉu vi certas, ke vi volas forbari daŭre la elektitajn samtavolanojn? - + &Yes &Jes - + &No &Ne - - peer from PEX - samtavolano de PEX - - - peer from DHT - samtavolano de DHT - - - peer from LSD - samtavolano de LSD - PeersAdditionDlg @@ -4028,12 +4069,12 @@ Are you sure you want to quit qBittorrent? Invalid peer - Nevalida samtavolano + Malvalida samtavolano The peer '%1' is invalid. - + La samtavolano '%1' malvalidas. @@ -4041,13 +4082,210 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + Blanko: Maldisponeblaj pecoj Blue: Available pieces + Bluo: Disponeblaj pecoj + + + + PluginSelectDlg + + + Search plugins + Serĉi kromprogramojn + + + + Installed search plugins: + + + Name + Nomo + + + + Version + Versio + + + + Url + URL + + + + + Enabled + Ebligita + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + + Install a new one + Instali novan + + + + Check for updates + Kontroli ĝisdatigadon + + + + Close + Fermi + + + + Uninstall + Malinstali + + + + + + Yes + Jes + + + + + + + No + Ne + + + + Uninstall warning + Averto de malinstalo + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Kelkaj kromprogramoj ne eblis malinstali, ĉar ili estas inkluzivitaj en qBittorrent. Nur malinstaleblas tiuj, kiuj vi aldonis. +Tiuj kromprogramoj malebliĝis. + + + + Uninstall success + Malinstalo sukcesis + + + + All selected plugins were uninstalled successfully + + + + + + New search engine plugin URL + + + + + + URL: + URL-adreso: + + + + Invalid link + Malvalida ligilo + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + Elektu serĉilajn kromprogramojn + + + + qBittorrent search plugin + + + + + + + Search plugin update + + + + + All your plugins are already up to date. + + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + + + + + Search plugin source: + + + + + Local file + Loka dosiero + + + + Web link + TTT-ligilo + Preferences @@ -4069,7 +4307,7 @@ Are you sure you want to quit qBittorrent? Web UI - + TTT-UI @@ -4102,94 +4340,94 @@ Are you sure you want to quit qBittorrent? Append .!qB extension to incomplete files - + Aldonu finaĵon .!qB al mankohavaj dosieroj - + Copy .torrent files to: - + Kopii .torrent-dosierojn al: - + Connections Limits Konektaj Limoj - + Proxy Server Prokura Servilo - + Global Rate Limits - Mallokaj Rapidlimoj + Mallokaj rapidlimoj - + Apply rate limit to transport overhead - + Schedule the use of alternative rate limits - + From: from (time1 to time2) - + De: - + To: time1 to time2 - + Al: - + Enable Local Peer Discovery to find more peers - Ebligi na Local Peer Discovery por trovi pli samtavolanojn + Trovi pli samtavolanojn per Local Peer Discovery - + Encryption mode: - + Ĉifroreĝimo: - + Prefer encryption - + Preferi ĉifradon - + Require encryption - + Neprigi ĉifradon - + Disable encryption - + Malebligi ĉifradon - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Pli informoj</a>) - + Maximum active downloads: - + Maksimumaj aktivaj elŝutoj: - + Maximum active uploads: - + Maksimumaj aktivaj elŝutoj: - + Maximum active torrents: - + Maksimumaj aktivaj torentoj: @@ -4199,7 +4437,7 @@ Are you sure you want to quit qBittorrent? Behavior - + Konduto @@ -4212,82 +4450,82 @@ Are you sure you want to quit qBittorrent? - + Run external program on torrent completion - + Port used for incoming connections: - + Pordo uzata por alvenantaj konektoj: - + Random Hazarda - + Global maximum number of connections: - + Malloka maksimuma nombro da konektoj: - + Maximum number of connections per torrent: - + Maksimuma nombro da konektoj por torento: - + Maximum number of upload slots per torrent: - + Maksimuma nombro da alŝutkonektoj por torento: - - + + Upload: Alŝuta: - - + + Download: Elŝuta: - - - - + + + + KiB/s KiB/s - + Remove folder Forigi la dosieron - + Every day Ĉiutage - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Host: Gastigo: - + SOCKS4 SOCKS4 - + Type: Tipo: @@ -4356,12 +4594,12 @@ Are you sure you want to quit qBittorrent? Monochrome (Dark theme) - + Unukolora (Malhela etoso) Monochrome (Light theme) - + Unukolora (Hela etoso) @@ -4371,7 +4609,7 @@ Are you sure you want to quit qBittorrent? Transfer List - + Transmetlisto @@ -4396,17 +4634,17 @@ Are you sure you want to quit qBittorrent? File association - + Dosiera asociigo Use qBittorrent for .torrent files - + Uzi la qBittorrent-klienton por magnet-ligiloj Use qBittorrent for magnet links - + Uzi la qBittorrent-klienton por magnet-ligiloj @@ -4432,7 +4670,7 @@ Are you sure you want to quit qBittorrent? Hard Disk - Fiksita Disko + Diskilo @@ -4452,7 +4690,7 @@ Are you sure you want to quit qBittorrent? Keep incomplete torrents in: - + Enmemorigi malfinitajn torentojn en: @@ -4460,262 +4698,262 @@ Are you sure you want to quit qBittorrent? Aŭtomate aldoni torentojn de: - + Add folder... Aldoni dosieron... - + Copy .torrent files for finished downloads to: Kopii la .torrent-dosierojn de finitaj elŝutoj al: - + Email notification upon download completion - + Destination email: Celretpoŝtadreso: - + SMTP server: SMTP-servilo: - + This server requires a secure connection (SSL) - + Listening Port - + Aŭskultpordo - + Use UPnP / NAT-PMP port forwarding from my router - + Use different port on each startup Uzi alian pordon ĉiulanĉe - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections Uzi prokurilon por samtavolaj konektoj - + Disable connections not supported by proxies Malebligi konektojn, kiuj ne estas subtenata de prokuriloj - + Use proxy only for torrents - + Uzi prokurilon nur por torentoj - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Informo: La pasvorto estas konservita senĉifrite - + IP Filtering IP-filtrado - + Reload the filter Reŝargi la filtron - + Apply to trackers - Apliki al ŝanĝospuriloj + Apliki al spuriloj - + Apply rate limit to peers on LAN - + Apliki la rapidlimon al samtavolanoj en loka reto. - + When: Kiam: - + Weekdays - + Laborsemajne - + Weekends - + Semajnfine - + Rate Limits Settings - + Rapidlimaj agordoj - + Enable µTP protocol - + Ebligi la µTP-protokolon - + Apply rate limit to µTP protocol - + Apliki la rapidlimon al la µTP-protokolo - + Privacy Privateco - + Enable DHT (decentralized network) to find more peers - + Trovi pli samtavolanojn per DHT (malcentra reto) - + Enable Peer Exchange (PeX) to find more peers - + Trovi pli samtavolanojn per Peer Exchange (PeX) - + Look for peers on your local network - + Serĉi samtavolanojn en via loka reto - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Ebligi la sennoman modon - + Do not count slow torrents in these limits Ne inkluzivi malrapidajn torentojn en tiuj limoj - + Seed torrents until their ratio reaches Fontsendi torentojn ĝis iliaj proporcioj atingas - + then poste - + Pause them Paŭzigi ilin - + Remove them Forigi ilin - + Automatically add these trackers to new downloads: - + Aŭtomate aldoni tiujn spurilojn al novaj elŝutoj: - + Use UPnP / NAT-PMP to forward the port from my router - Uzi na UPnP / NAT-PMP por plusendi la pordon de mia enkursigilo + Plusendi la pordon de mia enkursigilo per UPnP / NAT-PMP - + Use HTTPS instead of HTTP - Uzi na HTTPS anstataŭ na HTTP + Uzi la HTTPS-protokolon anstataŭ la HTTP-protokolon - + Import SSL Certificate Enporti SSL-atestilon - + Import SSL Key Enporti SSL-ŝlosilon - + Certificate: Atestilo: - + Alternative Rate Limits - + Alternativaj rapidlimoj - + Key: Ŝlosilo: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informoj pri atestiloj</a> - + Bypass authentication for localhost Preterpasi aŭtentigon por localhost - + Update my dynamic domain name - + Service: Servo: - + Register - + Registri - + Domain name: - + Domajna nomo: - + (None) (Nenio) @@ -4725,61 +4963,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Pordo: - - - + + + Authentication - Aŭtentokontrolo + Aŭtentigo - - - - + + + + Username: Uzantnomo: - - - - + + + + Password: Pasvorto: - + Torrent Queueing - + Torent-envicigado - + Share Ratio Limiting - + Limitado de kunhava proporcio - + Enable Web User Interface (Remote control) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filtri la dosierindikon (.dat, .p2p, .p2b): @@ -4874,7 +5112,7 @@ Are you sure you want to quit qBittorrent? Trackers - Ŝanĝospuriloj + Spuriloj @@ -4917,7 +5155,7 @@ Are you sure you want to quit qBittorrent? Transfer - + Transmeto @@ -4968,7 +5206,7 @@ Are you sure you want to quit qBittorrent? Wasted: - + Senefikaĵo: @@ -4985,19 +5223,15 @@ Are you sure you want to quit qBittorrent? Comment: Komento: - - Torrent content: - Enhavo de la torento: - Select All - Elekti Ĉion + Elekti cion Select None - Elekti Nenion + Elekti nenion @@ -5012,22 +5246,22 @@ Are you sure you want to quit qBittorrent? Share Ratio: - + Kunhava proporcio: Reannounce In: - + Rekonekti al spuriloj post: Last Seen Complete: - + Laste trovita plene: Total Size: - Tuta Grando: + Tuta grando: @@ -5090,33 +5324,33 @@ Are you sure you want to quit qBittorrent? %1 (%2 this session) - + %1 (%2 ĉi tiu seanco) %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (fontsendis dum %2) %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (%2 maks.) %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - + %1 (%2 tute) %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (%2 mez.) @@ -5141,22 +5375,22 @@ Are you sure you want to quit qBittorrent? New Web seed - + Nova TTT-fonto Remove Web seed - + Forigi TTT-fonton Copy Web seed URL - + Kopii URL-adreson de TTT-fonto Edit Web seed URL - + Redakti URL-adreson de TTT-fonto @@ -5177,13 +5411,13 @@ Are you sure you want to quit qBittorrent? This file name contains forbidden characters, please choose a different one. - La dosiernomo enhavas malpermesitajn signojn, bonvolu elekti alian. + La dosiernomo enhavas malpermesitajn signojn, bonvolu elekti alian. This name is already in use in this folder. Please use a different name. - La nomo jam estas uzata en ĉi tiu dosierujo. Bonvolu uzi alian nomon. + La nomo jam estas uzata en ĉi tiu dosierujo. Bonvolu uzi alian nomon. @@ -5204,28 +5438,28 @@ Are you sure you want to quit qBittorrent? New URL seed New HTTP source - + Nova URL-fonto New URL seed: - + Nova URL-fonto: This URL seed is already in the list. - + Tiu URL-fonto jam estas en la listo. Web seed editing - + TTT-fonta redaktado Web seed URL: - + URL-adreso de la TTT-fonto: @@ -5250,29 +5484,29 @@ Are you sure you want to quit qBittorrent? I/O Error: Could not create temporary file. - + Eneliga Eraro: Ne eblis krei provizoran dosieron. %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - + %1 estas nekonata komandlinia parametro. %1 must be the single command line parameter. - + %1 nepras esti la sola komandlinia parametro. %1 must specify the correct port (1 to 65535). - + %1 nepras specifi la ĝustan pordon (de 1 al 65535). You cannot use %1: qBittorrent is already running for this user. - + %1 ne povas uziĝi de vi: qBittorrent jam funkciantas por ĉi tiu uzanto. @@ -5297,22 +5531,22 @@ Are you sure you want to quit qBittorrent? Changes the Web UI port (current: %1) - + Ŝanĝas la TTT-UI-pordon (aktuale: %1) Disable splash screen - + Malebligi salutŝildon Run in daemon-mode (background) - + Lanĉi per demonreĝimo (fone) Downloads the torrents passed by the user - + Elŝutas la torentojn, kiuj estas aprobitaj de la uzanto @@ -5322,17 +5556,17 @@ Are you sure you want to quit qBittorrent? Run application with -h option to read about command line parameters. - + Lanĉu la aplikaĵon kun la opcion -h por legi pri komandliniaj parametroj. Bad command line - + Malvalida komandlinio Bad command line: - + Malvalida komandlinio: @@ -5350,7 +5584,7 @@ No further notices will be issued. Press %1 key to accept and continue... - + Premu la %1-klavon por akcepti kaj daŭrigi... @@ -5391,22 +5625,22 @@ No further notices will be issued. Thank you for using qBittorrent. - Dankon pro uzi na qBittorrent. + Dankon pro uzi la qBittorrent-klienton. [qBittorrent] '%1' has finished downloading - + [qBittorrent] '%1' finiĝis elŝuti The remote host name was not found (invalid hostname) - + La nomo de la malloka gastigo ne troviĝis (malvalida gastiga nomo) The operation was canceled - + La operacio malfariĝis @@ -5416,32 +5650,32 @@ No further notices will be issued. The connection to the remote server timed out - + La konekto al la malloka servilo eltempiĝis. SSL/TLS handshake failed - + SSL-/TSL-kvitanco malsukcesis The remote server refused the connection - + La malloka servilo rifuzis la konekton The connection to the proxy server was refused - + La konekto al la prokurilo rifuziĝis The proxy server closed the connection prematurely - + La prokurilo fermis la konekton antaŭtempe The proxy host name was not found - + La nomo de la prokurila gastigo ne troviĝis @@ -5509,30 +5743,30 @@ No further notices will be issued. Nekonata eraro - - + + Upgrade - + Aktualigo - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Ne eblis migrigi torenton kun hakedo: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 - + Ne eblis migrigi torenton. Malvalida dosiernomo por rapide reaktiviĝi: %1 @@ -5552,7 +5786,7 @@ No further notices will be issued. Mark items read - + Marki elementojn kiel legitaj @@ -5562,7 +5796,7 @@ No further notices will be issued. RSS Downloader... - + RSS-elŝutilo... @@ -5572,7 +5806,7 @@ No further notices will be issued. Torrents: (double-click to download) - + Torentoj: (duoble alklaki por elŝuti) @@ -5605,22 +5839,22 @@ No further notices will be issued. Update all feeds - + Ĝisdatigi ĉiujn fluojn Download torrent - + Elŝuti la torenton Open news URL - + Malfermi novaĵan URL-adreson Copy feed URL - + Kopii la URL-adreson de la fluo @@ -5630,30 +5864,30 @@ No further notices will be issued. Manage cookies... - + Mastrumi kuketojn... Refresh RSS streams - + Aktualigi RSS-fluojn RSSImp - + Stream URL: - + Flua URL-adreso: - + Please type a RSS stream URL - + Bonvolu tajpi URL-adreson por RSS-fluo - + This RSS feed is already in the list. - + Tiu RSS-fluo jam estas en la listo. @@ -5671,75 +5905,81 @@ No further notices will be issued. Nova dosierujo - + Deletion confirmation - + Foriga konfirmado - + Are you sure you want to delete the selected RSS feeds? - + Ĉu vi certas, ke vi volas forigi la elektitajn RSS-fluojn? - + Please choose a new name for this RSS feed - + Bonvolu elekti novan nomon por tiu RSS-fluo - + New feed name: - + Nova flunomo: - + Name already in use - + Nomo jam estas uzata - + This name is already used by another item, please choose another one. - + Tiu nomo jam estas uzata de alia elemento, bonvolu elekti alian. - + Date: Dato: - + Author: Aŭtoro: - + Unread Nelegita - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - + Ne eblis malfermi la elŝutitan RSS-dosieron. - Invalid RSS feed at '%1'. - + Malvalida RSS-fluo ĉe '%1'. @@ -5747,12 +5987,12 @@ No further notices will be issued. RSS Reader Settings - + RSS-legilaj Agordoj RSS feeds refresh interval: - + Intervalo inter aktualigoj de RSS-fluoj @@ -5762,171 +6002,240 @@ No further notices will be issued. Maximum number of articles per feed: + Maksimuma nombro da artikoloj por fluo: + + + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Folii... + + + + Choose save path ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder - - Download here - Elŝuti ĉi tien + + Save Files to + + + + Download here + Elŝuti ĉi tien - Download path - + Elŝutindiko SearchCategories - All categories - Ĉiuj kategorioj + Ĉiuj kategorioj - Movies - Filmoj + Filmoj - TV shows - Televidserioj + Televidserioj - Music - Muziko + Muziko - Games - Ludoj + Ludoj - Anime - Animeo + Animeo - Software - Programaroj + Programaroj - Pictures - + Bildoj - Books - + Libroj SearchEngine - - - Search - + Serĉi - Please install Python to use the Search Engine. - + Bonvolu instali Pitonon por uzi la Serĉilon. - Empty search pattern - + Malplena serĉa ŝablono - - Please type a search pattern first - - - - Searching... - + Ŝerĉante... - Stop - + Halti - - Search Engine - + Serĉilo - - Search has finished - + Serĉo finiĝis - - An error occurred during search... - - - - - - Search aborted - - - - All enabled - + Ĉiuj ebligitaj - All engines - + Ĉiuj serĉiloj - - Multiple... - Pluraj... + Pluraj... - - Results <i>(%1)</i>: i.e: Search results - Rezultoj <i>(%1)</i>: + Rezultoj <i>(%1)</i>: - Search returned no results + Serĉo reportis neniun rezulton + + + Stopped + Haltinta + + + + Unknown search engine plugin file format. - - Stopped + + A more recent version of this plugin is already installed. + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Ĉiuj kategorioj + + + + Movies + Filmoj + + + + TV shows + Televidserioj + + + + Music + Muziko + + + + Games + Ludoj + + + + Anime + Animeo + + + + Software + Programaroj + + + + Pictures + Bildoj + + + + Books + Libroj + SearchListDelegate - - + + Unknown Nekonata @@ -5934,32 +6243,157 @@ No further notices will be issued. SearchTab - + Name i.e: file name Nomo - + Size i.e: file size Grando - + Seeders i.e: Number of full sources - + Fontoj - + Leechers i.e: Number of partial sources + Ricevantoj + + + + Search engine + Serĉilo + + + + SearchWidget + + + + + + + Search - - Search engine + + Status: + Stato: + + + + + Stopped + Haltinta + + + + Download + + + + + Go to description page + Iru al la priskribpaĝo + + + + Copy description page URL + Kopiu la URLon de la priskribpaĝo + + + + Search plugins... + + + + + All enabled + Ĉiuj ebligitaj + + + + All plugins + + + + + + Multiple... + Pluraj... + + + + + + Search Engine + Serĉilo + + + + Please install Python to use the Search Engine. + Bonvolu instali Pitonon por uzi la Serĉilon. + + + + Empty search pattern + Malplena serĉa ŝablono + + + + Please type a search pattern first + + + + + + Results <i>(%1)</i>: + i.e: Search results + Rezultoj <i>(%1)</i>: + + + + Searching... + Ŝerĉante... + + + + Stop + Halti + + + + + Search has finished + Serĉo finiĝis + + + + + Search aborted + + + + + Search returned no results + Serĉo reportis neniun rezulton + + + + Search has failed + + + + + An error occurred during search... @@ -5968,7 +6402,7 @@ No further notices will be issued. Exit confirmation - + Ĉesa konfirmado @@ -5978,17 +6412,17 @@ No further notices will be issued. Shutdown confirmation - + Malŝalta konfirmado Shutdown now - + Malŝalti tuj qBittorrent will now exit unless you cancel within the next %1 seconds. - + qBittorrent ĉesos se vi ne malfaros ĝin ene %1 sekundoj. @@ -6029,42 +6463,42 @@ No further notices will be issued. Payload Upload - + Utilŝarĝa alŝutrapido Payload Download - + Utilŝarĝa elŝutrapido Overhead Upload - + Superŝarĝa alŝutrapido Overhead Download - + Superŝarĝa elŝutrapido DHT Upload - + DHT-alŝutrapido DHT Download - + DHT-elŝutrapido Tracker Upload - + Spurila Alŝuto Tracker Download - + Spurila Elŝuto @@ -6072,7 +6506,7 @@ No further notices will be issued. Period: - + Daŭro: @@ -6097,57 +6531,57 @@ No further notices will be issued. Select Graphs - + Elekti grafeojn Total Upload - Tuta Alŝutrapido + Tuta alŝutrapido Total Download - Tuta Elŝutrapido + Tuta elŝutrapido Payload Upload - + Utilŝarĝa alŝutrapido Payload Download - + Utilŝarĝa elŝutrapido Overhead Upload - + Superŝarĝa alŝutrapido Overhead Download - + Superŝarĝa elŝutrapido DHT Upload - + DHT-alŝutrapido DHT Download - + DHT-elŝutrapido Tracker Upload - + Spurila Alŝuto Tracker Download - + Spurila Elŝuto @@ -6170,27 +6604,27 @@ No further notices will be issued. Global ratio: - + Malloka proporcio: Alltime download: - + Ĉiama elŝutkvanto: Alltime upload: - + Ĉiama alŝutkvanto: Total waste (this session): - + Senefika tuto (ĉi tiu seanco): Cache statistics - + Kaŝmemoraj statistikoj @@ -6200,7 +6634,7 @@ No further notices will be issued. Total buffers size: - + Tuta bufrogrando: @@ -6210,7 +6644,7 @@ No further notices will be issued. Queued I/O jobs: - + Enviciĝitaj eneligaj taskoj: @@ -6230,7 +6664,7 @@ No further notices will be issued. Total queued size: - + Tuta enviciĝit-grando: @@ -6256,7 +6690,7 @@ No further notices will be issued. DHT: %1 nodes - + DHT: %1 nodoj @@ -6282,7 +6716,7 @@ No further notices will be issued. Online - + Konektite @@ -6302,12 +6736,12 @@ No further notices will be issued. Global Download Speed Limit - Malloka Elŝutrapidlimo + Malloka elŝutrapidlimo Global Upload Speed Limit - Malloka Alŝutrapidlimo + Malloka alŝutrapidlimo @@ -6346,17 +6780,17 @@ No further notices will be issued. Active (0) - + Aktiva (0) Inactive (0) - + Malaktiva (0) Errored (0) - + Erarinta (0) @@ -6391,40 +6825,44 @@ No further notices will be issued. Active (%1) - + Aktiva (%1) Inactive (%1) - + Malaktiva (%1) Errored (%1) - + Erarinta (%1) TorrentContentModel - + Name Nomo - + Size Grando - + Progress Progreso - + + Download Priority + + + Priority - Prioritato + Prioritato @@ -6452,18 +6890,18 @@ No further notices will be issued. Select destination torrent file - + Elektu celitan torentodosieron Torrent Files (*.torrent) - + Torentdosieroj (*.torrent) Torrent was created successfully: %1 %1 is the path of the torrent - + La torento kreiĝis sukcese: %1 @@ -6475,12 +6913,12 @@ No further notices will be issued. Torrent creation was unsuccessful, reason: %1 - + Torentkreado malsukcesis, kialo: %1 Created torrent file is invalid. It won't be added to download list. - La kreita torentdosiero nevalidas. Ĝi ne aldoniĝos al la elŝutlisto. + La kreita torentdosiero malvalidas. Ĝi ne aldoniĝos al la elŝutlisto. @@ -6488,7 +6926,7 @@ No further notices will be issued. Torrent Import - + Torentenportado @@ -6508,12 +6946,12 @@ No further notices will be issued. Content location: - + Loko de enhavo: Skip the data checking stage and start seeding immediately - Preterpasi la datumkontrolan fazon kaj ekfontsendi tuj + Preterpasi la datenkontrolan fazon kaj ekfontsendi tuj @@ -6528,34 +6966,34 @@ No further notices will be issued. Torrent files - + Torentdosieroj '%1' Files %1 is a file extension (e.g. PDF) - + '%1'-dosieroj Please provide the location of '%1' %1 is a file name - + Bonvolu provizi per la loko de '%1' Please point to the location of the torrent: %1 - + Bonvolu indiki la lokon de la torento: %1 Invalid torrent file - + Malvalida torentdosiero This is not a valid torrent file. - + Tio ne estas valida torentdosiero. @@ -6576,7 +7014,7 @@ No further notices will be issued. Done % Done - + Finita @@ -6588,7 +7026,7 @@ No further notices will be issued. Seeds i.e. full sources (often untranslated) - + Fontoj @@ -6612,7 +7050,7 @@ No further notices will be issued. Ratio Share ratio - + Proporcio @@ -6640,7 +7078,7 @@ No further notices will be issued. Tracker - Ŝanĝospurilo + Spurilo @@ -6658,37 +7096,37 @@ No further notices will be issued. Downloaded Amount of data downloaded (e.g. in MB) - Elŝutis + Elŝutita Uploaded Amount of data uploaded (e.g. in MB) - Alŝutis + Alŝutita Session Download Amount of data downloaded since program open (e.g. in MB) - + Elŝutita ĉi-seance Session Upload Amount of data uploaded since program open (e.g. in MB) - + Alŝutita ĉi-seance Remaining Amount of data left to download (e.g. in MB) - + Restanta Time Active Time (duration) the torrent is active (not paused) - + Aktiva tempo @@ -6700,31 +7138,31 @@ No further notices will be issued. Completed Amount of data completed (e.g. in MB) - Finita + Finita Ratio Limit Upload share ratio limit - + Proporci-limo Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Laste trovita plene Last Activity Time passed since a chunk was downloaded/uploaded - + Lasta ago Total Size i.e. Size including unwanted data - Tuta Grando + Tuta grando @@ -6738,7 +7176,7 @@ No further notices will be issued. Trackerless (0) - Senŝanĝospurilo (0) + Senspurila (0) @@ -6754,7 +7192,7 @@ No further notices will be issued. Trackerless (%1) - Senŝanĝospurilo (%1) + Senspurila (%1) @@ -6776,38 +7214,38 @@ No further notices will be issued. Averto (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - Reaktivigi la torentojn + Reaktivigi la torentojn - + Pause torrents Paŭzigi la torentojn - + Delete torrents Forigi la torentojn - - + + All (%1) this is for the tracker filter Ĉio (%1) @@ -6839,17 +7277,17 @@ No further notices will be issued. Working - + Funkciante Disabled - + Malebligita This torrent is private - La torento estas privata + Ĉi tiu torento estas privata @@ -6859,53 +7297,53 @@ No further notices will be issued. Not working - + Nefunkciante Not contacted yet - + Ne jam kontaktiĝis Tracker URL: - URL de la Ŝanĝospurilo: + Spurila URL-adreso: Tracker editing - + Spuril-redaktado Tracker editing failed - + Spuril-redaktado malsukcesis The tracker URL entered is invalid. - + Malvalidas la spurila URL-adreso, kiun vi enigis. The tracker URL already exists. - + Tiu spurila URL-adreso jam ekzistas. Add a new tracker... - Aldoni novan ŝanĝospurilon... + Aldoni novan spurilon... Copy tracker URL - Kopii na la URL de la ŝanĝospurilo: + Kopii la spurilan URL-adreson: Edit selected tracker URL - + Redakti la elektitan spurilan URL-adreson @@ -6920,7 +7358,7 @@ No further notices will be issued. Remove tracker - Forigi la ŝanĝospurilon + Forigi la spurilon @@ -6933,12 +7371,12 @@ No further notices will be issued. List of trackers to add (one per line): - + Listo da spuriloj por aldoni (po unu por linio): µTorrent compatible list URL: - + URL-adreso de listo, kiu kongruas kun µTorrent: @@ -6982,7 +7420,7 @@ No further notices will be issued. Downloading metadata used when loading a magnet link - Elŝutante la metadatumojn + Elŝutanta metadatenojn @@ -6999,7 +7437,7 @@ No further notices will be issued. Queued i.e. torrent is queued - + Enviciĝita @@ -7011,13 +7449,13 @@ No further notices will be issued. Stalled Torrent is waiting for download to begin - + Haltigita [F] Downloading used when the torrent is forced started. You probably shouldn't translate the F. - [F] Elŝutante + [F] Elŝutanta @@ -7029,41 +7467,41 @@ No further notices will be issued. Checking Torrent local data is being checked - + Kontrolate Queued for checking i.e. torrent is queued for hash checking - + Enviciĝita por kontrolado Checking resume data used when loading the torrents from disk after qbt is launched. It checks the correctness of the .fastresume file. Normally it is completed in a fraction of a second, unless loading many many torrents. - + Kontrolante reaktivigajn datenojn Completed - Finita + Finita Missing Files - + Mankantaj Dosieroj Errored torrent status, the torrent has an error - + Erarinta %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (fontsendis dum %2) @@ -7075,19 +7513,19 @@ No further notices will be issued. TransferListFiltersWidget - + Status Stato - + Labels Etikedoj - + Trackers - Ŝanĝospuriloj + Spuriloj @@ -7105,7 +7543,7 @@ No further notices will be issued. Choose save path - Elekti la konservan dosierindikon + Elektu la konservan dosierindikon @@ -7125,7 +7563,7 @@ No further notices will be issued. Are you sure you want to recheck the selected torrent(s)? - + Ĉu vi certas, ke vi volas rekontroli la elektita(j)n torento(j)n? @@ -7140,7 +7578,7 @@ No further notices will be issued. Invalid label name - Nevalida etikednomo + Malvalida etikednomo @@ -7161,13 +7599,13 @@ No further notices will be issued. Resume Resume/start the torrent - Reaktivigi + Reaktivigi Force Resume Force Resume/start the torrent - + Trude reaktivigi @@ -7189,22 +7627,22 @@ No further notices will be issued. Limit share ratio... - + Limigi kunhavan proporcion... Limit upload rate... - + Limigi alŝutrapidon... Limit download rate... - + Limigi elŝutrapidon... Open destination folder - Malfermi la celdosierujon + Malfermi la celdosierujon @@ -7222,18 +7660,18 @@ No further notices will be issued. Move to top i.e. Move to top of the queue - + Movi al la supro Move to bottom i.e. Move to bottom of the queue - + Movi al la malsupro Set location... - + Agordi lokon... @@ -7248,7 +7686,7 @@ No further notices will be issued. Force recheck - + Trude rekontroli @@ -7268,12 +7706,12 @@ No further notices will be issued. Download in sequential order - + Elŝuti en sinsekva ordo Download first and last piece first - + Elŝuti la unuan kaj la finan pecojn unue @@ -7285,7 +7723,7 @@ No further notices will be issued. Reset Reset label - + Vakigi @@ -7293,29 +7731,29 @@ No further notices will be issued. Torrent Upload/Download Ratio Limiting - + Limitado de torenta alŝut-elŝut-proporcio Use global ratio limit - + Uzi la mallokan proporci-limon buttonGroup - + butongrupo Set no ratio limit - + Agordi neniun proporci-limon Set ratio limit to - + Agordi la proporci-limon al @@ -7356,12 +7794,12 @@ No further notices will be issued. Forum: - + Forumo: IRC: #qbittorrent on Freenode - + IRC: #qbittorrent ĉe Freenode @@ -7369,7 +7807,7 @@ No further notices will be issued. Add Peers - Aldoni Samtavolanojn + Aldonu Samtavolanojn @@ -7379,7 +7817,7 @@ No further notices will be issued. Format: IPv4:port / [IPv6]:port - + Aranĝo: IPv4:pordo / [IPv6]:pordo @@ -7388,12 +7826,12 @@ No further notices will be issued. Tracker authentication - + Spuril-aŭtentigado Tracker: - Ŝanĝospurilo: + Spurilo: @@ -7418,7 +7856,7 @@ No further notices will be issued. Cancel - Nuligi + Nuligi @@ -7426,17 +7864,17 @@ No further notices will be issued. Deletion confirmation - qBittorrent - + Foriga konfirmado - qBittorrent Remember choice - + Memori elekton Also delete the files on the hard disk - + Forigi ankaŭ la dosierojn el la diskilo @@ -7444,17 +7882,17 @@ No further notices will be issued. Cancel - Nuligi + Nuligi Torrent Creation Tool - + Torentkreilo Torrent file creation - + Torentdosierkreado @@ -7474,12 +7912,12 @@ No further notices will be issued. Tracker URLs: - + Spurilaj URL-adresoj: Web seeds urls: - + URL-adresoj de TTT-fontoj: @@ -7575,7 +8013,7 @@ No further notices will be issued. Create and save... - Krei kaj konservi... + Krei kaj konservu... @@ -7598,232 +8036,130 @@ No further notices will be issued. Download - + Elŝuti Cancel - Nuligi + Nuligi Download from urls - + Elŝuti de URL-adresoj No URL entered - + Neniu URL-adreso eniĝis Please type at least one URL. - + Bonvolu tajpi almenaŭ unu URL-adreson. engineSelect - Search plugins - + Serĉi kromprogramojn - Installed search engines: - + Instalitaj serĉiloj: - Name - Nomo + Nomo - Version - Versio + Versio - Url - URL + URL - - Enabled - + Ebligita - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - - Install a new one - + Instali novan - Check for updates - + Kontroli ĝisdatigadon - Close - Fermi + Fermi - Uninstall - + Malinstali engineSelectDlg - Uninstall warning - + Averto de malinstalo - Uninstall success - + Malinstalo sukcesis - Invalid plugin - + Malvalida kromprogramo - The search engine plugin is invalid, please contact the author. - + La serĉila kromprogramo malvalidas, bonvolu kontakti la aŭtoron. - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - '%1' search engine plugin could not be installed. %1 is the name of the search engine - + La serĉila kromprogramo '%1' ne eblis instaliĝi. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + La serĉila kromprogramo '%1' ĝisdatiĝis sukcese. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + La serĉila kromprogramo '%1' instaliĝis sukcese. - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - + Elektu serĉilajn kromprogramojn - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - - Search plugin install - - - - - - Yes - Jes + Jes - - - - No - Ne + Ne - - qBittorrent search plugin - - - - - - - - Search plugin update - - - - - - Sorry, update server is temporarily unavailable. - - - - - All your plugins are already up to date. - - - - - All selected plugins were uninstalled successfully - - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Kelkaj kromprogramoj ne eblis malinstali, ĉar ili estas inkluzivitaj en qBittorrent. Nur malinstaleblas tiuj, kiuj vi aldonis. + Kelkaj kromprogramoj ne eblis malinstali, ĉar ili estas inkluzivitaj en qBittorrent. Nur malinstaleblas tiuj, kiuj vi aldonis. Tiuj kromprogramoj malebliĝis. - Invalid link - Nevalida ligilo + Malvalida ligilo - - - New search engine plugin URL - - - - - URL: - URL: + URL-adreso: @@ -7881,12 +8217,12 @@ Tiuj kromprogramoj malebliĝis. Python not detected - + Pitono netrovita Python version: %1 - + Pitona versio: %1 @@ -7932,7 +8268,7 @@ Tiuj kromprogramoj malebliĝis. Working - + Funkciante @@ -7942,205 +8278,193 @@ Tiuj kromprogramoj malebliĝis. Not working - + Nefunkciante Not contacted yet - + Ne jam kontaktiĝis options_imp - - + + Choose export directory - Elekti la elportan dosierujon + Elektu la elportan dosierujon - - - - + + + + Choose a save directory Elektu konservan dosierujon - + Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %N: Torenta nomo - + %L: Label %L: Etikedo - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Konserva dosierindiko - - - %C: Number of files - - - - - %Z: Torrent size (bytes) - - - - - %T: Current tracker - - + %C: Number of files + %C: Nombro de dosieroj + + + + %Z: Torrent size (bytes) + %Z: Grando de la torento (bitoj) + + + + %T: Current tracker + %T: Aktuala spurilo + + + %I: Info hash - + %I: Informhaketaĵo - + Folder is already being watched. - + La dosierujo jam estas rigardata. - + Folder does not exist. La dosierujo ne ekzistas. - + Folder is not readable. La dosierujo ne legeblas. - + Failure - + Malsukceso - + Failed to add Scan Folder '%1': %2 - + Ne eblis aldoni Traserĉan Dosierujon '%1': %2 - - + + Filters - + Filtriloj - - + + Choose an IP filter file - + Elektu IP-filtrildosieron - + SSL Certificate - + SSL-atestilo - + SSL Key - + SSL-ŝlosilo - + Parsing error - + Sintaksanaliza eraro - + Failed to parse the provided IP filter - + Successfully refreshed - + Sukcese aktualigita - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key - Nevalida ŝlosilo + Malvalida ŝlosilo - + This is not a valid SSL key. - - - - - Invalid certificate - - - - - This is not a valid SSL certificate. - + Tio ne estas valida SSL-ŝlosilo. - The start time and the end time can't be the same. - + Invalid certificate + Malvalida atestigilo - + + This is not a valid SSL certificate. + Tio ne estas valida SSL-atestigilo. + + + + The start time and the end time can't be the same. + La komenctempo kaj la fintempo ne povas esti la samaj. + + + Time Error - + Tempa Eraro pluginSourceDlg - - Plugin source - - - - - Search plugin source: - - - - Local file - Loka dosiero + Loka dosiero - Web link - TTT-ligilo + TTT-ligilo @@ -8153,56 +8477,48 @@ Tiuj kromprogramoj malebliĝis. The following files support previewing, please select one of them: - La sekvaj dosieroj subteni antaŭrigardadon, bonvolu elekti unu el ili: + La jenaj dosieroj subteni antaŭrigardadon, bonvolu elekti unu el ili: Preview - Antaŭrigardi + Antaŭrigardu Cancel - Nuligi + Nuligu search_engine - - Search - Serĉi + Serĉu - Status: - Stato: + Stato: - Stopped - + Haltinta - Download - + Elŝutu - Go to description page - + Iru al la priskribpaĝo - Copy description page URL - + Kopiu la URLon de la priskribpaĝo - Search engines... - + Serĉiloj... diff --git a/src/lang/qbittorrent_es.ts b/src/lang/qbittorrent_es.ts index f9c4536ad..9ff511120 100644 --- a/src/lang/qbittorrent_es.ts +++ b/src/lang/qbittorrent_es.ts @@ -127,7 +127,7 @@ Set as default label - + Establecer como etiqueta predeterminada @@ -175,172 +175,172 @@ No descargar - - + + I/O Error Error de Entrada/Salida (I/O) - + The torrent file does not exist. El archivo torrent no existe. - + Invalid torrent Torrent inválido - + Failed to load the torrent: %1 Fallo al cargar el torrent: %1 - - + + Already in download list Ya está en la lista de descargas - + Free disk space: %1 Espacio libre en disco: %1 - + Not Available This comment is unavailable No disponible - + Not Available This date is unavailable No disponible - + Not available No disponible - + Invalid magnet link Enlace magnet inválido - + Torrent is already in download list. Trackers were merged. El torrent ya está en la lista de descargas. Los Trackers fueron fusionados. - - + + Cannot add torrent No se pudo agregar el torrent - + Cannot add this torrent. Perhaps it is already in adding state. No se pudo agregar este torrent. Tal vez ya se esté agregando. - + This magnet link was not recognized Este enlace magnet no pudo ser reconocido - + Magnet link is already in download list. Trackers were merged. El enlace magnet ya está en la lista de descargas. Los Trackers fueron fusionados. - + Cannot add this torrent. Perhaps it is already in adding. No se pudo agregar este torrent. Tal vez ya se esté agregando. - + Magnet link Enlace magnet - + Retrieving metadata... Recibiendo metadatos... - + Not Available This size is unavailable. No disponible - - - + + + Choose save path Elegir ruta - + Rename the file Renombrar archivo - + New name: Nuevo nombre: - - + + The file could not be renamed No se pudo renombrar el archivo - + This file name contains forbidden characters, please choose a different one. Este nombre contiene caracteres prohibidos, por favor, elija uno diferente. - - + + This name is already in use in this folder. Please use a different name. Este nombre ya está en uso. Por favor, use un nombre diferente. - + The folder could not be renamed La carpeta no se pudo renombrar - + Rename... Renombrar... - + Priority Prioridad - + Invalid metadata Metadatos inválidos - + Parsing metadata... Analizando metadatos... - + Metadata retrieval complete Recepción de metadatos completa - + Download Error Error de descarga @@ -431,10 +431,6 @@ Resolve peer host names Resolver nombres de host de los pares - - Maximum number of half-open connections [0: Disabled] - Número máximo de conexiones semi-abiertas [0: Desactivado] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Número máximo de conexiones semi-abiertas [0: Desactivado] @@ -661,205 +657,205 @@ &Exportar... - + Matches articles based on episode filter. Filtrar artículos en base al filtro de episodios. - + Example: Ejemplo: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match coincidirá con los episodios 2, 5, del 8 al 15, y del 30 en adelante de la temporada uno - + Episode filter rules: Reglas del filtro de episodios: - + Season number is a mandatory non-zero value El número de temporada debe ser distinto de cero - + Episode number is a mandatory non-zero value El número de episodio debe ser distinto de cero - + Filter must end with semicolon El filtro debe finalizar con punto y coma (;) - + Three range types for episodes are supported: Son soportados tres tipos de rango de episodios: - + Single number: <b>1x25;</b> matches episode 25 of season one Un número: <b>1x25;</b> coincidirá con el episodio 25 de la temporada uno - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Un rango: <b>1x25-40;</b> coincidirá con los episodios del 25 al 40 de la temporada uno - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Rango infinito: <b>1x25-;</b> coincidirá con los episodios del 25 en adelante de la temporada uno - + Last Match: %1 days ago Última coincidencia: %1 días atrás - + Last Match: Unknown Última coincidencia: Desconocida - + New rule name Nombre de la regla - + Please type the name of the new download rule. Por favor, escriba el nombre de la nueva regla de descarga. - - + + Rule name conflict Conflicto con el nombre de la regla - - + + A rule with this name already exists, please choose another name. Ya existena una regla con este nombre, por favor, elija otro nombre. - + Are you sure you want to remove the download rule named '%1'? ¿Está seguro de querer eliminar la regla de descarga llamada '%1'? - + Are you sure you want to remove the selected download rules? ¿Está seguro que desea eliminar las reglas de descarga seleccionadas? - + Rule deletion confirmation Confirmar la eliminación de la regla - + Destination directory Ruta de destino - + Invalid action Acción no válida - + The list is empty, there is nothing to export. La lista está vacía, no hay nada para exportar. - + Where would you like to save the list? ¿Dónde le gustaría guardar la lista? - + Rules list (*.rssrules) Lista de reglas (*.rssrules) - + I/O Error Error de Entrada/Salida (I/O) - + Failed to create the destination file No se pudo crear el archivo de destino - + Please point to the RSS download rules file Por favor, seleccione el archivo de reglas de descarga de canales RSS - + Rules list Lista de reglas - + Import Error Error al importar - + Failed to import the selected rules file No se pudo importar el archivo de reglas seleccionado - + Add new rule... Agregar nueva regla... - + Delete rule Eliminar regla - + Rename rule... Renombrar regla... - + Delete selected rules Eliminar reglas seleccionadas - + Rule renaming Renombrando regla - + Please type the new rule name Por favor, escriba el nombre de la nueva regla - + Regex mode: use Perl-like regular expressions Modo Regex: usar expresiones regulares como en Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Uso de comodines: se puede usar<ul><li>? para hacer coincidir cualquier carácter individual</li><li>* para hacer coincidir cero o más caracteres</li><li>Los espacios en blanco cuentan como operadores AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Uso de comodines: se puede usar<ul><li>? para hacer coincidir cualquier carácter individual</li><li>* para hacer coincidir cero o más caracteres</li><li>| es usado como operador OR</li></ul> @@ -952,65 +948,57 @@ '%1' alcanzó el ratio máximo establecido. Pausandolo... - Error: Could not create torrent export directory: '%1' - Error: No se pudo crear el directorio: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Error: No se pudo exportar el torrent '%1', tal vez no tenga metadatos todavía. - - - + System network status changed to %1 e.g: System network status changed to ONLINE El estado de la red de sistema cambió a %1 - + ONLINE EN LÍNEA - + OFFLINE FUERA DE LÍNEA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding La configuración de red de %1 ha cambiado, refrescando la sesión - + Unable to decode '%1' torrent file. No se pudo decodificar el torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descarga recursiva del archivo '%1' incluido en el torrent '%2' - + Couldn't save '%1.torrent' No se pudo guardar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. porque %1 está deshabilitado. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque %1 está deshabilitado. - + URL seed lookup failed for URL: '%1', message: %2 Falló la búsqueda de la semilla Url: '%1', mensaje: %2 @@ -1027,178 +1015,164 @@ '%1' Fue eliminado de la lista de transferencias. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', por favor espere... - Torrent Export: torrent is invalid, skipping... - Exportar torrent: el torrent no es valido, saltando... - - - + DHT support [ON] Soporte para DHT [Activado] - + DHT support [OFF]. Reason: %1 Soporte para DHT [Desactivado]. Razón: %1 - + DHT support [OFF] Soporte para DHT [Desactivado] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tratando de escuchar en cualquier interfaz, puerto: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2 - - - + The network interface defined is invalid: %1 La interfaz de red definida no es válida: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent está tratando de escuchar en la interfaz %1 puerto: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent no encuentra una dirección local %1 para escuchar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2. {1.?} + qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2 - + Tracker '%1' was added to torrent '%2' El tracker '%1' se agregó al torrent '%2' - + Tracker '%1' was deleted from torrent '%2' El tracker '%1' se eliminó del torrent '%2' - + URL seed '%1' was added to torrent '%2' La semilla URL '%1' se agregó al torrent '%2' - + URL seed '%1' was removed from torrent '%2' La semilla URL '%1' se eliminó del torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. No se pudo continuar el torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro IP analizado correctamente: %1 reglas aplicadas. - + Error: Failed to parse the provided IP filter. Error: Falló el análisis del filtro IP. - + Couldn't add torrent. Reason: %1 No se pudo agregar el torrent. Razón: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' continuado. (continuación rápida) - + '%1' added to download list. 'torrent name' was added to download list. '%1' agregado a la lista de descargas. - + An I/O error occurred, '%1' paused. %2 Ocurrió un error de Entrada/Salida (I/O), '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Falló el mapeo del puerto, mensaje: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Puerto mapeado correctamente, mensaje: %1 - + due to IP filter. this peer was blocked due to ip filter. por el filtro IP. - + due to port filter. this peer was blocked due to port filter. por el filtro de puertos. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. por restricciones del modo mixto i2p. - + because it has a low port. this peer was blocked because it has a low port. por tener un puerto bajo. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent está escuchando en la interfaz %1 puerto: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4. {1 ?} {2/%3.?} + qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP Externa: %1 @@ -1212,12 +1186,12 @@ No se pudo mover el torrent: '%1'. Razón: %2 - + File sizes mismatch for torrent '%1', pausing it. El tamaño de archivo no coincide con el torrent '%1', pausandolo. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Continuación rápida rechazada para el torrent: '%1', Razón %2. Verificando de nuevo... @@ -1242,7 +1216,7 @@ Valor - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Las Claves para las Cookies son : '%1', '%2' @@ -1310,12 +1284,12 @@ Debe obtener esta información de las preferencias de su navegador Web. FeedListWidget - + RSS feeds Canales RSS - + Unread No leídos @@ -1412,10 +1386,6 @@ Debe obtener esta información de las preferencias de su navegador Web.Only one link per line Solamente un enlace por línea - - Download local torrent - Descargar torrent local - Download @@ -1589,20 +1559,30 @@ Debe obtener esta información de las preferencias de su navegador Web. Save files to location: - Guardar los archivos en: + Guardar los archivos en: Label: - Etiqueta: + Etiqueta: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Bajado @@ -1615,7 +1595,7 @@ Debe obtener esta información de las preferencias de su navegador Web. Upload local torrent - + Subir torrent local @@ -1973,10 +1953,6 @@ Debe obtener esta información de las preferencias de su navegador Web.&About &Acerca de - - Exit - Salir - &Pause @@ -2007,22 +1983,6 @@ Debe obtener esta información de las preferencias de su navegador Web.E&xit &Salir - - Options - Opciones - - - Resume - Reanudar - - - Pause - Pausar - - - Delete - Eliminar - Open URL @@ -2040,19 +2000,15 @@ Debe obtener esta información de las preferencias de su navegador Web. - + Show Mostrar - + Check for program updates Buscar actualizaciones del programa - - Lock qBittorrent - Bloquear qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Debe obtener esta información de las preferencias de su navegador Web. - + Execution Log Log - + Clear the password Borrar la contraseña - + Filter torrent list... Filtrar lista de torrents... - + &Set Password &Establecer Contraseña - + &Clear Password Limpiar C&ontraseña - + Transfers Transferencias - + Torrent file association Asociación de archivos torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent no es la aplicación por defecto para abrir archivos torrent o enlaces magnet. ¿Quiere que qBittorrent sea el programa por defecto para gestionar estos archivos? - + Icons Only Solo iconos - + Text Only Solo texto - + Text Alongside Icons Texto al lado de los iconos - + Text Under Icons Texto debajo de los iconos - + Follow System Style Usar estilo del sistema - - - + + + UI lock password Contraseña de bloqueo - - - + + + Please type the UI lock password: Por favor, escriba la contraseña de bloqueo: - + The password should contain at least 3 characters La contraseña debe tener como mínimo 3 caracteres - + Password update Actualizar contraseña - + The UI lock password has been successfully updated La contraseña de bloqueo de qBittorrent se ha actualizado correctamente - + Are you sure you want to clear the password? ¿Seguro que desea borrar la contraseña? - + Search Buscar - + Transfers (%1) Transferencias (%1) - + Error Error - + Failed to add torrent: %1 Fallo al agregar torrent: %1 - + Download completion Descarga completada - + I/O Error i.e: Input/Output Error Error de Entrada/Salida (I/O) - + Recursive download confirmation Confirmación de descargas recursivas - + Yes - + No No - + Never Nunca - + Global Upload Speed Limit Límite de velocidad de subida global - + Global Download Speed Limit Límite de velocidad de descarga global - + &No &No - + &Yes &Sí - + &Always Yes S&iempre sí - + Python found in %1 Python encontrado en %1 - + Old Python Interpreter Intérprete de Python antiguo - + qBittorrent Update Available Actualización de qBittorrent disponible - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Ya está utilizando la versión mas reciente de qBittorrent - + Undetermined Python version Versión de Python indeterminada - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' se ha descargado. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Razón: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Este torrent '%1' contiene archivos torrent, ¿Desea seguir adelante con su descarga? - + Couldn't download file at URL '%1', reason: %2. No se pudo descargar el archivo desde la URL: '%1', razón: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Su versión de Python %1 está desactualizada. Por favor actualizela a la ultima versión para poder utilizar el motor de búsqueda. La versión mínima es: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. No se pudo determinar su versión de Python (%1). Motor de búsqueda deshabilitado. - - + + Missing Python Interpreter Falta el intérprete de Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python es necesario para utilizar el motor de búsqueda pero no parece que esté instalado. ¿Desea instalarlo ahora? - + Python is required to use the search engine but it does not seem to be installed. Python es necesario para utilizar el motor de búsqueda pero no parece que esté instalado. - A new version is available. Update to version %1? - Hay una nueva versión disponible. + Hay una nueva versión disponible. ¿Desea actualizar qBittorrent a la versión %1? - + No updates available. You are already using the latest version. No hay actualizaciones disponibles. Ya está utilizando la versión mas reciente. - + &Check for Updates &Buscar actualizaciones - + Checking for Updates... Buscando actualizaciones... - + Already checking for program updates in the background Ya se están buscando actualizaciones del programa en segundo plano - + Python found in '%1' Python encontrado en '%1' - + Download error Error de descarga - + Python setup could not be downloaded, reason: %1. Please install it manually. La instalación de Python no se pudo realizar, la razón: %1. Por favor, instálelo de forma manual. - - + + Invalid password Contraseña no válida - - + + RSS (%1) RSS (%1) - + URL download error Error descargando de URL - + The password is invalid La contraseña no es válida - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Vel. descarga: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Vel. subida: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [B: %1, S: %2] qBittorrent %3 - + Hide Ocultar - + Exiting qBittorrent Cerrando qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Algunos archivos aún están transfiriéndose. ¿Está seguro de querer cerrar qBittorrent? - + Open Torrent Files Abrir archivos torrent - + Torrent Files Archivos torrent - + Options were saved successfully. Opciones guardadas correctamente. @@ -2443,17 +2404,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. El DNS dinámico se actualizó correctamente. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Error del DNS dinámico: El servicio no está disponible temporalmente, nuevo reintento en 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Error del DNS dinámico: El nombre de host proporcionado no existe en la cuenta especificada. @@ -2463,32 +2424,32 @@ Are you sure you want to quit qBittorrent? Error del DNS dinámico: El nombre de usuario/contraseña no es válido. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Error del DNS dinámico: qBittorrent ha sido incluido en la Lista Negra por el servicio, por favor, informar de ésto en http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Error del DNS dinámico: %1 fue rechazado por el servicio, por favor, informe de este error en http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Error del DNS dinámico: Su nombre de usuario fue bloqueado debido a excesos. - + Dynamic DNS error: supplied domain name is invalid. Error del DNS dinámico: El nombre de dominio proporcionado no válido. - + Dynamic DNS error: supplied username is too short. Error del DNS dinámico: El nombre de usuario proporcionado es demasiado corto. - + Dynamic DNS error: supplied password is too short. Error del DNS dinámico: La contraseña proporcionada demasiado corta. @@ -2515,154 +2476,161 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Base de datos GeoIP cargada. Tipo: %1. Creada el: %2. - + Couldn't load GeoIP database. Reason: %1 No se pudo cargar la base de datos GeoIP. Razon: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/A - Asia/Pacific Region - Región de Asia-Pacífico + Región de Asia-Pacífico + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emiratos Árabes Unidos - + Afghanistan Afganistán - + Antigua and Barbuda Antigua y Barbuda - + Anguilla Anguila - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antillas Neerlandesas + Antillas Neerlandesas - + Angola Angola - + Antarctica Antártida - + Argentina Argentina - + American Samoa Samoa Americana - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaiyán - + Bosnia and Herzegovina Bosnia y Herzegovina - + Barbados Barbados - + Bangladesh Bangladés - + Belgium Bélgica - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Baréin - + Burundi Burundi - + Benin Benín @@ -2677,1137 +2645,1187 @@ Are you sure you want to quit qBittorrent? Brunéi Darussalam - Bolivia - Bolivia + Bolivia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Bután - + Bouvet Island Isla Bouvet - + Botswana Botsuana - + Belarus Bielorrusia - + Belize Belice - + Canada Canadá - + Cocos (Keeling) Islands Islas Cocos (Keeling) - + Congo, The Democratic Republic of the República Democrática del Congo - + Central African Republic República Centroafricana - + Congo Congo - + Switzerland Suiza - Cote D'Ivoire - Costa de Marfil + Costa de Marfil - + Cook Islands Islas Cook - + Chile Chile - + Cameroon Camerún - + China China - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + + Curacao + + + + Christmas Island Isla de Navidad - + Cyprus Chipre - + Czech Republic República Checa - + Germany Alemania - + Djibouti Yibuti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Argelia - + Ecuador Ecuador - + Estonia Estonia - + Egypt Egipto - + Western Sahara Sahara Occidental - + Eritrea Eritrea - + Spain España - + Ethiopia Etiopía - + Finland Finlandia - + Fiji Fiyi - + Falkland Islands (Malvinas) Islas Malvinas (Falkland) - + Micronesia, Federated States of Estados Federados de Micronesia - + Faroe Islands Islas Feroe - + France Francia - France, Metropolitan - Francia metropolitana + Francia metropolitana - + Gabon Gabón - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Georgia - + French Guiana Guayana Francesa - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlandia - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guinea Ecuatorial - + Greece Grecia - + South Georgia and the South Sandwich Islands Islas Georgias del Sur y Sandwich del Sur - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bisáu - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Islas Heard y McDonald - + Honduras Honduras - + Croatia Croacia - + Haiti Haití - + Hungary Hungría - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Territorio Británico del Océano Índico - + Iraq Irak - + Iran, Islamic Republic of Irán - + Iceland Islandia - + Italy Italia - + Jamaica Jamaica - + Jordan Jordania - + Japan Japón - + Kenya Kenya - + Kyrgyzstan Kirguistán - + Cambodia Camboya - + Kiribati Kiribati - + Comoros Comoras - + Saint Kitts and Nevis San Cristóbal y Nieves - + Korea, Democratic People's Republic of Corea del Norte - + Korea, Republic of Corea del Sur - + Kuwait Kuwait - + Cayman Islands Islas Caimán - + Kazakhstan Kazajistán - + Lao People's Democratic Republic Laos - + Lebanon Líbano - + Saint Lucia Santa Lucía - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesoto - + Lithuania Lituania - + Luxembourg Luxemburgo - + Latvia Letonia - Libyan Arab Jamahiriya - Libia + Libia - + Morocco Marruecos - + Monaco Mónaco - + Moldova, Republic of Moldavia - + Madagascar Madagascar - + Marshall Islands Islas Marshall - Macedonia - Macedonia + Macedonia - + Mali Malí - + Myanmar Birmania - + Mongolia Mongolia - Macau - Macao + Macao - + Northern Mariana Islands Islas Marianas del Norte - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauricio - + Maldives Maldivas - + Malawi Malaui - + Mexico México - + Malaysia Malasia - + Mozambique Mozambique - + Namibia Namibia - + New Caledonia Nueva Caledonia - + Niger Níger - + Norfolk Island Isla Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Países Bajos - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nueva Zelanda - + Oman Omán - + Panama Panamá - + Peru Perú - + French Polynesia Polinesia Francesa - + Papua New Guinea Papúa Nueva Guinea - + Philippines Filipinas - + Pakistan Pakistán - + Poland Polonia - + Saint Pierre and Miquelon San Pedro y Miquelón - Pitcairn Islands - Islas Pitcairn + Islas Pitcairn - + Puerto Rico Puerto Rico - Palestinian Territory - Territorios Palestinos + Territorios Palestinos - + Portugal Portugal - + Palau Palaos - + Paraguay Paraguay - + Qatar Catar - + Reunion Reunión - + Romania Rumanía - + Russian Federation Rusia - + Rwanda Ruanda - + Saudi Arabia Arabia Saudita - + Solomon Islands Islas Salomón - + Seychelles Seychelles - + Sudan Sudán - + Sweden Suecia - + Singapore Singapur - Saint Helena - Isla Santa Elena + Isla Santa Elena - + Slovenia Eslovenia - + Svalbard and Jan Mayen Svalbard y Jan Mayen - + Slovakia Eslovaquia - + Sierra Leone Sierra Leona - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe Santo Tomé y Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Siria - + Swaziland Suazilandia - + Turks and Caicos Islands Islas Turcas y Caicos - + Chad Chad - + French Southern Territories Tierras Australes y Antárticas Francesas - + Togo Togo - + Thailand Tailandia - + Tajikistan Tayikistán - + Tokelau Tokelau - + Turkmenistan Turkmenistán - + Tunisia Túnez - + Tonga Tonga - + Timor-Leste Timor Oriental - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turquía - + Trinidad and Tobago Trinidad y Tobago - + Tuvalu Tuvalu - + Taiwan Taiwán - + Tanzania, United Republic of Tanzania - + Ukraine Ucrania - + Uganda Uganda - + United States Minor Outlying Islands Islas Ultramarinas Menores de Estados Unidos - + United States Estados Unidos - + Uruguay Uruguay - + Uzbekistan Uzbekistán - + Holy See (Vatican City State) Santa Sede (Estado de la ciudad del Vaticano) - + Saint Vincent and the Grenadines San Vicente y las Granadinas - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Islas Vírgenes Británicas - + Virgin Islands, U.S. Islas Vírgenes de los Estados Unidos - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis y Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Sudáfrica - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabue - Anonymous Proxy - Proxy Anónimo + Proxy Anónimo - Satellite Provider - Proveedor Satélital + Proveedor Satélital - Other - Otro + Otro - + Aland Islands Åland - + Guernsey Guernsey - + Isle of Man Isla de Man - + Jersey Jersey - + Saint Barthelemy San Bartolomé - Saint Martin - Isla de San Martín + Isla de San Martín - + Could not uncompress GeoIP database file. No se pudo descomprimir el archivo de base de datos GeoIP. - + Couldn't save downloaded GeoIP database file. No se pudo guardar la base de datos GeoIP descargada. - + Successfully updated GeoIP database. Base de datos GeoIP actualizada correctamente. - + Couldn't download GeoIP database file. Reason: %1 No se pudo descargar la base de datos GeoIP. Razon: %1 @@ -3838,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - interesado(local) y ahogado(par) + interesado(local) y bloqueado(par) interested(local) and unchoked(peer) - interesado(local) y no ahogado(par) + interesado(local) y no bloqueado(par) interested(peer) and choked(local) - interesado(par) y ahogado(local) + interesado(par) y bloqueado(local) interested(peer) and unchoked(local) - interesado(par) y no ahogado(local) + interesado(par) y no bloqueado(local) optimistic unchoke - desahogo optimista + desbloqueo optimista peer snubbed - par descartado + par descartado incoming connection - conexión entrante + Conexión entrante not interested(local) and unchoked(peer) - no interesado(local) y no ahogado(par) + no interesado(local) y no bloqueado(par) not interested(peer) and unchoked(local) - no interesado(par) y no ahogado(local) + no interesado(par) y no bloqueado(local) peer from PEX - par de PEX + par de PEX peer from DHT - par de DHT + par de DHT encrypted traffic - trafico cifrado + trafico cifrado encrypted handshake - negociación cifrada + negociación cifrada peer from LSD - par de LSD + par de LSD @@ -3971,123 +3989,73 @@ Are you sure you want to quit qBittorrent? Importancia - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Agregar nuevo par... - + Copy selected Copiar seleccionado - - + + Ban peer permanently Prohibir este par permanentemente - + Manually adding peer '%1'... Agregando manualmente el par '%1'... - + The peer '%1' could not be added to this torrent. El par '%1' no se ha podido agregar al torrent. - + Manually banning peer '%1'... Prohibiendo manualmente al par '%1'... - - + + Peer addition Agregar par - + Some peers could not be added. Check the Log for details. Algunos pares no pudieron agregarse. Revisa el log para obtener más detalles. - + The peers were added to this torrent. Los pares se agregaron a este torrent. - + Are you sure you want to ban permanently the selected peers? ¿Seguro que desea prohibir permanentemente los pares seleccionados? - + &Yes &Sí - + &No &No - - interested(local) and choked(peer) - interesado(local) y ahogado(par) - - - interested(local) and unchoked(peer) - interesado(local) y no ahogado(par) - - - interested(peer) and choked(local) - interesado(par) y ahogado(local) - - - interested(peer) and unchoked(local) - interesado(par) y no ahogado(local) - - - optimistic unchoke - desahogo optimista - - - peer snubbed - par descartado - - - incoming connection - conexión entrante - - - not interested(local) and unchoked(peer) - no interesado(local) y no ahogado(par) - - - not interested(peer) and unchoked(local) - no interesado(par) y no ahogado(local) - - - peer from PEX - par de PEX - - - peer from DHT - par de DHT - - - encrypted traffic - trafico cifrado - - - encrypted handshake - negociación cifrada - - - peer from LSD - par de LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Are you sure you want to quit qBittorrent? Azul: Piezas disponibles + + PluginSelectDlg + + + Search plugins + Plugins de búsqueda + + + + Installed search plugins: + + + + + Name + Nombre + + + + Version + Versión + + + + Url + URL + + + + + Enabled + Habilitado + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Puedes obtener nuevos motores de búsqueda aquí: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instalar uno nuevo + + + + Check for updates + Buscar actualizaciones + + + + Close + Cerrar + + + + Uninstall + Desinstalar + + + + + + Yes + + + + + + + + No + No + + + + Uninstall warning + Advertencia de desinstalación + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Algunos plugins no pudieron ser desinstalados porque están incluidos en qBittorrent. Solamente pueden ser desinstalados los que han sido agregados por ti. +En su lugar, esos plugins fueron deshabilitados. + + + + Uninstall success + Desinstalación correcta + + + + All selected plugins were uninstalled successfully + Todos los plugins seleccionados fueron instalados correctamente + + + + + New search engine plugin URL + URL del nuevo plugin de motor de búsqueda + + + + + URL: + URL: + + + + Invalid link + Enlace inválido + + + + The link doesn't seem to point to a search engine plugin. + El enlace no parece contener un plugin de búsqueda. + + + + Select search plugins + Seleccione los plugins de búsqueda + + + + qBittorrent search plugin + Plugin de búsqueda de qBittorrent + + + + + + Search plugin update + Actualización del plugin de búsqueda + + + + All your plugins are already up to date. + Todos tus plugins ya están actualizados. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalar plugin de búsqueda + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Fuente del plugin + + + + Search plugin source: + Fuente del plugin de búsqueda: + + + + Local file + Archivo local + + + + Web link + Enlace web + + Preferences @@ -4181,89 +4346,89 @@ Are you sure you want to quit qBittorrent? Agregar la extensión .!qB a los archivos incompletos - + Copy .torrent files to: Copiar archivos .torrent en: - + Connections Limits Límites de conexión - + Proxy Server Servidor proxy - + Global Rate Limits Limites globales de velocidad - + Apply rate limit to transport overhead Aplicar límite para el exceso de transporte (Overhead) - + Schedule the use of alternative rate limits Programar el uso de límites alternativos - + From: from (time1 to time2) Desde las - + To: time1 to time2 Hasta: - + Enable Local Peer Discovery to find more peers Habilitar busqueda local de pares para encontrar más pares - + Encryption mode: Modo de cifrado: - + Prefer encryption Preferir cifrado - + Require encryption Exigir cifrado - + Disable encryption Deshabilitar cifrado - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Más información</a>) - + Maximum active downloads: Máximo de descargas activas: - + Maximum active uploads: Máximo de subidas activas: - + Maximum active torrents: Máximo de torrents activos: @@ -4288,82 +4453,82 @@ Are you sure you want to quit qBittorrent? Mostrar el contenido del Torrent y opciones - + Run external program on torrent completion Ejecutar un programa externo al completar el torrent - + Port used for incoming connections: Puerto utilizado para conexiones entrantes: - + Random Aleatorio - + Global maximum number of connections: Número máximo de conexiones totales: - + Maximum number of connections per torrent: Máximo de conexiones por torrent: - + Maximum number of upload slots per torrent: Número de puestos de subida por torrent: - - + + Upload: Subida: - - + + Download: Descarga: - - - - + + + + KiB/s KiB/s - + Remove folder Eliminar carpeta - + Every day Todos los días - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Intercambiar pares con clientes Bittorrent compatibles (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Tipo: @@ -4536,262 +4701,262 @@ Are you sure you want to quit qBittorrent? Agregar automáticamente los torrents de: - + Add folder... Agregar carpeta... - + Copy .torrent files for finished downloads to: Copiar archivos .torrent de descargas finalizadas a: - + Email notification upon download completion Notificarme por correo electrónico de la finalización de las descargas - + Destination email: Dirección de correo electrónico: - + SMTP server: Servidor SMTP: - + This server requires a secure connection (SSL) El servidor requiere una conexión segura (SSL) - + Listening Port Puerto de escucha - + Use UPnP / NAT-PMP port forwarding from my router Usar reenvío de puertos UPnP / NAT-PMP de mi router - + Use different port on each startup Usar un puerto diferente en cada inicio - + Global maximum number of upload slots: Máximo global de puestos de subida: - + Otherwise, the proxy server is only used for tracker connections Sino, el servidor proxy se utilizará solamente para las conexiones al tracker - + Use proxy for peer connections Usar proxy para las conexiones a los pares - + Disable connections not supported by proxies Deshabilitar conexiones no soportadas por los proxis - + Use proxy only for torrents Usar proxy solo para torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Canales RSS, motores de búsqueda. actualizaciones del software o cualquier otra cosa que no sean transferencias de torrents y operaciones relacionadas (como intercambio de pares) usarán una conexión directa - + Info: The password is saved unencrypted Info: La contraseña se guarda sin cifrar - + IP Filtering Filtrado IP - + Reload the filter Actualizar el filtro - + Apply to trackers Aplicar a los trackers - + Apply rate limit to peers on LAN Aplicar límite a los pares en LAN - + When: Cuándo: - + Weekdays Días laborales - + Weekends Fines de semana - + Rate Limits Settings Configuración de los limites - + Enable µTP protocol Activar protocolo µTP - + Apply rate limit to µTP protocol Aplicar límite para conexiones µTP - + Privacy Privacidad - + Enable DHT (decentralized network) to find more peers Activar DHT (red descentralizada) para encontrar más pares - + Enable Peer Exchange (PeX) to find more peers Habilitar intercambio de pares (PeX) para encontrar más pares - + Look for peers on your local network Buscar pares en su red local - + Enable when using a proxy or a VPN connection Habilitar cuando se use un proxy o un VPN - + Enable anonymous mode Activar modo anónimo - + Do not count slow torrents in these limits No contar torrents lentos en estos límites - + Seed torrents until their ratio reaches Sembrar torrents hasta que su ratio sea - + then luego - + Pause them Pausarlos - + Remove them Eliminarlos - + Automatically add these trackers to new downloads: Agregar automáticamente estos trackers a las descargas: - + Use UPnP / NAT-PMP to forward the port from my router Usar UPnP / NAT-PMP para redirigir el puerto de mi router - + Use HTTPS instead of HTTP Usar HTTPS en lugar de HTTP - + Import SSL Certificate Importar certificado SSL - + Import SSL Key Importar clave SSL - + Certificate: Certificado: - + Alternative Rate Limits Limites de velocidad alternativos - + Key: Clave: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Información sobre los certificados</a> - + Bypass authentication for localhost Eludir la autenticación para localhost - + Update my dynamic domain name Actualizar mi nombre de dominio dinámico - + Service: Servicio: - + Register Registro - + Domain name: Nombre de dominio: - + (None) (Ninguno) @@ -4801,61 +4966,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Puerto: - - - + + + Authentication Autenticación - - - - + + + + Username: Nombre de usuario: - - - - + + + + Password: Contraseña: - + Torrent Queueing Torrents en cola - + Share Ratio Limiting Limite de ratio de compartición - + Enable Web User Interface (Remote control) Habilitar interfaz Web (Control remoto) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Ruta del filtro (.dat, .p2p, .p2b): @@ -5062,10 +5227,6 @@ Usando el archivo de respaldo para restaurar la configuración. Comment: Comentario: - - Torrent content: - Contenido del torrent: - Select All @@ -5588,28 +5749,28 @@ No se le volverá a notificar sobre esto. Error desconocido - - + + Upgrade Actualizar - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Actualizaste desde una versión anterior que guardaba las cosas de forma diferente. Debes migrar al nuevo sistema de guardado. Si continuas, no podrás volver a usar una versión anterior a v3.3.0. ¿Continuar? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Actualizaste desde una versión anterior que guardaba las cosas de forma diferente. Debes migrar al nuevo sistema de guardado. Si continuas, no podrás volver a usar una versión anterior a v3.3.0. - + Couldn't migrate torrent with hash: %1 No se pudo migrar el torrent con el hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 No se pudo migrar el torrent. Nombre del archivo de continuación rapida invalido: %1 @@ -5720,17 +5881,17 @@ No se le volverá a notificar sobre esto. RSSImp - + Stream URL: URL del canal: - + Please type a RSS stream URL Por favor escribe una URL de un Canal RSS - + This RSS feed is already in the list. Esta fuente de RSS ya está en la lista. @@ -5750,75 +5911,92 @@ No se le volverá a notificar sobre esto. Nueva carpeta - + Deletion confirmation Confirmar eliminación - + Are you sure you want to delete the selected RSS feeds? ¿Esta seguro de querer eliminar los canales RSS seleccionados? - + Please choose a new name for this RSS feed Por favor, elija un nuevo nombre para el canal RSS - + New feed name: Nombre del nuevo canal: - + Name already in use Ese nombre ya está en uso - + This name is already used by another item, please choose another one. Ese nombre ya está siendo usado por otro elemento, por favor, elija otro. - + Date: Fecha: - + Author: Autor: - + Unread No leídos - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... + La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... + Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... RssParser - Failed to open downloaded RSS file. - Fallo al abrir el archivo descargado del RSS. + Fallo al abrir el archivo descargado del RSS. - Invalid RSS feed at '%1'. - Canal RSS inválido en '%1'. + Canal RSS inválido en '%1'. @@ -5844,168 +6022,249 @@ No se le volverá a notificar sobre esto. Número máximo de artículos por canal: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Examinar... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Carpeta vigilada - - Download here - Descargar aquí + + Save Files to + + + + Download here + Descargar aquí - Download path - Ruta de descarga + Ruta de descarga SearchCategories - All categories - Todas las categorías + Todas las categorías - Movies - Vídeos + Vídeos - TV shows - Programas de TV + Programas de TV - Music - Música + Música - Games - Juegos + Juegos - Anime - Anime + Anime - Software - Software + Software - Pictures - Imágenes + Imágenes - Books - Libros + Libros SearchEngine - - - Search - Buscar + Buscar - Please install Python to use the Search Engine. - Por favor instala Python para usar el motor de búsqueda. + Por favor instala Python para usar el motor de búsqueda. - Empty search pattern - Patrón de búsqueda vacío + Patrón de búsqueda vacío - Please type a search pattern first - Por favor escriba primero un patrón de búsqueda + Por favor escriba primero un patrón de búsqueda - Searching... - Buscando... + Buscando... - Stop - Detener + Detener - - Search Engine - Motor de búsqueda + Motor de búsqueda - - Search has finished - La búsqueda ha terminado + La búsqueda ha terminado - An error occurred during search... - Ocurrió un error durante la búsqueda... + Ocurrió un error durante la búsqueda... - - Search aborted - Búsqueda abortada + Búsqueda abortada - All enabled - Todos los habilitados + Todos los habilitados - All engines - Todos los motores + Todos los motores - - Multiple... - Múltiples... + Múltiples... - - Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: + Resultados <i>(%1)</i>: - Search returned no results - La búsqueda no devolvió resultados + La búsqueda no devolvió resultados - Stopped - Detenido + Detenido + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Todas las categorías + + + + Movies + Vídeos + + + + TV shows + Programas de TV + + + + Music + Música + + + + Games + Juegos + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Imágenes + + + + Books + Libros SearchListDelegate - - + + Unknown Desconocido @@ -6013,35 +6272,160 @@ No se le volverá a notificar sobre esto. SearchTab - + Name i.e: file name Nombre - + Size i.e: file size Tamaño - + Seeders i.e: Number of full sources Semillas - + Leechers i.e: Number of partial sources Pares - + Search engine Motor de búsqueda + + SearchWidget + + + + + + + Search + Buscar + + + + Status: + Estado: + + + + + Stopped + Detenido + + + + Download + Descargar + + + + Go to description page + Ir a la página de descripción + + + + Copy description page URL + Copiar URL de la página de descripción + + + + Search plugins... + + + + + All enabled + Todos los habilitados + + + + All plugins + + + + + + Multiple... + Múltiples... + + + + + + Search Engine + Motor de búsqueda + + + + Please install Python to use the Search Engine. + Por favor instala Python para usar el motor de búsqueda. + + + + Empty search pattern + Patrón de búsqueda vacío + + + + Please type a search pattern first + Por favor escriba primero un patrón de búsqueda + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultados <i>(%1)</i>: + + + + Searching... + Buscando... + + + + Stop + Detener + + + + + Search has finished + La búsqueda ha terminado + + + + + Search aborted + Búsqueda abortada + + + + Search returned no results + La búsqueda no devolvió resultados + + + + Search has failed + + + + + An error occurred during search... + Ocurrió un error durante la búsqueda... + + ShutdownConfirmDlg @@ -6486,24 +6870,28 @@ No se le volverá a notificar sobre esto. TorrentContentModel - + Name Nombre - + Size Tamaño - + Progress Progreso - + + Download Priority + + + Priority - Prioridad + Prioridad @@ -6855,38 +7243,38 @@ No se le volverá a notificar sobre esto. Advertencia (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. No se pudo decodificar el favicon de la URL '%1'. Intentando descargar el favicon en formato PNG. - + Couldn't decode favicon for URL '%1'. No se pudo decodificar el favicon de la URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 No se pudo descargar el favicon de la URL '%1'. Razón: '%2' - + Resume torrents Reanudar torrents - + Pause torrents Pausar torrents - + Delete torrents Eliminar torrents - - + + All (%1) this is for the tracker filter Todos (%1) @@ -7154,17 +7542,17 @@ No se le volverá a notificar sobre esto. TransferListFiltersWidget - + Status Estado - + Labels Etiquetas - + Trackers Trackers @@ -7703,206 +8091,155 @@ No se le volverá a notificar sobre esto. engineSelect - Search plugins - Plugins de búsqueda + Plugins de búsqueda - Installed search engines: - Motores de búsqueda instalados: + Motores de búsqueda instalados: - Name - Nombre + Nombre - Version - Versión + Versión - Url - URL + URL - - Enabled - Habilitado + Habilitado - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Puedes obtener nuevos motores de búsqueda aquí: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Puedes obtener nuevos motores de búsqueda aquí: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instalar uno nuevo + Instalar uno nuevo - Check for updates - Buscar actualizaciones + Buscar actualizaciones - Close - Cerrar + Cerrar - Uninstall - Desinstalar + Desinstalar engineSelectDlg - Uninstall warning - Advertencia de desinstalación + Advertencia de desinstalación - Uninstall success - Desinstalación correcta + Desinstalación correcta - Invalid plugin - Plugin inválido + Plugin inválido - The search engine plugin is invalid, please contact the author. - El plugin de motor de busqueda es inválido, por favor contacte al autor. + El plugin de motor de busqueda es inválido, por favor contacte al autor. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Una versión más reciente del plugin de motor de búsqueda '%1' ya está instalada. + Una versión más reciente del plugin de motor de búsqueda '%1' ya está instalada. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - El plugin de motor de búsqueda '%1' no pudo ser actualizado, se mantendrá la versión antigua. + El plugin de motor de búsqueda '%1' no pudo ser actualizado, se mantendrá la versión antigua. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - El plugin de motor de búsqueda '%1' no pudo ser instalado. + El plugin de motor de búsqueda '%1' no pudo ser instalado. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - El plugin de motor de búsqueda '%1' fue actualizado correctamente. + El plugin de motor de búsqueda '%1' fue actualizado correctamente. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - El plugin de motor de búsqueda '%1' fue instalado correctamente. + El plugin de motor de búsqueda '%1' fue instalado correctamente. - The link doesn't seem to point to a search engine plugin. - El enlace no parece contener un plugin de búsqueda. + El enlace no parece contener un plugin de búsqueda. - Select search plugins - Seleccione los plugins de búsqueda + Seleccione los plugins de búsqueda - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Lo sentimos, la instalación del plugin de búsqueda '%1' ha fallado. + Lo sentimos, la instalación del plugin de búsqueda '%1' ha fallado. - - - - - Search plugin install - Instalar plugin de búsqueda + Instalar plugin de búsqueda - - - Yes - + - - - - No - No + No - qBittorrent search plugin - Plugin de búsqueda de qBittorrent + Plugin de búsqueda de qBittorrent - - - - Search plugin update - Actualización del plugin de búsqueda + Actualización del plugin de búsqueda - - Sorry, update server is temporarily unavailable. - El servidor de actualizaciones no está disponible temporalmente. + El servidor de actualizaciones no está disponible temporalmente. - All your plugins are already up to date. - Todos tus plugins ya están actualizados. + Todos tus plugins ya están actualizados. - All selected plugins were uninstalled successfully - Todos los plugins seleccionados fueron instalados correctamente + Todos los plugins seleccionados fueron instalados correctamente - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Algunos plugins no pudieron ser desinstalados porque están incluidos en qBittorrent. Solamente pueden ser desinstalados los que han sido agregados por ti. + Algunos plugins no pudieron ser desinstalados porque están incluidos en qBittorrent. Solamente pueden ser desinstalados los que han sido agregados por ti. En su lugar, esos plugins fueron deshabilitados. - Invalid link - Enlace inválido + Enlace inválido - - New search engine plugin URL - URL del nuevo plugin de motor de búsqueda + URL del nuevo plugin de motor de búsqueda - - URL: - URL: + URL: @@ -8032,169 +8369,169 @@ En su lugar, esos plugins fueron deshabilitados. options_imp - - + + Choose export directory Selecciona una ruta de exportación - - - - + + + + Choose a save directory Seleccione una ruta para guardar - + Add directory to scan Agregar una ruta para escanear - + Supported parameters (case sensitive): Parámetros soportados (sensible a mayúsculas): - + %N: Torrent name %N: Nombre del torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: Ruta del contenido (misma ruta que la raíz para torrents muilti-archivo) - + %R: Root path (first torrent subdirectory path) %R: Ruta Raíz (primer subdirectorio del torrent) - + %D: Save path %D: Ruta de destino - + %C: Number of files %C: Cantidad de archivos - + %Z: Torrent size (bytes) %Z: Tamaño del torrent (bytes) - + %T: Current tracker %T: Tracker actual - + %I: Info hash %I: Info hash - + Folder is already being watched. Esta carpeta ya está en seleccionada para escanear. - + Folder does not exist. La carpeta no existe. - + Folder is not readable. La carpeta no es legible. - + Failure Error - + Failed to add Scan Folder '%1': %2 No se pudo escanear esta carpeta '%1': %2 - - + + Filters Filtros - - + + Choose an IP filter file Seleccione un archivo de filtro IP - + SSL Certificate Certificado SSL - + SSL Key Clave SSL - + Parsing error Error de análisis - + Failed to parse the provided IP filter No se ha podido analizar el filtro IP proporcionado - + Successfully refreshed Actualizado correctamente - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro IP analizado correctamente: %1 reglas fueron aplicadas. - + Invalid key Clave no válida - + This is not a valid SSL key. Esta no es una clave SSL válida. - + Invalid certificate Certificado no válido - + This is not a valid SSL certificate. Este no es un Certificado SSL válido. - + The start time and the end time can't be the same. Los tiempos de inicio y finalización no pueden ser iguales. - + Time Error Error de tiempo @@ -8202,24 +8539,20 @@ En su lugar, esos plugins fueron deshabilitados. pluginSourceDlg - Plugin source - Fuente del plugin + Fuente del plugin - Search plugin source: - Fuente del plugin de búsqueda: + Fuente del plugin de búsqueda: - Local file - Archivo local + Archivo local - Web link - Enlace web + Enlace web @@ -8248,40 +8581,32 @@ En su lugar, esos plugins fueron deshabilitados. search_engine - - Search - Buscar + Buscar - Status: - Estado: + Estado: - Stopped - Detenido + Detenido - Download - Descargar + Descargar - Go to description page - Ir a la página de descripción + Ir a la página de descripción - Copy description page URL - Copiar URL de la página de descripción + Copiar URL de la página de descripción - Search engines... - Motores de búsqueda... + Motores de búsqueda... diff --git a/src/lang/qbittorrent_eu.ts b/src/lang/qbittorrent_eu.ts index d23ca8734..3b7eba90e 100644 --- a/src/lang/qbittorrent_eu.ts +++ b/src/lang/qbittorrent_eu.ts @@ -127,7 +127,7 @@ Set as default label - + Ezarri berezko etiketa bezala @@ -175,172 +175,172 @@ Ez jeitsi - - + + I/O Error S/I Akatsa - + The torrent file does not exist. Torrent agiria ez dago. - + Invalid torrent Torrent baliogabea - + Failed to load the torrent: %1 Hutsegitea torrenta gertatzerakoan: %1 - - + + Already in download list Jadanik jeisketa zerrendan - + Free disk space: %1 Diskako toki askea: %1 - + Not Available This comment is unavailable Ez dago Eskuragarri - + Not Available This date is unavailable Ez dago Eskuragarri - + Not available Eskuraezina - + Invalid magnet link Magnet lotura baliogabea - + Torrent is already in download list. Trackers were merged. Torrenta jadanik jeisketa zerrendan dago. Aztarnariak batu dira. - - + + Cannot add torrent Ezin da torrenta gehitu - + Cannot add this torrent. Perhaps it is already in adding state. Ezin da torrent hau gehitu. Badaiteke jadanik gehituta egoeran egotea. - + This magnet link was not recognized Magnet lotura hau ez da ezagutu - + Magnet link is already in download list. Trackers were merged. Torrenta jadanik jeisketa zerrendan dago. Aztarnariak batu dira. - + Cannot add this torrent. Perhaps it is already in adding. Ezin da torrent hau gehitu. Badaiteke jadanik gehituta egotea. - + Magnet link Magnet lotura - + Retrieving metadata... Metadatuak eskuratzen... - + Not Available This size is unavailable. Ez dago Eskuragarri - - - + + + Choose save path Hautatu gordetze helburua - + Rename the file Berrizendatu agiria - + New name: Izen berria: - - + + The file could not be renamed Agiria ezin da berrizendatu - + This file name contains forbidden characters, please choose a different one. Agiri honek hizki galaraziak ditu, mesedez hautatu beste bat. - - + + This name is already in use in this folder. Please use a different name. Izen hau jadanik erabilia da agiritegi honetan. Mesedez erabili beste bat. - + The folder could not be renamed Agiritegia ezin da berrizendatu - + Rename... Berrizendatu... - + Priority Lehentasuna - + Invalid metadata Metadatu baliogabeak - + Parsing metadata... Metadatuak aztertzen... - + Metadata retrieval complete Metadatu eskurapena osatuta - + Download Error Jeisketa Akatsa @@ -431,10 +431,6 @@ Resolve peer host names Erabaki hartzaile hostalari izenak - - Maximum number of half-open connections [0: Disabled] - Gehienezko elkarketa erdi-ireki zenbatekoa [0:Ezgaituta] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Gehienezko elkarketa erdi-ireki zenbatekoa [0: Mugagabe] @@ -661,205 +657,205 @@ E&sportatu... - + Matches articles based on episode filter. Atal iragazkian ohinarritutako artikulu bat-etortzeak. - + Example: Adibidea: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match bat-etorriko dira 2, 5, 8 -> 15, 30 bitartez eta bat denboraldiko hurrengo atalak - + Episode filter rules: Atal iragazki arauak: - + Season number is a mandatory non-zero value Denboraldi zenbakia ezin da huts balioa izan - + Episode number is a mandatory non-zero value Atal zenbakia ezin da huts balioa izan - + Filter must end with semicolon Iragazkia puntu eta kakotxaz amaitu behar da - + Three range types for episodes are supported: Hiru eremu mota sostengatzen dira atalentzat: - + Single number: <b>1x25;</b> matches episode 25 of season one Zenbaki soila: <b>1x25;</b> lehen denboraldiko 25. atala da - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Eremu arrunta: <b>1x25-40;</b> lehen denboraldiko 25 eta 40.-a arteko atalak dira - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Eremu mugagabea: <b>1x25-;</b> lehen denboraldiko 25. atala eta aurreranzkoak dira - + Last Match: %1 days ago Azken Bat-etortzea: duela %1 egun - + Last Match: Unknown Azken Bat-etortzea: Ezezaguna - + New rule name Arau izen berria - + Please type the name of the new download rule. Mesedez idatzi jeisketa arau berriaren izena. - - + + Rule name conflict Arau izen gatazka - - + + A rule with this name already exists, please choose another name. Jadanik badago izen hau duen arau bat, mesedez hautatu beste izen bat. - + Are you sure you want to remove the download rule named '%1'? Zihur zaude %1 izeneko jeisketa araua kentzea nahi duzula? - + Are you sure you want to remove the selected download rules? Zihur zaude hautatutako jeisketa arauak kentzea nahi dituzula? - + Rule deletion confirmation Arau ezabapen baieztapena - + Destination directory Helmuga zuzenbidea - + Invalid action Ekintza baliogabea - + The list is empty, there is nothing to export. Zerrenda hutsik dago, ez dago ezer esportatzeko. - + Where would you like to save the list? Non nahi duzu gordetzea zerrenda? - + Rules list (*.rssrules) Arau zerrenda (*.rssrules) - + I/O Error S/I Akatsa - + Failed to create the destination file Hutsegitea helmuga agiria sortzerakoan - + Please point to the RSS download rules file Mesedez adierazi RSS jeisketa arau agiria - + Rules list Arau zerrenda - + Import Error Inportazio Akatsa - + Failed to import the selected rules file Hutsegitea hautatutako arau agiria inportatzerakoan - + Add new rule... Gehitu arau berria... - + Delete rule Ezabatu araua - + Rename rule... Berrizendatu araua... - + Delete selected rules Ezabatu hautatutako arauak - + Rule renaming Arau berrizendapena - + Please type the new rule name Mesedez idatzi arau izen berria - + Regex mode: use Perl-like regular expressions Regex modua: erabili Perl-bezalako adierazpen arruntak - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Ordez-hizki modua: erabili dezakezu<ul><li>? hizkirri bakarrarekin berdintzeko</li><li>* huts edo gehiago edozein hizkirrirekin berdintzeko</li><li>Zuriuneak AND eragile bezala zenbatzen dira</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Ordez-hizki modua: erabili dezakezu<ul><li>? hizkirri bakarrarekin berdintzeko</li><li>* huts edo gehiago edozein hizkirrirekin berdintzeko</li><li>| OR eragile bezala erabiltzen da</li></ul> @@ -952,65 +948,57 @@ %1 ezarri duzun gehienezko maila erdietsita. Pausatzen... - Error: Could not create torrent export directory: '%1' - Akatsa: Ezin da torrent esportatze zuzenbidea sortu: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Akatsa: ezin da '%1' torrenta, badaiteke oraindik metadaturik ez izatea. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Sistemaren sare egoera %1-ra aldatu da - + ONLINE ONLINE - + OFFLINE LINEAZ-KANPO - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1-ren sare itxurapena aldatu egin da, saio lotura berritzen - + Unable to decode '%1' torrent file. Ezinezkoa '%1' torrent agiria dekodeatzea. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' '%1' agiriaren jeisketa mugagabea '%2' torrentean barneratuta - + Couldn't save '%1.torrent' Ezinezkoa '%1.torrent' gordetzea - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 ezgaituta dagoelako. - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 ezgaituta dagoelako. - + URL seed lookup failed for URL: '%1', message: %2 Url emaritza bigizta hutsegitea url honetan: '%1', mezua: %2 @@ -1027,178 +1015,164 @@ '%1' eskualdaketa zerrendatik kendu da. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' jeisten, mesedez itxaron... - Torrent Export: torrent is invalid, skipping... - Torrent Esportazioa: torrent baliogabea, jauzi egiten... - - - + DHT support [ON] DHT sostengua [BAI] - + DHT support [OFF]. Reason: %1 DHT sostengua [EZ]. Zergaitia: %1 - + DHT support [OFF] DHT sostengua [EZ] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent interfazearen edozein atakan aditzen saiatzen ari da: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2 - - - + The network interface defined is invalid: %1 Zehaztutako sare interfazea baliogabea da: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent aditzen saiatzen ari da %1 interfazean, ataka: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent-ek ez du %1 tokiko helbide bat aurkitu aditzeko - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2. {1.?} + qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2 - + Tracker '%1' was added to torrent '%2' '%1' aztarnaria '%2' torrentera gehitu da. - + Tracker '%1' was deleted from torrent '%2' '%1' aztarnaria '%2' torrentetik kendu da - + URL seed '%1' was added to torrent '%2' '%1' emaritza URL-a '%2' torrentera gehitu da - + URL seed '%1' was removed from torrent '%2' '%1' aztarnaria '%2' torrentetik kendu da - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ezinezkoa %1 torrenta berrekitea. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Emandako IP iragazkia ongi aztertu da: %1 araua ezarri dira. - + Error: Failed to parse the provided IP filter. Akatsa: Hutsegitea emandako IP iragazkia aztertzerakoan. - + Couldn't add torrent. Reason: %1 Ezinezkoa torrenta gehitzea. Zergaitia: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' berrekinda. (berrekite azkarra) - + '%1' added to download list. 'torrent name' was added to download list. '%1' jeisketa zerrendara gehituta. - + An I/O error occurred, '%1' paused. %2 S/I akats bat gertatu da, '%1' pausatuta. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Ataka mapaketa hutsegitea, mezua: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Ataka mapaketa ongi burutu da, mezua: %1 - + due to IP filter. this peer was blocked due to ip filter. IP iragazkiagaitik. - + due to port filter. this peer was blocked due to port filter. ataka iragazkiagaitik. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p modu nahasi murrizpenengaitik. - + because it has a low port. this peer was blocked because it has a low port. ataka apala delako. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent ongi aditzen ari da %1 interfazean, ataka: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent-ek huts egin du aditzean %1 interfazean, ataka: %2/%3. Zergaitia: %4. {1 ?} {2/%3.?} + qBittorrent-ek huts egin du %1 interfazean aditzean, ataka: %2/%3. Zergaitia: %4 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent-ek huts egin du aditzean %1 interfazean, ataka: %2/%3. Zergaitia: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Kanpoko IP-a: %1 @@ -1212,12 +1186,12 @@ Ezinezkoa torrenta mugitzea: '%1'. Zergaitia: %2 - + File sizes mismatch for torrent '%1', pausing it. Agiri neurriak ez datoz bat '%1' torrentarekin, pausatzen. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Berrekite azkarreko datuak baztertuak izan dira '%1' torrentean. Zergaitia: %2. Berriro egiaztatzen... @@ -1242,7 +1216,7 @@ Balioa - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Cookientzako giltza arruntak dira: '%1", '%2'. @@ -1310,12 +1284,12 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. FeedListWidget - + RSS feeds RSS harpidetzak - + Unread Irakurri gabeak @@ -1412,10 +1386,6 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Only one link per line Lotura bakar bat lerroko - - Download local torrent - Jeitsi tokiko torrenta - Download @@ -1589,20 +1559,30 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Save files to location: - Gorde agiriak kokaleku honetan: + Gorde agiriak kokaleku honetan: Label: - Etiketa: + Etiketa: Cookie: + Cookiea: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Jeitsita @@ -1615,7 +1595,7 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Upload local torrent - + Igo tokiko torrenta @@ -1973,10 +1953,6 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. &About &Honi buruz - - Exit - Irten - &Pause @@ -2007,22 +1983,6 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. E&xit I&rten - - Options - Aukerak - - - Resume - Berrekin - - - Pause - Pausatu - - - Delete - Ezabatu - Open URL @@ -2040,19 +2000,15 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. - + Show Erakutsi - + Check for program updates Egiaztatu programaren eguneraketak - - Lock qBittorrent - Blokeatu qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. - + Execution Log Ekintza Oharra - + Clear the password Garbitu sarhitza - + Filter torrent list... Iragazi torrent zerrenda... - + &Set Password Ezarri &Sarhitza - + &Clear Password &Garbitu Sarhitza - + Transfers Eskualdaketak - + Torrent file association Torrent agiri elkarketa - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent ez da berezko aplikazioa torrent agiriak edo Magnet loturak irekitzeko. Nahi duzu qBittorrent elkartzea torrent agiriekin eta Magnet loturekin? - + Icons Only Ikurrak Bakarrik - + Text Only Idazkia Bakarrik - + Text Alongside Icons Idazkia Ikurren Alboan - + Text Under Icons Idazkia Ikurren Azpian - + Follow System Style Jarraitu Sistemaren Estiloa - - - + + + UI lock password EI blokeatze sarhitza - - - + + + Please type the UI lock password: Mesedez idatzi EI blokeatze sarhitza: - + The password should contain at least 3 characters Sarhitzak 3 hizkirri izan behar ditu gutxienez - + Password update Sarhitz eguneraketa - + The UI lock password has been successfully updated EI blokeatze sarhitza ongi eguneratu da - + Are you sure you want to clear the password? Zihur zaude sarhitza garbitzea nahi duzula? - + Search Bilatu - + Transfers (%1) Eskualdaketak (%1) - + Error Akatsa - + Failed to add torrent: %1 Hutsegitea torrenta gehitzerakoan: %1 - + Download completion Jeisketa osaketa - + I/O Error i.e: Input/Output Error S/I Akatsa - + Recursive download confirmation Jeisketa mugagabearen baieztapena - + Yes Bai - + No Ez - + Never Inoiz ez - + Global Upload Speed Limit Igoera Abiadura Muga Orokorra - + Global Download Speed Limit Jeisketa Abiadura Muga Orokorra - + &No &Ez - + &Yes &Bai - + &Always Yes & Betik Bai - + Python found in %1 Python aurkitu da hemen: %1 - + Old Python Interpreter Python Interpretea zaharra - + qBittorrent Update Available qBittorrent Eguneraketa Eskuragarri - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Jadanik Azken qBittorrent Bertsioa Erabiltzen - + Undetermined Python version Python bertsioa zehaztugabea - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1'-k amaitu du jeisketa. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Nahi duzu qBittorrent elkartzea torrent agiriekin eta Magnet loturekin? - + The torrent '%1' contains torrent files, do you want to proceed with their download? '%1' torrentak torrent agiriak ditu, beren jeisketa burutzea nahi duzu? - + Couldn't download file at URL '%1', reason: %2. Ezinezkoa agiria jeistea URL-tik: '%1', zergaitia: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Zure Python bertsioa %1 zaharkitua dago. Mesedez eguneratu azken bertsiora bilaketa gailuek lan egin ahal izateko. Beharrezko gutxiena: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Ezin da zure Python bertsioa (%1) zehaztu. Bilaketa gailua ezgaituta. - - + + Missing Python Interpreter Ez dago Python Interpretea - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python beharrezkoa da bilaketa gailua erabiltzeko baina ez dirudi ezarrita dagoenik. Orain ezartzea nahi duzu? - + Python is required to use the search engine but it does not seem to be installed. Python beharrezkoa da bilaketa gailua erabiltzeko baina ez dirudi ezarrita dagoenik. - A new version is available. Update to version %1? - Bertsio berri bat eskuragarri dago. + Bertsio berri bat eskuragarri dago. Eguneratu %1 bertsiora? - + No updates available. You are already using the latest version. Ez dago eguneraketarik eskuragarri. Jadanik azken bertsioa ari zara erabiltzen. - + &Check for Updates &Egiaztatu Eguneraketak - + Checking for Updates... Eguneraketak Egiaztatzen.. - + Already checking for program updates in the background Jadanik programaren eguneraketa egiaztatzen barrenean - + Python found in '%1' Python aurkitu da hemen: '%1' - + Download error Jeisketa akatsa - + Python setup could not be downloaded, reason: %1. Please install it manually. Python ezartzailea ezin da jeitsi, zergaitia: %1. Mesedez ezarri eskuz. - - + + Invalid password Sarhitz baliogabea - - + + RSS (%1) RSS (%1) - + URL download error URL jeisketa akatsa - + The password is invalid Sarhitza baliogabea da - - + + DL speed: %1 e.g: Download speed: 10 KiB/s JE abiadura: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s IG abiadura: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [J: %1, I: %2] qBittorrent %3 - + Hide Ezkutatu - + Exiting qBittorrent qBittorrentetik irtetzen - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Agiri batzuk orain eskualdatzen daude. Zihur zaude qBittorrent uztea nahi duzula? - + Open Torrent Files Ireki Torrent Agiriak - + Torrent Files Torrent Agiriak - + Options were saved successfully. Aukerak ongi gorde dira. @@ -2443,17 +2404,17 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Zure DNS dinamikoa ongi eguneratu da. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. DNS dinamiko akatsa: Zerbitzua aldibatez eskuraezina da, berriro saiatuko da 30 minutu barru. - + Dynamic DNS error: hostname supplied does not exist under specified account. DNS dinamiko akatsa: Emandako hostalari-izena ez dago adierazitako kontuan. @@ -2463,32 +2424,32 @@ Zihur zaude qBittorrent uztea nahi duzula? DNS dinamiko akatsa: Erabiltzaile-izen/sarhitz baliogabea. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. DNS dinamiko akatsa: qBittorrent zerbitzuaren zerrenda-beltzean dago, mesedez jakinarazi matxura http://bugs.qbittorrent.org helbidean. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. DNS dinamiko akatsa: %1 itzuli du zerbitzuak, mesedez jakinarazi matxura http://bugs.qbittorrent.org helbidean. - + Dynamic DNS error: Your username was blocked due to abuse. DNS dinamiko akatsa: Zure erabiltzaile-izena blokeatua izan da gehiegikeriagaitik. - + Dynamic DNS error: supplied domain name is invalid. DNS dinamiko akatsa: Emandako domeinu izena baliogabea da. - + Dynamic DNS error: supplied username is too short. DNS dinamiko akatsa: Emandako erabiltzaile-izena laburregia da. - + Dynamic DNS error: supplied password is too short. DNS dinamiko akatsa: Emandako sarhitza laburregia da. @@ -2515,154 +2476,161 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP datubasea gertatuta. Mota: %1. Eraiketa eguna: %2. - + Couldn't load GeoIP database. Reason: %1 Ezin da GeoIP datubasea gertatu. Zergaitia: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A E/G - Asia/Pacific Region - Asia/Pazifikoa Eskualdea + Asia/Pazifikoa Eskualdea + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Arabiar Emirrerri Batuak - + Afghanistan Afganistan - + Antigua and Barbuda Antigua eta Barbuda - + Anguilla Angila - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antilla Herbeherearrak + Antilla Herbeherearrak - + Angola Angola - + Antarctica Antartika - + Argentina Argentina - + American Samoa Amerikar Samoa - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaijan - + Bosnia and Herzegovina Bosnia eta Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgika - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Zihur zaude qBittorrent uztea nahi duzula? Brunei Darussalam - Bolivia - Bolivia + Bolivia - + Brazil Brazil - + Bahamas Bahamak - + Bhutan Butan - + Bouvet Island Bouvet Uhartea - + Botswana Botswana - + Belarus Belaerrusia - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Cocos (Keeling) Uharteak - + Congo, The Democratic Republic of the Kongoa, Herriaginte Herkalderria - + Central African Republic Ertafrikako Herkalderria - + Congo Kongoa - + Switzerland Suitza - Cote D'Ivoire - Boli Kosta + Boli Kosta - + Cook Islands Cook Uharteak - + Chile Txile - + Cameroon Kamerun - + China Txina - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Kuba - + Cape Verde Lurmutur Berdea - + + Curacao + + + + Christmas Island Christmas Uhartea - + Cyprus Zipre - + Czech Republic Txekiar Herkalderria - + Germany Alemania - + Djibouti Djibouti - + Denmark Danimarka - + Dominica Dominika - + Dominican Republic Dominikar Herkalderria - + Algeria Aljeria - + Ecuador Ekuador - + Estonia Estonia - + Egypt Egipto - + Western Sahara Sahara Mendebaldea - + Eritrea Eritrea - + Spain Espainia - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fiji - + Falkland Islands (Malvinas) Malvina Uharteak - + Micronesia, Federated States of Mikronesia, Estatu Federatuak - + Faroe Islands Faroe Uharteak - + France Frantzia - France, Metropolitan - Frantzia, Metropolitarra + Frantzia, Metropolitarra - + Gabon Gabon - + United Kingdom Erresuma Batua - + Grenada Granada - + Georgia Georgia - + French Guiana Frantziar Guiana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlandia - + Gambia Gambia - + Guinea Ginea - + Guadeloupe Guadalupe - + Equatorial Guinea Ekuatore Ginea - + Greece Grezia - + South Georgia and the South Sandwich Islands Hego Georgia eta Hego Sandwich Uharteak - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Ginea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heard Uhartea McDonald Uharteak - + Honduras Honduras - + Croatia Kroazia - + Haiti Haiti - + Hungary Hungaria - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Britainiar Indiatako Itsasoko Lurraldea - + Iraq Irak - + Iran, Islamic Republic of Iran, Islamiar Herkalderria - + Iceland Islandia - + Italy Italia - + Jamaica Jamaika - + Jordan Jordania - + Japan Japonia - + Kenya Kenia - + Kyrgyzstan Kyrgyzstan - + Cambodia Kanbodia - + Kiribati Kiribati - + Comoros Comoros - + Saint Kitts and Nevis Saint Kitts eta Nevis - + Korea, Democratic People's Republic of Korea, Herriagintezko Herriaren Herkalderria - + Korea, Republic of Korea, Herkalderria - + Kuwait Kuwait - + Cayman Islands Kaiman Uharteak - + Kazakhstan Kazakhstan - + Lao People's Democratic Republic Laoseko Herriaren Herriagintezko Herkalderria - + Lebanon Libanoa - + Saint Lucia Santa Luzia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luxenburgo - + Latvia Letonia - Libyan Arab Jamahiriya - Libiako Arabiar Jamahiriya + Libiako Arabiar Jamahiriya - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Moldavia, Herkalderria - + Madagascar Madagaskar - + Marshall Islands Marshall Uharteak - Macedonia - Mazedonia + Mazedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - Macau - Macau + Macau - + Northern Mariana Islands Iparraldeko Mariana Uharteak - + Martinique Martinika - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurizio - + Maldives Maldivak - + Malawi Malawi - + Mexico Mexiko - + Malaysia Malaisia - + Mozambique Mozanbike - + Namibia Namibia - + New Caledonia Kaledonia Berria - + Niger Niger - + Norfolk Island Norfolk Uhartea - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Herbehereak - + Norway Norbegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Zeelanda Berria - + Oman Oman - + Panama Panama - + Peru Peruq - + French Polynesia Frantziar Polinesia - + Papua New Guinea Papua Ginea Berria - + Philippines Filipinak - + Pakistan Pakistan - + Poland Polonia - + Saint Pierre and Miquelon Saint Pierre eta Mikelon - Pitcairn Islands - Pitcairn Uharteak + Pitcairn Uharteak - + Puerto Rico Puerto Rico - Palestinian Territory - Palestinar Lurraldea + Palestinar Lurraldea - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion Reunion - + Romania Errumania - + Russian Federation Errusiar Federazioa - + Rwanda Ruanda - + Saudi Arabia Saudi Arabia - + Solomon Islands Solomon Uharteak - + Seychelles Seychelles - + Sudan Sudan - + Sweden Suedia - + Singapore Singapur - Saint Helena - Saint Helena + Saint Helena - + Slovenia Eslobenia - + Svalbard and Jan Mayen Svalbard eta Jan Mayen - + Slovakia Eslobakia - + Sierra Leone Sierra Leona - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe Sao Tome eta Principe - + El Salvador El Salvador - + Syrian Arab Republic Siriako Arabiar Herkalderria - + Swaziland Swazilandia - + Turks and Caicos Islands Dordokak eta Caicos Uharteak - + Chad Txad - + French Southern Territories Frantziar Hegoaldeko Lurraldeak - + Togo Togo - + Thailand Thailandia - + Tajikistan Tajikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunizia - + Tonga Tonga - + Timor-Leste Timor-Ekialdea - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turkia - + Trinidad and Tobago Trinidad eta Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tantzania, Herkalderri Batua - + Ukraine Ukrainia - + Uganda Uganda - + United States Minor Outlying Islands Estatu Batuetako Itsasoz Haraindiko Uharteak - + United States Estatu Batuak - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Hiri Santua (Vaticanoa Hiri Estatua) - + Saint Vincent and the Grenadines Saint Vincent eta Granadinak - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Virgin Uharteak, Britainiarrak - + Virgin Islands, U.S. Virgin Uharteak, AEB - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis eta Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Hego Afrika - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Izengabeko Proxya + Izengabeko Proxya - Satellite Provider - Satelite Hornitzailea + Satelite Hornitzailea - Other - Besterik + Besterik - + Aland Islands Aland Uharteak - + Guernsey Guernsey - + Isle of Man Man Uhartea - + Jersey Jersey - + Saint Barthelemy Saint Bartolome - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. Ezin da GeoIP datubase agiria deskonprimitu. - + Couldn't save downloaded GeoIP database file. Ezin da jeitsitako GeoIP datubase agiria gorde. - + Successfully updated GeoIP database. GeoIP datubasea ongi eguneratu da. - + Couldn't download GeoIP database file. Reason: %1 Ezin da GeoIP datubase agiria jeitsi. Zergaitia: %1 @@ -3838,72 +3856,72 @@ Zihur zaude qBittorrent uztea nahi duzula? interested(local) and choked(peer) - interesatuta (tokikoa) eta itota (hartzailea) + interesatuta (tokikoa) eta itota (hartzailea) interested(local) and unchoked(peer) - interesatuta (tokikoa) eta itogabe (hartzailea) + interesatuta (tokikoa) eta itogabe (hartzailea) interested(peer) and choked(local) - interesatuta (hartzailea) eta itota (tokikoa) + interesatuta (hartzailea) eta itota (tokikoa) interested(peer) and unchoked(local) - interesatuta (hartzailea) eta itogabe (tokikoa) + interesatuta (hartzailea) eta itogabe (tokikoa) optimistic unchoke - itogabe baikorra + itogabe baikorra peer snubbed - hartzailea baztertuta + hartzailea baztertuta incoming connection - barrurako elkarketa + barrurako elkarketa not interested(local) and unchoked(peer) - ez interesatuta (tokikoa) eta itogabe (hartzailea) + ez interesatuta (tokikoa) eta itogabe (hartzailea) not interested(peer) and unchoked(local) - ez interesatuta (hartzailea) eta itogabe (tokikoa) + ez interesatuta (hartzailea) eta itogabe (tokikoa) peer from PEX - HaX-tiko hartzailea + PEX-tiko hartzailea peer from DHT - DHT-tiko hartzailea + DHT-tiko hartzailea encrypted traffic - trafiko enkriptatua + trafiko enkriptatua encrypted handshake - eskuemate enkriptatua + eskuemate enkriptatua peer from LSD - LSD-tiko hartzailea + LSD-tiko hartzailea @@ -3971,123 +3989,73 @@ Zihur zaude qBittorrent uztea nahi duzula? Garrantzia - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Gehitu hartzaile berri bat... - + Copy selected Kopiatu hautatua - - + + Ban peer permanently Eragotzi hartzailea mugagabe - + Manually adding peer '%1'... Eskuzko hartzaile gehitzea '%1'... - + The peer '%1' could not be added to this torrent. '%1' hartzailea ezin da torrent honetara gehitu. - + Manually banning peer '%1'... Eskuzko hartzaile eragoztea '%1'... - - + + Peer addition Hartzaile gehiketa - + Some peers could not be added. Check the Log for details. Zenbait hartzailea ezin dira gehitu. Egiaztatu Oharra xehetasunetarako. - + The peers were added to this torrent. Hartzaileak torrent honetara gehitu dira. - + Are you sure you want to ban permanently the selected peers? Zihur zaude mugagabe eragoztea nahi dituzula hautatutako hartzaileak? - + &Yes &Bai - + &No &Ez - - interested(local) and choked(peer) - interesatuta (tokikoa) eta itota (hartzailea) - - - interested(local) and unchoked(peer) - interesatuta (tokikoa) eta itogabe (hartzailea) - - - interested(peer) and choked(local) - interesatuta (hartzailea) eta itota (tokikoa) - - - interested(peer) and unchoked(local) - interesatuta (hartzailea) eta itogabe (tokikoa) - - - optimistic unchoke - itogabe baikorra - - - peer snubbed - hartzailea baztertuta - - - incoming connection - barrurako elkarketa - - - not interested(local) and unchoked(peer) - ez interesatuta (tokikoa) eta itogabe (hartzailea) - - - not interested(peer) and unchoked(local) - ez interesatuta (hartzailea) eta itogabe (tokikoa) - - - peer from PEX - HaX-tiko hartzailea - - - peer from DHT - DHT-tiko hartzailea - - - encrypted traffic - trafiko enkriptatua - - - encrypted handshake - eskuemate enkriptatua - - - peer from LSD - LSD-tiko hartzailea - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Zihur zaude qBittorrent uztea nahi duzula? Urdina: Atal eskuragarriak + + PluginSelectDlg + + + Search plugins + Bilatu pluginak + + + + Installed search plugins: + + + + + Name + Izena + + + + Version + Bertsioa + + + + Url + Url-a + + + + + Enabled + Gaituta + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Bilaketa gailu plugin berriak lortu ditzakezu hemen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Ezarri berri bat + + + + Check for updates + Egiaztatu eguneraketak + + + + Close + Itxi + + + + Uninstall + Kendu + + + + + + Yes + Bai + + + + + + + No + Ez + + + + Uninstall warning + Kentze oharra + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Zenbait plugin ezin dira kendu qBittorrenten barnekoak direlako. Zeuk gehitutakoak bakarrik kendu daitezke. +Plugin hauek ezgaituta daude. + + + + Uninstall success + Kentzea eginda + + + + All selected plugins were uninstalled successfully + Hautatutako plugin guztiak ongi kendu dira + + + + + New search engine plugin URL + Bilaketa gailu plugin URL berria + + + + + URL: + URL-a: + + + + Invalid link + Lotura baliogabea + + + + The link doesn't seem to point to a search engine plugin. + Loturak ez dirudi bilaketa gailu plugin batera zuzentzen duenik. + + + + Select search plugins + Hautatu bilaketa pluginak + + + + qBittorrent search plugin + qBittorrent bilaketa plugina + + + + + + Search plugin update + Bilaketa plugin eguneraketa + + + + All your plugins are already up to date. + Zure plugin guztiak jadanik eguneratuta daude. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Bilaketa plugin ezarpena + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Pluginaren iturburua + + + + Search plugin source: + Bilatu pluginaren iturburua: + + + + Local file + Tokiko agiria + + + + Web link + Web lotura + + Preferences @@ -4181,89 +4346,89 @@ Zihur zaude qBittorrent uztea nahi duzula? Gehitu .!qB luzapena osatugabeko agiriei - + Copy .torrent files to: Kopiatu .torrent agiriak hona: - + Connections Limits Elkarketa Mugak - + Proxy Server Proxy Zerbitzaria - + Global Rate Limits Neurri Muga Orokorrak - + Apply rate limit to transport overhead Ezarri neurri muga burugain garraioari - + Schedule the use of alternative rate limits Egitarautu aukerazko neurri muga erabilpena - + From: from (time1 to time2) Hemendik: - + To: time1 to time2 Hona: - + Enable Local Peer Discovery to find more peers Gaitu Tokiko Hartzaile Aurkikuntza hartzaile gehiago bilatzeko - + Encryption mode: Enkriptaketa modua: - + Prefer encryption Hobetsi enkriptaketa - + Require encryption Enkriptaketa beharrezkoa - + Disable encryption Ezgaitu enkriptaketa - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Argibide gehiago</a>) - + Maximum active downloads: Gehienezko jeisketa eraginda: - + Maximum active uploads: Gehienezko igoera eraginda: - + Maximum active torrents: Gehienezko torrent eraginda: @@ -4288,82 +4453,82 @@ Zihur zaude qBittorrent uztea nahi duzula? Erakutsi torrent edukia eta aukera batzuk - + Run external program on torrent completion Ekin kanpoko programa bat torrenta osatutakoan - + Port used for incoming connections: Barrurako elkarketentzako ataka: - + Random Zorizkoa - + Global maximum number of connections: Gehinezko elkarketa zenbatekoa orotara: - + Maximum number of connections per torrent: Gehinezko elkarketa zenbatekoa torrent bakoitzeko: - + Maximum number of upload slots per torrent: Gehinezko igoera aho zenbatekoa torrent bakoitzeko: - - + + Upload: Igoera: - - + + Download: Jeisketa: - - - - + + + + KiB/s KiB/s - + Remove folder Kendu agiritegia - + Every day Egunero - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Aldatu hartzaileak Bittorrent bezero bateragarriekin (µTorrent, Vuze, ...) - + Host: Hostalaria: - + SOCKS4 SOCKS4 - + Type: Mota: @@ -4536,262 +4701,262 @@ Zihur zaude qBittorrent uztea nahi duzula? Berezgaitasunez gehitu torrentak hemendik: - + Add folder... Gehitu agiritegia... - + Copy .torrent files for finished downloads to: Kopiatu amaitutako jeisketa .torrent agiriak hona: - + Email notification upon download completion Post@ jakinarazpena jeisketa osatutakoan - + Destination email: Helmuga post@: - + SMTP server: SMTP zerbitzaria: - + This server requires a secure connection (SSL) Zerbitzari honek elkarketa segurua behar du (SSL) - + Listening Port Aditze Ataka - + Use UPnP / NAT-PMP port forwarding from my router Erabili UPnP / NAT-PMP ataka nire bideratzailetik bidaltzeko - + Use different port on each startup Erabili ataka ezberdina abiarazte bakoitzean - + Global maximum number of upload slots: Gehienezko Igoera aho orokor zenbatekoa: - + Otherwise, the proxy server is only used for tracker connections Bestela, proxya zerbitzaria aztarnari elkarketetarako bakarrik erabiltzen da - + Use proxy for peer connections Erabili proxya hartzaile elkarketetarako - + Disable connections not supported by proxies Ezgaitu proxiek sostengatzen ez dituzten elkarketak - + Use proxy only for torrents Erabili proxya torrententzat bakarrik - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS jarioak, bilaketa gailua, software eguneraketa edo torrent eskualdaketa eta loturiko eragiketak (hartzaile elkarraldaketak) ez diren bestelako gauzak zuzeneko elkarketa erabiliko dute - + Info: The password is saved unencrypted Argibidea: Sarhitza enkriptatu gabe gordetzen da - + IP Filtering IP Iragazpena - + Reload the filter Birgertatu iragazkia - + Apply to trackers Ezarri aztarnariei - + Apply rate limit to peers on LAN Ezarri neurri muga LAN-eko hartzaileei - + When: Noiz: - + Weekdays Lanegunak - + Weekends Asteburuak - + Rate Limits Settings Neurri Muga Ezarpenak - + Enable µTP protocol Gaitu µTP protokoloa - + Apply rate limit to µTP protocol Ezarri neurri muga µTP protokoloari - + Privacy Pribatutatasuna - + Enable DHT (decentralized network) to find more peers Gaitu DHT (zentralizatugabeko sarea) hartzaile gehiago bilatzeko - + Enable Peer Exchange (PeX) to find more peers Gaitu Hartzaile Aldaketa (HaX) hartzaile gehiago bilatzeko - + Look for peers on your local network Bilatu hartzaileak zure tokiko sarean - + Enable when using a proxy or a VPN connection Gaitu proxy bat edo VPN elkarketa bat erabiltzerakoan. - + Enable anonymous mode Gaitu izengabeko modua - + Do not count slow torrents in these limits Ez zenbatu torrent geldoak muga hauetan - + Seed torrents until their ratio reaches Emaritu torrentak beren maila erdietsi arte - + then orduan - + Pause them Pausatu - + Remove them Kendu - + Automatically add these trackers to new downloads: Berezgaitasunez gehitu aztarnari hauek jeitsiera berriei: - + Use UPnP / NAT-PMP to forward the port from my router Erabili UPnP / NAT-PMP ataka nire bideratzailetik bidaltzeko - + Use HTTPS instead of HTTP Erabili HTTPS, HTTP-ren ordez - + Import SSL Certificate Inportatu SSL Egiaztagiria - + Import SSL Key Inportatu SSL Giltza - + Certificate: Egiaztagiria: - + Alternative Rate Limits Aukerazko Neurri Mugak - + Key: Giltza: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Egiaztagirien argibideak</a> - + Bypass authentication for localhost Igaro egiaztapena tokiko-hostalariarentzat - + Update my dynamic domain name Eguneratu nire domeinu dinamikoaren izena - + Service: Zerbitzua: - + Register Izena eman - + Domain name: Domeinu izena: - + (None) (Bat ere ez) @@ -4801,61 +4966,61 @@ Zihur zaude qBittorrent uztea nahi duzula? BitTorrent - + HTTP HTTP - - + + Port: Ataka: - - - + + + Authentication Egiaztapena - - - - + + + + Username: Erabiltzaile-izena: - - - - + + + + Password: Sarhitza: - + Torrent Queueing Torrent Lerrokapena - + Share Ratio Limiting Elkarbanatze Maila Mugapena - + Enable Web User Interface (Remote control) Gaitu Web Erabiltzaile Interfazea (Hurruneko Agintea) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Iragazki helburua (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Comment: Aipamena: - - Torrent content: - Torrent edukia: - Select All @@ -5587,28 +5748,28 @@ Ez dira jakinarazpen gehiago egingo. Akats ezezaguna - - + + Upgrade Eguneratu - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Gauzak beste modu batean gordetzen dituen bertsio zahar batetik eguneratu zara. Gordetze sistema berrira migratu behar duzu. Ezingo duzu v3.3.0 baino zaharragoa den bertsiorik erabili ahalko berriro. Jarriatu? [y/n]. - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Gauzak beste modu batean gordetzen dituen bertsio zahar batetik eguneratu zara. Gordetze sistema berrira migratu behar duzu. Jarraitzen baduzu, ezingo duzu v3.3.0 baino zaharragoa den bertsiorik erabili ahalko berriro. - + Couldn't migrate torrent with hash: %1 Ezinezkoa torrenta migratzea, hasha: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Ezinezkoa torrenta migratzea. Berrekite-azkar agiri izen baliogabea: %1 @@ -5719,17 +5880,17 @@ Ez dira jakinarazpen gehiago egingo. RSSImp - + Stream URL: Jario URL-a: - + Please type a RSS stream URL Mesedez idatzi RSS jario URL bat - + This RSS feed is already in the list. RSS harpidetza hau jadanik zerrendan dago. @@ -5749,75 +5910,92 @@ Ez dira jakinarazpen gehiago egingo. Agiritegi berria - + Deletion confirmation Ezabapen baieztapena - + Are you sure you want to delete the selected RSS feeds? Zihur zaude hautaturiko RSS jarioak ezabatzea nahi dituzula? - + Please choose a new name for this RSS feed Mesedez hautatu izen berri bat RSS harpidetza honentzat - + New feed name: Harpidetza berriaren izena: - + Name already in use Izena jadanik erabilia da - + This name is already used by another item, please choose another one. Izen hau jadanik beste gai batek darabil, mesedez hautatu beste bat. - + Date: Eguna: - + Author: Egilea: - + Unread Irakurri gabea - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... + Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... - + Automatically downloading '%1' torrent from '%2' RSS feed... - '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... + '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... RssParser - Failed to open downloaded RSS file. - Hutsegitea jeitsitako RSS agiria irekitzerakoan. + Hutsegitea jeitsitako RSS agiria irekitzerakoan. - Invalid RSS feed at '%1'. - Baliogabeko RSS harpidetza: '%1'. + Baliogabeko RSS harpidetza: '%1'. @@ -5843,168 +6021,249 @@ Ez dira jakinarazpen gehiago egingo. Gehienezko idazlan harpidetza bakoitzeko: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Bilatu... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Begiratutako Agiritegia - - Download here - Jeitsi hemen + + Save Files to + + + + Download here + Jeitsi hemen - Download path - Jeitsiera helburua + Jeitsiera helburua SearchCategories - All categories - Kategoria guztiak + Kategoria guztiak - Movies - Filmak + Filmak - TV shows - TB saioak + TB saioak - Music - Musika + Musika - Games - Jolasak + Jolasak - Anime - Animazioa + Animazioa - Software - Softwarea + Softwarea - Pictures - Argazkiak + Argazkiak - Books - Liburuak + Liburuak SearchEngine - - - Search - Bilatu + Bilatu - Please install Python to use the Search Engine. - Mesedez ezarri Python Bilaketa Gailua erabiltzeko. + Mesedez ezarri Python Bilaketa Gailua erabiltzeko. - Empty search pattern - Bilaketa eredua hutsik + Bilaketa eredua hutsik - Please type a search pattern first - Mesedez idatzi bilaketa eredua lehenik + Mesedez idatzi bilaketa eredua lehenik - Searching... - Bilatzen... + Bilatzen... - Stop - Gelditu + Gelditu - - Search Engine - Bilaketa Gailua + Bilaketa Gailua - - Search has finished - Bilaketa amaitu da + Bilaketa amaitu da - An error occurred during search... - Akats bat gertatu da bilaketan... + Akats bat gertatu da bilaketan... - - Search aborted - Bilaketa utzita + Bilaketa utzita - All enabled - Guztiak gaituta + Guztiak gaituta - All engines - Gailu guztiak + Gailu guztiak - - Multiple... - Anitza... + Anitza... - - Results <i>(%1)</i>: i.e: Search results - Emaitzak <i>(%1)</i>: + Emaitzak <i>(%1)</i>: - Search returned no results - Bilaketak ez du emaitzik itzuli + Bilaketak ez du emaitzik itzuli - Stopped - Geldituta + Geldituta + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Kategoria guztiak + + + + Movies + Filmak + + + + TV shows + TB saioak + + + + Music + Musika + + + + Games + Jolasak + + + + Anime + Animazioa + + + + Software + Softwarea + + + + Pictures + Argazkiak + + + + Books + Liburuak SearchListDelegate - - + + Unknown Ezezaguna @@ -6012,35 +6271,160 @@ Ez dira jakinarazpen gehiago egingo. SearchTab - + Name i.e: file name Izena - + Size i.e: file size Neurria - + Seeders i.e: Number of full sources Emaleak - + Leechers i.e: Number of partial sources Izainak - + Search engine Bilaketa gailua + + SearchWidget + + + + + + + Search + + + + + Status: + Egoera: + + + + + Stopped + Geldituta + + + + Download + Jeitsi + + + + Go to description page + Joan azalpen orrialdera + + + + Copy description page URL + Kopiatu azalpen orrialdearen URL-a + + + + Search plugins... + + + + + All enabled + Guztiak gaituta + + + + All plugins + + + + + + Multiple... + Anitza... + + + + + + Search Engine + Bilaketa Gailua + + + + Please install Python to use the Search Engine. + Mesedez ezarri Python Bilaketa Gailua erabiltzeko. + + + + Empty search pattern + Bilaketa eredua hutsik + + + + Please type a search pattern first + Mesedez idatzi bilaketa eredua lehenik + + + + + Results <i>(%1)</i>: + i.e: Search results + Emaitzak <i>(%1)</i>: + + + + Searching... + Bilatzen... + + + + Stop + Gelditu + + + + + Search has finished + Bilaketa amaitu da + + + + + Search aborted + Bilaketa utzita + + + + Search returned no results + Bilaketak ez du emaitzik itzuli + + + + Search has failed + + + + + An error occurred during search... + Akats bat gertatu da bilaketan... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ Ez dira jakinarazpen gehiago egingo. TorrentContentModel - + Name Izena - + Size Neurria - + Progress Garapena - + + Download Priority + + + Priority - Lehentasuna + Lehentasuna @@ -6854,38 +7242,38 @@ Ez dira jakinarazpen gehiago egingo. Kontuz (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Ezin da '%1' url-arentzako fabikoa dekodeatu. Fabikoa PNG heuskarrian jeisten saiatzen. - + Couldn't decode favicon for URL '%1'. Ezin da '%1' url-arentzako fabikoa dekodeatu. - + Couldn't download favicon for URL '%1'. Reason: %2 Ezin da '%1' url-arentzako fabikoa jeitsi. Zergaitia: %2 - + Resume torrents Berrekin torrentak - + Pause torrents Pausatu torrentak - + Delete torrents Ezabatu torrentak - - + + All (%1) this is for the tracker filter Denak (%1) @@ -7153,17 +7541,17 @@ Ez dira jakinarazpen gehiago egingo. TransferListFiltersWidget - + Status Egoera - + Labels Etiketak - + Trackers Aztarnariak @@ -7702,206 +8090,155 @@ Ez dira jakinarazpen gehiago egingo. engineSelect - Search plugins - Bilatu pluginak + Bilatu pluginak - Installed search engines: - Ezarritako bilaketa gailuak: + Ezarritako bilaketa gailuak: - Name - Izena + Izena - Version - Bertsioa + Bertsioa - Url - Url-a + Url-a - - Enabled - Gaituta + Gaituta - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Bilaketa gailu plugin berriak lortu ditzakezu hemen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Bilaketa gailu plugin berriak lortu ditzakezu hemen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Ezarri berri bat + Ezarri berri bat - Check for updates - Egiaztatu eguneraketak + Egiaztatu eguneraketak - Close - Itxi + Itxi - Uninstall - Kendu + Kendu engineSelectDlg - Uninstall warning - Kentze oharra + Kentze oharra - Uninstall success - Kentzea eginda + Kentzea eginda - Invalid plugin - Plugin baliogabea + Plugin baliogabea - The search engine plugin is invalid, please contact the author. - Bilaketa plugin hau baliogabea da, mesedez jarri harremanetan egilearekin. + Bilaketa plugin hau baliogabea da, mesedez jarri harremanetan egilearekin. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Jadanik ezarrita dago '%1' bilaketa pluginaren bertsio berriago bat. + Jadanik ezarrita dago '%1' bilaketa pluginaren bertsio berriago bat. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' bilaketa gailu plugina ezin da eguneratu, bertsio zaharrari heusten. + '%1' bilaketa gailu plugina ezin da eguneratu, bertsio zaharrari heusten. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' bilaketa gailu plugina ezin da ezarri. + '%1' bilaketa gailu plugina ezin da ezarri. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' bilaketa gailu plugina ongi eguneratu da. + '%1' bilaketa gailu plugina ongi eguneratu da. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' bilaketa gailu plugina ongi ezarri da. + '%1' bilaketa gailu plugina ongi ezarri da. - The link doesn't seem to point to a search engine plugin. - Loturak ez dirudi bilaketa gailu plugin batera zuzentzen duenik. + Loturak ez dirudi bilaketa gailu plugin batera zuzentzen duenik. - Select search plugins - Hautatu bilaketa pluginak + Hautatu bilaketa pluginak - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Barkatu, '%1' bilaketa pluginaren ezartze hutsegitea. + Barkatu, '%1' bilaketa pluginaren ezartze hutsegitea. - - - - - Search plugin install - Bilaketa plugin ezarpena + Bilaketa plugin ezarpena - - - Yes - Bai + Bai - - - - No - Ez + Ez - qBittorrent search plugin - qBittorrent bilaketa plugina + qBittorrent bilaketa plugina - - - - Search plugin update - Bilaketa plugin eguneraketa + Bilaketa plugin eguneraketa - - Sorry, update server is temporarily unavailable. - Barkatu, eguneraketa zerbitzaria aldibatez eskuraezina dago. + Barkatu, eguneraketa zerbitzaria aldibatez eskuraezina dago. - All your plugins are already up to date. - Zure plugin guztiak jadanik eguneratuta daude. + Zure plugin guztiak jadanik eguneratuta daude. - All selected plugins were uninstalled successfully - Hautatutako plugin guztiak ongi kendu dira + Hautatutako plugin guztiak ongi kendu dira - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Zenbait plugin ezin dira kendu qBittorrenten barnekoak direlako. Zeuk gehitutakoak bakarrik kendu daitezke. + Zenbait plugin ezin dira kendu qBittorrenten barnekoak direlako. Zeuk gehitutakoak bakarrik kendu daitezke. Plugin hauek ezgaituta daude. - Invalid link - Lotura baliogabea + Lotura baliogabea - - New search engine plugin URL - Bilaketa gailu plugin URL berria + Bilaketa gailu plugin URL berria - - URL: - URL-a: + URL-a: @@ -8031,169 +8368,169 @@ Plugin hauek ezgaituta daude. options_imp - - + + Choose export directory Hautatu esportatzeko zuzenbidea - - - - + + + + Choose a save directory Hautatu gordetzeko zuzenbide bat - + Add directory to scan Gehitu zuzenbidea mihaketara - + Supported parameters (case sensitive): Sostengatutako parametroak (hizki xehe-larriak bereiziz) - + %N: Torrent name %N: Torrentaren izena - + %L: Label %L: Etiketa - + %F: Content path (same as root path for multifile torrent) %F: Eduki helburua (torrent anitzerako erro helburua bezala) - + %R: Root path (first torrent subdirectory path) %R: Erro helburua (lehen torrent azpizuzenbide helburua) - + %D: Save path %D: Gordetze helburua - + %C: Number of files %C: Agiri zenbatekoa - + %Z: Torrent size (bytes) %Z: Torrentaren neurria (byte) - + %T: Current tracker %T: Oraingo aztarnaria - + %I: Info hash %I: Info hasha - + Folder is already being watched. Agiritegia jadanik ikuskatuta dago. - + Folder does not exist. Agiritegia ez dago. - + Folder is not readable. Agiritegia ez da irakurgarria. - + Failure Hutsegitea - + Failed to add Scan Folder '%1': %2 Hutsegitea Agiritegi Mihaketa gehitzean '%1': %2 - - + + Filters Iragazkiak - - + + Choose an IP filter file Hautatu IP iragazki agiri bat - + SSL Certificate SSL Egiaztagiria - + SSL Key SSL Giltza - + Parsing error Azterketa akatsa - + Failed to parse the provided IP filter Hutsegitea emandako IP iragazkia aztertzerakoan - + Successfully refreshed Ongi berrituta - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Emandako IP iragazkia ongi aztertu da: %1 araua ezarri dira. - + Invalid key Giltza baliogabea - + This is not a valid SSL key. Hau ez da baliozko SSL giltza bat. - + Invalid certificate Egiaztagiri baliogabea - + This is not a valid SSL certificate. Hau ez da baliozko SSL egiaztagiri bat. - + The start time and the end time can't be the same. Hasiera ordua eta amaiera ordua ezin dira berdinak izan. - + Time Error Ordu Akatsa @@ -8201,24 +8538,20 @@ Plugin hauek ezgaituta daude. pluginSourceDlg - Plugin source - Pluginaren iturburua + Pluginaren iturburua - Search plugin source: - Bilatu pluginaren iturburua: + Bilatu pluginaren iturburua: - Local file - Tokiko agiria + Tokiko agiria - Web link - Web lotura + Web lotura @@ -8247,40 +8580,32 @@ Plugin hauek ezgaituta daude. search_engine - - Search - Bilatu + Bilatu - Status: - Egoera: + Egoera: - Stopped - Geldituta + Geldituta - Download - Jeitsi + Jeitsi - Go to description page - Joan azalpen orrialdera + Joan azalpen orrialdera - Copy description page URL - Kopiatu azalpen orrialdearen URL-a + Kopiatu azalpen orrialdearen URL-a - Search engines... - Bilaketa gailuak... + Bilaketa gailuak... diff --git a/src/lang/qbittorrent_fi.ts b/src/lang/qbittorrent_fi.ts index b1bc4372b..af2f4acef 100644 --- a/src/lang/qbittorrent_fi.ts +++ b/src/lang/qbittorrent_fi.ts @@ -175,172 +175,172 @@ Älä lataa - - + + I/O Error I/O-virhe - + The torrent file does not exist. Torrent-tiedostoa ei ole olemassa. - + Invalid torrent Virheellinen torrent - + Failed to load the torrent: %1 Torrentin lataaminen epäonnistui: %1 - - + + Already in download list On jo latausluettelossa - + Free disk space: %1 - + Not Available This comment is unavailable Ei saatavilla - + Not Available This date is unavailable Ei saatavilla - + Not available Ei saatavilla - + Invalid magnet link Virheellinen magnet-linkki - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Tätä magnet-linkkiä ei tunnistettu - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet-linkki - + Retrieving metadata... Noudetaan metatietoja... - + Not Available This size is unavailable. Ei saatavilla - - - + + + Choose save path Valitse tallennuskansio - + Rename the file Nimeä tiedosto uudelleen - + New name: Uusi nimi: - - + + The file could not be renamed Tiedostoa ei voitu nimetä uudelleen - + This file name contains forbidden characters, please choose a different one. Tämä tiedostonimi sisältää kiellettyjä merkkejä, valitse toinen tiedostonimi. - - + + This name is already in use in this folder. Please use a different name. Tämä nimi on jo käytössä tässä kansiossa. Käytä toista nimeä. - + The folder could not be renamed Kansiota ei voitu nimetä uudelleen - + Rename... Nimeä uudelleen... - + Priority Prioriteetti - + Invalid metadata - + Parsing metadata... Jäsennetään metatietoja... - + Metadata retrieval complete Metatietojen noutaminen valmistui - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Selvitä asiakkaiden isäntänimet - - Maximum number of half-open connections [0: Disabled] - Puoliavointen yhteyksien enimmäismäärä [0: ei käytössä] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: Esimerkki: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Uuden säännön nimi - + Please type the name of the new download rule. Anna uuden lataussäännön nimi. - - + + Rule name conflict Ristiriita säännön nimessä - - + + A rule with this name already exists, please choose another name. Samalla nimellä oleva sääntö on jo olemassa, valitse toinen nimi. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Haluatko varmasti poistaa valitut lataussäännöt? - + Rule deletion confirmation Säännön poistamisen vahvistus - + Destination directory Kohdekansio - + Invalid action Virheellinen toiminto - + The list is empty, there is nothing to export. Luettelo on tyhjä, ei mitään vietävää. - + Where would you like to save the list? Mihin haluat tallentaa luettelon? - + Rules list (*.rssrules) Sääntöluettelo (*.rssrules) - + I/O Error I/O-virhe - + Failed to create the destination file Kohdetiedoston luominen epäonnistui - + Please point to the RSS download rules file - + Rules list - + Import Error Tuontivirhe - + Failed to import the selected rules file Valitun sääntöluettelon tuonti epäonnistui - + Add new rule... Lisää uusi sääntö... - + Delete rule Poista sääntö - + Rename rule... Nimeä sääntö uudelleen... - + Delete selected rules Poista valitut säännöt - + Rule renaming Säännön nimeäminen uudelleen - + Please type the new rule name Anna uuden säännön nimi - + Regex mode: use Perl-like regular expressions Regex-tila: käytä Perlin kaltaisia säännöllisiä lausekkeita - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Arvo - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-syötteet - + Unread Lukematon @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Yksi linkki riville - - Download local torrent - Lataa paikallinen torrentti - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Ladattu @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Tietoja - - Exit - Lopeta - &Pause @@ -1984,22 +1982,6 @@ You should get this information from your Web browser preferences. E&xit - - Options - Valinnat - - - Resume - Palauta - - - Pause - Keskeytä - - - Delete - Poista - Open URL @@ -2017,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Näytä - + Check for program updates Tarkista ohjelmapäivitykset - - Lock qBittorrent - Lukitse qBittorrent - Add Torrent &Link... @@ -2042,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Suoritusloki - + Clear the password Tyhjennä salasana - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers Siirrot - + Torrent file association Torrent-tiedostojen liittäminen - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent ei ole torrent-tiedostojen ja Magnet-linkkien oletussovellus. Haluatko määrittää torrent-tiedostot ja Magnet-linkit qBittorrentille? - + Icons Only Vain kuvakkeet - + Text Only Vain teksti - + Text Alongside Icons Teksti kuvakkeiden vieressä - + Text Under Icons Teksti kuvakkeiden alla - + Follow System Style Seuraa järjestelmän tyyliä - - - + + + UI lock password Käyttöliittymän lukitussalasana - - - + + + Please type the UI lock password: Anna käyttöliittymän lukitussalasana: - + The password should contain at least 3 characters Salasanassa pitää olla vähintään kolme merkkiä - + Password update Salasanan päivitys - + The UI lock password has been successfully updated Käyttöliittymän lukitussalasana päivitettiin onnistuneesti - + Are you sure you want to clear the password? Haluatko varmasti tyhjentää salasanan? - + Search Etsi - + Transfers (%1) Siirrot (%1) - + Error - + Failed to add torrent: %1 - + Download completion Latauksen valmistuminen - + I/O Error i.e: Input/Output Error I/O-virhe - + Recursive download confirmation Rekursiivinen latausvahvistus - + Yes Kyllä - + No Ei - + Never Ei koskaan - + Global Upload Speed Limit Yleinen lähetysnopeusrajoitus - + Global Download Speed Limit Yleinen latausnopeusrajoitus - + &No &Ei - + &Yes &Kyllä - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2258,157 +2242,151 @@ Haluatko määrittää torrent-tiedostot ja Magnet-linkit qBittorrentille? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Ohjelmapäivityksiä tarkistetaan jo taustalla - + Python found in '%1' - + Download error Lataamisvirhe - + Python setup could not be downloaded, reason: %1. Please install it manually. Python-asennuksen lataaminen epäonnistui, syy: %1. Asenna se käsin. - - + + Invalid password Virheellinen salasana - - + + RSS (%1) - + URL download error - + The password is invalid Salasana on virheellinen - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Latausnopeus: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Lähetysnopeus: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Piilota - + Exiting qBittorrent Suljetaan qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Joitain tiedostosiirtoja on vielä meneillään. Haluatko varmasti lopettaa qBittorrentin? - + Open Torrent Files Avaa torrent-tiedostot - + Torrent Files Torrent-tiedostot - + Options were saved successfully. Asetukset tallennettiin onnistuneesti. @@ -2416,17 +2394,17 @@ Haluatko varmasti lopettaa qBittorrentin? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2436,32 +2414,32 @@ Haluatko varmasti lopettaa qBittorrentin? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2488,154 +2466,149 @@ Haluatko varmasti lopettaa qBittorrentin? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2650,1137 +2623,1127 @@ Haluatko varmasti lopettaa qBittorrentin? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Ranska + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Ranska + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Kreikka - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3841,7 +3804,7 @@ Haluatko varmasti lopettaa qBittorrentin? incoming connection - saapuva yhteys + @@ -3944,71 +3907,73 @@ Haluatko varmasti lopettaa qBittorrentin? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Lisää uusi asiakas... - + Copy selected - - + + Ban peer permanently Poista asiakas pysyvästi - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Asiakkaan lisäys - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Haluatko varmasti poistaa valitut asiakkaat pysyvästi? - + &Yes &Kyllä - + &No &Ei - - incoming connection - saapuva yhteys - PeersAdditionDlg @@ -4046,6 +4011,202 @@ Haluatko varmasti lopettaa qBittorrentin? + + PluginSelectDlg + + + Search plugins + Hakuliitännäiset + + + + Installed search plugins: + + + + + Name + Nimi + + + + Version + + + + + Url + Verkko-osoite + + + + + Enabled + Käytössä + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Voit hakea uusia hakukoneliitännäisiä täältä: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Asenna uusi + + + + Check for updates + Tarkista päivitykset + + + + Close + Sulje + + + + Uninstall + Poista + + + + + + Yes + Kyllä + + + + + + + No + Ei + + + + Uninstall warning + Poistovaroitus + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Poisto onnistui + + + + All selected plugins were uninstalled successfully + Kaikki valitut liitännäiset poistettiin + + + + + New search engine plugin URL + Uusi hakukoneliitännäisen osoite + + + + + URL: + Verkko-osoite: + + + + Invalid link + Virheellinen linkki + + + + The link doesn't seem to point to a search engine plugin. + Linkki ei vaikuta osoittavan hakukoneliitännäiseen. + + + + Select search plugins + Valitse hakuliitännäiset + + + + qBittorrent search plugin + + + + + + + Search plugin update + Hakuliitännäisen päivitys + + + + All your plugins are already up to date. + Kaikki liitännäiset ovat ajan tasalla. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Hakuliitännäisen asennus + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Lähde + + + + Search plugin source: + Lähde: + + + + Local file + Paikallinen tiedosto + + + + Web link + Web-linkki + + Preferences @@ -4102,89 +4263,89 @@ Haluatko varmasti lopettaa qBittorrentin? Pääte .!qB keskeneräisille tiedostoille - + Copy .torrent files to: Kopioi .torrent-tiedostot kohteeseen: - + Connections Limits Yhteysrajoitukset - + Proxy Server Välityspalvelin - + Global Rate Limits Yleiset nopeusrajoitukset - + Apply rate limit to transport overhead - + Schedule the use of alternative rate limits Aseta aikataulu vaihtoehtoisille nopeusrajoituksille - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers - + Encryption mode: Salaustila: - + Prefer encryption Suosi salausta - + Require encryption Vaadi salaus - + Disable encryption Ei salausta - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qbittorrent/wiki/Anonymous-Mode">Lisätietoja</a>) - + Maximum active downloads: Aktiivisia latauksia enintään: - + Maximum active uploads: Aktiivisia lähetettäviä torrentteja enintään: - + Maximum active torrents: Aktiivisia torrentteja enintään: @@ -4209,82 +4370,82 @@ Haluatko varmasti lopettaa qBittorrentin? Näytä torrentin sisältö ja joitakin valintoja - + Run external program on torrent completion - + Port used for incoming connections: Portti sisääntuleville yhteyksille: - + Random Satunnainen - + Global maximum number of connections: Kaikkien yhteyksien enimmäismäärä: - + Maximum number of connections per torrent: Yhteyksien enimmäismäärä torrenttia kohden: - + Maximum number of upload slots per torrent: Lähetyspaikkoja torrentia kohden: - - + + Upload: Lähetys: - - + + Download: Lataus: - - - - + + + + KiB/s KiB/s - + Remove folder Poista kansio - + Every day joka päivä - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Vaihta asiakastietoja yhteensopivien Bittorrent-asiakkaiden (µTorrent, Vuze, ...) kanssa - + Host: Isäntä: - + SOCKS4 SOCKS4 - + Type: Tyyppi: @@ -4457,262 +4618,262 @@ Haluatko varmasti lopettaa qBittorrentin? Lisää torrentit automaattisesti kohteesta: - + Add folder... Lisää kansio... - + Copy .torrent files for finished downloads to: Kopioi valmistuneiden latausten .torrent-tiedostot kohteeseen: - + Email notification upon download completion Sähköposti-ilmoitus latauksen valmistuttua - + Destination email: Lähetä osoitteeseen: - + SMTP server: SMTP-palvelin: - + This server requires a secure connection (SSL) Tämä palvelin vaatii suojatun yhteyden (SSL) - + Listening Port Kuunteluportti - + Use UPnP / NAT-PMP port forwarding from my router Käytä UPnP-/NAT-PMP-portinohjausta reitittimeltä - + Use different port on each startup Käytä eri porttia aina käynnistyksen yhteydessä - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections Muussa tapauksessa välityspalvelinta käytetään vain seurantapalvelimen yhteyksiin - + Use proxy for peer connections Välitä myös käyttäjien välinen liikenne - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Tärkeää: salasana tallennetaan salaamattomana - + IP Filtering IP-suodatus - + Reload the filter Lataa suodatin uudelleen - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Ajankohta: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Yksityisyys - + Enable DHT (decentralized network) to find more peers Käytä DHT:tä (hajautettua verkkoa) useampien vertaisten löytämiseen - + Enable Peer Exchange (PeX) to find more peers Käytä PeX:tä useampien vertaisten löytämiseen - + Look for peers on your local network Etsi asiakkaita paikallisverkostasi - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Käytä anonyymitilaa - + Do not count slow torrents in these limits Älä laske hitaita torrenteja näihin rajoituksiin - + Seed torrents until their ratio reaches Jatka torrenttien jakamista kunnes jakosuhde saavuttaa - + then sitten - + Pause them Pysäytä ne - + Remove them Poista ne - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router - + Use HTTPS instead of HTTP Käytä HTTPS:ää HTTP:n sijaan - + Import SSL Certificate Tuo SSL-varmenne - + Import SSL Key Tuo SSL-avain - + Certificate: Varmenne: - + Alternative Rate Limits - + Key: Avain: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Tietoa varmenteista</a> - + Bypass authentication for localhost - + Update my dynamic domain name Päivitä dynaamisen verkkotunnukseni nimi - + Service: Palvelu: - + Register - + Domain name: Verkkotunnuksen nimi: - + (None) (Ei mikään) @@ -4722,61 +4883,61 @@ Haluatko varmasti lopettaa qBittorrentin? BitTorrent - + HTTP HTTP - - + + Port: Portti: - - - + + + Authentication Sisäänkirjautuminen - - - - + + + + Username: Käyttäjätunnus: - - - - + + + + Password: Salasana: - + Torrent Queueing Torrentien jonotus - + Share Ratio Limiting Jakosuhteen rajoittaminen - + Enable Web User Interface (Remote control) Ota web-käyttöliittymä käyttöön (etäyhteys) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Suodatustiedoston sijainti (.dat, .p2p, p2b): @@ -4982,10 +5143,6 @@ Haluatko varmasti lopettaa qBittorrentin? Comment: Kommentti: - - Torrent content: - Torrentin sisältö: - Select All @@ -5506,28 +5663,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5638,17 +5795,17 @@ No further notices will be issued. RSSImp - + Stream URL: Syötteen osoite: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5668,75 +5825,77 @@ No further notices will be issued. Uusi kansio - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Valitse uusi nimi tälle RSS-syötteelle - + New feed name: Uusi syötteen nimi: - + Name already in use Nimi on jo käytössä - + This name is already used by another item, please choose another one. Tämä nimi on jo käytössä, valitse toinen. - + Date: Päivä: - + Author: Tekijä: - + Unread Lukematon - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Ladatun RSS-tiedoston avaaminen epäonnistui. - - - - Invalid RSS feed at '%1'. - + Ladatun RSS-tiedoston avaaminen epäonnistui. @@ -5762,168 +5921,220 @@ No further notices will be issued. Artikkeleiden enimmäismäärä syötettä kohden: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Selaa... + + + + Choose save path + Valitse tallennuskansio + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Seurattu kansio - - Download here - Lataa tänne + + Save Files to + - - Download path - + Download here + Lataa tänne SearchCategories - All categories - Kaikki luokat + Kaikki luokat - Movies - Elokuvat + Elokuvat - TV shows - TV-ohjelmat + TV-ohjelmat - Music - Musiikki + Musiikki - Games - Pelit + Pelit - Anime - Anime + Anime - Software - Ohjelmat + Ohjelmat - Pictures - Kuvat + Kuvat - Books - Kirjat + Kirjat SearchEngine - - - Search - Etsi + Etsi - - Please install Python to use the Search Engine. - - - - Empty search pattern - Tyhjä hakulauseke + Tyhjä hakulauseke - Please type a search pattern first - Kirjoita ensin hakulauseke + Kirjoita ensin hakulauseke - Searching... - Etsitään... + Etsitään... - Stop - Pysäytä + Pysäytä - - Search Engine - Hakupalvelu + Hakupalvelu - - Search has finished - Haku on päättynyt + Haku on päättynyt - An error occurred during search... - Haun aikana tapahtui virhe... + Haun aikana tapahtui virhe... - - Search aborted - Haku keskeytetty + Haku keskeytetty - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Haku ei palauttanut tuloksia + Haku ei palauttanut tuloksia - - Stopped - Pysäytetty + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Kaikki luokat + + + + Movies + Elokuvat + + + + TV shows + TV-ohjelmat + + + + Music + Musiikki + + + + Games + Pelit + + + + Anime + Anime + + + + Software + Ohjelmat + + + + Pictures + Kuvat + + + + Books + Kirjat SearchListDelegate - - + + Unknown Tuntematon @@ -5931,35 +6142,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Nimi - + Size i.e: file size Koko - + Seeders i.e: Number of full sources Jakajia - + Leechers i.e: Number of partial sources Lataajia - + Search engine Hakupalvelu + + SearchWidget + + + + + + + Search + Etsi + + + + Status: + Tila: + + + + + Stopped + Pysäytetty + + + + Download + Lataa + + + + Go to description page + Siirry kuvaussivulle + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Hakupalvelu + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Tyhjä hakulauseke + + + + Please type a search pattern first + Kirjoita ensin hakulauseke + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Etsitään... + + + + Stop + Pysäytä + + + + + Search has finished + Haku on päättynyt + + + + + Search aborted + Haku keskeytetty + + + + Search returned no results + Haku ei palauttanut tuloksia + + + + Search has failed + + + + + An error occurred during search... + Haun aikana tapahtui virhe... + + ShutdownConfirmDlg @@ -6404,24 +6740,28 @@ No further notices will be issued. TorrentContentModel - + Name Nimi - + Size Koko - + Progress Edistyminen - + + Download Priority + + + Priority - Prioriteetti + Prioriteetti @@ -6773,38 +7113,38 @@ No further notices will be issued. Varoitus (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Palauta torrentit - + Pause torrents Keskeytä torrentit - + Delete torrents Poista torrentit - - + + All (%1) this is for the tracker filter Kaikki (%1) @@ -7072,17 +7412,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Tila - + Labels Nimikkeet - + Trackers Seurantapalvelimet @@ -7621,205 +7961,103 @@ No further notices will be issued. engineSelect - Search plugins - Hakuliitännäiset + Hakuliitännäiset - Installed search engines: - Asennetut hakuliitännäiset: + Asennetut hakuliitännäiset: - Name - Nimi + Nimi - - Version - - - - Url - Verkko-osoite + Verkko-osoite - - Enabled - Käytössä + Käytössä - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Voit hakea uusia hakukoneliitännäisiä täältä: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Voit hakea uusia hakukoneliitännäisiä täältä: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Asenna uusi + Asenna uusi - Check for updates - Tarkista päivitykset + Tarkista päivitykset - Close - Sulje + Sulje - Uninstall - Poista + Poista engineSelectDlg - Uninstall warning - Poistovaroitus + Poistovaroitus - Uninstall success - Poisto onnistui + Poisto onnistui - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Linkki ei vaikuta osoittavan hakukoneliitännäiseen. + Linkki ei vaikuta osoittavan hakukoneliitännäiseen. - Select search plugins - Valitse hakuliitännäiset + Valitse hakuliitännäiset - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Hakuliitännäisen asennus + Hakuliitännäisen asennus - - - Yes - Kyllä + Kyllä - - - - No - Ei + Ei - - qBittorrent search plugin - - - - - - - Search plugin update - Hakuliitännäisen päivitys + Hakuliitännäisen päivitys - - Sorry, update server is temporarily unavailable. - Päivityspalvelin ei ole tällä hetkellä saavutettavissa. + Päivityspalvelin ei ole tällä hetkellä saavutettavissa. - All your plugins are already up to date. - Kaikki liitännäiset ovat ajan tasalla. + Kaikki liitännäiset ovat ajan tasalla. - All selected plugins were uninstalled successfully - Kaikki valitut liitännäiset poistettiin + Kaikki valitut liitännäiset poistettiin - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Virheellinen linkki + Virheellinen linkki - - New search engine plugin URL - Uusi hakukoneliitännäisen osoite + Uusi hakukoneliitännäisen osoite - - URL: - Verkko-osoite: + Verkko-osoite: @@ -7949,169 +8187,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Valitse vientihakemisto - - - - + + + + Choose a save directory Valitse tallennuskansio - + Add directory to scan Lisää seurattava hakemisto - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Kansio on jo seurannassa. - + Folder does not exist. Kansiota ei ole. - + Folder is not readable. Kansiota ei voida lukea. - + Failure Virhe - + Failed to add Scan Folder '%1': %2 Kansiota "%1" ei voitu lisätä seurattavien joukkoon: %2 - - + + Filters Suotimet - - + + Choose an IP filter file - + SSL Certificate SSL-varmenne - + SSL Key SSL-avain - + Parsing error Jäsennysvirhe - + Failed to parse the provided IP filter - + Successfully refreshed Päivitetty onnistuneesti - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Virheellinen avain - + This is not a valid SSL key. Tämä ei ole kelvollinen SSL-avain. - + Invalid certificate Virheellinen varmenne - + This is not a valid SSL certificate. Tämä ei ole kelvollinen SSL-varmenne. - + The start time and the end time can't be the same. Aloitus- ja päättymisaika eivät voi olla samoja. - + Time Error Aikavirhe @@ -8119,24 +8357,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Lähde + Lähde - Search plugin source: - Lähde: + Lähde: - Local file - Paikallinen tiedosto + Paikallinen tiedosto - Web link - Web-linkki + Web-linkki @@ -8165,40 +8399,28 @@ Those plugins were disabled. search_engine - - Search - Etsi + Etsi - Status: - Tila: + Tila: - Stopped - Pysäytetty + Pysäytetty - Download - Lataa + Lataa - Go to description page - Siirry kuvaussivulle + Siirry kuvaussivulle - - Copy description page URL - - - - Search engines... - Hakukoneet... + Hakukoneet... diff --git a/src/lang/qbittorrent_fr.ts b/src/lang/qbittorrent_fr.ts index eaf9c9bab..06ca19355 100644 --- a/src/lang/qbittorrent_fr.ts +++ b/src/lang/qbittorrent_fr.ts @@ -127,7 +127,7 @@ Set as default label - + Définir comme catégorie par défaut @@ -175,172 +175,172 @@ Ne pas télécharger - - + + I/O Error Erreur E/S - + The torrent file does not exist. Le fichier torrent n'existe pas. - + Invalid torrent Torrent invalide - + Failed to load the torrent: %1 Impossible de charger le torrent : %1 - - + + Already in download list Déjà présent dans la liste des téléchargements - + Free disk space: %1 Espace disque libre : %1 - + Not Available This comment is unavailable Non disponible - + Not Available This date is unavailable Non disponible - + Not available Non disponible - + Invalid magnet link Lien magnet invalide - + Torrent is already in download list. Trackers were merged. Impossible d'ajouter le torrent - - + + Cannot add torrent Impossible d'ajouter le torrent - + Cannot add this torrent. Perhaps it is already in adding state. Impossible d'ajouter ce torrent. Peut-être est-il déjà en cours d'ajout. - + This magnet link was not recognized Ce lien magnet n'a pas été reconnu - + Magnet link is already in download list. Trackers were merged. Le lien magnet est déjà dans la liste des téléchargements. Les trackers ont été fusionnés. - + Cannot add this torrent. Perhaps it is already in adding. Impossible d'ajouter ce torrent. Peut-être est-il déjà en cours d'ajout. - + Magnet link Lien magnet - + Retrieving metadata... Récupération des métadonnées… - + Not Available This size is unavailable. Non disponible - - - + + + Choose save path Choisir un répertoire de destination - + Rename the file Renommer le fichier - + New name: Nouveau nom : - - + + The file could not be renamed Le fichier n'a pas pu être renommé - + This file name contains forbidden characters, please choose a different one. Ce nom de fichier contient des caractères interdits, veuillez en choisir un autre. - - + + This name is already in use in this folder. Please use a different name. Ce nom de fichier est déjà utilisé dans ce dossier. Veuillez utiliser un autre nom. - + The folder could not be renamed Le dossier n'a pas pu être renommé - + Rename... Renommer… - + Priority Priorité - + Invalid metadata Metadata invalides. - + Parsing metadata... Analyse syntaxique des métadonnées... - + Metadata retrieval complete Récuperation des métadonnées terminée - + Download Error Erreur de téléchargement @@ -431,10 +431,6 @@ Resolve peer host names Afficher le nom d'hôte des pairs - - Maximum number of half-open connections [0: Disabled] - Nombre maximum de connexions à moitié ouvertes [0: désactivé] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Nombre maximum de connexions à moitié ouvertes [0 : Illimité] @@ -661,205 +657,205 @@ &Export... - + Matches articles based on episode filter. Articles correspondants basés sur le filtrage épisode - + Example: Exemple : - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match correspondra aux épisodes 2, 5, 8 et 15-30 et supérieurs de la saison 1 - + Episode filter rules: Règles de filtrage d'épisodes : - + Season number is a mandatory non-zero value Le numéro de saison est une valeur obligatoire différente de zéro - + Episode number is a mandatory non-zero value Le numéro d'épisode est une valeur obligatoire différente de zéro - + Filter must end with semicolon Le filtre doit se terminer avec un point-virgule - + Three range types for episodes are supported: Trois types d'intervalles d'épisodes sont pris en charge : - + Single number: <b>1x25;</b> matches episode 25 of season one Nombre simple : <b>1×25;</b> correspond à l'épisode 25 de la saison 1 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Intervalle standard : <b>1×25-40;</b> correspond aux épisodes 25 à 40 de la saison 1 - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Intervalle infinie : <b>1×25-;</b> correspond aux épisodes 25 et suivants de la saison 1 - + Last Match: %1 days ago Dernière correspondance : il y a %1 jours - + Last Match: Unknown Dernière correspondance : inconnu - + New rule name Nouveau nom pour la règle - + Please type the name of the new download rule. Veuillez entrer le nom de la nouvelle règle de téléchargement. - - + + Rule name conflict Conflit dans les noms de règle - - + + A rule with this name already exists, please choose another name. Une règle avec ce nom existe déjà, veuillez en choisir un autre. - + Are you sure you want to remove the download rule named '%1'? Êtes vous certain de vouloir supprimer la règle de téléchargement '%1' - + Are you sure you want to remove the selected download rules? Voulez-vous vraiment supprimer les règles sélectionnées ? - + Rule deletion confirmation Confirmation de la suppression - + Destination directory Répertoire de destination - + Invalid action Action invalide - + The list is empty, there is nothing to export. La liste est vide, il n'y a rien à exporter. - + Where would you like to save the list? Où désirez-vous sauvegarder cette liste ? - + Rules list (*.rssrules) Liste de règles (*.rssrules) - + I/O Error Erreur E/S - + Failed to create the destination file Impossible de créer le fichier de destination - + Please point to the RSS download rules file Veuillez indiquer le fichier contenant les règles de téléchargement RSS - + Rules list Liste des règles - + Import Error Erreur lors de l'importation - + Failed to import the selected rules file Impossible d'importer le fichier de règles sélectionné - + Add new rule... Ajouter une nouvelle règle… - + Delete rule Supprimer la règle - + Rename rule... Renommer la règle… - + Delete selected rules Supprimer les règles sélectionnées - + Rule renaming Renommage de la règle - + Please type the new rule name Veuillez enter le nouveau nom pour la règle - + Regex mode: use Perl-like regular expressions Mode regex : utiliser des expressions régulières similaires à celles de Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Mode simplifié : vous pouvez utiliser<ul><li>? pour remplacer n'importe quel caractère</li><li>* pour remplacer zéro ou plusieurs caractères</li><li>Les espaces sont considérés équivalent à des opérateurs ET</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Mode simplifié : vous pouvez utiliser<ul><li>? pour remplacer n'importe quel caractère</li><li>* pour remplacer zéro ou plusieurs caractères</li><li>| est utilisé comme opérateur OU</li></ul> @@ -952,65 +948,57 @@ '%1' a atteint le ratio maximum que vous avez défini. Mise en pause... - Error: Could not create torrent export directory: '%1' - Erreur lors de la création du dossier d'export de torrents : '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Erreur lors de l'exportation du torrent '%1', peut-être n'a-t-il pas encore de métadonnées. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Statut réseau du système changé en %1 - + ONLINE EN LIGNE - + OFFLINE HORS LIGNE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Impossible de décoder le fichier torrent '%1' - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Téléchargement récursif du fichier '%1' au sein du torrent '%2' - + Couldn't save '%1.torrent' Impossible de sauvegarder '%1.torrent" - + because %1 is disabled. this peer was blocked because uTP is disabled. parce que '%1' est désactivé - + because %1 is disabled. this peer was blocked because TCP is disabled. parce que '%1' est désactivé - + URL seed lookup failed for URL: '%1', message: %2 Le contact de la source URL a échoué pour l'URL : '%1', message : %2 @@ -1027,178 +1015,164 @@ '%1' a été supprimé de la liste de transferts. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Téléchargement de '%1', veuillez patienter... - Torrent Export: torrent is invalid, skipping... - Exportation de torrents : le torrent est invalide et a été ignoré... - - - + DHT support [ON] Prise en charge de DHT [ACTIVÉE] - + DHT support [OFF]. Reason: %1 Prise en charge de DHT [DÉSACTIVÉE]. Motif : %1 - + DHT support [OFF] Prise en charge de DHT [DÉSACTIVÉE] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent tente d'écouter un port d'interface : %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent n'a pas réussi à écouter sur un port d'interface : %1. Motif : %2 - - - + The network interface defined is invalid: %1 L'interface réseau définie est invalide : %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent tente d'écouter sur le port %2 de l'interface %1 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent n’a pas trouvé d'adresse locale %1 sur laquelle écouter - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent n'a pas réussi à écouter sur un port d'interface : %1. Motif : %2. {1.?} + - + Tracker '%1' was added to torrent '%2' Tracker '%1' ajouté au torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' retiré du torrent '%2' - + URL seed '%1' was added to torrent '%2' URL de partage '%1' ajoutée au torrent '%2' - + URL seed '%1' was removed from torrent '%2' URL de partage '%1' retirée du torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossible de résumer le torrent "%1". - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Le filtre IP a été correctement chargé : %1 règles ont été appliquées. - + Error: Failed to parse the provided IP filter. Erreur : impossible d'analyser le filtre IP fourni. - + Couldn't add torrent. Reason: %1 Impossible d'ajouter le torrent. Motif : %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' a été relancé. (relancement rapide) - + '%1' added to download list. 'torrent name' was added to download list. '%1' ajouté à la liste de téléchargement. - + An I/O error occurred, '%1' paused. %2 Une erreur E/S s'est produite, '%1' a été mis en pause. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP : impossible de rediriger le port, message : %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP : la redirection du port a réussi, message : %1 - + due to IP filter. this peer was blocked due to ip filter. à cause du filtrage IP. - + due to port filter. this peer was blocked due to port filter. à cause du filtrage de ports. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. à cause des restrictions du mode mixte d'i2p. - + because it has a low port. this peer was blocked because it has a low port. parce que son numéro de port est trop bas. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent écoute correctement sur le port %2/%3 de l'interface %1 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent ne parvient pas à écouter sur le port %2/%3 de l'interface %1. Motif : %4. {1 ?} {2/%3.?} + - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent ne parvient pas à écouter sur le port %2/%3 de l'interface %1. Motif : %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP externe : %1 @@ -1212,12 +1186,12 @@ Le torrent '%1' n'a pas pu être déplacé. Motif : %2 - + File sizes mismatch for torrent '%1', pausing it. Les tailles de fichiers ne correspondent pas pour le torrent %1, mise en pause. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... La relance rapide du torrent %1 a été rejetée. Motif : %2. Revérification... @@ -1242,7 +1216,7 @@ Valeur - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Les clés habituelles des cookies sont : '%1', '%2'. @@ -1310,12 +1284,12 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na FeedListWidget - + RSS feeds Flux RSS - + Unread Non lu @@ -1412,10 +1386,6 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na Only one link per line Un seul lien par ligne - - Download local torrent - Téléchargement d'un torrent local - Download @@ -1589,20 +1559,30 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na Save files to location: - Sauvegarder les fichiers vers : + Sauvegarder les fichiers dans : Label: - Catégorie : + Catégorie : Cookie: + Cookie : + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Téléchargé @@ -1615,7 +1595,7 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na Upload local torrent - + Transférer un torrent local @@ -1871,52 +1851,52 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na &Top Toolbar - + Barre d'ou&tils Display Top Toolbar - + Afficher la barre d'outils S&peed in Title Bar - + &Vitesse dans le titre de la fenêtre Show Transfer Speed in Title Bar - + Afficher la vitesse dans le titre de la fenêtre &RSS Reader - + Lecteur &RSS Search &Engine - + &Moteur de recherche L&ock qBittorrent - + &Verrouiller qBittorrent &Import Existing Torrent... - + &Importer un torrent existant… Import Torrent... - + Importer un torrent… Do&nate! - + Faire un do&n ! @@ -1926,57 +1906,53 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na &Log - + &Journa &Exit qBittorrent - + &Quitter qBittorrent &Suspend System - + &Mettre en veille le système &Hibernate System - + &Mettre en veille prolongée le système S&hutdown System - + É&teindre le système &Disabled - + &Désactivé &Statistics - + &Statistiques Check for Updates - + Vérifier les mises à jour Check for Program Updates - + Vérifier les mises à jour du programm &About &À propos - - Exit - Quitter - &Pause @@ -1995,7 +1971,7 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na &Add Torrent File... - + &Ajouter un fichier torrent… @@ -2005,23 +1981,7 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na E&xit - - - - Options - Options - - - Resume - Démarrer - - - Pause - Mettre en pause - - - Delete - Supprimer + &Quitter @@ -2040,23 +2000,19 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na - + Show Afficher - + Check for program updates Vérifier la disponibilité de mises à jour du logiciel - - Lock qBittorrent - Verrouiller qBittorrent - Add Torrent &Link... - + Ajouter &lien vers un torrent… @@ -2065,373 +2021,382 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na - + Execution Log Journal d'exécution - + Clear the password Effacer le mot de passe - + Filter torrent list... Filtrer la liste des torrents… - + &Set Password - + &Définir le mot de pass - + &Clear Password - + &Supprimer le mot de pass - + Transfers Transferts - + Torrent file association Association aux fichiers torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent n'est pas l'application par défaut utilisée pour ouvrir les fichiers torrent ou les liens magnet. Voulez-vous associer qBittorrent aux fichiers torrent et liens magnet ? - + Icons Only Icônes seulement - + Text Only Texte seulement - + Text Alongside Icons Texte à côté des Icônes - + Text Under Icons Texte sous les Icônes - + Follow System Style Suivre le style du système - - - + + + UI lock password Mot de passe de verrouillage - - - + + + Please type the UI lock password: Veuillez entrer le mot de passe de verrouillage : - + The password should contain at least 3 characters The mot de passe doit contenir au moins 3 caractères - + Password update Mise à jour du mot de passe - + The UI lock password has been successfully updated Le mot de passe de verrouillage a été mis à jour - + Are you sure you want to clear the password? Êtes vous sûr de vouloir effacer le mot de passe ? - + Search Recherche - + Transfers (%1) Transferts (%1) - + Error - + Erreur - + Failed to add torrent: %1 - + Échec de l'ajout du torrent : %1 - + Download completion Fin du téléchargement - + I/O Error i.e: Input/Output Error Erreur E/S - + Recursive download confirmation Confirmation pour téléchargement récursif - + Yes Oui - + No Non - + Never Jamais - + Global Upload Speed Limit Limite globale de la vitesse d'envoi - + Global Download Speed Limit Limite globale de la vitesse de réception - + &No - &Non + &Non - + &Yes - &Oui + %Oui - + &Always Yes - + Oui, %toujours - + Python found in %1 - + Python trouvé dans %1 - + Old Python Interpreter - + Ancien interpréteur Python - + qBittorrent Update Available + Mise à jour de qBittorrent disponible + + + + A new version is available. +Do you want to download %1? - + Already Using the Latest qBittorrent Version - + Vous utilisez déjà la dernière version de qBittorrent - + Undetermined Python version - + Version de Python indéterminée - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + Le téléchargement de « %1 » est terminé. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + Une erreur d'entrée/sortie est survenue sur le torrent « %1 ». +Raison : %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Le torrent « %1 » contient des fichiers torrent, voulez-vous procéder en les téléchargeant ? - + Couldn't download file at URL '%1', reason: %2. - + Impossible de télécharger le fichier à l'adresse « %1 », raison : %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Votre version de Python %1 n'est pas à jour. Veuillez mettre à jour pour que les moteurs de recherche fonctionnent. Versions requises : 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - + Impossible de déterminer votre version de Python (%1). Moteur de recherche désactivé. - - + + Missing Python Interpreter L’interpréteur Python est absent - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python est nécessaire afin d'utiliser le moteur de recherche mais il ne semble pas être installé. +Voulez-vous l'installer maintenant ? - + Python is required to use the search engine but it does not seem to be installed. - + Python est nécessaire afin d'utiliser le moteur de recherche mais il ne semble pas être installé. - A new version is available. Update to version %1? - + Une nouvelle version est disponible. +Mettre à jour vers la version %1 ? - + No updates available. You are already using the latest version. - + Pas de mises à jour disponibles. +Vous utilisez déjà la dernière version. - + &Check for Updates - + &Vérifier les mises à jou - + Checking for Updates... - + Vérification des mises à jour… - + Already checking for program updates in the background Recherche de mises à jour déjà en cours en tâche de fond - + Python found in '%1' - + Python trouvé dans « %1 » - + Download error Erreur de téléchargement - + Python setup could not be downloaded, reason: %1. Please install it manually. L’installateur Python ne peut pas être téléchargé pour la raison suivante : %1. Veuillez l’installer manuellement. - - + + Invalid password Mot de passe invalide - - + + RSS (%1) - + RSS (%1) - + URL download error - + Erreur de téléchargement URL - + The password is invalid Le mot de passe fourni est invalide - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Vitesse de réception : %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Vitesse d'envoi : %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [R : %1, E : %2] qBittorrent %3 - + Hide Cacher - + Exiting qBittorrent Fermeture de qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Certains fichiers sont en cours de transfert. Êtes-vous sûr de vouloir quitter qBittorrent ? - + Open Torrent Files Ouvrir fichiers torrent - + Torrent Files Fichiers torrent - + Options were saved successfully. Préférences sauvegardées avec succès. @@ -2439,54 +2404,54 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Votre DNS dynamique a été mis à jour avec succès. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Erreur de DNS dynamique : Le service est temporairement indisponible, un nouvel essai sera fait dans 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + Erreur de DNS dynamique : Le nom d'hôte fourni n'existe pas pour le compte spécifié. Dynamic DNS error: Invalid username/password. - + Erreur de DNS dynamique : Nom d'utilisateur ou mot de passe invalide. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Erreur de DNS dynamique : qBittorrent a été blacklisté par le service, veuillez rapporter un bogue sur http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Erreur de DNS dynamique : %1 a été retourné par le service, veuillez rapporter un bogue sur http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Erreur de DNS dynamique : Votre nom d'utilisateur a été bloqué pour faute d'abus. - + Dynamic DNS error: supplied domain name is invalid. - + Erreur de DNS dynamique : Le nom de domaine fourni est invalide. - + Dynamic DNS error: supplied username is too short. - + Erreur de DNS dynamique : Le nom d'utilisateur fourni est trop court. - + Dynamic DNS error: supplied password is too short. - + Erreur de DNS dynamique : Le mot de passe fourni est trop court. @@ -2494,173 +2459,172 @@ Are you sure you want to quit qBittorrent? I/O Error - Erreur E/S + Erreur d'entrée/sortie The file size is %1. It exceeds the download limit of %2. - + La taille du fichier est %1. Cela excède la limite de téléchargement de %2. Unexpected redirect to magnet URI. - + Redirection non attendue vers une URL magnet. Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Base de données GeoIP chargée. Type : %1. Durée de construction : %2 - + Couldn't load GeoIP database. Reason: %1 + Impossible de charger la base de données GeoIP. Raison : %1 + + + + Venezuela, Bolivarian Republic of - - + + Viet Nam + + + + + N/A - + N/A - - Asia/Pacific Region - + Europe + Europe - Europe - + Andorra + Andorre - Andorra - + United Arab Emirates + Émirats Arabes Unis - United Arab Emirates - + Afghanistan + Afghanistan - Afghanistan - - - - Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + Argentine - + American Samoa - + Austria - + Autriche - + Australia - + Australie - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Bangladesh + + + + Belgium + Belgiqu - Belgium - + Burkina Faso + Burkina Faso - Burkina Faso - + Bulgaria + Bulgarie - Bulgaria - - - - Bahrain - + Burundi - + Benin - + Bénin @@ -2673,1139 +2637,1153 @@ Are you sure you want to quit qBittorrent? - Bolivia - - - - - Brazil - + Bolivie + Brazil + Brésil + + + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Canada - + Cocos (Keeling) Islands - - - Congo, The Democratic Republic of the - - - Central African Republic - + Congo, The Democratic Republic of the + République Démocratique du Congo - Congo - + Central African Republic + République d'Afrique Centrale - Switzerland - + Congo + Congo - Cote D'Ivoire - + Switzerland + Suiss - + Cote D'Ivoire + Côte d'Ivoire + + + Cook Islands - + Chile - + Chili - + Cameroon - - - China - - - Colombia - + China + Chine - Costa Rica - + Colombia + Colombie - Cuba - + Costa Rica + Costa Rica + Cuba + Cuba + + + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany - + Cyprus + Chypre - Djibouti + Czech Republic - Denmark - + Germany + Allemagne - Dominica + Djibouti - Dominican Republic - + Denmark + Danemark - Algeria + Dominica - Ecuador - + Dominican Republic + République dominicaine - Estonia + Algeria - Egypt + Ecuador + Estonia + Estonie + + + + Egypt + Égypte + + + Western Sahara - + Eritrea - - - Spain - - - - - Ethiopia - - - Finland - + Spain + Espagn + Ethiopia + Éthiopie + + + + Finland + Finlande + + + Fiji - + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - - - France - France - - - - France, Metropolitan - - - Gabon - + France + France + + + France, Metropolitan + France métropolitaine - United Kingdom - + Gabon + Gabon + United Kingdom + Royaume-uni + + + Grenada - - - Georgia - - - French Guiana - + Georgia + Géorgie - Ghana - + French Guiana + Guinée française - + + Ghana + Ghana + + + Gibraltar - - - Greenland - - - - - Gambia - - - Guinea - + Greenland + Groënland - Guadeloupe - + Gambia + Gambie - Equatorial Guinea - + Guinea + Guinée - Greece - Grèce + Guadeloupe + Guadeloupe + Equatorial Guinea + Guinée équatoriale + + + + Greece + Grèce + + + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - - - Guyana - - - - - Hong Kong - - + Guyana + Guyane + + + + Hong Kong + Hong Kong + + + Heard Island and McDonald Islands - + Honduras - + Croatia - + Croatie - + Haiti - - - Hungary - - - - - Indonesia - - - Ireland - + Hungary + Hongrie - Israel - + Indonesia + Indonésie - India - + Ireland + Irlande + Israel + Israël + + + + India + Inde + + + British Indian Ocean Territory - - - Iraq - - - - - Iran, Islamic Republic of - - - - - Iceland - - - Italy - + Iraq + Irak - Jamaica - + Iran, Islamic Republic of + République islamique d'Iran + Iceland + Islande + + + + Italy + Italie + + + + Jamaica + Jamaïque + + + Jordan - + Japan - + Japon - + Kenya - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Norvège - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Polynésie française - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Suède - + Singapore - - Saint Helena - - - - + Slovenia - + Slovénie - + Svalbard and Jan Mayen - + Slovakia - + Slovaquie - + Sierra Leone - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu - + United States + États-Unis - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + Serbia + Serbie + - Guernsey - + South Africa + Afrique du Sud - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + Anonymous Proxy + Proxy anonyme + + + Satellite Provider + Fournisseur par satellite + + + Other + Autre + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Impossible de décompresser le fichier de base de données GeoIP. - + Couldn't save downloaded GeoIP database file. - + Impossible d'enregistrer le fichier de base de données GeoIP téléchargé. - + Successfully updated GeoIP database. - + Mise à jour de la base de données GeoIP réalisée avec succès. - + Couldn't download GeoIP database file. Reason: %1 - + Impossible de télécharger le fichier de base de données GeoIP. Raison : %1 @@ -3813,12 +3791,12 @@ Are you sure you want to quit qBittorrent? UPnP / NAT-PMP support [ON] - + Prise en charge de l'UPnP / NAT-PMP [ACTIVÉE] UPnP / NAT-PMP support [OFF] - + Prise en charge de l'UPnP / NAT-PMP [DÉSACTIVÉE] @@ -3834,72 +3812,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - intéressé (local) et engorgé (pair) + interested(local) and unchoked(peer) - intéressé (local) et non engorgé (pair) + interested(peer) and choked(local) - intéressé (pair) et engorgé (local) + interested(peer) and unchoked(local) - intéressé (pair) et non engorgé (local) + optimistic unchoke - non-étranglement optimiste + peer snubbed - pair évité + incoming connection - connexion entrante + connexion entrante not interested(local) and unchoked(peer) - non intéressé (local) et non engorgé (pair) + non intéressé (local) et non engorgé (pair) not interested(peer) and unchoked(local) - non intéressé (pair) et non engorgé (local) + non intéressé (pair) et non engorgé (local) peer from PEX - pair issu de PEX + pair issu de PEX peer from DHT - pair issu du DHT + pair issu du DHT encrypted traffic - trafic chiffré + trafic chiffré encrypted handshake - poignée de main chiffrée + poignée de main chiffrée peer from LSD - pair issu de LSD + pair issu de LSD @@ -3967,145 +3945,95 @@ Are you sure you want to quit qBittorrent? Pertinence - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Ajouter un nouveau pair… - + Copy selected Copie sélectionnée - - + + Ban peer permanently Bloquer le pair indéfiniment - + Manually adding peer '%1'... - + Ajout manuel du pair « %1 »… - + The peer '%1' could not be added to this torrent. - + Le pair « %1 » n'a pas pu être ajouté à ce torrent. - + Manually banning peer '%1'... - + Bannissement manuel du pair « %1 »… - - + + Peer addition Ajout d'un pair - + Some peers could not be added. Check the Log for details. - + Certains pairs n'ont pas pu être ajoutés. Consultez le Journal pour plus d'information. - + The peers were added to this torrent. - + Les pairs ont été ajoutés à ce torrent. - + Are you sure you want to ban permanently the selected peers? Êtes-vous sûr de vouloir bloquer les pairs sélectionnés ? - + &Yes &Oui - + &No &Non - - interested(local) and choked(peer) - intéressé (local) et engorgé (pair) - - - interested(local) and unchoked(peer) - intéressé (local) et non engorgé (pair) - - - interested(peer) and choked(local) - intéressé (pair) et engorgé (local) - - - interested(peer) and unchoked(local) - intéressé (pair) et non engorgé (local) - - - optimistic unchoke - non-étranglement optimiste - - - peer snubbed - pair évité - - - incoming connection - connexion entrante - - - not interested(local) and unchoked(peer) - non intéressé (local) et non engorgé (pair) - - - not interested(peer) and unchoked(local) - non intéressé (pair) et non engorgé (local) - - - peer from PEX - pair issu de PEX - - - peer from DHT - pair issu du DHT - - - encrypted traffic - trafic chiffré - - - encrypted handshake - poignée de main chiffrée - - - peer from LSD - pair issu de LSD - PeersAdditionDlg No peer entered - + Pas de pair entré Please type at least one peer. - + Veuillez entrer au moins un pair. Invalid peer - + Pair invalide The peer '%1' is invalid. - + Le pair « %1 » est invalide. @@ -4113,13 +4041,210 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + Blanc : morceaux non disponibles Blue: Available pieces + Bleu : morceaux disponibles + + + + PluginSelectDlg + + + Search plugins + Greffons de recherche + + + + Installed search plugins: + + + Name + Nom + + + + Version + Version + + + + Url + URL + + + + + Enabled + Activé + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + D’avantage de greffons de recherche ici : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Installer un nouveau + + + + Check for updates + Mettre à jour + + + + Close + Fermer + + + + Uninstall + Désinstaller + + + + + + Yes + Oui + + + + + + + No + Non + + + + Uninstall warning + Désinstallation + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Certains greffons n'ont pas pu être désinstallés car ils sont intégrés à qBittorrent. Seuls ceux que vous avez installés par vous-même peuvent être désinstallés. +Ces greffons ont été désactivés. + + + + Uninstall success + Désinstallation réussie + + + + All selected plugins were uninstalled successfully + Tous les greffons sélectionnés ont été désinstallés avec succès + + + + + New search engine plugin URL + Adresse du nouveau greffon de recherche + + + + + URL: + Adresse : + + + + Invalid link + Lien invalide + + + + The link doesn't seem to point to a search engine plugin. + Le lien ne semble pas pointer sur un plugin de moteur de recherche. + + + + Select search plugins + Sélectionnez les greffons + + + + qBittorrent search plugin + Greffon de recherche qBittorrent + + + + + + Search plugin update + Mise à jour du greffon de recherche + + + + All your plugins are already up to date. + Tous vos greffons de recherche sont déjà à jour. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Installation d'un greffon de recherche + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Source du greffon + + + + Search plugin source: + Source du greffon de recherche : + + + + Local file + Fichier local + + + + Web link + Lien web + Preferences @@ -4177,89 +4302,89 @@ Are you sure you want to quit qBittorrent? Ajouter l'extension .!qB aux noms des fichiers incomplets - + Copy .torrent files to: Copier les fichiers .torrent dans : - + Connections Limits Limites de connexions - + Proxy Server Serveur mandataire (proxy) - + Global Rate Limits Limites de vitesse globales - + Apply rate limit to transport overhead Appliquer les limites de vitesse au surplus généré par le protocole - + Schedule the use of alternative rate limits Planifier l'utilisation des vitesses limites alternatives - + From: from (time1 to time2) - + Depuis : - + To: time1 to time2 - + Vers : - + Enable Local Peer Discovery to find more peers Activer la découverte de sources sur le réseau local - + Encryption mode: Mode de chiffrement : - + Prefer encryption Chiffrement préféré - + Require encryption Chiffrement requis - + Disable encryption Chiffrement désactivé - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Plus d'information</a>) - + Maximum active downloads: Nombre maximum de téléchargements actifs : - + Maximum active uploads: Nombre maximum d'envois actifs : - + Maximum active torrents: Nombre maximum de torrents actifs : @@ -4284,82 +4409,82 @@ Are you sure you want to quit qBittorrent? Afficher le contenu du torrent et quelques paramètres - + Run external program on torrent completion - + Lancer un programme externe lorsqu'un torrent est complété - + Port used for incoming connections: Port pour les connexions entrantes : - + Random Aléatoire - + Global maximum number of connections: Nombre maximum global de connexions : - + Maximum number of connections per torrent: Nombre maximum de connexions par torrent : - + Maximum number of upload slots per torrent: Nombre maximum d'emplacements d'envoi par torrent : - - + + Upload: Envoi : - - + + Download: Réception : - - - - + + + + KiB/s Kio/s - + Remove folder Supprimer le dossier - + Every day Tous les jours - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Échanger des pairs avec les applications compatibles (µTorrent, Vuze, …) - + Host: Hôte : - + SOCKS4 SOCKS4 - + Type: Type : @@ -4448,7 +4573,7 @@ Are you sure you want to quit qBittorrent? Confirm when deleting torrents - + Confirmer la suppression des torrents @@ -4458,7 +4583,7 @@ Are you sure you want to quit qBittorrent? Confirmation on exit when torrents are active - + Confirmer la fermeture lorsque des torrents sont actifs @@ -4532,262 +4657,262 @@ Are you sure you want to quit qBittorrent? Ajouter automatiquement les torrents présents dans : - + Add folder... Ajouter un dossier… - + Copy .torrent files for finished downloads to: Copier les fichiers .torrent des téléchargements terminés dans : - + Email notification upon download completion Notification par courriel de fin de téléchargement - + Destination email: Courriel de destination : - + SMTP server: Serveur SMTP : - + This server requires a secure connection (SSL) Ce serveur nécessite une connexion sécurisée (SSL) - + Listening Port Port d'écoute - + Use UPnP / NAT-PMP port forwarding from my router Utiliser la redirection de port sur mon routeur via UPnP / NAT-PMP - + Use different port on each startup Utiliser un port différent à chaque démarrage - + Global maximum number of upload slots: Nombre maximum global d'emplacements d'envoi : - + Otherwise, the proxy server is only used for tracker connections Dans le cas contraire, le proxy sera uniquement utilisé pour contacter les trackers - + Use proxy for peer connections Utiliser le serveur mandataire pour se connecter aux utilisateurs (pairs) - + Disable connections not supported by proxies Les connexions désactivées ne sont pas supportées par les proxys. - - - Use proxy only for torrents - - - RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Use proxy only for torrents + Utiliser le proxy seulement pour les torrents - + + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection + Les flux RSS, le moteur de recherche, les mises à jour du logiciel et tout autre chose sauf les transferts de torrents et opérations liées (comme les échanges de pairs) utiliseront une connexion directe + + + Info: The password is saved unencrypted Information : le mot de passe est sauvegardé en clair - + IP Filtering Filtrage IP - + Reload the filter Recharger le filtre - + Apply to trackers - + Appliquer aux trackers - + Apply rate limit to peers on LAN - + Appliquer les limites de vitesse sur le réseau local - + When: Quand : - + Weekdays - + Jours ouvrés - + Weekends - + Week-ends - + Rate Limits Settings - + Enable µTP protocol - + Activer le protocole µTP - + Apply rate limit to µTP protocol - + Appliquer les limites de vitesse au protocole µTP - + Privacy Vie privée - + Enable DHT (decentralized network) to find more peers Activer le DHT (réseau décentralisé) pour trouver plus de pairs - + Enable Peer Exchange (PeX) to find more peers Activer l'échange de pairs (PeX) avec les autres utilisateurs - + Look for peers on your local network Rechercher des pairs sur votre réseau local - + Enable when using a proxy or a VPN connection Activez quand vous utilisez une connexion par proxy ou par VPN - + Enable anonymous mode Activer le mode anonyme - + Do not count slow torrents in these limits Ne pas compter les torrents lents dans ces limites - + Seed torrents until their ratio reaches Partager les torrents jusqu'à un ratio de - + then puis - + Pause them Les mettre en pause - + Remove them Les supprimer - + Automatically add these trackers to new downloads: - + Ajouter automatiquement ces trackers aux nouveaux téléchargements : - + Use UPnP / NAT-PMP to forward the port from my router Utiliser la redirection de port sur mon routeur via UPnP / NAT-PMP - + Use HTTPS instead of HTTP Utiliser HTTPS au lieu de HTTP - + Import SSL Certificate Importer un certificat SSL - + Import SSL Key Importer une clé SSL - + Certificate: Certificat : - + Alternative Rate Limits - + Limites de vitesse alternatives - + Key: Clé : - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Plus d'information sur les certificats</a> - + Bypass authentication for localhost Contourner l'authentification pour localhost - + Update my dynamic domain name Mettre à jour mon nom de domaine dynamique - + Service: Service : - + Register Créer un compte - + Domain name: Nom de domaine : - + (None) (Aucun) @@ -4797,68 +4922,68 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port : - - - + + + Authentication Authentification - - - - + + + + Username: Nom d'utilisateur : - - - - + + + + Password: Mot de passe : - + Torrent Queueing Priorisation des torrents - + Share Ratio Limiting Limitation du ratio de partage - + Enable Web User Interface (Remote control) Activer l'interface web (contrôle distant) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Chemin du filtre (.dat, .p2p, .p2b) : Detected unclean program exit. Using fallback file to restore settings. - + Fermeture du programme impromptue détectée. Utilisation d'un fichier de sauvegarde afin de restaurer les paramètres. @@ -4966,7 +5091,7 @@ Are you sure you want to quit qBittorrent? Speed - Vitesse + Vitesse @@ -4984,7 +5109,7 @@ Are you sure you want to quit qBittorrent? Progress: - Progression : + Progression : @@ -4995,12 +5120,12 @@ Are you sure you want to quit qBittorrent? Time Active: Time (duration) the torrent is active (not paused) - + Actif pendant : ETA: - + Temps restant : @@ -5010,32 +5135,32 @@ Are you sure you want to quit qBittorrent? Seeds: - + Sources : Download Speed: - + Vitesse de téléchargement : Upload Speed: - + Vitesse d'émission : Peers: - + Pairs : Download Limit: - + Limite de téléchargement : Upload Limit: - + Limite d'envoi : @@ -5057,10 +5182,6 @@ Are you sure you want to quit qBittorrent? Comment: Commentaire : - - Torrent content: - Contenu du torrent : - Select All @@ -5084,57 +5205,57 @@ Are you sure you want to quit qBittorrent? Share Ratio: - + Ratio de partage : Reannounce In: - + Annoncer dans : Last Seen Complete: - + Dernière fois vu complet : Total Size: - + Taille totale : Pieces: - + Morceaux : Created By: - + Créé par : Added On: - + Ajouté le : Completed On: - + Complété le : Created On: - + Créé le : Torrent Hash: - + Hachage du torrent : Save Path: - + Chemin de sauvegarde : @@ -5156,39 +5277,39 @@ Are you sure you want to quit qBittorrent? %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 × %2 (a %3) %1 (%2 this session) - + %1 (%2 cette session) %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (partagé pendant %2) %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (%2 maximum) %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - + %1 (%2 total) %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (%2 en moyenne) @@ -5276,18 +5397,18 @@ Are you sure you want to quit qBittorrent? New URL seed New HTTP source - + Nouvelle source URL New URL seed: - + Nouvelle source URL : This URL seed is already in the list. - + Cette source URL est déjà sur la liste. @@ -5369,7 +5490,7 @@ Are you sure you want to quit qBittorrent? Changes the Web UI port (current: %1) - + Change le port de l'interface Web (actuellement : %1) @@ -5444,33 +5565,33 @@ Ce message d'avertissement ne sera plus affiché. Torrent name: %1 - + Nom du torrent : %1 Torrent size: %1 - + Taille du torrent : %1 Save path: %1 - + Chemin de sauvegarde : %1 The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + Le torrent a été téléchargé dans %1. Thank you for using qBittorrent. - + Merci d'utiliser qBittorrent. [qBittorrent] '%1' has finished downloading - + [qBittorrent] Le téléchargement de « %1 » est terminé. @@ -5480,7 +5601,7 @@ Ce message d'avertissement ne sera plus affiché. The operation was canceled - + L'opération a été annulée @@ -5495,7 +5616,7 @@ Ce message d'avertissement ne sera plus affiché. SSL/TLS handshake failed - + Poignée de main SSL/TLS échouée @@ -5505,17 +5626,17 @@ Ce message d'avertissement ne sera plus affiché. The connection to the proxy server was refused - + La connexion au serveur proxy a été refusée The proxy server closed the connection prematurely - + Le serveur proxy a fermé la connexion prématurément The proxy host name was not found - + Le nom d'hôte du proxy n'a pas été trouvé @@ -5530,7 +5651,7 @@ Ce message d'avertissement ne sera plus affiché. The access to the remote content was denied (401) - + L'accès au contenu distant a été refusé (401) @@ -5540,7 +5661,7 @@ Ce message d'avertissement ne sera plus affiché. The remote content was not found at the server (404) - + Le contenu distant n'a pas été trouvé sur le serveur (404) @@ -5580,33 +5701,33 @@ Ce message d'avertissement ne sera plus affiché. Unknown error - + Erreur inconnue - - + + Upgrade - + Mettre à jour - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + Vous venez de mettre à jour depuis une ancienne version qui sauvegardait les paramètres d'une manière différente. Vous devez migrer vers le nouveau système de sauvegarde. Vous ne pourrez plus utiliser une version plus ancienne que la v3.3.0. Continuer ? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Vous venez de mettre à jour depuis une ancienne version qui sauvegardait les paramètres d'une manière différente. Vous devez migrer vers le nouveau système de sauvegarde. Si vous continuez, vous ne pourrez plus utiliser une version plus ancienne que la v3.3.0. - + Couldn't migrate torrent with hash: %1 - + Impossible de migrer le torrent avec le hachage : %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 - + Impossible de migrer le torrent. Nom de fichier fastresume invalide : %1 @@ -5646,7 +5767,7 @@ Ce message d'avertissement ne sera plus affiché. Torrents: (double-click to download) - + Torrents : (double-clic pour télécharger) @@ -5715,19 +5836,19 @@ Ce message d'avertissement ne sera plus affiché. RSSImp - + Stream URL: URL du flux : - + Please type a RSS stream URL - + Veuillez entrer l'adresse d'un flux RSS - + This RSS feed is already in the list. - + Ce flux RSS est déjà dans la liste. @@ -5745,75 +5866,77 @@ Ce message d'avertissement ne sera plus affiché. Nouveau dossier - + Deletion confirmation - + Confirmation de suppression - + Are you sure you want to delete the selected RSS feeds? - + Voulez-vous vraiment supprimer les flux RSS sélectionnés ? - + Please choose a new name for this RSS feed Veuillez choisir un nouveau nom pour ce flux RSS - + New feed name: Nouveau nom du flux : - + Name already in use Nom déjà utilisé - + This name is already used by another item, please choose another one. Ce nom est déjà utilisé par un autre élément, veuillez en choisir un autre. - + Date: Date : - + Author: Auteur : - + Unread Non lu - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Échec de l'ouverture du fichier RSS téléchargé. - - - - Invalid RSS feed at '%1'. - + Échec de l'ouverture du fichier RSS téléchargé. @@ -5839,204 +5962,410 @@ Ce message d'avertissement ne sera plus affiché. Numbre maximum d'articles par flux : + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Parcourir... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Répertoire surveillé - - Download here - Télécharger ici + + Save Files to + + + + Download here + Télécharger ici - Download path - + Chemin de téléchargement SearchCategories - All categories - Toutes catégories + Toutes catégories - Movies - Films + Films - TV shows - Séries TV + Séries TV - Music - Musique + Musique - Games - Jeux + Jeux - Anime - Animé + Animé - Software - Logiciels + Logiciels - Pictures - Photos + Photos - Books - Livres + Livres SearchEngine - - - Search - Rechercher + Rechercher - Please install Python to use the Search Engine. - + Veuillez installer Python afin d'utiliser le moteur de recherche. - Empty search pattern - Motif de recherche vide + Motif de recherche vide - Please type a search pattern first - Veuillez entrer un motif de recherche + Veuillez entrer un motif de recherche - Searching... - Recherche en cours… + Recherche en cours… - Stop - Arrêter + Arrêter - - Search Engine - Moteur de recherche + Moteur de recherche - - Search has finished - Fin de la recherche + Fin de la recherche - An error occurred during search... - Une erreur s'est produite lors de la recherche… + Une erreur s'est produite lors de la recherche… - - Search aborted - La recherche a été interrompue + La recherche a été interrompue - All enabled - + Tout activé - All engines - + Tous les moteurs - - Multiple... - + Plusieurs… - - Results <i>(%1)</i>: i.e: Search results + Résultats <i>(%1)</i> : + + + Search returned no results + La recherche n'a retourné aucun résultat + + + Stopped + Arrêté + + + + Unknown search engine plugin file format. - - Search returned no results - La recherche n'a retourné aucun résultat + + A more recent version of this plugin is already installed. + - - Stopped - Arrêtée + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Toutes catégories + + + + Movies + Films + + + + TV shows + Séries TV + + + + Music + Musique + + + + Games + Jeux + + + + Anime + Animé + + + + Software + Logiciels + + + + Pictures + Photos + + + + Books + Livres SearchListDelegate - - + + Unknown - Inconnue + Inconnu SearchTab - + Name i.e: file name Nom - + Size i.e: file size Taille - + Seeders i.e: Number of full sources Sources complètes - + Leechers i.e: Number of partial sources Sources partielles - + Search engine Moteur de recherche + + SearchWidget + + + + + + + Search + + + + + Status: + Statut : + + + + + Stopped + + + + + Download + Télécharger + + + + Go to description page + Aller à la page de description + + + + Copy description page URL + Copier l'URL de la page de description + + + + Search plugins... + + + + + All enabled + Tout activé + + + + All plugins + + + + + + Multiple... + Plusieurs… + + + + + + Search Engine + Moteur de recherche + + + + Please install Python to use the Search Engine. + Veuillez installer Python afin d'utiliser le moteur de recherche. + + + + Empty search pattern + Motif de recherche vide + + + + Please type a search pattern first + Veuillez entrer un motif de recherche + + + + + Results <i>(%1)</i>: + i.e: Search results + Résultats <i>(%1)</i> : + + + + Searching... + Recherche en cours… + + + + Stop + Arrêter + + + + + Search has finished + Fin de la recherche + + + + + Search aborted + La recherche a été interrompue + + + + Search returned no results + La recherche n'a retourné aucun résultat + + + + Search has failed + + + + + An error occurred during search... + Une erreur s'est produite lors de la recherche… + + ShutdownConfirmDlg @@ -6093,52 +6422,52 @@ Ce message d'avertissement ne sera plus affiché. Total Upload - + Envoi (total) Total Download - + Téléchargement (total) Payload Upload - + Envoi (charge utile) Payload Download - + Téléchargement (charge utile) Overhead Upload - + Envoi (surplus) Overhead Download - + Téléchargement (surplus) DHT Upload - + Envoi (DHT) DHT Download - + Téléchargement (DHT) Tracker Upload - + Envoi (tracker) Tracker Download - + Téléchargement (tracker) @@ -6146,82 +6475,82 @@ Ce message d'avertissement ne sera plus affiché. Period: - + Période : 1 Minute - + 1 minute 5 Minutes - + 5 minutes 30 Minutes - + 30 minutes 6 Hours - + 6 heures Select Graphs - + Sélectionner les graphiques Total Upload - + Envoi (total) Total Download - + Téléchargement (total) Payload Upload - + Envoi (charge utile) Payload Download - + Téléchargement (charge utile) Overhead Upload - + Envoi (surplus) Overhead Download - + Téléchargement (surplus) DHT Upload - + Envoi (DHT) DHT Download - + Téléchargement (DHT) Tracker Upload - + Envoi (tracker) Tracker Download - + Téléchargement (tracker) @@ -6430,7 +6759,7 @@ Ce message d'avertissement ne sera plus affiché. Errored (0) - + Erreur (0) @@ -6475,30 +6804,34 @@ Ce message d'avertissement ne sera plus affiché. Errored (%1) - + Erreur (%1) TorrentContentModel - + Name Nom - + Size Taille - + Progress Progression - + + Download Priority + + + Priority - Priorité + Priorité @@ -6531,13 +6864,13 @@ Ce message d'avertissement ne sera plus affiché. Torrent Files (*.torrent) - + Fichiers torrent (*.torrent) Torrent was created successfully: %1 %1 is the path of the torrent - + Torrent créé avec succès : %1 @@ -6608,7 +6941,7 @@ Ce message d'avertissement ne sera plus affiché. '%1' Files %1 is a file extension (e.g. PDF) - + Fichiers de « %1 » @@ -6850,38 +7183,38 @@ Ce message d'avertissement ne sera plus affiché. Alerte (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Impossible de décoder la favicon pour l'URL « %1 ». Tentative de téléchargement de la favicon en format PNG. - + Couldn't decode favicon for URL '%1'. - + Impossible de décoder la favicon pour l'URL « %1 ». - + Couldn't download favicon for URL '%1'. Reason: %2 - + Impossible de télécharger la favicon pour l'URL « %1 ». Raison : %2 - + Resume torrents Démarrer les torrents - + Pause torrents Mettre en pause les torrents - + Delete torrents Supprimer les torrents - - + + All (%1) this is for the tracker filter Tous (%1) @@ -6974,7 +7307,7 @@ Ce message d'avertissement ne sera plus affiché. Copy tracker URL - + Copier l'URL du tracker @@ -7109,13 +7442,13 @@ Ce message d'avertissement ne sera plus affiché. Queued for checking i.e. torrent is queued for hash checking - + Vérification planifiée Checking resume data used when loading the torrents from disk after qbt is launched. It checks the correctness of the .fastresume file. Normally it is completed in a fraction of a second, unless loading many many torrents. - + Vérification des données de relancement @@ -7131,13 +7464,13 @@ Ce message d'avertissement ne sera plus affiché. Errored torrent status, the torrent has an error - + Erreur %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (partagé pendant %2) @@ -7149,17 +7482,17 @@ Ce message d'avertissement ne sera plus affiché. TransferListFiltersWidget - + Status Statut - + Labels Catégories - + Trackers Trackers @@ -7402,7 +7735,7 @@ Ce message d'avertissement ne sera plus affiché. Web UI Error - Unable to bind Web UI to port %1 - + Erreur de l'interface Web – Impossible d'assigner l'interface Web au port %1 @@ -7410,12 +7743,12 @@ Ce message d'avertissement ne sera plus affiché. An advanced BitTorrent client programmed in <nobr>C++</nobr>, based on Qt toolkit and libtorrent-rasterbar. - + Un client BitTorrent avancé programmé en <nobr>C++</nobr>, basé sur le toolkit Qt et libtorrent-rasterbar. Copyright %1 2006-2015 The qBittorrent project - + Copyright %1 2006-2015 The qBittorrent project @@ -7443,17 +7776,17 @@ Ce message d'avertissement ne sera plus affiché. Add Peers - + Ajouter des pairs List of peers to add (one per line): - + Liste des pairs à ajouter (un par ligne) : Format: IPv4:port / [IPv6]:port - + Format : IPv4:port / [IPv6]:port @@ -7574,7 +7907,7 @@ Ce message d'avertissement ne sera plus affiché. 16 KiB - 512 Kio {16 ?} + 16 Kio @@ -7619,12 +7952,12 @@ Ce message d'avertissement ne sera plus affiché. 8 MiB - 4 Mio {8 ?} + 8 Mio 16 MiB - 4 Mio {16 ?} + 16 Mio @@ -7698,205 +8031,155 @@ Ce message d'avertissement ne sera plus affiché. engineSelect - Search plugins - Greffons de recherche + Greffons de recherche - Installed search engines: - Moteurs de recherche installés : + Moteurs de recherche installés : - Name - Nom + Nom - Version - + Version - Url - URL + URL - - Enabled - Activé + Activé - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - D’avantage de greffons de recherche ici : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + D’avantage de greffons de recherche ici : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Installer un nouveau + Installer un nouveau - Check for updates - Mettre à jour + Mettre à jour - Close - Fermer + Fermer - Uninstall - Désinstaller + Désinstaller engineSelectDlg - Uninstall warning - Désinstallation + Désinstallation - Uninstall success - Désinstallation réussie + Désinstallation réussie - Invalid plugin - + Greffoninvalide - The search engine plugin is invalid, please contact the author. - + Le greffon de moteur de recherche est invalide, veuillez contacter son auteur. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - + Une version plus récente du greffon de recherche « %1 » est déjà installée. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - + Le greffon du moteur de recherche « %1 » n'a pas pu être mis à jour, conservation de l'ancienne version. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - + Le greffon du moteur de recherche « %1 » n'a pas pu être installé. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + Le greffon du moteur de recherche « %1 » a été mis à jour avec succès. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + Le greffon du moteur de recherche « %1 » a été installé avec succès. - The link doesn't seem to point to a search engine plugin. - Le lien ne semble pas pointer sur un plugin de moteur de recherche. + Le lien ne semble pas pointer sur un plugin de moteur de recherche. - Select search plugins - Sélectionnez les greffons + Sélectionnez les greffons - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - + Désolé, l'installation du greffon du moteur de recherche « %1 » a échoué. - - - - - Search plugin install - Installation d'un greffon de recherche + Installation d'un greffon de recherche - - - Yes - Oui + Oui - - - - No - Non + Non - qBittorrent search plugin - + Greffon de recherche qBittorrent - - - - Search plugin update - Mise à jour du greffon de recherche + Mise à jour du greffon de recherche - - Sorry, update server is temporarily unavailable. - Désolé, le serveur de mise à jour est temporairement indisponible. + Désolé, le serveur de mise à jour est temporairement indisponible. - All your plugins are already up to date. - Tous vos greffons de recherche sont déjà à jour. + Tous vos greffons de recherche sont déjà à jour. - All selected plugins were uninstalled successfully - Tous les greffons sélectionnés ont été désinstallés avec succès + Tous les greffons sélectionnés ont été désinstallés avec succès - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - + Certains greffons n'ont pas pu être désinstallés car ils sont intégrés à qBittorrent. Seuls ceux que vous avez installés par vous-même peuvent être désinstallés. +Ces greffons ont été désactivés. - Invalid link - Lien invalide + Lien invalide - - New search engine plugin URL - Adresse du nouveau greffon de recherche + Adresse du nouveau greffon de recherche - - URL: - Adresse : + Adresse : @@ -7954,12 +8237,12 @@ Those plugins were disabled. Python not detected - + Python non détecté Python version: %1 - + Version de Python : %1 @@ -8026,169 +8309,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Choisir un dossier pour l'export - - - - + + + + Choose a save directory Choisir un répertoire de sauvegarde - + Add directory to scan Ajouter un dossier à surveiller - - - Supported parameters (case sensitive): - - - - - %N: Torrent name - - - - - %L: Label - - - %F: Content path (same as root path for multifile torrent) - + Supported parameters (case sensitive): + Paramètres supportés (sensible à la casse) : - %R: Root path (first torrent subdirectory path) - + %N: Torrent name + %N : Nom du torrent - %D: Save path - + %L: Label + %L : Catégorie - %C: Number of files - + %F: Content path (same as root path for multifile torrent) + %F : Chemin vers le contenu (même chemin que le chemin racine pour les torrents composés de plusieurs fichiers) - %Z: Torrent size (bytes) - + %R: Root path (first torrent subdirectory path) + %R : Chemin racine (chemin du premier sous-dossier du torrent) - %T: Current tracker - + %D: Save path + %D : Chemin de sauvegarde - %I: Info hash - + %C: Number of files + %C : Nombre de fichiers - + + %Z: Torrent size (bytes) + %Z : Taille du torrent (en octets) + + + + %T: Current tracker + %T : Tracker actuel + + + + %I: Info hash + %I : Hachage d'information + + + Folder is already being watched. Ce dossier est déjà surveillé. - + Folder does not exist. Ce dossier n'existe pas. - + Folder is not readable. Ce dossier n'est pas accessible en lecture. - + Failure Échec - + Failed to add Scan Folder '%1': %2 Impossible d'ajouter le dossier surveillé « %1 » : %2 - - + + Filters Filtres - - + + Choose an IP filter file - + Choisissez un filtre d'adresses IP - + SSL Certificate Certificat SSL - + SSL Key Clé SSL - + Parsing error Erreur de traitement - + Failed to parse the provided IP filter Impossible de charger le filtre IP fourni - + Successfully refreshed Correctement rechargé - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Le filtre IP a été correctement chargé : %1 règles ont été appliquées. - + Invalid key Clé invalide - + This is not a valid SSL key. Ceci n'est pas une clé SSL valide. - + Invalid certificate Certificat invalide - + This is not a valid SSL certificate. Ceci n'est pas un certificat SSL valide. - + The start time and the end time can't be the same. Les heures de début et de fin ne peuvent être les mêmes. - + Time Error Erreur de temps @@ -8196,24 +8479,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Source du greffon + Source du greffon - Search plugin source: - Source du greffon de recherche : + Source du greffon de recherche : - Local file - Fichier local + Fichier local - Web link - Lien web + Lien web @@ -8242,40 +8521,32 @@ Those plugins were disabled. search_engine - - Search - Recherche + Recherche - Status: - Statut : + Statut : - Stopped - Arrêtée + Arrêtée - Download - Télécharger + Télécharger - Go to description page - Aller à la page de description + Aller à la page de description - Copy description page URL - + Copier l'URL de la page de description - Search engines... - Moteurs de recherche… + Moteurs de recherche… diff --git a/src/lang/qbittorrent_gl.ts b/src/lang/qbittorrent_gl.ts index 3945adc2d..23072fd6b 100644 --- a/src/lang/qbittorrent_gl.ts +++ b/src/lang/qbittorrent_gl.ts @@ -127,7 +127,7 @@ Set as default label - + Estabelecer como etiqueta predeterminada @@ -175,172 +175,172 @@ Non descargar - - + + I/O Error Erro de E/S - + The torrent file does not exist. O ficheiro torrent non existe. - + Invalid torrent Torrent incorrecto - + Failed to load the torrent: %1 Produciuse un fallo ao cargar o torrent: %1 - - + + Already in download list Xa está na lista de descargas. - + Free disk space: %1 Espazo libre no disco: %1 - + Not Available This comment is unavailable Non dispoñíbel - + Not Available This date is unavailable Non dispoñíbel - + Not available Non dispoñíbel - + Invalid magnet link Ligazón magnet incorrecta - + Torrent is already in download list. Trackers were merged. O torrent xa está na lista de descargas. Mesturáronse os localizadores. - - + + Cannot add torrent Non é posíbel engadir o torrent - + Cannot add this torrent. Perhaps it is already in adding state. Non é posíbel engadir este torrent. Quizais xa está noutro estado de engadir. - + This magnet link was not recognized Non se recoñeceu esta ligazón magnet - + Magnet link is already in download list. Trackers were merged. A ligazón magnet xa está na lista de descargas. Mesturáronse os localizadores. - + Cannot add this torrent. Perhaps it is already in adding. Non foi posíbel engadir este torrent. Quizais xa se estea engadindo. - + Magnet link Ligazón magnet - + Retrieving metadata... Recuperando os metadatos... - + Not Available This size is unavailable. Non dispoñíbel - - - + + + Choose save path Seleccionar a ruta onde gardar - + Rename the file Cambiar o nome do ficheiro - + New name: Nome novo: - - + + The file could not be renamed Non foi posíbel cambiar o nome do ficheiro - + This file name contains forbidden characters, please choose a different one. Este nome de ficheiro contén caracteres prohibidos, escolla un nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome de ficheiro xa existe neste cartafol. Use un nome diferente. - + The folder could not be renamed Non foi posíbel cambiar o nome do cartafol - + Rename... Cambiar o nome... - + Priority Prioridade - + Invalid metadata Metadatos incorrectos - + Parsing metadata... Analizando os metadatos... - + Metadata retrieval complete Completouse a recuperación dos metadatos - + Download Error Erro de descarga @@ -431,10 +431,6 @@ Resolve peer host names Mostrar os servidores dos pares - - Maximum number of half-open connections [0: Disabled] - Número máximo de conexións semi-abertas [0: Desactivado] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Número máximo de conexións semi-abertas [0: Ilimitado] @@ -661,205 +657,205 @@ &Exportar... - + Matches articles based on episode filter. Resultados co filtro de episodios. - + Example: Exemplo: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match son os episodios 2, 5 e 8 até o 15, e do 30 en adiante da primeira tempada - + Episode filter rules: Regras do filtro de episodios: - + Season number is a mandatory non-zero value O número da tempada non pode ser cero - + Episode number is a mandatory non-zero value O número de episodio non pode ser cero - + Filter must end with semicolon O filtro debe rematar con punto e coma - + Three range types for episodes are supported: Acéptanse tres tipos de intervalo para os episodios: - + Single number: <b>1x25;</b> matches episode 25 of season one Número simple: <b>1x25;</b> é o episodio 25 da primeira tempada - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Intervalo normal: <b>1x25-40;</b> son os episodios 25 ao 40 da primeira tempada - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Intervalo infinito: <b>1x25-;</b> son os episodios do 25 en diante da primeira tempada - + Last Match: %1 days ago Último resultado: hai %1 días - + Last Match: Unknown Último resultado: descoñecido - + New rule name Nome da regra nova - + Please type the name of the new download rule. Escriba o nome da regra de descarga nova. - - + + Rule name conflict Conflito co nome da regra - - + + A rule with this name already exists, please choose another name. Xa existe unha regra con este nome. Escolla un diferente. - + Are you sure you want to remove the download rule named '%1'? Está seguro que desexa eliminar a regra de descarga chamada %1? - + Are you sure you want to remove the selected download rules? Está seguro que desexa eliminar as regras de descarga seleccionadas? - + Rule deletion confirmation Confirmación de eliminación da regra - + Destination directory Cartafol de destino - + Invalid action A acción non é válida - + The list is empty, there is nothing to export. A lista está baleira, non hai nada que exportar. - + Where would you like to save the list? Onde desexa gardar a lista? - + Rules list (*.rssrules) Lista de regras (*.rssrules) - + I/O Error Erro de E/S - + Failed to create the destination file Produciuse un fallo ao crear o cartafol de destino - + Please point to the RSS download rules file Indique o ficheiro de regras de descarga RSS - + Rules list Lista de regras - + Import Error Erro de importación - + Failed to import the selected rules file Produciuse un fallo ao importar o ficheiro de regras seleccionado - + Add new rule... Engadir unha regra nova... - + Delete rule Eliminar a regra - + Rename rule... Cambiar o nome da regra... - + Delete selected rules Eliminar as regras seleccionadas - + Rule renaming Cambio do nome da regra - + Please type the new rule name Escriba o nome da regra nova - + Regex mode: use Perl-like regular expressions Modo Regex: usa Perl como expresións regulares - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Modo comodín: pode usar<ul><li>? para substituír calquera caracter</li><li>* para substituír o cero ou máis dun caracter</li><li>Espazos en branco úsanse como operador AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Modo comodín: pode usar<ul><li>? para substituír calquera caracter</li><li>* para substituír o cero ou máis dun caracter</li><li>| úsase como operador OR</li></ul> @@ -952,65 +948,57 @@ %1 alcanzou a taxa máxima estabelecida. Detendo... - Error: Could not create torrent export directory: '%1' - Erro: Non foi posíbel crear o cartafol de exportación de torrents: %1. - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Erro: non foi posíbel exportar o torrent %1, quizais non ten aínda metadatos. - - - + System network status changed to %1 e.g: System network status changed to ONLINE O estado da rede do sistema cambiou a %1 - + ONLINE EN LIÑA - + OFFLINE FÓRA DE LIÑA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuración da rede de %1 cambiou, actualizando as vinculacións da sesión - + Unable to decode '%1' torrent file. Non foi posíbel decodificar o ficheiro torrent %1. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descarga recursiva do ficheiro %1 integrado no torrent %2 - + Couldn't save '%1.torrent' Non foi posíbel gardar %1.torrent - + because %1 is disabled. this peer was blocked because uTP is disabled. porque o %1 está desactivado. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque o %1 está desactivado. - + URL seed lookup failed for URL: '%1', message: %2 Fallou a busca da semente na URL: %1, mensaxe: %2 @@ -1027,178 +1015,164 @@ '%1' eliminouse da lista de transferencias. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', espere... - Torrent Export: torrent is invalid, skipping... - Exportación de torrents: o torrent non é válido, saltándoo... - - - + DHT support [ON] Compatibiliade DHT [ACTIVADA] - + DHT support [OFF]. Reason: %1 Compatibilidade DHT [DESACTIVADA]. Razón: %1 - + DHT support [OFF] Soporte DHT [APAGADO] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tentando escoitar en todos os portos da interface: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent fallou ao escoitar en todos os portos da interface: %1. Razón: %2 - - - + The network interface defined is invalid: %1 A interface indicada para a rede non é válida: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent está tentando escoitar na interface %1 porto: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent non atopou un enderezo local %1 no que escoitar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent fallou ao escoitar en todos os portos da interface: %1. Razón: %2. {1.?} + qBittorrent fallou ao escoitar en cada porto da interface: %1. Razón: %2. - + Tracker '%1' was added to torrent '%2' Engadiuse o localizador «%1» ao torrent «%2» - + Tracker '%1' was deleted from torrent '%2' Eliminouse o localizador «%1» do torrent «%2» - + URL seed '%1' was added to torrent '%2' A semente da URL «%1» engadiuse ao torrent «%2» - + URL seed '%1' was removed from torrent '%2' A semente da URL «%1» eliminouse do torrent «%2» - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Non é posíbel continuar o torrent «%1». - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analizouse correctamente o filtro IP indicado: aplicáronse %1 regras. - + Error: Failed to parse the provided IP filter. Erro: produciuse un fallo ao analizar o filtro IP indicado. - + Couldn't add torrent. Reason: %1 Non foi posíbel engadir o torrent. Razón: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) Retomouse '%1' (continuación rápida) - + '%1' added to download list. 'torrent name' was added to download list. Engadiuse %1 á lista de descargas. - + An I/O error occurred, '%1' paused. %2 Produciuse un erro de E/S, '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: produciuse un fallo no mapeado dos portos, mensaxe: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: o mapeado dos portos foi correcto, mensaxe: %1 - + due to IP filter. this peer was blocked due to ip filter. debido ao filtro IP. - + due to port filter. this peer was blocked due to port filter. debido ao filtro de portos. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. debido ás restricións do modo mixto i2P. - + because it has a low port. this peer was blocked because it has a low port. porque ten un porto baixo. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent escoita correctamente no porto da interface %1 porto: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4. {1 ?} {2/%3.?} + qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP externa: %1 @@ -1212,12 +1186,12 @@ Non foi posíbel mover o torrent: «%1». Razón: %2 - + File sizes mismatch for torrent '%1', pausing it. Os tamaños dos ficheiros non coinciden co torrent %1 , deténdoo. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Os datos para a continuación rápida do torrent %1 foron rexeitados. Razón: %2, Comprobando de novo... @@ -1242,7 +1216,7 @@ Valor - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. As chaves comúns para as cookies son '%1', '%2'. @@ -1310,12 +1284,12 @@ Debería obter esta información nas preferencias do navegador. FeedListWidget - + RSS feeds Fontes RSS - + Unread Sen ler @@ -1412,10 +1386,6 @@ Debería obter esta información nas preferencias do navegador. Only one link per line Só unha ligazón por liña - - Download local torrent - Descargar un torrent local - Download @@ -1589,20 +1559,30 @@ Debería obter esta información nas preferencias do navegador. Save files to location: - Gardar os ficheiros na localización: + Gardar os ficheiros na localización: Label: - Etiqueta: + Etiqueta: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Descargado @@ -1615,7 +1595,7 @@ Debería obter esta información nas preferencias do navegador. Upload local torrent - + Enviar torrent local @@ -1973,10 +1953,6 @@ Debería obter esta información nas preferencias do navegador. &About &Sobre - - Exit - Saír - &Pause @@ -2007,22 +1983,6 @@ Debería obter esta información nas preferencias do navegador. E&xit &Saír - - Options - Opcións - - - Resume - Continuar - - - Pause - Pausar - - - Delete - Eliminar - Open URL @@ -2040,19 +2000,15 @@ Debería obter esta información nas preferencias do navegador. - + Show Mostrar - + Check for program updates Buscar actualizacións do programa - - Lock qBittorrent - Bloquear o qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Debería obter esta información nas preferencias do navegador. - + Execution Log Rexistro de execución - + Clear the password Limpar o contrasinal - + Filter torrent list... Filtrar a lista de torrents... - + &Set Password E&stabelecer o contrasinal - + &Clear Password &Limpar o contrasinal - + Transfers Transferencias - + Torrent file association Asociación cos ficheiros torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent non é o aplicativo predefinido para abrir os ficheiros torrent nin as ligazóns Magnet Desexa asociar o qBittorrent aos ficheiros torrent e ás ligazóns Magnet? - + Icons Only Só iconas - + Text Only Só texto - + Text Alongside Icons Texto e iconas - + Text Under Icons Texto debaixo das iconas - + Follow System Style Seguir o estilo do sistema - - - + + + UI lock password Contrasinal de bloqueo da interface - - - + + + Please type the UI lock password: Escriba un contrasinal para bloquear a interface: - + The password should contain at least 3 characters O contrasinal debe conter cando menos 3 caracteres - + Password update Actualizar o contrasinal - + The UI lock password has been successfully updated O contrasinal de bloqueo da interface actualizouse correctamente - + Are you sure you want to clear the password? Está seguro de limpar o contrasinal? - + Search Buscar - + Transfers (%1) Transferencias (%1) - + Error Erro - + Failed to add torrent: %1 Produciuse un fallo ao engadir o torrent: %1 - + Download completion FInalización da descarga - + I/O Error i.e: Input/Output Error Erro de E/S - + Recursive download confirmation Confirmación de descarga recursiva - + Yes Si - + No Non - + Never Nunca - + Global Upload Speed Limit Límite global de velocidade de envío - + Global Download Speed Limit Límite global de velocidade de descarga - + &No &Non - + &Yes &Si - + &Always Yes &Sempre si - + Python found in %1 Atopouse Python en %1 - + Old Python Interpreter Intérprete antigo de Python - + qBittorrent Update Available Hai dipoñíbel unha actualización do qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Xa usa a última versión do qBittorrent - + Undetermined Python version Versión indeterminada de Python - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Finalizou a descarga de %1. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Desexa asociar o qBittorrent aos ficheiros torrent e ás ligazóns Magnet? - + The torrent '%1' contains torrent files, do you want to proceed with their download? O torrent %1 contén ficheiros torrent, desexa continuar coa descarga? - + Couldn't download file at URL '%1', reason: %2. Non foi posíbel descargar o ficheiro desde a URL: %1, razón: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. A súa versión de Python %1 está desactualizada. Anove á última versión para que os motores de busca funcionen. Requerimento mínimo: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Non foi posíbel determinar a súa versión de Python (%1). Desactivouse o motor de busca. - - + + Missing Python Interpreter Falta o intérprete de Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Precísase Python para usar o motor de busca pero non parece que estea instalado. Desexa instalalo agora? - + Python is required to use the search engine but it does not seem to be installed. Precísase Python para usar o motor de busca pero non parece que estea instalado. - A new version is available. Update to version %1? - Hai dispoñíbel unha nova versión. + Hai dispoñíbel unha nova versión. Desexa actualizar á versión %1? - + No updates available. You are already using the latest version. Non hai actualizacións dispoñíbeis. Xa usa a última versión. - + &Check for Updates Buscar a&ctualizacións - + Checking for Updates... Buscando actualizacións... - + Already checking for program updates in the background Xa se están buscando actualizacións do programa en segundo plano - + Python found in '%1' Atopouse Python en %1 - + Download error Erro de descarga - + Python setup could not be downloaded, reason: %1. Please install it manually. Non foi posíbel descargar a configuración de Python, razón:%1. Instálea manualmente. - - + + Invalid password Contrasinal incorrecto - - + + RSS (%1) RSS (%1) - + URL download error Erro na descarga desde a URL - + The password is invalid O contrasinal é incorrecto - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Vel. de descarga: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Vel. de envío: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, E: %2] qBittorrent %3 - + Hide Ocultar - + Exiting qBittorrent Saíndo do qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Estanse transferindo algúns ficheiros. Está seguro que desexa saír do qBittorrent? - + Open Torrent Files Abrir os ficheiros torrent - + Torrent Files Ficheiros torrent - + Options were saved successfully. Os axustes gardáronse correctamente. @@ -2443,17 +2404,17 @@ Está seguro que desexa saír do qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. O DNS dinámico actualizouse correctamente. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Erro de DNS dinámico: o servizo non está dispoñíbel temporalmente, intentarase de novo dentro de 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Erro de DNS dinámico: o nome do servidor indicado non existe nesta conta específica. @@ -2463,32 +2424,32 @@ Está seguro que desexa saír do qBittorrent? Erro de DNS dinámico: nome do usuario/contrasinal incorrectos. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinámico: o qBittorrent está na lista negra deste servizo, por favor informe deste erro en http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinámico: o servizo devolveu %1 , por favor informe deste erro en http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Erro de DNS dinámico: o nome do usuario foi bloqueado por un abuso. - + Dynamic DNS error: supplied domain name is invalid. Erro de DNS dinámico: o nome do dominio indicado non é correcto. - + Dynamic DNS error: supplied username is too short. Erro de DNS dinámico: o nome do dominio indicado é curto de máis. - + Dynamic DNS error: supplied password is too short. Erro de DNS dinámico: o contrasinal indicado é curto de máis. @@ -2515,154 +2476,161 @@ Está seguro que desexa saír do qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Cargouse a base de datos de GeoIP. TIpo: %1. Tempo de construción: %2. - + Couldn't load GeoIP database. Reason: %1 Non foi posíbel cargar a base de datos de GeoIP. Razón: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/D - Asia/Pacific Region - Rexión Asia/Pacífico + Rexión Asia/Pacífico + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emiratos Árabes Unidos - + Afghanistan Afganistán - + Antigua and Barbuda Antigua e Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antillas Holandesas + Antillas Holandesas - + Angola Angola - + Antarctica Antártida - + Argentina Arxentina - + American Samoa Samoa Americana - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaidjan - + Bosnia and Herzegovina Bosnia-Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Bélxica - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Está seguro que desexa saír do qBittorrent? Brunei Darussalam - Bolivia - Bolivia + Bolivia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Illa Bouvet - + Botswana Botswana - + Belarus Bielorrusia - + Belize Belize - + Canada Canadá - + Cocos (Keeling) Islands Illas Cocos (Keelings) - + Congo, The Democratic Republic of the República Democrática do Congo - + Central African Republic República Centro Africana - + Congo Congo - + Switzerland Suíza - Cote D'Ivoire - Costa do Marfil + Costa do Marfil - + Cook Islands Illas Cook - + Chile Chile - + Cameroon Camerún - + China China - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + + Curacao + + + + Christmas Island Illa de Nadal - + Cyprus Chipre - + Czech Republic República Checa - + Germany Alemaña - + Djibouti Djibuti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Alxeria - + Ecuador Ecuador - + Estonia Estonia - + Egypt Exipto - + Western Sahara Sahara Occidental - + Eritrea Eritrea - + Spain Estado Español - + Ethiopia Etiopía - + Finland Finlandia - + Fiji Fixi - + Falkland Islands (Malvinas) Illas Malvinas (Falkland) - + Micronesia, Federated States of Micronesia - + Faroe Islands Illas Faroe - + France Francia - France, Metropolitan - Francia, Metopolitana + Francia, Metopolitana - + Gabon Gabón - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Xeorxia - + French Guiana Güiana Francesa - + Ghana Ghana - + Gibraltar Xibraltar - + Greenland Groenlandia - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guinea Ecuatorial - + Greece Grecia - + South Georgia and the South Sandwich Islands Illas Xeorxia e Sandwich do Sur - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Güiana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Illa Heard e Illas McDonald - + Honduras Honduras - + Croatia Croacia - + Haiti Haití - + Hungary Hungría - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Territorio Oceánico das Indias Británicas - + Iraq Iraq - + Iran, Islamic Republic of Irán - + Iceland Islandia - + Italy Italia - + Jamaica Xamaica - + Jordan Xordania - + Japan Xapón - + Kenya Kenia - + Kyrgyzstan Kirguizstán - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comoros - + Saint Kitts and Nevis Saint Kitts e Nevis - + Korea, Democratic People's Republic of República Popular Democrática de Korea - + Korea, Republic of República de Korea - + Kuwait Kuwait - + Cayman Islands Illas Caimán - + Kazakhstan Kazakhstán - + Lao People's Democratic Republic República Democrática Popular de Laos - + Lebanon Líbano - + Saint Lucia Santa Lucía - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luxemburgo - + Latvia Letonia - Libyan Arab Jamahiriya - Libia + Libia - + Morocco Marrocos - + Monaco Mónaco - + Moldova, Republic of Moldavia - + Madagascar Madagascar - + Marshall Islands Illas Marshall - Macedonia - Macedonia + Macedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - Macau - Macau + Macau - + Northern Mariana Islands Illas Marianas do Norte - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauricio - + Maldives Maldivas - + Malawi Malawi - + Mexico México - + Malaysia Malasia - + Mozambique Mozambique - + Namibia Namibia - + New Caledonia Nova Caledonia - + Niger Níxer - + Norfolk Island Illa Norfolk - + Nigeria Nixeria - + Nicaragua Nicaragua - + Netherlands Países Baixos - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Siria - + Oman Omán - + Panama Panamá - + Peru Perú - + French Polynesia Polinesia Francesa - + Papua New Guinea Papúa Nova Guinea - + Philippines Filipinas - + Pakistan Paquistán - + Poland Polonia - + Saint Pierre and Miquelon Saint Pierre e Miquelon - Pitcairn Islands - Illas Pitcairn + Illas Pitcairn - + Puerto Rico Puerto Rico - Palestinian Territory - Territorios Palestinos + Territorios Palestinos - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunión - + Romania Rumanía - + Russian Federation Federación Rusa - + Rwanda Ruanda - + Saudi Arabia Arabia Saudí - + Solomon Islands Illas Salomón - + Seychelles Seychelles - + Sudan Sudán - + Sweden Suecia - + Singapore Singapur - Saint Helena - Santa Helena + Santa Helena - + Slovenia Eslovenia - + Svalbard and Jan Mayen Illas Svalbard e Jan Mayen - + Slovakia Eslovaquia - + Sierra Leone Serra Leoa - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe San Tomé e Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Siria - + Swaziland Swazilandia - + Turks and Caicos Islands Illas Turks e Caicos - + Chad Chad - + French Southern Territories Territorios Franceses do Sur - + Togo Togo - + Thailand Tailandia - + Tajikistan Tadjikistán - + Tokelau Tokelau - + Turkmenistan Turkmenistán - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor-Leste - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turquía - + Trinidad and Tobago Trinidad e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Ucraína - + Uganda Uganda - + United States Minor Outlying Islands Illas Exteriores Menores dos Estados Unidos - + United States Estados Unidos - + Uruguay Uruguai - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Estado do Vaticano - + Saint Vincent and the Grenadines San Vicente e as Granadinas - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Illas Virxes, británicas - + Virgin Islands, U.S. Illas Virxes, U.S.A. - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Iemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Suráfrica - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Proxy anónimo + Proxy anónimo - Satellite Provider - Provedor de satélite + Provedor de satélite - Other - Outro + Outro - + Aland Islands Illas Alands - + Guernsey Guernsey - + Isle of Man Illa de Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthelemy - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. Non foi posíbel descomprimir o ficheiro da base de datos de GeoIP. - + Couldn't save downloaded GeoIP database file. Non foi posíbel gardar o ficheiro da base de datos de GeoIP. - + Successfully updated GeoIP database. A base de datos de GeoIP actualizouse correctamente. - + Couldn't download GeoIP database file. Reason: %1 Non foi posíbel descargar o ficheiro coa base de datos de GeoIP. Razón: %1 @@ -3838,72 +3856,72 @@ Está seguro que desexa saír do qBittorrent? interested(local) and choked(peer) - interesado(local) e rexeitado(par) + interesado(local) e rexeitado(par) interested(local) and unchoked(peer) - interesado(local) e aceptado(par) + interesado(local) e aceptado(par) interested(peer) and choked(local) - interesado(par) e rexeitado(local) + interesado(par) e rexeitado(local) interested(peer) and unchoked(local) - interesado(par) e aceptado(local) + interesado(par) e aceptado(local) optimistic unchoke - aceptado optimista + aceptado optimista peer snubbed - par desbotado + par desbotado incoming connection - conexión entrante + conexión entrante not interested(local) and unchoked(peer) - non interesado(local) e aceptado(par) + non interesado(local) e aceptado(par) not interested(peer) and unchoked(local) - non interesado(par) e aceptado(local) + non interesado(par) e aceptado(local) peer from PEX - par desde PEX + par de PEX peer from DHT - par de DHT + par de DHT encrypted traffic - tráfico cifrado + tráfico cifrado encrypted handshake - handshake cifrado + handshake cifrado peer from LSD - par desde LSD + par de LSD @@ -3971,123 +3989,73 @@ Está seguro que desexa saír do qBittorrent? Relevancia - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Engadir un par novo... - + Copy selected Copiar selección - - + + Ban peer permanently Bloquear este par pemanentemente - + Manually adding peer '%1'... Engadindo manualmente o par %1... - + The peer '%1' could not be added to this torrent. Non foi posíbel engadir o par %1 a este torrent. - + Manually banning peer '%1'... Bloqueando manualmente o par %1... - - + + Peer addition Adición de pares - + Some peers could not be added. Check the Log for details. Non foi posíbel engadir algúns pares. Mira o rexistro para obter máis información. - + The peers were added to this torrent. Engadíronse os pares a este torrent. - + Are you sure you want to ban permanently the selected peers? Está seguro que desexa bloquear permantemente os pares seleccionados? - + &Yes &Si - + &No &Non - - interested(local) and choked(peer) - interesado(local) e rexeitado(par) - - - interested(local) and unchoked(peer) - interesado(local) e aceptado(par) - - - interested(peer) and choked(local) - interesado(par) e rexeitado(local) - - - interested(peer) and unchoked(local) - interesado(par) e aceptado(local) - - - optimistic unchoke - aceptado optimista - - - peer snubbed - par desbotado - - - incoming connection - conexión entrante - - - not interested(local) and unchoked(peer) - non interesado(local) e aceptado(par) - - - not interested(peer) and unchoked(local) - non interesado(par) e aceptado(local) - - - peer from PEX - par desde PEX - - - peer from DHT - par de DHT - - - encrypted traffic - tráfico cifrado - - - encrypted handshake - handshake cifrado - - - peer from LSD - par desde LSD - PeersAdditionDlg @@ -4125,6 +4093,204 @@ Está seguro que desexa saír do qBittorrent? Azul: anacos dispoñíbeis + + PluginSelectDlg + + + Search plugins + Engadidos de busca + + + + Installed search plugins: + + + + + Name + Nome + + + + Version + Versión + + + + Url + Url + + + + + Enabled + Activado + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pode obter novos engadidos con motores de busca aquí: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instalar un novo + + + + Check for updates + Buscar actualizacións + + + + Close + Pechar + + + + Uninstall + Desinstalar + + + + + + Yes + Si + + + + + + + No + Non + + + + Uninstall warning + Aviso de desinstalación + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Algúns engadidos non se poden desinstalar porque están incluídos no qBittorrent. +Unicamente pode desinstalar os que vostede engada. +Desactiváronse estes engadidos. + + + + Uninstall success + A desinstalación foi correcta + + + + All selected plugins were uninstalled successfully + Desistaláronse correctamente todos os engadidos seleccionados + + + + + New search engine plugin URL + URL novo do engadido co motor de busca + + + + + URL: + URL: + + + + Invalid link + Ligazón incorrecta + + + + The link doesn't seem to point to a search engine plugin. + Esta ligazón non semella apuntar a un engadido cun motor de busca. + + + + Select search plugins + Seleccionar os engadidos de busca + + + + qBittorrent search plugin + Engadido de busca do qBittorrent + + + + + + Search plugin update + Actualización do engadido de busca + + + + All your plugins are already up to date. + Xa están actualizados todos os engadidos. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalación de engadidos de busca + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Fonte do engadido + + + + Search plugin source: + Fonte do engadido de busca: + + + + Local file + Ficheiro local + + + + Web link + Ligazón web + + Preferences @@ -4181,89 +4347,89 @@ Está seguro que desexa saír do qBittorrent? Anexar a extensión !qB aos nomes dos ficheiros incompletos - + Copy .torrent files to: Copiar os ficheiros torrent en: - + Connections Limits Límites da conexión - + Proxy Server Servidor proxy - + Global Rate Limits Límites globais de velocidade - + Apply rate limit to transport overhead Aplicar os límites de velocidade aos datos complementarios do transporte - + Schedule the use of alternative rate limits Programar o uso de límites alternativos de velocidade - + From: from (time1 to time2) De: - + To: time1 to time2 A: - + Enable Local Peer Discovery to find more peers Activar a busca de pares locais (LPD) para encontrar máis pares - + Encryption mode: Modo cifrado: - + Prefer encryption Preferir cifrado - + Require encryption Precisa cifrado - + Disable encryption Desactivar o cifrado - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Máis información</a>) - + Maximum active downloads: Descargas activas máximas: - + Maximum active uploads: Envíos activos máximos: - + Maximum active torrents: Torrents activos máximos: @@ -4288,82 +4454,82 @@ Está seguro que desexa saír do qBittorrent? Mostrar o contido do torrent e algunhas opcións - + Run external program on torrent completion Executar un programa externo ao rematar o torrent - + Port used for incoming connections: Porto usado para as conexións entrantes: - + Random Aleatorio - + Global maximum number of connections: Número máximo global de conexións: - + Maximum number of connections per torrent: Número máximo de conexións por torrent: - + Maximum number of upload slots per torrent: Número máximo de slots de envío por torrent: - - + + Upload: Enviar: - - + + Download: Descargar: - - - - + + + + KiB/s KiB/s - + Remove folder Eliminar o cartafol - + Every day Todos os días - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Clientes de bittorrent compatíbeis co intercambio de pares (µTorrent, Vuze, ...) - + Host: Servidor: - + SOCKS4 SOCKS4 - + Type: Tipo: @@ -4536,262 +4702,262 @@ Está seguro que desexa saír do qBittorrent? Engadir automaticamente os torrents desde: - + Add folder... Engadir un cartafol... - + Copy .torrent files for finished downloads to: Copiar os ficheiros torrent das descargas rematadas a: - + Email notification upon download completion Enviar un correo-e ao rematar a descarga - + Destination email: Correo-e de destino: - + SMTP server: Servidor SMTP: - + This server requires a secure connection (SSL) Este servidor require unha conexión segura (SSL) - + Listening Port Porto de escoita - + Use UPnP / NAT-PMP port forwarding from my router Usar un porto UPnP / NAT-PMP para reencamiñar desde o router - + Use different port on each startup Usar un porto distinto en cada inicio - + Global maximum number of upload slots: Número máximo global de slots de envío: - + Otherwise, the proxy server is only used for tracker connections Doutro xeito, o servidor proxy usarase unicamente para conexións co localizador - + Use proxy for peer connections Usar o proxy para conexións cos pares - + Disable connections not supported by proxies Desactivar as conexións non aceptadas por proxies - + Use proxy only for torrents Usar o proxy só para torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection As fontes RSS, os motores de busca, as actualizacións do software ou calquera outra cousa que non sexan as transferencias do torrent e as operacións relacionadas (como o intercambio de pares) usarán unha conexión directa. - + Info: The password is saved unencrypted Información: o contrasinal gárdase sen cifrar - + IP Filtering Filtrado de IPs - + Reload the filter Recargar o filtro - + Apply to trackers Aplicar aos localizadores - + Apply rate limit to peers on LAN Aplicar o límite da velocidade aos pares no LAN - + When: Cando: - + Weekdays Entresemana - + Weekends Fins de semana - + Rate Limits Settings Axustes dos límites de velocidade - + Enable µTP protocol Activar o protocolo µTP - + Apply rate limit to µTP protocol Aplicar o límite de velocidade ao protocolo uTP - + Privacy Privacidade - + Enable DHT (decentralized network) to find more peers Activar o DHT (rede descentralizada) para encontrar máis pares - + Enable Peer Exchange (PeX) to find more peers Activar o intercambio de pares (PeX) para buscar máis pares - + Look for peers on your local network Buscar pares na súa rede local - + Enable when using a proxy or a VPN connection Activar cando se use unha conexión proxy ou VPN - + Enable anonymous mode Activar o modo anónimo - + Do not count slow torrents in these limits Non ter en conta os torrents lentos nestes límites - + Seed torrents until their ratio reaches Sementar os torrents até alcanzar a taxa - + then despois - + Pause them Pausalos - + Remove them Eliminalos - + Automatically add these trackers to new downloads: Engadir automaticamente estes localizadores ás novas descargas: - + Use UPnP / NAT-PMP to forward the port from my router Usar un porto UPnP / NAT-PMP para reencamiñar desde o router - + Use HTTPS instead of HTTP Usar HTTPS no canto de HTTP - + Import SSL Certificate Importar o certificado SSL - + Import SSL Key Importar a chave SSL - + Certificate: Certificado: - + Alternative Rate Limits Límites alternativos de velocidade - + Key: Chave: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Información sobre certificados</a> - + Bypass authentication for localhost Omitir a autenticación no localhost - + Update my dynamic domain name Actualizar o nome do dominio dinámico - + Service: Servizo: - + Register Rexistro - + Domain name: Nome do dominio: - + (None) (Ningún) @@ -4801,61 +4967,61 @@ Está seguro que desexa saír do qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Porto: - - - + + + Authentication Autenticación - - - - + + + + Username: Nome do usuario: - - - - + + + + Password: Contrasinal: - + Torrent Queueing Torrent na cola - + Share Ratio Limiting Limites da taxa de compartición - + Enable Web User Interface (Remote control) Activar a interface de usuario web (control remoto) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Ruta do filtro (.dat, .p2p, .p2b): @@ -5061,10 +5227,6 @@ Está seguro que desexa saír do qBittorrent? Comment: Comentario: - - Torrent content: - Contido do torrent: - Select All @@ -5587,28 +5749,28 @@ Non se mostrarán máis avisos. Erro descoñecido - - + + Upgrade Anovar - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Actualizou desde unha versión antiga que gardaba as cousas dun xeito distinto. Debe migrar ao novo sistema de gardado. Non lle será posíbel usar unha versión anterior á v3.3.0 de novo. Desexa continuar? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Actualizou desde unha versión antiga que gardaba as cousas dun xeito distinto. Debe migrar ao novo sistema de gardado. Se continúa, non lle será posíbel usar unha versión anterior á v3.3.0 de novo. - + Couldn't migrate torrent with hash: %1 Non foi posíbel migrar o torrent co hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Non foi posíbel mirgrar o torrent. O nome do ficheiro co resumo rápido é incorrecto: %1 @@ -5719,17 +5881,17 @@ Non se mostrarán máis avisos. RSSImp - + Stream URL: URL de fluxo: - + Please type a RSS stream URL Escriba unha url do fluxo rss - + This RSS feed is already in the list. A fonte rss xa está na lista. @@ -5749,75 +5911,92 @@ Non se mostrarán máis avisos. Cartafol novo - + Deletion confirmation Confirmación de eliminación - + Are you sure you want to delete the selected RSS feeds? Confirma a eliminación das fontes RSS seleccionadas? - + Please choose a new name for this RSS feed Escolla un nome novo para esta fonte RSS - + New feed name: Nome novo da fonte: - + Name already in use O nome xa existe - + This name is already used by another item, please choose another one. Este nome xa está usado por un elemento, escolla outro. - + Date: Data: - + Author: Autor: - + Unread Sen ler - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. + A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. - + Automatically downloading '%1' torrent from '%2' RSS feed... - Descargando automaticamente %1 torrent(s) desde %2 fonte(s) RSS... + Descargando automaticamente %1 torrent(s) desde %2 fonte(s) RSS... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Descargando automaticamente %1 torrent(s) desde %2 fonte(s) RSS... RssParser - Failed to open downloaded RSS file. - Fallo na apertura do ficheiro RSS descargado. + Fallo na apertura do ficheiro RSS descargado. - Invalid RSS feed at '%1'. - Fonte RSS incorrecta en %1. + Fonte RSS incorrecta en %1. @@ -5843,168 +6022,249 @@ Non se mostrarán máis avisos. Número máximo de artigos por fonte: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Explorar... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Cartafol explorado - - Download here - Descargar aquí + + Save Files to + + + + Download here + Descargar aquí - Download path - Ruta de descarga + Ruta de descarga SearchCategories - All categories - Todas as categorías + Todas as categorías - Movies - Películas + Películas - TV shows - Programas de TV + Programas de TV - Music - Música + Música - Games - Xogos + Xogos - Anime - Anime + Anime - Software - Software + Software - Pictures - Imaxes + Imaxes - Books - Libros + Libros SearchEngine - - - Search - Buscar + Buscar - Please install Python to use the Search Engine. - Instale Python para usar o motor de busca. + Instale Python para usar o motor de busca. - Empty search pattern - Patrón de busca baleiro + Patrón de busca baleiro - Please type a search pattern first - Escriba primeiro o patrón de busca + Escriba primeiro o patrón de busca - Searching... - Buscando... + Buscando... - Stop - Parar + Parar - - Search Engine - Motor de busca + Motor de busca - - Search has finished - A busca rematou + A busca rematou - An error occurred during search... - Produciuse un erro durante a busca... + Produciuse un erro durante a busca... - - Search aborted - Busca cancelada + Busca cancelada - All enabled - Todo activado + Todo activado - All engines - Todos os motores + Todos os motores - - Multiple... - Múltiple... + Múltiple... - - Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: + Resultados <i>(%1)</i>: - Search returned no results - A busca non obtivo resultados + A busca non obtivo resultados - Stopped - Parado + Parado + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Todas as categorías + + + + Movies + Películas + + + + TV shows + Programas de TV + + + + Music + Música + + + + Games + Xogos + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Imaxes + + + + Books + Libros SearchListDelegate - - + + Unknown Descoñecido @@ -6012,35 +6272,160 @@ Non se mostrarán máis avisos. SearchTab - + Name i.e: file name Nome - + Size i.e: file size Tamaño - + Seeders i.e: Number of full sources Sementadores - + Leechers i.e: Number of partial sources Pares incompletos - + Search engine Motor de busca + + SearchWidget + + + + + + + Search + Buscar + + + + Status: + Estado: + + + + + Stopped + Parado + + + + Download + Descargar + + + + Go to description page + Ir á páxina da descrición + + + + Copy description page URL + Copiar URL da páxina coa descrición + + + + Search plugins... + + + + + All enabled + Todo activado + + + + All plugins + + + + + + Multiple... + Múltiple... + + + + + + Search Engine + Motor de busca + + + + Please install Python to use the Search Engine. + Instale Python para usar o motor de busca. + + + + Empty search pattern + Patrón de busca baleiro + + + + Please type a search pattern first + Escriba primeiro o patrón de busca + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultados <i>(%1)</i>: + + + + Searching... + Buscando... + + + + Stop + Parar + + + + + Search has finished + A busca rematou + + + + + Search aborted + Busca cancelada + + + + Search returned no results + A busca non obtivo resultados + + + + Search has failed + + + + + An error occurred during search... + Produciuse un erro durante a busca... + + ShutdownConfirmDlg @@ -6485,24 +6870,28 @@ Non se mostrarán máis avisos. TorrentContentModel - + Name Nome - + Size Tamaño - + Progress Progreso - + + Download Priority + + + Priority - Prioridade + Prioridade @@ -6854,38 +7243,38 @@ Non se mostrarán máis avisos. Aviso (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Non foi posíbel decodificar o favicon da url «%1». Tentando descargar o favicon en formato PNG. - + Couldn't decode favicon for URL '%1'. Non foi posíbel decodificar o favicon da URL «%1». - + Couldn't download favicon for URL '%1'. Reason: %2 Non foi posíbel descargar o favicon da url «%1». Razón: «%2» - + Resume torrents Continuar os torrents - + Pause torrents Pausar os torrents - + Delete torrents Eliminar os torrents - - + + All (%1) this is for the tracker filter Todos (%1) @@ -7153,17 +7542,17 @@ Non se mostrarán máis avisos. TransferListFiltersWidget - + Status Estado - + Labels Etiquetas - + Trackers Localizadores @@ -7702,207 +8091,156 @@ Non se mostrarán máis avisos. engineSelect - Search plugins - Engadidos de busca + Engadidos de busca - Installed search engines: - Motores de busca instalados: + Motores de busca instalados: - Name - Nome + Nome - Version - Versión + Versión - Url - Url + Url - - Enabled - Activado + Activado - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pode obter novos engadidos con motores de busca aquí: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pode obter novos engadidos con motores de busca aquí: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instalar un novo + Instalar un novo - Check for updates - Buscar actualizacións + Buscar actualizacións - Close - Pechar + Pechar - Uninstall - Desinstalar + Desinstalar engineSelectDlg - Uninstall warning - Aviso de desinstalación + Aviso de desinstalación - Uninstall success - A desinstalación foi correcta + A desinstalación foi correcta - Invalid plugin - Engadido incorrecto + Engadido incorrecto - The search engine plugin is invalid, please contact the author. - O engadido co motor de busca non é correcto, contacte co autor. + O engadido co motor de busca non é correcto, contacte co autor. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Xa está instalada unha versión máis recente do engadido co motor de busca %1. + Xa está instalada unha versión máis recente do engadido co motor de busca %1. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Non foi posíbel actualizar o engadido co motor de busca %1, mantense a versión antiga. + Non foi posíbel actualizar o engadido co motor de busca %1, mantense a versión antiga. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Non foi posíbel instalar o engadido co motor de busca %1. + Non foi posíbel instalar o engadido co motor de busca %1. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - O engadido co motor de busca %1 actualizouse correctamente. + O engadido co motor de busca %1 actualizouse correctamente. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - O engadido co motor de busca %1 instalouse correctamente. + O engadido co motor de busca %1 instalouse correctamente. - The link doesn't seem to point to a search engine plugin. - Esta ligazón non semella apuntar a un engadido cun motor de busca. + Esta ligazón non semella apuntar a un engadido cun motor de busca. - Select search plugins - Seleccionar os engadidos de busca + Seleccionar os engadidos de busca - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Sentímolo pero fallou a instalación do engadido de busca %1. + Sentímolo pero fallou a instalación do engadido de busca %1. - - - - - Search plugin install - Instalación de engadidos de busca + Instalación de engadidos de busca - - - Yes - Si + Si - - - - No - Non + Non - qBittorrent search plugin - Engadido de busca do qBittorrent + Engadido de busca do qBittorrent - - - - Search plugin update - Actualización do engadido de busca + Actualización do engadido de busca - - Sorry, update server is temporarily unavailable. - Sentímolo, o servidor de actualizacións non está dispoñíbel temporalmente. + Sentímolo, o servidor de actualizacións non está dispoñíbel temporalmente. - All your plugins are already up to date. - Xa están actualizados todos os engadidos. + Xa están actualizados todos os engadidos. - All selected plugins were uninstalled successfully - Desistaláronse correctamente todos os engadidos seleccionados + Desistaláronse correctamente todos os engadidos seleccionados - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Algúns engadidos non se poden desinstalar porque están incluídos no qBittorrent. + Algúns engadidos non se poden desinstalar porque están incluídos no qBittorrent. Unicamente pode desinstalar os que vostede engada. Desactiváronse estes engadidos. - Invalid link - Ligazón incorrecta + Ligazón incorrecta - - New search engine plugin URL - URL novo do engadido co motor de busca + URL novo do engadido co motor de busca - - URL: - URL: + URL: @@ -8032,169 +8370,169 @@ Desactiváronse estes engadidos. options_imp - - + + Choose export directory Seleccionar un cartafol de exportación - - - - + + + + Choose a save directory Seleccionar un cartafol onde gardar - + Add directory to scan Engadir un cartafol para explorar - + Supported parameters (case sensitive): Parámetros aceptados (sensíbel ás maiúsc.) - + %N: Torrent name %N: Nome do torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: ruta ao contido (igual á ruta raíz pero para torrents de varios ficheiros) - + %R: Root path (first torrent subdirectory path) %R: ruta raíz (ruta ao subcartafol do primeiro torrent) - + %D: Save path %D: Ruta onde gardar - + %C: Number of files %C: Número de ficheiros - + %Z: Torrent size (bytes) %Z: Tamaño do torrent (bytes) - + %T: Current tracker %T: Localizador actual - + %I: Info hash %I: Info hash - + Folder is already being watched. O cartafol xa está sendo explorado. - + Folder does not exist. O cartafol non existe. - + Folder is not readable. O cartafol non se pode ler. - + Failure Fallo - + Failed to add Scan Folder '%1': %2 Produciuse un fallo ao explorar o cartafol '%1': %2 - - + + Filters Filtros - - + + Choose an IP filter file Seleccionar un ficheiro para os filtros de ip - + SSL Certificate Certificado SSL - + SSL Key Chave SSL - + Parsing error Erro de análise - + Failed to parse the provided IP filter Produciuse un fallo ao analizar o filtro Ip indicado - + Successfully refreshed Actualizado correctamente - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analizouse correctamente o filtro IP indicado: aplicáronse %1 regras. - + Invalid key Chave incorrecta - + This is not a valid SSL key. Esta non é unha chave SSL correcta. - + Invalid certificate Certificado incorrecto - + This is not a valid SSL certificate. Este non é un certificado SSL correcto. - + The start time and the end time can't be the same. A hora de inicio e de remate teñen que ser distintas. - + Time Error Erro de hora @@ -8202,24 +8540,20 @@ Desactiváronse estes engadidos. pluginSourceDlg - Plugin source - Fonte do engadido + Fonte do engadido - Search plugin source: - Fonte do engadido de busca: + Fonte do engadido de busca: - Local file - Ficheiro local + Ficheiro local - Web link - Ligazón web + Ligazón web @@ -8248,40 +8582,32 @@ Desactiváronse estes engadidos. search_engine - - Search - Buscar + Buscar - Status: - Estado: + Estado: - Stopped - Parado + Parado - Download - Descargar + Descargar - Go to description page - Ir á páxina da descrición + Ir á páxina da descrición - Copy description page URL - Copiar URL da páxina coa descrición + Copiar URL da páxina coa descrición - Search engines... - Motores de busca... + Motores de busca... diff --git a/src/lang/qbittorrent_he.ts b/src/lang/qbittorrent_he.ts index c69bcbc84..d89521741 100644 --- a/src/lang/qbittorrent_he.ts +++ b/src/lang/qbittorrent_he.ts @@ -44,12 +44,12 @@ Current maintainer - + מתחזק נוכחי Original author - + מחבר מקורי @@ -92,7 +92,7 @@ Browse... - + עיון... @@ -127,7 +127,7 @@ Set as default label - + הגדרה כתוית ברירת מחדל @@ -152,7 +152,7 @@ Info Hash: - + מידע Hash: @@ -175,174 +175,174 @@ לא להוריד - - + + I/O Error שגיאת I/O - + The torrent file does not exist. קובץ הטורנט אינו קיים. - + Invalid torrent טורנט לא זמין - + Failed to load the torrent: %1 טעינת הטורנט %1 נכשלה - - + + Already in download list - + Free disk space: %1 - + מקום פנוי בדיסק: %1 - + Not Available This comment is unavailable - + לא זמין - + Not Available This date is unavailable - + לא זמין - + Not available לא זמין - + Invalid magnet link קישור מגנטי לא תקין - + Torrent is already in download list. Trackers were merged. - + טורנט כבר ברשימת ההורדות. טראקרים מוזגו. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized הקישור המגנטי לא זוהה - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link קישור מגנטי - + Retrieving metadata... - + מייבא מטה-דאטה... - + Not Available This size is unavailable. - + לא זמין - - - + + + Choose save path בחירת נתיב שמירה - + Rename the file שינוי שם הקובץ - + New name: שם חדש: - - + + The file could not be renamed לא הייתה אפשרות לשנות את שם הקובץ - + This file name contains forbidden characters, please choose a different one. שם הקובץ מכיל תוים לא חוקיים, נא לבחור שם שונה. - - + + This name is already in use in this folder. Please use a different name. שם הקובץ כבר נמצא בשימוש בתיקייה זו. נא לבחור משהו אחר. - + The folder could not be renamed לא ניתן לשנות את שם התיקייה - + Rename... שינוי שם... - + Priority עדיפות - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error - + שגיאת הורדה @@ -403,7 +403,7 @@ s seconds - + ש' @@ -413,13 +413,13 @@ Enable OS cache - + אפשר מטמון מערכת הפעלה m minutes - + דק' @@ -431,10 +431,6 @@ Resolve peer host names פתור שמות מקורות מארחים - - Maximum number of half-open connections [0: Disabled] - מספר מרבי של חיבורים חצי פתוחים [0: לא זמין] - Strict super seeding @@ -448,12 +444,12 @@ Listen on IPv6 address (requires restart) - + האזן בכתובת IPv6 (מצריך הפעלה מחדש) Confirm torrent recheck - + אשר בדיקה מחדש של טורנט @@ -524,7 +520,7 @@ Information - מידע + מידע @@ -638,7 +634,7 @@ Never - אף פעם + אף פעם @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name - + Please type the name of the new download rule. נא להקליד את שמו של כלל ההורדה החדש. - - + + Rule name conflict סתירת שם כלל - - + + A rule with this name already exists, please choose another name. כלל עם שם זהה כבר קיים, נא לבחור שם אחר. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? האם אתם בטוחים שברצונכם להסיר את כללי ההורדה שנבחרו? - + Rule deletion confirmation וידוא מחיקת כללים - + Destination directory תיקיית יעד - + Invalid action פעולה לא חוקית - + The list is empty, there is nothing to export. רשימה זו ריקה, אין בה שום דבר שניתן לייצא. - + Where would you like to save the list? היכן ברצונכם לשמור את הרשימה? - + Rules list (*.rssrules) רשימת כללים (*.rssrules) - + I/O Error שגיאת I/O - + Failed to create the destination file יצירת קובץ היעד נכשלה - + Please point to the RSS download rules file נא להצביע על קובץ כללי ההורדה של הRSS - + Rules list - + Import Error שגיאת יבוא - + Failed to import the selected rules file יבוא של קבצי הכללים הנבחרים נכשל - + Add new rule... הוספת כלל חדש... - + Delete rule מחיקת כלל - + Rename rule... שנה שם כלל - + Delete selected rules מחיקת כללים נבחרים - + Rule renaming שינוי שם כלל - + Please type the new rule name נא להקליד שם חדש לכלל - + Regex mode: use Perl-like regular expressions מצב Regex: השתמש בביטוי Perl-like רגיל - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> מצב ג'וקר: באפשרותכם להשתמש ב <ul><li>? בכדי להתאים כל תו בודד שהוא</li><li>* בכדי להתאים 0 או יותר תוים</li><li> מרווחים נחשבים כאופרטור AND<ul><li> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> מצב ג'וקר: באפשרותכם להשתמש ב <ul><li>? בכדי להתאים כל תו בודד שהוא</li><li>* בכדי להתאים 0 או יותר תוים</li><li> | נחשב כאופרטור OR<ul><li> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number מסנן ה IP שסופק נותח בהצלחה: %1 כללים הוחלו. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ ערך - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds הזנת RSS - + Unread לא נקרא @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line קישור אחד בלבד לכל שורה - - Download local torrent - הורדת טורנט מקומי - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? ירד @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &אודות - - Exit - יציאה - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show הצגה - + Check for program updates - - Lock qBittorrent - נעילת qBittorrent - Add Torrent &Link... @@ -2026,214 +2020,220 @@ You should get this information from your Web browser preferences. - + Execution Log דוח ביצוע - + Clear the password - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers העברות - + Torrent file association שיוך קובץ טורנט - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent אינו מוגדר כתוכנית ברירת המחדל לפתיחת קבצי טורנט או קישורים מגנטיים. האם להפוך את qBittorrent לתוכנה שפותחת קבצי טורנט וקישורים מגנטיים? - + Icons Only - + סמלים בלבד - + Text Only - + טקסט בלבד - + Text Alongside Icons - + טקסט ליד סמלים - + Text Under Icons - + טקסט מתחת לסמלים - + Follow System Style - - - + + + UI lock password נעילת UI בסיסמא - - - + + + Please type the UI lock password: נא להקליד את סיסמת הנעילה לUI: - + The password should contain at least 3 characters הסיסמא חייבת להכיל לפחות 3 תוים - + Password update עדכון סיסמא - + The UI lock password has been successfully updated סיסמת הנעילה לUI עודכנה בהצלחה - + Are you sure you want to clear the password? - + האם אתם בטוחים שברצונכם להסיר את הסיסמה? - + Search חיפוש - + Transfers (%1) העברות (%1) - + Error - + שגיאה - + Failed to add torrent: %1 - + הוספת הטורנט %1 נכשלה - + Download completion סיום הורדה - + I/O Error i.e: Input/Output Error שגיאת I/O - + Recursive download confirmation אימות הורדה רקורסיבי - + Yes כן - + No לא - + Never אף פעם - + Global Upload Speed Limit הגבלת מהירות העלאה כללית - + Global Download Speed Limit הגבלת מהירות הורדה כללית - + &No - &לא + &לא - + &Yes - &כן + &כן - + &Always Yes - + &תמיד כן - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available + עדכון qBittorent זמין + + + + A new version is available. +Do you want to download %1? - + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + ההורדה של %1 הסתיימה. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2241,156 +2241,158 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - A new version is available. Update to version %1? - + גירסה חדשה יותר זמינה. +האם לעדכן לגירסה %1? - + No updates available. You are already using the latest version. - + אין עדכונים זמינים. +אתם כבר משתמשים בגרסה האחרונה. - + &Check for Updates - + &בדיקת עדכונים - + Checking for Updates... - + בודק עדכונים... - + Already checking for program updates in the background - + כבר בודק עדכוני תוכנה ברקע - + Python found in '%1' - + Python נמצא ב '%1' - + Download error - שגיאת הורדה + שגיאת הורדה - + Python setup could not be downloaded, reason: %1. Please install it manually. - + ההורדה של התקנת Python לא יכולה להתבצע, הסיבה: %1. +נא להתקינו ידנית. - - + + Invalid password סיסמא שגויה - - + + RSS (%1) - + URL download error - + שגיאה בכתובת ההורדה - + The password is invalid הסיסמא שגויה - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - - - - - UP speed: %1 - e.g: Upload speed: 10 KiB/s - + מהירות הורדה: %1 - [D: %1, U: %2] qBittorrent %3 - D = Download; U = Upload; %3 is qBittorrent version - + + UP speed: %1 + e.g: Upload speed: 10 KiB/s + מהירות העלאה: %1 - + + [D: %1, U: %2] qBittorrent %3 + D = Download; U = Upload; %3 is qBittorrent version + [הור: %1, העל: %2] qBittorrent %3 + + + Hide הסתר - + Exiting qBittorrent יוצא מqBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? ישנם קבצים בתהליכי העברה. האם לסגור את qBittorrent? - + Open Torrent Files פתיחת קבצי טורנט - + Torrent Files קבצי טורנט - + Options were saved successfully. האפשרויות נשמרו בהצלחה. @@ -2398,52 +2400,52 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + ה DNS הדינמי עודכן בהצלחה. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + שגיאת DNS דינמי: השירות לא זמין באופן זמני, נסיון נוסף יתבצע בתוך 30 דקות. - + Dynamic DNS error: hostname supplied does not exist under specified account. - + שגיאת DNS דינמי: שם המארח שסופק לא קיים תחת החשבון שצוין. Dynamic DNS error: Invalid username/password. - + שגיאת DNS דינמי: שם משתמש או סיסמה שגויים. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + שגיאת DNS דינמי: qBittorrent נחסם על ידי השירות, נא לדווח על הבאג בכתובת: http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + שגיאת DNS דינמי: %1 הוחזר על ידי השירות, נא לדווח על הבאג בכתובת: http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2453,7 +2455,7 @@ Are you sure you want to quit qBittorrent? I/O Error - שגיאת I/O + שגיאת I/O @@ -2470,161 +2472,164 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - Asia/Pacific Region - + Europe + אירופה - Europe - + Andorra + אנדורה - Andorra - + United Arab Emirates + איחוד האמירויות הערביות - United Arab Emirates - + Afghanistan + אפגניסטן - Afghanistan - + Antigua and Barbuda + אנטיגואה וברבודה - Antigua and Barbuda - + Anguilla + אנגווילה - Anguilla - + Albania + אלבניה - Albania - + Armenia + ארמניה + + + Netherlands Antilles + האנטילים ההולנדיים - Armenia - + Angola + אנגולה - Netherlands Antilles - + Antarctica + אנטארטיקה - Angola - + Argentina + ארגנטינה - Antarctica - + American Samoa + סמואה האמריקנית - Argentina - + Austria + אוסטריה - American Samoa - + Australia + אוסטרליה - Austria - - - - - Australia - - - - Aruba - + Azerbaijan - + אזרבייג'ן + + + + Bosnia and Herzegovina + בוסניה והרצגובינה - Bosnia and Herzegovina - + Barbados + ברבדוס - Barbados - + Bangladesh + בנגלדש - Bangladesh - + Belgium + בלגיה - Belgium - - - - Burkina Faso - + Bulgaria - + בולגריה + + + + Bahrain + בחריין - Bahrain - - - - Burundi - + Benin Bermuda - + ברמודה @@ -2632,1137 +2637,1159 @@ Are you sure you want to quit qBittorrent? - Bolivia - - - - - Brazil - + בוליביה - Bahamas - + Brazil + ברזיל - Bhutan - + Bahamas + איי בהאמה + Bhutan + בהוטן + + + Bouvet Island - - - Botswana - - - Belarus - + Botswana + בוצואנה - Belize - + Belarus + בלארוס - Canada - + Belize + בליז + Canada + קנדה + + + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - - - Congo - - - Switzerland - + Congo + קונגו - Cote D'Ivoire - + Switzerland + שוויץ - + Cook Islands - - - Chile - - - Cameroon - + Chile + צ'ילה - China - + Cameroon + קמרון - Colombia - + China + סין - Costa Rica - + Colombia + קולומביה - Cuba - + Costa Rica + קוסטה ריקה + Cuba + קובה + + + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany - + Cyprus + קפריסין + Czech Republic + צ'כיה + + + + Germany + גרמניה + + + Djibouti - - - Denmark - - - - - Dominica - - + Denmark + דנמרק + + + + Dominica + דומיניקה + + + Dominican Republic - + Algeria - - - Ecuador - - - - - Estonia - - - Egypt - + Ecuador + אקוודור - Western Sahara - + Estonia + אסטוניה - Eritrea - + Egypt + מצרים - Spain - + Western Sahara + סהרה המערבית - Ethiopia - + Eritrea + אריתראה - Finland - + Spain + ספרד - Fiji - + Ethiopia + אתיופיה + Finland + פינלנד + + + + Fiji + פיג'י + + + Falkland Islands (Malvinas) - + Micronesia, Federated States of - + Faroe Islands - - - France - צרפת - - - - France, Metropolitan - - + France + צרפת + + + Gabon - - - United Kingdom - - - Grenada - + United Kingdom + בריטניה - Georgia - + Grenada + גרנדה + Georgia + גאורגיה + + + French Guiana - - - Ghana - - - - - Gibraltar - - - Greenland - + Ghana + גאנה - Gambia - + Gibraltar + ג'יברלטר - Guinea - + Greenland + גרינלד - Guadeloupe - + Gambia + גמביה + Guinea + גינאה + + + + Guadeloupe + גוואדלופ + + + Equatorial Guinea - + Greece - יוון + יוון - + South Georgia and the South Sandwich Islands - - - Guatemala - - - - - Guam - - + Guatemala + גואטמלה + + + + Guam + גואם + + + Guinea-Bissau - + Guyana - + Hong Kong - + הונג קונג - + Heard Island and McDonald Islands - - - Honduras - - - - - Croatia - - - Haiti - + Honduras + הונדורס - Hungary - + Croatia + קרואטיה - Indonesia - + Haiti + האיטי - Ireland - + Hungary + הונגריה - Israel - + Indonesia + אינדונזיה - India - + Ireland + אירלנד + Israel + ישראל + + + + India + הודו + + + British Indian Ocean Territory - + Iraq - + עירק - + Iran, Islamic Republic of - - - Iceland - - - - - Italy - - - - - Jamaica - - - Jordan - + Iceland + איסלנד - Japan - - - - - Kenya - + Italy + איטליה - Kyrgyzstan - + Jamaica + ג'מייקה - Cambodia - + Jordan + ירדן - Kiribati - + Japan + יפן + Kenya + קניה + + + + Kyrgyzstan + קירגיזסטן + + + + Cambodia + קמבודיה + + + + Kiribati + קיריבטי + + + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + כווית - + Cayman Islands - + איי קיימן - + Kazakhstan - + קזחסטן - + Lao People's Democratic Republic - + Lebanon - + לבנון - + Saint Lucia - + Liechtenstein - + ליכטנשטיין - + Sri Lanka - + סרי לנקה - + Liberia - + ליבריה - + Lesotho - - - Lithuania - - - - - Luxembourg - - - - - Latvia - - - - - Libyan Arab Jamahiriya - - - Morocco - + Lithuania + ליטא - Monaco - + Luxembourg + לוקסמבורג + Latvia + לטביה + + + + Morocco + מרוקו + + + + Monaco + מונקו + + + Moldova, Republic of - + Madagascar - + מדגסקר - + Marshall Islands - Macedonia - + מקדוניה - + Mali - + מאלי - + Myanmar - + מיאנמר - + Mongolia - + מונגוליה - Macau - + מקאו - + Northern Mariana Islands - + Martinique - + Mauritania - + מאוריטניה - + Montserrat - - - Malta - - - - - Mauritius - - - - - Maldives - - - - - Malawi - - - - - Mexico - - - - - Malaysia - - - Mozambique - + Malta + מאלטה - Namibia - + Mauritius + מאוריציוס + Maldives + האיים המלדיביים + + + + Malawi + מלאווי + + + + Mexico + מקסיקו + + + + Malaysia + מלזיה + + + + Mozambique + מוזמביק + + + + Namibia + נמיביה + + + New Caledonia - + Niger - + Norfolk Island - - - Nigeria - - - - - Nicaragua - - - - - Netherlands - - - - - Norway - - - - - Nepal - - - - - Nauru - - + Nigeria + ניגריה + + + + Nicaragua + ניקרגואה + + + + Netherlands + הולנד + + + + Norway + נורבגיה + + + + Nepal + נפאל + + + + Nauru + נאורו + + + Niue - + New Zealand - + ניו זילנד - + Oman - + עומאן - + Panama - + פנמה - + Peru - + פרו - + French Polynesia - + Papua New Guinea - + פפואה גינאה החדשה - + Philippines - + הפיליפינים - + Pakistan - + פאקיסטן - + Poland - + פולין - + Saint Pierre and Miquelon - - - Pitcairn Islands - - - - - Puerto Rico - - - - - Palestinian Territory - - - - - Portugal - - - - - Palau - - - - - Paraguay - - - - - Qatar - - - Reunion - - - - - Romania - + Puerto Rico + פורטו ריקו + Portugal + פורטוגל + + + + Palau + פלאו + + + + Paraguay + פרגוואי + + + + Qatar + קטאר + + + + Reunion + איחוד + + + + Romania + רומניה + + + Russian Federation - + Rwanda - + רואנדה - + Saudi Arabia - + ערב הסעודית - + Solomon Islands - + Seychelles - + איי סיישל - + Sudan - + סודן - + Sweden - + שוודיה - + Singapore - + סינגפור - - Saint Helena - - - - + Slovenia - + סלובניה - + Svalbard and Jan Mayen - + Slovakia - + סלובקיה - + Sierra Leone - + סיירה לאונה - + San Marino - + Senegal - + Somalia - + סומליה - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + תאילנד - + Tajikistan - + טג'יקיסטן - + Tokelau - + Turkmenistan - + טורקמניסטן - + Tunisia - + תוניסיה - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay - + Turkey + טורקיה - Uzbekistan - + Trinidad and Tobago + טרינידד וטובגו - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines - + Taiwan + טייוואן - Venezuela + Tanzania, United Republic of - Virgin Islands, British - + Ukraine + אוקראינה - Virgin Islands, U.S. - + Uganda + אוגנדה - Vietnam + United States Minor Outlying Islands - Vanuatu - + United States + ארצות הברית - Wallis and Futuna - + Uruguay + אורוגוואי - Samoa - + Uzbekistan + אוזבקיסטן - Yemen + Holy See (Vatican City State) - Mayotte + Saint Vincent and the Grenadines - - Serbia - + Venezuela + ונצואלה - South Africa + Virgin Islands, British - Zambia + Virgin Islands, U.S. - - Montenegro - + Vietnam + וייטנאם - Zimbabwe - + Vanuatu + ונואטו - Anonymous Proxy + Wallis and Futuna - Satellite Provider - + Samoa + סמואה - Other - + Yemen + תימן + Mayotte + + + + + Serbia + סרביה + + + + South Africa + דרום אפריקה + + + + Zambia + זמביה + + + + Montenegro + מונטנגרו + + + + Zimbabwe + זימבבואה + + + Anonymous Proxy + פרוקסי אנונימי + + + Satellite Provider + ספק לוויני + + + Other + אחר + + + Aland Islands - + Guernsey - + Isle of Man - + Jersey - + ג'רזי - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3871,12 +3898,12 @@ Are you sure you want to quit qBittorrent? Port - + פורט Flags - + דגלים @@ -3923,67 +3950,73 @@ Are you sure you want to quit qBittorrent? Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. + רלוונטיות + + + + Files + i.e. files that are being downloaded right now - + Add a new peer... הוספת עמית חדש - + Copy selected - + העתק נבחר - - + + Ban peer permanently חסימת עמית באופן קבוע - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition הוספת עמית - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? האם אתם בטוחים שברצונכם לחסום באופן קבוע את העמיתים הנבחרים? - + &Yes &כן - + &No &לא @@ -4024,6 +4057,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + תוספי חיפוש + + + + Installed search plugins: + + + + + Name + שם + + + + Version + + + + + Url + URL + + + + + Enabled + מאופשר + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + באפשרותכם לקבל תוספים למנועי חיפוש כאן: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + התקנת חדש + + + + Check for updates + בדיקת עדכונים + + + + Close + סגירה + + + + Uninstall + הסרת התוכנה + + + + + + Yes + כן + + + + + + + No + לא + + + + Uninstall warning + אזהרת הסרה + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + הסרה הצליחה + + + + All selected plugins were uninstalled successfully + כל התוספים הוסרו בהצלחה + + + + + New search engine plugin URL + כתובת URL של תוסף מנוע חיפוש חדש + + + + + URL: + URL + + + + Invalid link + + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + בחירת תוספי חיפוש + + + + qBittorrent search plugin + + + + + + + Search plugin update + חפש עדכונים לתוספים + + + + All your plugins are already up to date. + כל התוספים מעודכנים. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + התקנת תוספי חיפוש + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + מקור התוסף + + + + Search plugin source: + חיפוש מקור תוסף: + + + + Local file + קובץ מקומי + + + + Web link + קישור לאינטרנט + + Preferences @@ -4080,89 +4309,89 @@ Are you sure you want to quit qBittorrent? הוסף סיומת qB לקבצים לא גמורים - + Copy .torrent files to: העתקת קבצי .torrent ל: - + Connections Limits הגבלת מהירות - + Proxy Server שרת פרוקסי - + Global Rate Limits הגבלות קצב כללי - + Apply rate limit to transport overhead - + Schedule the use of alternative rate limits תזמון שימוש בהגבלות קצב חילופיות - + From: from (time1 to time2) - + מאת: - + To: time1 to time2 - + נמען: - + Enable Local Peer Discovery to find more peers אפשר גילוי של עמיתים מקומיים כדי למצוא יותר עמיתים - + Encryption mode: מצב הצפנה: - + Prefer encryption העדף הצפנה - + Require encryption דרוש הצפנה - + Disable encryption בטל אפשרות הצפנה - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: מספר מרבי של הורדות פעילות: - + Maximum active uploads: מספר מרבי של העלאות פעילות: - + Maximum active torrents: מספר מרבי של טורנטים פעילים: @@ -4187,82 +4416,82 @@ Are you sure you want to quit qBittorrent? תצוגת תוכן הטורנט וכמה אפשרויות - + Run external program on torrent completion - + Port used for incoming connections: פורט בשימוש לחיבורים נכנסים: - + Random אקראי - + Global maximum number of connections: מספר מרבי של חיבורים כלליים: - + Maximum number of connections per torrent: מספר מרבי של חיבורים לכל טורנט: - + Maximum number of upload slots per torrent: מספר מרבי לחריצי העלאה לכל טורנט: - - + + Upload: העלאה: - - + + Download: הורדה: - - - - + + + + KiB/s קב/ש - + Remove folder הסרת תיקייה - + Every day כל יום - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) החלפה של עמיתים עם לקוחות תואמים (µTorrent, Vuze, ...) - + Host: מארח: - + SOCKS4 SOCKS4 - + Type: סוג: @@ -4435,262 +4664,262 @@ Are you sure you want to quit qBittorrent? הוספת טורנטים באופן אוטומטי מ: - + Add folder... הוספת תיקייה... - + Copy .torrent files for finished downloads to: - + העתקת קבצי torrent. עבור הורדות שהסתיימו ל: - + Email notification upon download completion הודעה בדוא"ל כאשר הורדה מסתיימת - + Destination email: דוא"ל יעד: - + SMTP server: שרת SMTP: - + This server requires a secure connection (SSL) שרת זה דורש חיבור מאובטח (SSL) - + Listening Port פורט האזנה - + Use UPnP / NAT-PMP port forwarding from my router השתמש בקידום פורט UPnP / NAT-PMP מהנתב שלי - + Use different port on each startup - + שימוש בפורט שונה בכל עלייה - + Global maximum number of upload slots: - + מספר מרבי כולל של חריצי העלאה: - + Otherwise, the proxy server is only used for tracker connections אחרת, שרת הפרוקסי משתמש רק לחיבורי טראקר - + Use proxy for peer connections השתמש בפרוקסי לחיבורי עמית - + Disable connections not supported by proxies - - - - - Use proxy only for torrents - + ביטול חיבורים שאינם תומכים בפרוקסי + Use proxy only for torrents + שימוש בפרוקסי לטורנטים בלבד + + + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + מידע: הסיסמה שמורה ללא הצפנה - + IP Filtering סינון IP - + Reload the filter טעינת המסנן מחדש - + Apply to trackers - + Apply rate limit to peers on LAN - + When: מתי: - + Weekdays - + ימי חול - + Weekends - + סופי שבוע - + Rate Limits Settings - + הגדרות מגבלות קצב - + Enable µTP protocol - + אפשור פרוטוקול µTP - + Apply rate limit to µTP protocol - + Privacy פרטיות - + Enable DHT (decentralized network) to find more peers אפשר DHT (רשתות מבוזרות) כדי למצוא עוד עמיתים - + Enable Peer Exchange (PeX) to find more peers אפשר החלפת עמיתים (PeX) כדי למצוא יותר עמיתים - + Look for peers on your local network חיפוש עמיתים על הרשת המקומית שלך - + Enable when using a proxy or a VPN connection - + Enable anonymous mode אפשר מצב אנונימי - + Do not count slow torrents in these limits אל תחשב טורנטים איטיים בהגבלות אלו - + Seed torrents until their ratio reaches הפץ טורנט עד שיחס השיתוף שלהם משתווה - + then לאחר מכן - + Pause them השהה אותם - + Remove them הסר אותם - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router השתמש ב UPnP / NAT-PMP כדי להעביר הלאה את הפורט מהנתב שלי - + Use HTTPS instead of HTTP שימוש בHTTPS במקום ב HTTP - + Import SSL Certificate יבוא אישורי SSL - + Import SSL Key יבוא מפתחות SSL - + Certificate: אישור: - + Alternative Rate Limits - + Key: מפתח: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>מידע אודות תעודות אבטחה</a> - + Bypass authentication for localhost התעלמות מאימות למארח מקומי - + Update my dynamic domain name עדכון שם הדומיין הדינמי שלי - + Service: שרות: - + Register רישום - + Domain name: שם דומיין: - + (None) (כלום) @@ -4700,61 +4929,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: פורט: - - - + + + Authentication אימות - - - - + + + + Username: שם משתמש: - - - - + + + + Password: סיסמא: - + Torrent Queueing רשימת המתנה של טורנט - + Share Ratio Limiting הגבלת יחס שיתוף - + Enable Web User Interface (Remote control) אפשר מנשק משתמש אינטרנטי (שלט רחוק) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): סנן נתיב ( .dat, .p2p, .p2b): @@ -4869,7 +5098,7 @@ Are you sure you want to quit qBittorrent? Speed - מהירות + מהירות @@ -4887,7 +5116,7 @@ Are you sure you want to quit qBittorrent? Progress: - תהליך: + התקדמות: @@ -4898,12 +5127,12 @@ Are you sure you want to quit qBittorrent? Time Active: Time (duration) the torrent is active (not paused) - + משך זמן פעיל: ETA: - + זמן משוער שנותר: @@ -4918,12 +5147,12 @@ Are you sure you want to quit qBittorrent? Download Speed: - + מהירות הורדה: Upload Speed: - + מהירות העלאה: @@ -4933,12 +5162,12 @@ Are you sure you want to quit qBittorrent? Download Limit: - + מגבלת הורדה: Upload Limit: - + מגבלת העלאה: @@ -4960,10 +5189,6 @@ Are you sure you want to quit qBittorrent? Comment: הערה: - - Torrent content: - תוכן הטורנט: - Select All @@ -4987,12 +5212,12 @@ Are you sure you want to quit qBittorrent? Share Ratio: - + יחס שיתוף: Reannounce In: - + הכרזה מחדש בעוד: @@ -5002,17 +5227,17 @@ Are you sure you want to quit qBittorrent? Total Size: - + גודל כולל: Pieces: - + חלקים: Created By: - + נוצר ע"י: @@ -5053,7 +5278,7 @@ Are you sure you want to quit qBittorrent? Never - אף פעם + אף פעם @@ -5173,7 +5398,7 @@ Are you sure you want to quit qBittorrent? Filter files... - + סינון קבצים... @@ -5251,12 +5476,12 @@ Are you sure you want to quit qBittorrent? Usage: - + שימוש: Options: - + אפשרויות: @@ -5291,7 +5516,7 @@ Are you sure you want to quit qBittorrent? Help - עזרה + עזרה @@ -5334,12 +5559,12 @@ No further notices will be issued. Cancel - ביטול + ביטול I Agree - + אני מסכים @@ -5365,7 +5590,7 @@ No further notices will be issued. Thank you for using qBittorrent. - + תודה על השימוש ב qBittorrent. @@ -5380,7 +5605,7 @@ No further notices will be issued. The operation was canceled - + הפעולה בוטלה @@ -5395,32 +5620,32 @@ No further notices will be issued. SSL/TLS handshake failed - + אימות SSL/TLS נכשל The remote server refused the connection - + השרת המרוחק דחה את החיבור The connection to the proxy server was refused - + החיבור לשרת הפרוקסי נדחה The proxy server closed the connection prematurely - + שרת הפרוקסי סגר את החיבור בטרם עת The proxy host name was not found - + שם מארח הפרוקסי לא נמצא The connection to the proxy timed out or the proxy did not reply in time to the request sent - + החיבור לפרוקסי הופסק או שהפרוקסי לא הגיב בזמן לשאילתה שנשלחה @@ -5483,28 +5708,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5615,17 +5840,17 @@ No further notices will be issued. RSSImp - + Stream URL: זרם URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5645,75 +5870,77 @@ No further notices will be issued. תיקייה חדשה - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed נא לבחור שם חדש להזנת RSS זו - + New feed name: שם הזנה חדשה: - + Name already in use השם כבר נמצא בשימוש - + This name is already used by another item, please choose another one. שם זה כבר נמצא בשימוש על ידי פריט אחר, נא לבחור שם שונה. - + Date: תאריך: - + Author: מחבר: - + Unread לא נקרא - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - פתיחת הקובץ שירד מהRSS נכשלה. - - - - Invalid RSS feed at '%1'. - + פתיחת הקובץ שירד מהRSS נכשלה. @@ -5739,168 +5966,216 @@ No further notices will be issued. מספר מירבי של מאמרים להזנה: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + עיון... + + + + Choose save path + בחירת נתיב שמירה + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder תיקייה במעקב - - Download here - הורדה לכאן + + Save Files to + - - Download path - + Download here + הורדה לכאן SearchCategories - All categories - כל הקטגוריות + כל הקטגוריות - Movies - סרטים + סרטים - TV shows - תוכניות טלויזיה + תוכניות טלויזיה - Music - מוזיקה + מוזיקה - Games - משחקים + משחקים - Anime - אנימציה + אנימציה - Software - תוכנות + תוכנות - Pictures - תמונת + תמונת - Books - ספרים + ספרים SearchEngine - - - Search - חיפוש + חיפוש - - Please install Python to use the Search Engine. - - - - Empty search pattern - תבנית חיפוש ריקה + תבנית חיפוש ריקה - Please type a search pattern first - נא להקליד תחילה תבנית חיפוש + נא להקליד תחילה תבנית חיפוש - Searching... - מחפש... + מחפש... - Stop - + עצור - - Search Engine - מנוע חיפוש + מנוע חיפוש - - Search has finished - החיפוש הסתיים + החיפוש הסתיים - - An error occurred during search... - - - - - Search aborted - החיפוש הופסק + החיפוש הופסק - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - החיפוש לא הניב שום תוצאות + החיפוש לא הניב שום תוצאות - - Stopped - נעצר + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + כל הקטגוריות + + + + Movies + סרטים + + + + TV shows + תוכניות טלויזיה + + + + Music + מוזיקה + + + + Games + משחקים + + + + Anime + אנימציה + + + + Software + תוכנות + + + + Pictures + תמונת + + + + Books + ספרים SearchListDelegate - - + + Unknown לא ידוע @@ -5908,35 +6183,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name שם - + Size i.e: file size גודל - + Seeders i.e: Number of full sources מפיצים - + Leechers i.e: Number of partial sources מורידים - + Search engine מנוע חיפוש + + SearchWidget + + + + + + + Search + חיפוש + + + + Status: + מצב: + + + + + Stopped + נעצר + + + + Download + הורדה + + + + Go to description page + העברה לדף הגדרה + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + מנוע חיפוש + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + תבנית חיפוש ריקה + + + + Please type a search pattern first + נא להקליד תחילה תבנית חיפוש + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + מחפש... + + + + Stop + עצור + + + + + Search has finished + החיפוש הסתיים + + + + + Search aborted + החיפוש הופסק + + + + Search returned no results + החיפוש לא הניב שום תוצאות + + + + Search has failed + + + + + An error occurred during search... + + + ShutdownConfirmDlg @@ -6381,24 +6781,28 @@ No further notices will be issued. TorrentContentModel - + Name שם - + Size גודל - + Progress תהליך - + + Download Priority + + + Priority - העדפה + העדפה @@ -6750,38 +7154,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7049,17 +7453,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status מצב - + Labels תויות - + Trackers טראקרים @@ -7598,205 +8002,95 @@ No further notices will be issued. engineSelect - Search plugins - תוספי חיפוש + תוספי חיפוש - Installed search engines: - מנועי חיפוש מותקנים: + מנועי חיפוש מותקנים: - Name - שם + שם - - Version - - - - Url - URL + URL - - Enabled - מאופשר + מאופשר - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - באפשרותכם לקבל תוספים למנועי חיפוש כאן: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + באפשרותכם לקבל תוספים למנועי חיפוש כאן: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - התקנת חדש + התקנת חדש - Check for updates - בדיקת עדכונים + בדיקת עדכונים - Close - סגירה + סגירה - Uninstall - הסרת התוכנה + הסרת התוכנה engineSelectDlg - Uninstall warning - אזהרת הסרה + אזהרת הסרה - Uninstall success - הסרה הצליחה + הסרה הצליחה - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - בחירת תוספי חיפוש + בחירת תוספי חיפוש - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - התקנת תוספי חיפוש + התקנת תוספי חיפוש - - - Yes - כן + כן - - - - No - לא + לא - - qBittorrent search plugin - - - - - - - Search plugin update - חפש עדכונים לתוספים + חפש עדכונים לתוספים - - Sorry, update server is temporarily unavailable. - מצטערים, זמנית שרת העדכונים לא זמין. + מצטערים, זמנית שרת העדכונים לא זמין. - All your plugins are already up to date. - כל התוספים מעודכנים. + כל התוספים מעודכנים. - All selected plugins were uninstalled successfully - כל התוספים הוסרו בהצלחה + כל התוספים הוסרו בהצלחה - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - - Invalid link - - - - - New search engine plugin URL - כתובת URL של תוסף מנוע חיפוש חדש + כתובת URL של תוסף מנוע חיפוש חדש - - URL: - URL + URL @@ -7926,169 +8220,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory בחירת תיקייה לייצוא - - - - + + + + Choose a save directory בחירת תיקייה לשמירה - + Add directory to scan הוספת תיקייה לסריקה - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. תיקייה זו כבר נצפית. - + Folder does not exist. תיקייה לא קיימת. - + Folder is not readable. התיקייה לא ניתנת לקריאה. - + Failure כשלון - + Failed to add Scan Folder '%1': %2 סריקת התיקייה '%1' נכשלה: %2 - - + + Filters מסננים - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error שגיאת ניתוח - + Failed to parse the provided IP filter לא הצליח לנתח את מסנן ה IP שסופק - + Successfully refreshed רוענן בהצלחה - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number מסנן ה IP שסופק נותח בהצלחה: %1 כללים הוחלו. - + Invalid key מפתח לא תקף - + This is not a valid SSL key. מפתח SSL זה אינו תקף. - + Invalid certificate אישור לא תקף - + This is not a valid SSL certificate. אישור SSL זה אינו תקף. - + The start time and the end time can't be the same. - + Time Error @@ -8096,24 +8390,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - מקור התוסף + מקור התוסף - Search plugin source: - חיפוש מקור תוסף: + חיפוש מקור תוסף: - Local file - קובץ מקומי + קובץ מקומי - Web link - קישור לאינטרנט + קישור לאינטרנט @@ -8142,40 +8432,28 @@ Those plugins were disabled. search_engine - - Search - חיפוש + חיפוש - Status: - מצב: + מצב: - Stopped - נעצר + נעצר - Download - הורדה + הורדה - Go to description page - העברה לדף הגדרה + העברה לדף הגדרה - - Copy description page URL - - - - Search engines... - מנוע חיפוש... + מנוע חיפוש... diff --git a/src/lang/qbittorrent_hi_IN.ts b/src/lang/qbittorrent_hi_IN.ts index 9a3e13168..677e55841 100644 --- a/src/lang/qbittorrent_hi_IN.ts +++ b/src/lang/qbittorrent_hi_IN.ts @@ -175,172 +175,172 @@ डाउनलोड नहीं करें - - + + I/O Error I/O त्रुटि - + The torrent file does not exist. यह टाॅरेंट फाइल मौजूद नहीं है. - + Invalid torrent अमान्य टाॅरेंट - + Failed to load the torrent: %1 टाॅरेंट :%1लोड होने में विफल है - - + + Already in download list डाउनलोड सूची में पहले से ही है - + Free disk space: %1 - + Not Available This comment is unavailable अनुपलब्ध - + Not Available This date is unavailable अनुपलब्ध - + Not available अनुपलब्ध - + Invalid magnet link अमान्य मैगनेट लिंक - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized यह मैगनेट लिंक अभिज्ञात नहीं हुआ - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link मैगनेट लिंक - + Retrieving metadata... मेटाडाटा प्राप्त हो रहा है... - + Not Available This size is unavailable. अनुपलब्ध - - - + + + Choose save path सहेजने हेतु पथ चुनें - + Rename the file फाइल का पुन:नामकरण करें - + New name: नया नाम: - - + + The file could not be renamed इस फाइल का पुन:नामकरण नहीं हो सकता - + This file name contains forbidden characters, please choose a different one. इस फाइल के नाम में वर्जित वर्ण हैं, कृपया दूसरा नाम चुनें. - - + + This name is already in use in this folder. Please use a different name. यह नाम पहले से ही इसी फोल्डर के प्रयोग मे है, कृपया दूसरा नाम चुनें. - + The folder could not be renamed इस फोल्डर का पुन:नामकरण नहीं हो सकता - + Rename... पुन:नामकरण... - + Priority प्राथमिकता - + Invalid metadata - + Parsing metadata... मेटाडाटा का पदभंजन हो रहा है... - + Metadata retrieval complete मेटाडाटा प्राप्ति पुर्ण - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names सहकर्मी के होस्टनेम को दिखायें - - Maximum number of half-open connections [0: Disabled] - हाॅफ-ओपॅन कनेक्शन्स की अधिकतम संख्या [0: निर्योग्य] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: उदाहरण: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name नये नियम का नाम - + Please type the name of the new download rule. कृपया नये नियम के नाम के लिये नाम टंकित करें. - - + + Rule name conflict नये नाम में दिक्कत - - + + A rule with this name already exists, please choose another name. एक नियम इसी नाम से पहले से ही प्रयोग मे है, कृपया दूसरा चुनें. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? क्या आप निश्चित है कि आप चुने हुए डाउनलोड नियमों को रद्द करना चाहते हैं? - + Rule deletion confirmation नियम रद्द करने की पुष्टि - + Destination directory गन्तव्य डायरेक्टरी - + Invalid action अमान्य चाल - + The list is empty, there is nothing to export. यह सूची खाली है, यहाँ आयात करने के लिए कुछ भी नहीं है. - + Where would you like to save the list? आप सूची को कहाँ सहेजेंगें? - + Rules list (*.rssrules) नियमो की सूची (*.rssrules) - + I/O Error I/O त्रुटि - + Failed to create the destination file गन्तव्य पर फाइल बनाने में विफल रहा - + Please point to the RSS download rules file कृपया RSS डाउनलोड नियमो की फाइल की तरफ इंगित करें - + Rules list नियमो की सूची - + Import Error निर्यात त्रुटि - + Failed to import the selected rules file चुने हुए नियमो को निर्यात करने में विफल रहा - + Add new rule... नये नियम को जोड़े... - + Delete rule नियम रद्द करें - + Rename rule... नियम का पुन:नामकरण करें... - + Delete selected rules चुने हुए नियमो को रद्द करें - + Rule renaming नियम का पुन:नामकरण - + Please type the new rule name कृपया नये नियम का नाम टंकित करें - + Regex mode: use Perl-like regular expressions रेगुलर एक्सप्रेसन्स मोड: Perl के साथ रेगुलर एक्सप्रेसन्स का प्रयोग करें - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> वाइल्डकार्ड मोड: आप प्रयोग कर सकते हैं<ul><li>?कोई एक वर्णमाला मिलाने के लिए</li><li>* किसी शून्य या एक वर्णमाला मिलाने के लिए</li><li>खाली स्थान AND आपरेटर की तरह लिए गए हैं</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> वाइल्डकार्ड मोड: आप प्रयोग कर सकते हैं<ul><li>?कोई एक वर्णमाला मिलाने के लिए</li><li>* किसी शून्य या एक वर्णमाला मिलाने के लिए</li><li>। OR आपरेटर की तरह लिया गया है</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ मान - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS फीड्स - + Unread अपठित @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line एक पंक्ति में केवल एक लिंक - - Download local torrent - लोकल टाॅरेंट डाउनलोड करें - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? डाउनलोडेड @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &बारे मेॅ - - Exit - निकास - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show दिखायें - + Check for program updates कार्यक्रम अद्यतन के लिए जाँच करें - - Lock qBittorrent - qBittorrent पर ताला लगायें - Add Torrent &Link... @@ -2026,214 +2020,220 @@ You should get this information from your Web browser preferences. - + Execution Log क्रियान्वयन दैनिकी - + Clear the password पासवर्ड रद्द करें - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers अंतरण - + Torrent file association टाॅरेंट फाइल का संगठन - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password UI पर ताला लगाने हेतु पासवर्ड सेट करें - - - + + + Please type the UI lock password: कृपया UI ताले हेतु पासवर्ड टंकित करें: - + The password should contain at least 3 characters यह पासवर्ड कम से कम तीन वर्णमालाओं से बना होना चाहिए - + Password update पासवर्ड अद्यतन करें - + The UI lock password has been successfully updated UI ताले का पासवर्ड सफलता पुर्वक अद्यतन हो चुका है - + Are you sure you want to clear the password? क्या आप निश्चित है कि आप पासवर्ड रद्द करना चाहते हैं? - + Search खोंजे - + Transfers (%1) अंतरण (%1) - + Error - + Failed to add torrent: %1 - + Download completion डाउनलोड समाप्त - + I/O Error i.e: Input/Output Error I/O त्रुटि - + Recursive download confirmation - + Yes हाँ - + No नहीँ - + Never कभी नहीँ - + Global Upload Speed Limit - + Global Download Speed Limit - + &No &नहीँ - + &Yes &हाँ - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2241,155 +2241,149 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter Python Interpreter नहीं है - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background कार्यक्रम अद्यतन की जाँच पहले से ही पृष्टभूमि में चल रही है - + Python found in '%1' - + Download error डाउनलोड त्रुटि - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password अमान्य पासवर्ड - - + + RSS (%1) - + URL download error - + The password is invalid यह पासवर्ड अमान्य है - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide छुपायें - + Exiting qBittorrent qBittorrent बंद हो रहा है - + Some files are currently transferring. Are you sure you want to quit qBittorrent? - + Open Torrent Files टाॅरेंट फाइल खोलें - + Torrent Files टाॅरेंट फाइल्स - + Options were saved successfully. विकल्प सफलता पुर्वक सहेज दिये गये. @@ -2397,17 +2391,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2417,32 +2411,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2469,154 +2463,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2631,1137 +2620,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - फ्रांस + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + फ्रांस + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece ग्रीस - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3925,64 +3904,70 @@ Are you sure you want to quit qBittorrent? अनुकूलता - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... नया सहकर्मी जोड़े... - + Copy selected - - + + Ban peer permanently सहकर्मी को स्थायी रुप से प्रतिबंधित करें - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition सहकर्मी जोड़े - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? क्या आप निश्चित है कि आप चयनित सहकर्मी को स्थायी रुप से प्रतिबंधित करना चाहते हैं? - + &Yes &हाँ - + &No &नहीँ @@ -4023,6 +4008,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + प्लगिन खोंजे + + + + Installed search plugins: + + + + + Name + नाम + + + + Version + + + + + Url + Url + + + + + Enabled + सक्षम + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + आप नये खोज इंजन के प्लगिन्स यहाँ प्राप्त कर सकते हैं: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + एक नया इंस्टाल करें + + + + Check for updates + अद्यतन के लिए जाँच करें + + + + Close + बंद करें + + + + Uninstall + स्थापना रद्द करें + + + + + + Yes + हाँ + + + + + + + No + नहीँ + + + + Uninstall warning + स्थापना रद्द करने की चेतावनी + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + स्थापना रद्द सफल रहा + + + + All selected plugins were uninstalled successfully + + + + + + New search engine plugin URL + + + + + + URL: + URL: + + + + Invalid link + अमान्य लिंक + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + खोंज प्लगिन चुनें + + + + qBittorrent search plugin + + + + + + + Search plugin update + + + + + All your plugins are already up to date. + + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + प्लगिन स्रोत + + + + Search plugin source: + प्लगिन स्रोत खोंजे: + + + + Local file + स्थानीय फाईल + + + + Web link + वेब लिंक + + Preferences @@ -4079,89 +4260,89 @@ Are you sure you want to quit qBittorrent? - + Copy .torrent files to: - + Connections Limits - + Proxy Server - + Global Rate Limits - + Apply rate limit to transport overhead - + Schedule the use of alternative rate limits - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers - + Encryption mode: - + Prefer encryption - + Require encryption - + Disable encryption - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: - + Maximum active uploads: - + Maximum active torrents: @@ -4186,82 +4367,82 @@ Are you sure you want to quit qBittorrent? - + Run external program on torrent completion - + Port used for incoming connections: - + Random - + Global maximum number of connections: - + Maximum number of connections per torrent: - + Maximum number of upload slots per torrent: - - + + Upload: अपलोड: - - + + Download: डाउनलोड: - - - - + + + + KiB/s किबिबाइट्स/सेकंड - + Remove folder हटाएँ - + Every day प्रति दिन - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - + Host: - + SOCKS4 - + Type: @@ -4434,262 +4615,262 @@ Are you sure you want to quit qBittorrent? यहाँ से स्वत: टाॅरेंट जोड़े: - + Add folder... फोल्डर जोड़ें... - + Copy .torrent files for finished downloads to: - + Email notification upon download completion - + Destination email: - + SMTP server: - + This server requires a secure connection (SSL) - + Listening Port - + Use UPnP / NAT-PMP port forwarding from my router - + Use different port on each startup - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections - + Use proxy for peer connections - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering - + Reload the filter - + Apply to trackers - + Apply rate limit to peers on LAN - + When: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy - + Enable DHT (decentralized network) to find more peers - + Enable Peer Exchange (PeX) to find more peers - + Look for peers on your local network - + Enable when using a proxy or a VPN connection - + Enable anonymous mode - + Do not count slow torrents in these limits - + Seed torrents until their ratio reaches - + then - + Pause them - + Remove them - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router - + Use HTTPS instead of HTTP - + Import SSL Certificate - + Import SSL Key - + Certificate: - + Alternative Rate Limits - + Key: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Bypass authentication for localhost - + Update my dynamic domain name - + Service: - + Register - + Domain name: - + (None) @@ -4699,61 +4880,61 @@ Are you sure you want to quit qBittorrent? - + HTTP - - + + Port: - - - + + + Authentication - - - - + + + + Username: प्रयोक्ता नाम: - - - - + + + + Password: पासवर्ड: - + Torrent Queueing - + Share Ratio Limiting - + Enable Web User Interface (Remote control) - + SOCKS5 - + Filter path (.dat, .p2p, .p2b): @@ -4959,10 +5140,6 @@ Are you sure you want to quit qBittorrent? Comment: टिप्पणी: - - Torrent content: - टाॅरेंट सामग्री: - Select All @@ -5482,28 +5659,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5614,17 +5791,17 @@ No further notices will be issued. RSSImp - + Stream URL: स्ट्रीम URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5644,75 +5821,77 @@ No further notices will be issued. नया फोल्डर - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed कृपया इस RSS फीड के लिये नया नाम चुनें - + New feed name: नया फीड नाम: - + Name already in use यह नाम पहले से ही प्रयोग में हैं - + This name is already used by another item, please choose another one. यह नाम पहले से ही दुसरे वस्तु के प्रयोग मे है, कृपया दूसरा चुनें. - + Date: तारीख: - + Author: लेखक: - + Unread अपठित - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - डाउनलोडेड RSS फाइल खुलने में विफल है. - - - - Invalid RSS feed at '%1'. - + डाउनलोडेड RSS फाइल खुलने में विफल है. @@ -5738,168 +5917,220 @@ No further notices will be issued. लेखों की प्रति फीड अधिकतम संख्या: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + + + + + Choose save path + सहेजने हेतु पथ चुनें + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder देखे हुए फोल्डर - - Download here - यहाँ डाउनलोड करें + + Save Files to + - - Download path - + Download here + यहाँ डाउनलोड करें SearchCategories - All categories - सभी वर्ग + सभी वर्ग - Movies - फिल्में + फिल्में - TV shows - टीवी शोज + टीवी शोज - Music - संगीत + संगीत - Games - क्रीड़े + क्रीड़े - Anime - एनीमेशन + एनीमेशन - Software - सॉफ्टवेयर + सॉफ्टवेयर - Pictures - तस्वीरें + तस्वीरें - Books - किताबें + किताबें SearchEngine - - - Search - खोंजे + खोंजे - - Please install Python to use the Search Engine. - - - - Empty search pattern - खोज स्वरुप खाली है + खोज स्वरुप खाली है - Please type a search pattern first - कृपया पहले खोज स्वरुप टंकित करें + कृपया पहले खोज स्वरुप टंकित करें - Searching... - खोंजा जा रहा हैं... + खोंजा जा रहा हैं... - Stop - रुकें + रुकें - - Search Engine - खोज इंजन + खोज इंजन - - Search has finished - खोज समाप्त हुआ + खोज समाप्त हुआ - An error occurred during search... - खोज के दौरान एक त्रुटि घटी... + खोज के दौरान एक त्रुटि घटी... - - Search aborted - खोज रोका गया + खोज रोका गया - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - खोज का कोई परिणाम नहीं मिला + खोज का कोई परिणाम नहीं मिला - - Stopped - रुका हुआ + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + सभी वर्ग + + + + Movies + फिल्में + + + + TV shows + टीवी शोज + + + + Music + संगीत + + + + Games + क्रीड़े + + + + Anime + एनीमेशन + + + + Software + सॉफ्टवेयर + + + + Pictures + तस्वीरें + + + + Books + किताबें SearchListDelegate - - + + Unknown अज्ञात @@ -5907,35 +6138,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name नाम - + Size i.e: file size साईज - + Seeders i.e: Number of full sources सभी स्रोतो की संख्या - + Leechers i.e: Number of partial sources आंशिक स्रोतो की संख्या - + Search engine खोज इंजन + + SearchWidget + + + + + + + Search + खोंजे + + + + Status: + स्थिति: + + + + + Stopped + रुका हुआ + + + + Download + डाउनलोड करें + + + + Go to description page + विवरण पृष्ठ पर पहुँचे + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + खोज इंजन + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + खोज स्वरुप खाली है + + + + Please type a search pattern first + कृपया पहले खोज स्वरुप टंकित करें + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + खोंजा जा रहा हैं... + + + + Stop + रुकें + + + + + Search has finished + खोज समाप्त हुआ + + + + + Search aborted + खोज रोका गया + + + + Search returned no results + खोज का कोई परिणाम नहीं मिला + + + + Search has failed + + + + + An error occurred during search... + खोज के दौरान एक त्रुटि घटी... + + ShutdownConfirmDlg @@ -6380,24 +6736,28 @@ No further notices will be issued. TorrentContentModel - + Name नाम - + Size साईज - + Progress प्रगति - + + Download Priority + + + Priority - वरीयता + वरीयता @@ -6749,38 +7109,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7048,17 +7408,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status स्थिति - + Labels चिप्पियाँ - + Trackers ट्रैकर्स @@ -7597,205 +7957,75 @@ No further notices will be issued. engineSelect - Search plugins - प्लगिन खोंजे + प्लगिन खोंजे - Installed search engines: - स्थापित खोज इंजन: + स्थापित खोज इंजन: - Name - नाम + नाम - - Version - - - - Url - Url + Url - - Enabled - सक्षम + सक्षम - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - आप नये खोज इंजन के प्लगिन्स यहाँ प्राप्त कर सकते हैं: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + आप नये खोज इंजन के प्लगिन्स यहाँ प्राप्त कर सकते हैं: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - एक नया इंस्टाल करें + एक नया इंस्टाल करें - Check for updates - अद्यतन के लिए जाँच करें + अद्यतन के लिए जाँच करें - Close - बंद करें + बंद करें - Uninstall - स्थापना रद्द करें + स्थापना रद्द करें engineSelectDlg - Uninstall warning - स्थापना रद्द करने की चेतावनी + स्थापना रद्द करने की चेतावनी - Uninstall success - स्थापना रद्द सफल रहा + स्थापना रद्द सफल रहा - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - खोंज प्लगिन चुनें + खोंज प्लगिन चुनें - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - - Search plugin install - - - - - - Yes - हाँ + हाँ - - - - No - नहीँ + नहीँ - - qBittorrent search plugin - - - - - - - - Search plugin update - - - - - - Sorry, update server is temporarily unavailable. - - - - - All your plugins are already up to date. - - - - - All selected plugins were uninstalled successfully - - - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - अमान्य लिंक + अमान्य लिंक - - - New search engine plugin URL - - - - - URL: - URL: + URL: @@ -7925,169 +8155,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory - - - - + + + + Choose a save directory - + Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. - + Folder does not exist. - + Folder is not readable. - + Failure - + Failed to add Scan Folder '%1': %2 - - + + Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error - + Failed to parse the provided IP filter - + Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key - + This is not a valid SSL key. - + Invalid certificate - + This is not a valid SSL certificate. - + The start time and the end time can't be the same. - + Time Error @@ -8095,24 +8325,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - प्लगिन स्रोत + प्लगिन स्रोत - Search plugin source: - प्लगिन स्रोत खोंजे: + प्लगिन स्रोत खोंजे: - Local file - स्थानीय फाईल + स्थानीय फाईल - Web link - वेब लिंक + वेब लिंक @@ -8141,40 +8367,28 @@ Those plugins were disabled. search_engine - - Search - खोंजे + खोंजे - Status: - स्थिति: + स्थिति: - Stopped - रुका हुआ + रुका हुआ - Download - डाउनलोड करें + डाउनलोड करें - Go to description page - विवरण पृष्ठ पर पहुँचे + विवरण पृष्ठ पर पहुँचे - - Copy description page URL - - - - Search engines... - खोज इंजन... + खोज इंजन... diff --git a/src/lang/qbittorrent_hr.ts b/src/lang/qbittorrent_hr.ts index 06c5d565b..c4b46b375 100644 --- a/src/lang/qbittorrent_hr.ts +++ b/src/lang/qbittorrent_hr.ts @@ -175,172 +175,172 @@ Ne preuzimaj - - + + I/O Error I/O greška - + The torrent file does not exist. Torrent datoteka ne postoji. - + Invalid torrent Neispravan torrent - + Failed to load the torrent: %1 Neuspješno učitavanje torrenta: %1 - - + + Already in download list Već je na popisu preuzimanja - + Free disk space: %1 - + Not Available This comment is unavailable Nije dostupno - + Not Available This date is unavailable Nije dostupno - + Not available Nije dostupan - + Invalid magnet link Nesispravan magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Ovaj magnet link nije prepoznat - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet link - + Retrieving metadata... Preuzimaju se meta-podaci... - + Not Available This size is unavailable. Nije dostupno - - - + + + Choose save path Izaberite putanju spremanja - + Rename the file Preimenuj datoteku - + New name: Novo ime: - - + + The file could not be renamed Datoteku nije moguće preimenovati - + This file name contains forbidden characters, please choose a different one. Ovo ime datoteke sadrži zabranjene znakove. Izaberite druge. - - + + This name is already in use in this folder. Please use a different name. Ime se već koristi u toj mapi. Koristite drugo ime. - + The folder could not be renamed Mapu nije moguće preimenovati - + Rename... Preimenuj ... - + Priority Prioritet - + Invalid metadata - + Parsing metadata... Parsaju se meta podatci... - + Metadata retrieval complete Preuzimanje meta podataka dovršeno - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Razrješi imena peer hostova - - Maximum number of half-open connections [0: Disabled] - Najveći broj poluotvorenih veza [0: Disabled] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Podudarnosti članaka su na osnovi epizodnog filtera. - + Example: Primjer: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match epizode 2, 5, 8 odgovaraju epizodama 15, 30 i sljedećim epizodama prve sezone - + Episode filter rules: Pravila za filtriranje epizoda: - + Season number is a mandatory non-zero value Broj sezone je neophodan - + Episode number is a mandatory non-zero value Broj epizode je neophodan - + Filter must end with semicolon Filter mora završavati točka-zarezom - + Three range types for episodes are supported: Podržane su tri vrste poretka epizoda: - + Single number: <b>1x25;</b> matches episode 25 of season one Pojedinačni broj:<b>1x25;</b> označava 25. epizodu prve sezone - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Uobičajen raspon: <b>1x25-40;</b> označava epizode od 25. do 40. prve sezone - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Neograničen raspon: <b>1x25-;</b> označava epizode od 25. nadalje prve sezone - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Ime novog pravila - + Please type the name of the new download rule. Upišite ime novog pravila preuzimanja. - - + + Rule name conflict Konflikt imena pravila - - + + A rule with this name already exists, please choose another name. Pravilo s tim imenom već postoji. Izaberite drugo ime. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Jeste li sigurni da želite ukloniti odabrana pravila preuzimanja? - + Rule deletion confirmation Pravilo potvrđivanja brisanja - + Destination directory Odredišni direktorij - + Invalid action Neispravna radnja - + The list is empty, there is nothing to export. Popis je prazan. Nema se što izvesti. - + Where would you like to save the list? Gdje želite spremiti popis? - + Rules list (*.rssrules) Popis pravila (*.rssrules) - + I/O Error I/O greška - + Failed to create the destination file Nije uspjelo kreiranje odredišne datoteke - + Please point to the RSS download rules file Istaknite RSS datoteku pravila preuzimanja - + Rules list Popis pravila - + Import Error Greška prilikom uvoza - + Failed to import the selected rules file Nije uspio uvoz datoteke s odabranim pravilima - + Add new rule... Dodaj novo pravilo... - + Delete rule Izbriši pravilo - + Rename rule... Preimenuj pravilo ... - + Delete selected rules Izbriši odabrana pravila - + Rule renaming Preimenovanje pravila - + Please type the new rule name Upišite ime novog pravila - + Regex mode: use Perl-like regular expressions Regex mode: koristi Pearl-u slične uobičajene izraze - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard mode: možete koristiti<ul><li>? za podudaranje s bilo kojim pojedinim znakom</li><li>* za podudaranje s nula ili više drugih znakova</li><li>Prazna mjesta se računaju kao AND operatori</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard mode: možete koristiti<ul><li>? za podudaranje s bilo kojim pojedinim znakom</li><li>* za podudaranje s nula ili više drugih znakova</li><li>| se koristi kao OR operator</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspješno razrješen dani IP filter: Primjenjena su %1 pravila. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Vrijednost - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS kanali - + Unread Nepročitano @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Samo jedan link po liniji - - Download local torrent - Preuzmi lokalni torent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Preuzeto @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &O - - Exit - Izlaz - &Pause @@ -1984,22 +1982,6 @@ You should get this information from your Web browser preferences. E&xit - - Options - Opcije - - - Resume - Nastavi - - - Pause - Pauziraj - - - Delete - Izbriši - Open URL @@ -2017,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Prikaži - + Check for program updates Provjeri ažuriranja - - Lock qBittorrent - Zaključaj qBittorrent - Add Torrent &Link... @@ -2042,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Dnevnik izvršavanja - + Clear the password Izbriši lozinku - + Filter torrent list... Filtriraj popis torrenta... - + &Set Password - + &Clear Password - + Transfers Transferi - + Torrent file association Pridruživanje torrent datoteka - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent nije zadana aplikacija za otvaranje torrent datoteka ili Magnet linkova. Želite li pridružiti qBittorrent torrent datotekama i Magnet linkovima? - + Icons Only Samo ikone - + Text Only Samo tekst - + Text Alongside Icons Tekst uz ikone - + Text Under Icons Tekst ispod ikona - + Follow System Style Koristi stil sustava - - - + + + UI lock password Lozinka zaključavanja sučelja - - - + + + Please type the UI lock password: Upišite lozinku zaključavanja sučelja: - + The password should contain at least 3 characters Lozinka mora imati najmanje 3 znaka - + Password update Ažuriranje lozinke - + The UI lock password has been successfully updated Lozinka zaključavanja sučelja je uspješno ažurirana - + Are you sure you want to clear the password? Želite li sigurno izbrisati lozinku? - + Search Traži - + Transfers (%1) Transferi (%1) - + Error - + Failed to add torrent: %1 - + Download completion Preuzimanje završeno - + I/O Error i.e: Input/Output Error I/O greška - + Recursive download confirmation Potvrda rekurzivnog preuzimanja - + Yes Da - + No Ne - + Never Nikad - + Global Upload Speed Limit Globalni limit brzine slanja - + Global Download Speed Limit Globalni limit brzine preuzimanja - + &No &Ne - + &Yes &Da - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2258,157 +2242,151 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter Nedostaje Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Već se provjeravaju softverska ažuriranja u pozadini - + Python found in '%1' - + Download error Greška pri preuzimanju - + Python setup could not be downloaded, reason: %1. Please install it manually. Python setup nije moguće preuzeti. Razlog: %1. Instalirajte ručno. - - + + Invalid password Neispravna lozinka - - + + RSS (%1) - + URL download error - + The password is invalid Lozinka nije ispravna - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Brzina preuzimanja: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Brzina slanja: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [P: %1, S: %2] qBittorrent %3 - + Hide Sakrij - + Exiting qBittorrent Izlaz iz qBittorrenta - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Neke datoteke još se prenose. Jeste li sigurni da želite zatvoriti qBittorrent? - + Open Torrent Files Otvori torrent datoteke - + Torrent Files Torrent datoteke - + Options were saved successfully. Opcije su uspješno spremljene. @@ -2416,17 +2394,17 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2436,32 +2414,32 @@ Jeste li sigurni da želite zatvoriti qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2488,154 +2466,149 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2650,1137 +2623,1127 @@ Jeste li sigurni da želite zatvoriti qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Francuska + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Francuska + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grčka - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3811,72 +3774,72 @@ Jeste li sigurni da želite zatvoriti qBittorrent? interested(local) and choked(peer) - zainteresiran(lokalno) i zagušen(peer) + interested(local) and unchoked(peer) - zainteresiran(lokalno) i nezagušen(peer) + interested(peer) and choked(local) - zainteresiran(peer) i zagušen(lokalno) + interested(peer) and unchoked(local) - zainteresiran(peer) i nezagušen(lokalno) + optimistic unchoke - optimistično nezagušen + peer snubbed - prekoren peer + incoming connection - dolazna veza + not interested(local) and unchoked(peer) - nezainteresiran(lokalno) i nezagušen(peer) + not interested(peer) and unchoked(local) - nezainteresiran(peer) i nezagušen(lokalno) + peer from PEX - peer s PEX-a + peer from DHT - peer s DHT-a + encrypted traffic - kriptiran promet + encrypted handshake - kriptirano usklađivanje + peer from LSD - peer s LSD-a + @@ -3944,123 +3907,73 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Relevantnost - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Dodaj novi peer ... - + Copy selected Kopiraj odabrano - - + + Ban peer permanently Trajno isključi peer - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Dodavanje peerova - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Jeste li sigurni da želite trajno isključiti odabrane peerove? - + &Yes &Da - + &No &Ne - - interested(local) and choked(peer) - zainteresiran(lokalno) i zagušen(peer) - - - interested(local) and unchoked(peer) - zainteresiran(lokalno) i nezagušen(peer) - - - interested(peer) and choked(local) - zainteresiran(peer) i zagušen(lokalno) - - - interested(peer) and unchoked(local) - zainteresiran(peer) i nezagušen(lokalno) - - - optimistic unchoke - optimistično nezagušen - - - peer snubbed - prekoren peer - - - incoming connection - dolazna veza - - - not interested(local) and unchoked(peer) - nezainteresiran(lokalno) i nezagušen(peer) - - - not interested(peer) and unchoked(local) - nezainteresiran(peer) i nezagušen(lokalno) - - - peer from PEX - peer s PEX-a - - - peer from DHT - peer s DHT-a - - - encrypted traffic - kriptiran promet - - - encrypted handshake - kriptirano usklađivanje - - - peer from LSD - peer s LSD-a - PeersAdditionDlg @@ -4098,6 +4011,202 @@ Jeste li sigurni da želite zatvoriti qBittorrent? + + PluginSelectDlg + + + Search plugins + Tražilice + + + + Installed search plugins: + + + + + Name + Ime + + + + Version + + + + + Url + Url + + + + + Enabled + Omogućeno + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nove tražilice možete naći ovdje: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instaliraj novu + + + + Check for updates + Provjeri ažuriranja + + + + Close + Zatvori + + + + Uninstall + Deinstaliraj + + + + + + Yes + Da + + + + + + + No + Ne + + + + Uninstall warning + Upozorenje deinstalacije + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Deinstalacija je uspjela + + + + All selected plugins were uninstalled successfully + Sve izabrane tražilice su uspješno deinstalirane + + + + + New search engine plugin URL + Novi URL tražilice + + + + + URL: + URL: + + + + Invalid link + Nevažeća poveznica + + + + The link doesn't seem to point to a search engine plugin. + Link ne vodi na modul za tražilicu + + + + Select search plugins + Izaberite tražilice + + + + qBittorrent search plugin + + + + + + + Search plugin update + Ažuriranje tražilice + + + + All your plugins are already up to date. + Sve vaše tražilice su ažurirane. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalacija tražilice + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Izvor priključka + + + + Search plugin source: + Potraži izvor priključka: + + + + Local file + Lokalna datoteka + + + + Web link + Web link + + Preferences @@ -4154,89 +4263,89 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Pridodaj .!qB proširenje nedovršenim datotekama - + Copy .torrent files to: Kopiraj .torrent datoteke u: - + Connections Limits Limiti spajanja - + Proxy Server Proxy poslužitelj - + Global Rate Limits Globalni limiti brzine - + Apply rate limit to transport overhead Primijeni limit brzine za dodatni promet - + Schedule the use of alternative rate limits Planiraj korištenje alternativnih limita brzine - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Omogući lokalno otkrivanje peerova - + Encryption mode: Način kriptiranja: - + Prefer encryption Preferiraj kriptiranje - + Require encryption Zahtjevaj kriptiranje - + Disable encryption Onemogući kriptiranje - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Više informacija</a>) - + Maximum active downloads: Najviše aktivnih preuzimanja: - + Maximum active uploads: Najviše aktivnih slanja: - + Maximum active torrents: Najviše aktivnih torrenta: @@ -4261,82 +4370,82 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Prikaži sadržaj torrenta i neke opcije - + Run external program on torrent completion - + Port used for incoming connections: Port korišten za dolazna spajanja: - + Random Nasumično - + Global maximum number of connections: Globalni najveći broj spajanja: - + Maximum number of connections per torrent: Najveći broj spajanja po torrentu: - + Maximum number of upload slots per torrent: Najveći broj priključnica slanja po torrentu: - - + + Upload: Slanje: - - + + Download: Preuzimanje: - - - - + + + + KiB/s KiB/s - + Remove folder Ukloni mapu - + Every day Svaki dan - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Razmjeni peerove s kompatibilnim Bittorrent klijentima (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Vrsta: @@ -4509,262 +4618,262 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Automatski dodaj torrente iz: - + Add folder... Dodaj mapu ... - + Copy .torrent files for finished downloads to: Kopiraj torrent datoteke završenih preuzimanja u: - + Email notification upon download completion Obavijesti e-poštom prilikom završetka preuzimanja - + Destination email: Odredišna adresa e-pošte: - + SMTP server: SMPT poslužitelj: - + This server requires a secure connection (SSL) Ovaj poslužitelj zahtijeva sigurnu vezu (SSL) - + Listening Port Osluškivanje porta - + Use UPnP / NAT-PMP port forwarding from my router Koristi UPnP / NAT-PMP port prosljeđivanje s mojeg routera - + Use different port on each startup Koristi drukčiji port kod svakog pokretanja - + Global maximum number of upload slots: Globalni najveći broj priključnica slanja: - + Otherwise, the proxy server is only used for tracker connections U drugom slučaju, proxy poslužitelj bit će korišten za spajanja trackera - + Use proxy for peer connections Koristi proxy za spajanja peerova - + Disable connections not supported by proxies Onemogući spajanja koja ne podržavaju proxyji - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Opis: Spremljena lozinka nije kriptirana - + IP Filtering IP filtriranje - + Reload the filter Ponovno učitaj filter - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Kada: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Privatnost - + Enable DHT (decentralized network) to find more peers Omogući DHT (decentralizirana mreža) kako bi se našlo još peerova - + Enable Peer Exchange (PeX) to find more peers Omogući razmjenu peerova (PeX) kako bi se našlo još peerova - + Look for peers on your local network Potraži peerove u vašoj lokalnoj mreži - + Enable when using a proxy or a VPN connection Omogući kada se koristi proxy ili VPN veza - + Enable anonymous mode Omogući anonimni mod - + Do not count slow torrents in these limits Ne računaj spore torrente u ovim limitima - + Seed torrents until their ratio reaches Seedaj torrente dok njihov omjer ne dosegne - + then tada - + Pause them Pauziraji ih - + Remove them Ukloni ih - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Koristi UPnP / NAT-PMP za prosljeđivanje porta s mojeg routera - + Use HTTPS instead of HTTP Koristi HTTPS umjesto HTTP-a - + Import SSL Certificate Uvezi SSL certifikat - + Import SSL Key Uvezi SSl ključ - + Certificate: Certifikat: - + Alternative Rate Limits - + Key: Ključ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informacija o certifikatima</a> - + Bypass authentication for localhost Zaobiđi autentifikaciju za localhosta - + Update my dynamic domain name Ažuriraj moje dinamičko ime domene - + Service: Servis: - + Register Registar - + Domain name: Ime domene: - + (None) (Nijedno) @@ -4774,61 +4883,61 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Bittorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Ovjera - - - - + + + + Username: Korisničko ime: - - - - + + + + Password: Lozinka: - + Torrent Queueing Red čekanja torrenta - + Share Ratio Limiting Limitiranje omjera djeljenja - + Enable Web User Interface (Remote control) Omogući web korisničko sučelje (Udaljeno upravljanje) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Putanja filtera (.dat, .p2p, .p2b): @@ -5034,10 +5143,6 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Comment: Komentar: - - Torrent content: - Sadržaj torrenta: - Select All @@ -5557,28 +5662,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5689,17 +5794,17 @@ No further notices will be issued. RSSImp - + Stream URL: URL strujanja: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5719,75 +5824,77 @@ No further notices will be issued. Nova mapa - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Izaberite novo ime za taj RSS kanal - + New feed name: Novo ime kanala: - + Name already in use Ime se već koristi - + This name is already used by another item, please choose another one. To ime već koristi neka druga stavka. Izaberite drugo. - + Date: Datum: - + Author: Autor: - + Unread Nepročitano - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Neuspješno otvaranje preuzete RSS datoteke. - - - - Invalid RSS feed at '%1'. - + Neuspješno otvaranje preuzete RSS datoteke. @@ -5813,168 +5920,220 @@ No further notices will be issued. Najveći broj članaka po kanalu: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Pretraži ... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Pregledana mapa - - Download here - Preuzmi ovdje + + Save Files to + - - Download path - + Download here + Preuzmi ovdje SearchCategories - All categories - Kategorije + Kategorije - Movies - Filmovi + Filmovi - TV shows - TV emisije + TV emisije - Music - Glazba + Glazba - Games - Igre + Igre - Anime - Animirani + Animirani - Software - Softver + Softver - Pictures - Slike + Slike - Books - Knjige + Knjige SearchEngine - - - Search - Traži + Traži - - Please install Python to use the Search Engine. - - - - Empty search pattern - Prazan predložak potrage + Prazan predložak potrage - Please type a search pattern first - Prvo utipkajte predložak potrage + Prvo utipkajte predložak potrage - Searching... - Potraga ... + Potraga ... - Stop - Zaustavi + Zaustavi - - Search Engine - Tražilica + Tražilica - - Search has finished - Potraga je gotova + Potraga je gotova - An error occurred during search... - Dogodila se greška za vrijeme potrage ... + Dogodila se greška za vrijeme potrage ... - - Search aborted - Potraga je otkazana + Potraga je otkazana - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Potraga vraćena bez rezultata + Potraga vraćena bez rezultata - - Stopped - Zaustavljeno + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Kategorije + + + + Movies + Filmovi + + + + TV shows + TV emisije + + + + Music + Glazba + + + + Games + Igre + + + + Anime + Animirani + + + + Software + Softver + + + + Pictures + Slike + + + + Books + Knjige SearchListDelegate - - + + Unknown Nije poznato @@ -5982,35 +6141,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Ime - + Size i.e: file size Veličina - + Seeders i.e: Number of full sources Seederi - + Leechers i.e: Number of partial sources Leecheri - + Search engine Tražilica + + SearchWidget + + + + + + + Search + Traži + + + + Status: + Status: + + + + + Stopped + Zaustavljeno + + + + Download + Preuzmi + + + + Go to description page + Idi na stranicu opisa + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Tražilica + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Prazan predložak potrage + + + + Please type a search pattern first + Prvo utipkajte predložak potrage + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Potraga ... + + + + Stop + Zaustavi + + + + + Search has finished + Potraga je gotova + + + + + Search aborted + Potraga je otkazana + + + + Search returned no results + Potraga vraćena bez rezultata + + + + Search has failed + + + + + An error occurred during search... + Dogodila se greška za vrijeme potrage ... + + ShutdownConfirmDlg @@ -6455,24 +6739,28 @@ No further notices will be issued. TorrentContentModel - + Name Ime - + Size Veličina - + Progress Napredak - + + Download Priority + + + Priority - Prioritet + Prioritet @@ -6824,38 +7112,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Nastavi s torrentima - + Pause torrents Pauziraj torrente - + Delete torrents Izbriši torrente - - + + All (%1) this is for the tracker filter Sve (%1) @@ -7123,17 +7411,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Status - + Labels Oznake - + Trackers Trackeri @@ -7672,205 +7960,103 @@ No further notices will be issued. engineSelect - Search plugins - Tražilice + Tražilice - Installed search engines: - Instalirane tražilice: + Instalirane tražilice: - Name - Ime + Ime - - Version - - - - Url - Url + Url - - Enabled - Omogućeno + Omogućeno - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nove tražilice možete naći ovdje: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nove tražilice možete naći ovdje: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instaliraj novu + Instaliraj novu - Check for updates - Provjeri ažuriranja + Provjeri ažuriranja - Close - Zatvori + Zatvori - Uninstall - Deinstaliraj + Deinstaliraj engineSelectDlg - Uninstall warning - Upozorenje deinstalacije + Upozorenje deinstalacije - Uninstall success - Deinstalacija je uspjela + Deinstalacija je uspjela - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Link ne vodi na modul za tražilicu + Link ne vodi na modul za tražilicu - Select search plugins - Izaberite tražilice + Izaberite tražilice - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Instalacija tražilice + Instalacija tražilice - - - Yes - Da + Da - - - - No - Ne + Ne - - qBittorrent search plugin - - - - - - - Search plugin update - Ažuriranje tražilice + Ažuriranje tražilice - - Sorry, update server is temporarily unavailable. - Oprostite, ali poslužitelj za ažuriranje trenutno nije raspoloživ. + Oprostite, ali poslužitelj za ažuriranje trenutno nije raspoloživ. - All your plugins are already up to date. - Sve vaše tražilice su ažurirane. + Sve vaše tražilice su ažurirane. - All selected plugins were uninstalled successfully - Sve izabrane tražilice su uspješno deinstalirane + Sve izabrane tražilice su uspješno deinstalirane - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Nevažeća poveznica + Nevažeća poveznica - - New search engine plugin URL - Novi URL tražilice + Novi URL tražilice - - URL: - URL: + URL: @@ -8000,169 +8186,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Izaberite direktorij za izvoz - - - - + + + + Choose a save directory Izaberite direktorij za spremanje - + Add directory to scan Dodaj direktorij za skeniranje - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Mapa je već pregledana. - + Folder does not exist. Mapa ne postoji. - + Folder is not readable. Mapa nije čitljiva. - + Failure Neuspjeh - + Failed to add Scan Folder '%1': %2 Nije uspjelo dodavanje mape za skeniranje '%1': %2 - - + + Filters Filteri - - + + Choose an IP filter file - + SSL Certificate SSL certifikat - + SSL Key SSL ključ - + Parsing error Greška razrješavanja - + Failed to parse the provided IP filter Razrješavanje danog IP filtera nije uspjelo - + Successfully refreshed Uspješno obnovljeno - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspješno razrješen dani IP filter: Primjenjena su %1 pravila. - + Invalid key Neispravan ključ - + This is not a valid SSL key. To nije valjani SSl ključ. - + Invalid certificate Neispravan certifikat - + This is not a valid SSL certificate. Ovo nije valjani SSL certifikat - + The start time and the end time can't be the same. Početno i završno vrijeme ne može biti jednako - + Time Error Vremenska greška @@ -8170,24 +8356,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Izvor priključka + Izvor priključka - Search plugin source: - Potraži izvor priključka: + Potraži izvor priključka: - Local file - Lokalna datoteka + Lokalna datoteka - Web link - Web link + Web link @@ -8216,40 +8398,28 @@ Those plugins were disabled. search_engine - - Search - Traži + Traži - Status: - Status: + Status: - Stopped - Zaustavljeno + Zaustavljeno - Download - Preuzmi + Preuzmi - Go to description page - Idi na stranicu opisa + Idi na stranicu opisa - - Copy description page URL - - - - Search engines... - Tražilice ... + Tražilice ... diff --git a/src/lang/qbittorrent_hu.ts b/src/lang/qbittorrent_hu.ts index d7bb50120..37b1828f7 100644 --- a/src/lang/qbittorrent_hu.ts +++ b/src/lang/qbittorrent_hu.ts @@ -127,7 +127,7 @@ Set as default label - + Beállítás alapértelmezett címkének @@ -175,172 +175,172 @@ Mellőzés - - + + I/O Error I/O Hiba - + The torrent file does not exist. A torrent fájl nem létezik. - + Invalid torrent Érvénytelen torrent - + Failed to load the torrent: %1 Nem sikerült betölteni a torrentet: %1 - - + + Already in download list Már a letöltési listában van - + Free disk space: %1 Szabad lemezterület: %1 - + Not Available This comment is unavailable Nem elérhető - + Not Available This date is unavailable Nem elérhető - + Not available Nem elérhető - + Invalid magnet link Érvénytelen magnet link - + Torrent is already in download list. Trackers were merged. A torrent már szerepel a letöltések között. A trackerek egyesítésre kerültek. - - + + Cannot add torrent Torrentet nem lehet hozzáadni - + Cannot add this torrent. Perhaps it is already in adding state. Nem lehet hozzáadni ezt a torrentet. Talán már hozzáadási állapotban van. - + This magnet link was not recognized A magnet linket nem sikerült felismerni - + Magnet link is already in download list. Trackers were merged. A magnet link már szerepel a letöltések között. A trackerek egyesítésre kerültek. - + Cannot add this torrent. Perhaps it is already in adding. Nem lehet hozzáadni ezt a torrentet. Talán már hozzáadásban van. - + Magnet link Magnet link - + Retrieving metadata... Metadata letöltése... - + Not Available This size is unavailable. Nem elérhető - - - + + + Choose save path Mentési útvonal választása - + Rename the file Fájl átnevezése - + New name: Új név: - - + + The file could not be renamed Nem sikerült átnevezni a fájlt - + This file name contains forbidden characters, please choose a different one. Ez a fájlnév tiltott karaktereket tartalmaz, kérlek válassz egy másikat. - - + + This name is already in use in this folder. Please use a different name. Ez a név már használatban van ebben a mappában. Kérlek válassz másik nevet. - + The folder could not be renamed Nem sikerült átnevezni a mappát - + Rename... Átnevezés... - + Priority Priorítás - + Invalid metadata Érvénytelen metadata - + Parsing metadata... Metadata értelmezése... - + Metadata retrieval complete Metadata sikeresen letöltve - + Download Error Letöltési hiba @@ -431,10 +431,6 @@ Resolve peer host names Host nevek feloldása - - Maximum number of half-open connections [0: Disabled] - A félig nyitott kapcsolatok maximális száma [0: Kikapcsolva] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Félig nyitott kapcsolatok maximális száma [0: Korlátlan] @@ -529,7 +525,7 @@ To control qBittorrent, access the Web UI at http://localhost:%1 - A qBittorrent irányításához webes felületen nyisd meg ezt a címet: http://localhost:%1 + A qBittorrent vezérléséhez, nyisd meg ezt a címet: http://localhost:%1 @@ -572,48 +568,48 @@ Download Rules - Letöltés Szabályok + Letöltés sSzabályok Rule Definition - Szabály Meghatározás + Szabály meghatározás Use Regular Expressions - Szokásos Kifejezések Használata + Reguláris Kifejezések használata Must Contain: - Tartalmazza: + Tartalmaznia Kell: Must Not Contain: - Ne Tartalmazza: + Nem Tartalmazhatja: Episode Filter: - Epizód Szűrő: + Epizód szűrő: Assign Label: - Címke Hozzárendelés: + Címke hozzárendelése: Save to a Different Directory - Mentés Eltérő Könyvtárba + Külön könyvtárba mentés Ignore Subsequent Matches for (0 to Disable) ... X days - Ezt Követő Egyezések Figyelmen Kívül Hagyása (0 a Letiltáshoz): + Ezt követő egyezések figyelmen kívül hagyása (0 a letiltáshoz): @@ -628,7 +624,7 @@ Use global settings - Általános beállítások használata + Globális beállítások használata @@ -661,205 +657,205 @@ &Exportálás... - + Matches articles based on episode filter. Epizód szűrő alapján társítja a találatokat. - + Example: Példa: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match az első évad 2., 5., 8.-15., és a 30.- részeire fog szűrni - + Episode filter rules: Epizód szűrő szabályok: - + Season number is a mandatory non-zero value Évad szám egy kötelező nem-nulla érték - + Episode number is a mandatory non-zero value Epizód szám egy kötelező nem-nulla érték - + Filter must end with semicolon Szűrőnek pontosvesszővel kell végződnie - + Three range types for episodes are supported: Epizódok esetén három tartomány típus támogatott: - + Single number: <b>1x25;</b> matches episode 25 of season one Egy szám: <b>1x25;</b> az első évad 25. epizódjának felel meg - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normál tartomány: <b>1x25-40;</b> az első évad 25-40. epizódjának felel meg - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Korlátlan tartomány: <b>1x25-;</b> az első évad 25. epizódjától kezdve minden rész - + Last Match: %1 days ago - Utolsó Egyezés: %1 nappal ezelőtt + Utolsó egyezés: %1 nappal ezelőtt - + Last Match: Unknown - Utolsó Egyezés: Ismeretlen + Utolsó egyezés: Ismeretlen - + New rule name Új szabály neve - + Please type the name of the new download rule. Kérlek add meg az új letöltési szabály nevét. - - + + Rule name conflict Szabály név ütközés - - + + A rule with this name already exists, please choose another name. Már van ilyen szabály név. Kérlek válassz másikat. - + Are you sure you want to remove the download rule named '%1'? - Biztosan el akarod távolítani ezt a szabályt %1? + Biztosan el akarod távolítani a '%1' nevű szabályt ? - + Are you sure you want to remove the selected download rules? Biztosan eltávolítod a kiválasztott szabályokat? - + Rule deletion confirmation Szabály törlés megerősítése - + Destination directory Célmappa - + Invalid action Érvénytelen esemény - + The list is empty, there is nothing to export. A lista üres. Nincs mit exportálni. - + Where would you like to save the list? Hová szeretnéd menteni a listát? - + Rules list (*.rssrules) Szabály lista (*.rssrules) - + I/O Error I/O Hiba - + Failed to create the destination file Fájl létrehozása sikertelen - + Please point to the RSS download rules file Kérlek nyisd meg az RSS letöltési szabályokat tartalmazó fájlt - + Rules list Szabály lista - + Import Error Import Hiba - + Failed to import the selected rules file Nem sikerült importálni a kiválasztott fájlt - + Add new rule... Új szabály felvétele... - + Delete rule Szabály törlése - + Rename rule... Szabály átnevezése... - + Delete selected rules Kiválasztott szabályok törlése - + Rule renaming Szabály átnevezése - + Please type the new rule name Kérlek add meg a szabály új nevét - + Regex mode: use Perl-like regular expressions Regex mód: Perl-szerű reguláris kifejezések használata - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Helyettesítő-jel mód: használhatod a <ul><li>? karaktert hogy egy darab karaktert feleltess meg</li><li>* karaktert hogy nulla vagy több karaktert feleltess meg</li><li>A szóközök ÉS operátornak felelnek meg</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Helyettesítő-jel mód: használhatod a <ul><li>? karaktert hogy egy darab karaktert feleltess meg</li><li>* karaktert hogy nulla vagy több karaktert feleltess meg</li><li>A | karakter pedig a VAGY operátornak felelnek meg</li></ul> @@ -874,17 +870,17 @@ HTTP User-Agent is '%1' - HTTP User-Agent is %1 + HTTP User-Agent a következő '%1' Anonymous mode [ON] - Anonim mód: [BE] + Anonymous mód: [BE] Anonymous mode [OFF] - Anonim mód: [KI] + Anonymous mód: [KI] @@ -899,7 +895,7 @@ Restart is required to toggle PeX support - A PeX támogatás átkapcsolása újraindítást igényel + A PeX támogatás átkapcsolásához újra kell indítani a programot. @@ -944,73 +940,65 @@ '%1' reached the maximum ratio you set. Removing... - %1 elérte a megengedett arányt. Eltávolítás... + '%1' elérte a maximális megengedett arányt. Eltávolítás... '%1' reached the maximum ratio you set. Pausing... - '%1' elérte a megengedett arányt. Eltávolítás... + '%1' elérte a maximáls megengedett arányt. Szüneteltetés... - Error: Could not create torrent export directory: '%1' - Hiba: Nem lehet létrehozni torrent exportálás könyvtárat: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Hiba: nem lehet exportálni a(z) '%1' torrentet, talán még nincs metaadata. - - - + System network status changed to %1 e.g: System network status changed to ONLINE - Rendszer hálózat állapot megváltozott erre: %1 + Rendszer hálózat állapota megváltozott erre: %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 hálózati konfigurációja megváltozott, munkamenet-kötés frissítése - + Unable to decode '%1' torrent file. - Nem sikerült dekódolni a %1 torrent fájlt. + Nem sikerült dekódolni a '%1' torrent fájlt. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Fájl ismételt letöltése '%1' beágyazva a torrentbe '%2' - + Couldn't save '%1.torrent' - '%1.torrent'-et nem lehet menteni + '%1.torrent'-et nem lehetett elmenteni - + because %1 is disabled. this peer was blocked because uTP is disabled. mert a %1 ki van kapcsolva. - + because %1 is disabled. this peer was blocked because TCP is disabled. mert a %1 ki van kapcsolva. - + URL seed lookup failed for URL: '%1', message: %2 URL forrás meghatározása sikertelen: '%1', hibaüzenet: %2 @@ -1027,178 +1015,164 @@ '%1' eltávolítva az átviteli listáról. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' letöltése, kérlek várj... - Torrent Export: torrent is invalid, skipping... - Torrent Exportálás: torrent érvénytelen, átugrás... - - - + DHT support [ON] DHT támogatás [BE] - + DHT support [OFF]. Reason: %1 DHT támogatás [KI]. Indok: %1 - + DHT support [OFF] DHT támogatás [KI] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 A qBittorrent próbálja a TCP/%1 portot használni - minden interfészen - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2 - - - + The network interface defined is invalid: %1 A megadott hálózati csatoló hasznavehetetlen: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 A qBittorrent próbálja TCP/%2 portot használni a %1 interfészen - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on Nem található a %1 helyi cím a figyeléshez - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2. {1.?} + Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2 - + Tracker '%1' was added to torrent '%2' '%1' tracker hozzá lett adva a(z) '%2' torrenthez - + Tracker '%1' was deleted from torrent '%2' '%1' URL seed törölve a(z) '%2' torrentből. - + URL seed '%1' was added to torrent '%2' '%1' URL seed hozzáadva a(z) '%2' torrenthez. - + URL seed '%1' was removed from torrent '%2' '%1' URL seed eltávolítva a(z) '%2' torrentből. - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nem lehet folytatni a(z) '%1' torrentet. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number A következő IP szűrő sikeresen feldolgozva: %1 szabály alkalmazva. - + Error: Failed to parse the provided IP filter. Hiba: az IP szűrő megnyitása sikertelen. - + Couldn't add torrent. Reason: %1 Nem lehet torrentet hozzáadni. Ok: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - '%1' visszaállítva. (folytatás) + '%1' folytatva. (gyors folytatás) - + '%1' added to download list. 'torrent name' was added to download list. '%1' felvéve a letöltési listára. - + An I/O error occurred, '%1' paused. %2 - I/O hiba történt, '%1' megállítva. %2 + I/O hiba történt, '%1' szüneteltetve. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - UPnP/NAT-PMP: Port felderítése sikertelen, hibaüzenet: %1 + UPnP/NAT-PMP: Port lefoglalása sikertelen, hibaüzenet: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - UPnP/NAT-PMP: Port felderítése sikeres, hibaüzenet: %1 + UPnP/NAT-PMP: Port lefoglalása sikeres, hibaüzenet: %1 - + due to IP filter. this peer was blocked due to ip filter. IP szűrő miatt. - + due to port filter. this peer was blocked due to port filter. port szűrő miatt. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p kevert mód korlátozás miatt. - + because it has a low port. this peer was blocked because it has a low port. mert alacsony porttal rendelkezik. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 A qBittorrent sikeresen használatba vette a %2/%3 portot - a %1 interfészen - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4. {1 ?} {2/%3.?} + Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Külső IP: %1 @@ -1212,14 +1186,14 @@ Nem sikerült áthelyezni a torrentet: '%1'. Indok: %2 - + File sizes mismatch for torrent '%1', pausing it. - A fájl mérete nem megfelelő ennél a torrentnél: '%1', leállítva. + Fájl méret nem megfelelő ennél a torrentnél: '%1', szüneteltetés. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - Hibás ellenőrző adat ennél a torrentnél: '%1'. Oka: '%2'. újraellenőrzés... + Gyors folytatás adat elutasítva ennél a torrentnél: '%1'. Oka: '%2'. Újraellenőrzés... @@ -1242,7 +1216,7 @@ Érték - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Gyakori kulcsok sütik esetén: '%1', '%2'. Ezt az információt a böngésző beállításaiból lehet kinyerni. @@ -1254,7 +1228,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - Biztosan törölni akarod a(z) '%1'-t a listából? + Biztosan törölni akarod a(z) '%1'-t az átviteli listából? @@ -1309,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS források - + Unread Olvasatlan @@ -1326,7 +1300,7 @@ You should get this information from your Web browser preferences. I/O Error: Could not open ip filter file in read mode. - I/O Hiba: Nem sikerült létrehozni az ideiglenes fájlt. + I/O Hiba: Nem sikerült olvasásra megnyitni az ip szűrő fájlt. @@ -1337,7 +1311,7 @@ You should get this information from your Web browser preferences. Parsing Error: The filter file is not a valid PeerGuardian P2B file. - Megnyitási hiba + Feldolgozás hiba: A szűrő fájl nem egy érvényes PeerGuardian P2B fájl. @@ -1411,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Soronként csak egy linket - - Download local torrent - Helyi torrent letöltése - Download @@ -1523,12 +1493,12 @@ You should get this information from your Web browser preferences. Upload limit: - Feltöltési arány korlátozása + Feltöltési korlát: Download limit: - Letöltési arány korlátozása + Letöltési korlát: @@ -1588,20 +1558,30 @@ You should get this information from your Web browser preferences. Save files to location: - Fájlok mentése a következő helyre: + Letöltés helye: Label: - Címke: + Címke: Cookie: + Süti: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Letöltve @@ -1614,7 +1594,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + Helyi torrent feltöltése @@ -1693,7 +1673,7 @@ You should get this information from your Web browser preferences. Unlabeled (%1) - Címke nélkül (%1) + Címke nélküli (%1) @@ -1972,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Névjegy - - Exit - Kilépés - &Pause @@ -2006,22 +1982,6 @@ You should get this information from your Web browser preferences. E&xit Kilépés - - Options - Beállítások - - - Resume - Folytatás - - - Pause - Szünet - - - Delete - Törlés - Open URL @@ -2039,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Mutat - + Check for program updates Frissítések keresése indításkor - - Lock qBittorrent - qBittorrent zárolása - Add Torrent &Link... @@ -2064,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Napló - + Clear the password Jelszó törlése - + Filter torrent list... Torrent lista szűrése... - + &Set Password &Jelszó beállítása - + &Clear Password &Jelszó törlése - + Transfers Átvitelek - + Torrent file association Torrent fájl társítás - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? A qBittorrent nem az alapértelmezett .torrent vagy Magnet link kezelő alkalmazás. Szeretnéd alapértelmezetté tenni? - + Icons Only Csak ikonok - + Text Only Csak szöveg - + Text Alongside Icons Szöveg az ikonok mellett - + Text Under Icons Szöveg az ikonok alatt - + Follow System Style Rendszer kinézetének követése - - - + + + UI lock password UI jelszó - - - + + + Please type the UI lock password: Kérlek add meg az UI jelszavát: - + The password should contain at least 3 characters A jelszónak legalább 3 karaktert kell tartalmaznia - + Password update Jelszó frissítés - + The UI lock password has been successfully updated Az UI jelszó sikeresen frissítve - + Are you sure you want to clear the password? Biztosan ki akarod törölni a jelszót? - + Search Keresés - + Transfers (%1) Átvitelek (%1) - + Error Hiba - + Failed to add torrent: %1 Torrent hozzáadása nem sikerült: %1 - + Download completion Elkészült letöltés - + I/O Error i.e: Input/Output Error I/O Hiba - + Recursive download confirmation Letöltés ismételt megerősítése - + Yes Igen - + No Nem - + Never Soha - + Global Upload Speed Limit Teljes feltöltési sebesség korlát - + Global Download Speed Limit Teljes letöltési sebesség korlát - + &No &Nem - + &Yes &Igen - + &Always Yes &Mindig igen - + Python found in %1 Python verzió: %1 - + Old Python Interpreter Elavult Python bővítmény - + qBittorrent Update Available Elérhető qBittorrent frissítés - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Már a legújabb verziót használod - + Undetermined Python version Ismeretlen Python verzió - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' befejezte a letöltést. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2280,157 +2242,156 @@ Szeretnéd alapértelmezetté tenni? I/O hiba történt ennél a torrentnél '%1'. Oka: '%2' - + The torrent '%1' contains torrent files, do you want to proceed with their download? A '%1' torrent .torrent fájlokat is tartalmaz. Szeretnéd folytatni a letöltést? - + Couldn't download file at URL '%1', reason: %2. Nem sikerült letölteni URL címről: '%1', mert: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. A telepített Python verzió %1 elavult. A legújabb verzió szükséges a keresőmező működéséhez (minimum követelmény: 2.7.0/3.3.0). - + Couldn't determine your Python version (%1). Search engine disabled. Nem lehet megállapítani a Python verzióját (%1). A keresőmező ki lett kapcsolva. - - + + Missing Python Interpreter Hiányzó Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? A kereső használatához Python szükséges, de úgy tűnik nincs telepítve. Szeretnéd most telepíteni? - + Python is required to use the search engine but it does not seem to be installed. A keresőhöz Python szükséges, de nincs installálva. - A new version is available. Update to version %1? - Egy új verzió érhető el. Frissítés a %1 verzióra? + Egy új verzió érhető el. Frissítés a %1 verzióra? - + No updates available. You are already using the latest version. Nincs elérhető frissítés. A legfrissebb verziót használod. - + &Check for Updates &Frissítések ellenőrzése - + Checking for Updates... Frissítések keresése... - + Already checking for program updates in the background A frissítések keresése már fut a háttérben - + Python found in '%1' Python verzió: %1 - + Download error Letöltési hiba - + Python setup could not be downloaded, reason: %1. Please install it manually. A Python telepítőt nem sikerült letölteni, mivel: %1. Kérlek telepítsd fel kézzel. - - + + Invalid password Érvénytelen jelszó - - + + RSS (%1) RSS (%1) - + URL download error URL letöltés hiba - + The password is invalid A jelszó érvénytelen - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Letöltési sebsesség: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Feltöltési sebesség: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [L: %1/s, F: %2/s] qBittorrent %3 - + Hide Elrejt - + Exiting qBittorrent qBittorrent bezárása - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Néhány átvitel még folyamatban van. Biztos, hogy bezárod a qBittorrentet? - + Open Torrent Files Torrent Fájl Megnyitása - + Torrent Files Torrent Fájlok - + Options were saved successfully. Beállítások sikeresen elmentve. @@ -2438,17 +2399,17 @@ Biztos, hogy bezárod a qBittorrentet? Net::DNSUpdater - + Your dynamic DNS was successfully updated. A dinamikus DNS sikeresen frissítve. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dinamikus DNS hiba: A szolgáltatás jelenleg nem elérhető. Újbóli próbálkozás 30 perc múlva. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dinamikus DNS hiba: a hostnév nem található a megadott felhasználói fióknál. @@ -2458,32 +2419,32 @@ Biztos, hogy bezárod a qBittorrentet? Dinamikus DNS hiba: Érvénytelen felhasználónév/jelszó. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dinamikus DNS hiba: a qBittorrent feketelistára került a szolgáltató által, kérem jelezze ezt a http://bugs.qbittorrent.org címen. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dinamikus DNS hiba: %1 választ küldött a kiszolgáló, kérem jelezze ezt a http://bugs.qbittorrent.org címen. - + Dynamic DNS error: Your username was blocked due to abuse. Dinamikus DNS hiba: A felhasználónév letiltásra került visszaélés miatt. - + Dynamic DNS error: supplied domain name is invalid. Dinamikus DNS hiba: a megadott kiszolgálónév érvénytelen. - + Dynamic DNS error: supplied username is too short. Dinamikus DNS hiba: a megadott felhasználónév túl rövid. - + Dynamic DNS error: supplied password is too short. Dinamikus DNS hiba: a megadott jelszó túl rövid. @@ -2510,154 +2471,161 @@ Biztos, hogy bezárod a qBittorrentet? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP adatbázis betöltve. Típus: %1. Létrehozás ideje: %2. - + Couldn't load GeoIP database. Reason: %1 GeoIP adatbázist nem lehet betölteni. Ok: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/A - Asia/Pacific Region - Ázsia/Csendes-óceáni térség + Ázsia/Csendes-óceáni térség + + + Europe + Európa - Europe - Európa - - - Andorra Andorra - + United Arab Emirates Egyesült Arab Emírségek - + Afghanistan Afganisztán - + Antigua and Barbuda Antigua és Barbuda - + Anguilla Anguilla - + Albania Albánia - + Armenia Örményország - Netherlands Antilles - Holland Antillák + Holland Antillák - + Angola Angola - + Antarctica Antarktisz - + Argentina Argentína - + American Samoa Amerikai Szamoa - + Austria Ausztria - + Australia Ausztrália - + Aruba Aruba - + Azerbaijan Azerbajdzsán - + Bosnia and Herzegovina Bosznia-Hercegovina - + Barbados Barbados - + Bangladesh Banglades - + Belgium Belgium - + Burkina Faso Burkina Faso - + Bulgaria Bulgária - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2672,1137 +2640,1187 @@ Biztos, hogy bezárod a qBittorrentet? Brunei Szultanátus - Bolivia - Bolívia + Bolívia - + Brazil Brazília - + Bahamas Bahama-szigetek - + Bhutan Bhután - + Bouvet Island Bouvet-sziget - + Botswana Botswana - + Belarus Belorusszia - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kókusz (Keeling)-szigetek - + Congo, The Democratic Republic of the Kongói Demokratikus Köztársaság - + Central African Republic Közép-Afrikai Köztársaság - + Congo Kongó - + Switzerland Svájc - Cote D'Ivoire - Elefántcsontpart + Elefántcsontpart - + Cook Islands Cook-szigetek - + Chile Chile - + Cameroon Kamerun - + China Kína - + Colombia Kolumbia - + Costa Rica Costa Rica - + Cuba Kuba - + Cape Verde Zöld-foki Köztársaság - + + Curacao + + + + Christmas Island Karácsony-sziget - + Cyprus Ciprus - + Czech Republic Cseh Köztársaság - + Germany Németország - + Djibouti Dzsibuti - + Denmark Dánia - + Dominica Dominika - + Dominican Republic Dominikai Köztársaság - + Algeria Algéria - + Ecuador Ecuador - + Estonia Észtország - + Egypt Egyiptom - + Western Sahara Nyugat-Szahara - + Eritrea Eritrea - + Spain Spanyolország - + Ethiopia Etiópia - + Finland Finnország - + Fiji Fidzsi-szigetek - + Falkland Islands (Malvinas) Falkland-szigetek - + Micronesia, Federated States of Mikronéziai Szövetségi Államok - + Faroe Islands Feröer-szigetek - + France Franciaország - France, Metropolitan - Franciaország kontinentális területe + Franciaország kontinentális területe - + Gabon Gabon - + United Kingdom Egyesült Királyság - + Grenada Grenada - + Georgia Grúzia - + French Guiana Francia Guyana - + Ghana Ghána - + Gibraltar Gibraltár - + Greenland Grönland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Egyenlítői-Guinea - + Greece Görögország - + South Georgia and the South Sandwich Islands Déli-Georgia és Déli-Sandwich-szigetek - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Bissau-Guinea - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heard-sziget és McDonald-szigetek - + Honduras Honduras - + Croatia Horvátország - + Haiti Haiti - + Hungary Magyarország - + Indonesia Indonézia - + Ireland Írország - + Israel Izrael - + India India - + British Indian Ocean Territory Brit Indiai-óceáni Terület - + Iraq Irak - + Iran, Islamic Republic of Iráni Iszlám Köztársaság - + Iceland Izland - + Italy Olaszország - + Jamaica Jamaica - + Jordan Jordánia - + Japan Japán - + Kenya Kenya - + Kyrgyzstan Kirgizisztán - + Cambodia Kambodzsa - + Kiribati Kiribati - + Comoros Comore-szigetek - + Saint Kitts and Nevis Saint Kitts és Nevis - + Korea, Democratic People's Republic of Koreai Népi Demokratikus Köztársaság - + Korea, Republic of Dél-Korea - + Kuwait Kuvait - + Cayman Islands Kajmán-szigetek - + Kazakhstan Kazahsztán - + Lao People's Democratic Republic Laoszi Népi Demokratikus Köztársaság - + Lebanon Libanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libéria - + Lesotho Lesotho - + Lithuania Litvánia - + Luxembourg Luxemburg - + Latvia Lettország - Libyan Arab Jamahiriya - Líbia + Líbia - + Morocco Marokkó - + Monaco Monaco - + Moldova, Republic of Moldovai Köztársaság - + Madagascar Madagaszkár - + Marshall Islands Marshall-szigetek - Macedonia - Macedónia + Macedónia - + Mali Mali - + Myanmar Mianmar - + Mongolia Mongólia - Macau - Makaó + Makaó - + Northern Mariana Islands Északi-Mariana-szigetek - + Martinique Martinique - + Mauritania Mauritánia - + Montserrat Montserrat - + Malta Málta - + Mauritius Mauritius - + Maldives Maldív-szigetek - + Malawi Malawi - + Mexico Mexikó - + Malaysia Malajzia - + Mozambique Mozambik - + Namibia Namíbia - + New Caledonia Új-Kaledónia - + Niger Niger - + Norfolk Island Norfolk-sziget - + Nigeria Nigéria - + Nicaragua Nicaragua - + Netherlands Hollandia - + Norway Norvégia - + Nepal Nepál - + Nauru Nauru - + Niue Niue - + New Zealand Új-Zéland - + Oman Omán - + Panama Panama - + Peru Peru - + French Polynesia Francia Polinézia - + Papua New Guinea Pápua Új-Guinea - + Philippines Fülöp-szigetek - + Pakistan Pakisztán - + Poland Lengyelország - + Saint Pierre and Miquelon Saint-Pierre és Miquelon - Pitcairn Islands - Pitcairn-szigetek + Pitcairn-szigetek - + Puerto Rico Puerto Rico - Palestinian Territory - Palesztína + Palesztína - + Portugal Portugália - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion Réunion - + Romania Románia - + Russian Federation Orosz Föderáció - + Rwanda Ruanda - + Saudi Arabia Szaud-Arábia - + Solomon Islands Salamon-szigetek - + Seychelles Seychelle-szigetek - + Sudan Szudán - + Sweden Svédország - + Singapore Szingapúr - Saint Helena - Szent Ilona + Szent Ilona - + Slovenia Szlovénia - + Svalbard and Jan Mayen Svalbard és Jan Mayen - + Slovakia Szlovákia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Szenegál - + Somalia Szomália - + Suriname Suriname - + Sao Tome and Principe São Tomé és Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Szíriai Arab Köztársaság - + Swaziland Szváziföld - + Turks and Caicos Islands Turks- és Caicos-szigetek - + Chad Csád - + French Southern Territories Francia déli és antarktiszi területek - + Togo Togo - + Thailand Thaiföld - + Tajikistan Tádzsikisztán - + Tokelau Tokelau-szigetek - + Turkmenistan Türkmenisztán - + Tunisia Tunézia - + Tonga Tonga - + Timor-Leste Kelet-Timor - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Törökország - + Trinidad and Tobago Trinidad és Tobago - + Tuvalu Tuvalu - + Taiwan Tajvan - + Tanzania, United Republic of Tanzániai Egyesült Köztársaság - + Ukraine Ukrajna - + Uganda Uganda - + United States Minor Outlying Islands Amerikai Csendes-óceáni-szigetek - + United States Egyesült Államok - + Uruguay Uruguay - + Uzbekistan Üzbegisztán - + Holy See (Vatican City State) Apostoli Szentszék - + Saint Vincent and the Grenadines Saint Vincent és a Grenadine-szigetek - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Brit Virgin-szigetek - + Virgin Islands, U.S. Amerikai Virgin-szigetek - Vietnam - Vietnami Szocialista Köztársaság + Vietnami Szocialista Köztársaság - + Vanuatu Vanuatu - + Wallis and Futuna Wallis és Futuna - + Samoa Szamoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Szerbia - + South Africa Dél-afrikai Köztársaság - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Anonim Proxy + Anonim Proxy - Satellite Provider - Műholdas Szolgáltató + Műholdas Szolgáltató - Other - Egyéb + Egyéb - + Aland Islands Åland-szigetek - + Guernsey Guernsey-sziget - + Isle of Man Man-sziget - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. Nem lehet kibontani GeoIP adatbázis fájlt. - + Couldn't save downloaded GeoIP database file. Nem lehet menteni a letöltött GeoIP adatbázis fájlt. - + Successfully updated GeoIP database. GeoIP adatbázis sikeresen frissítve. - + Couldn't download GeoIP database file. Reason: %1 Nem lehet letölteni GeoIP adatbázis fájlt. Ok: %1 @@ -3833,72 +3851,72 @@ Biztos, hogy bezárod a qBittorrentet? interested(local) and choked(peer) - érdekelt(helyi) és elfojtott(peer) + érdekelt(helyi) és elfojtott(peer) interested(local) and unchoked(peer) - érdekelt(helyi) és nem elfojtott(peer) + érdekelt(helyi) és nem elfojtott(peer) interested(peer) and choked(local) - érdekelt(peer) és elfojtott(helyi) + érdekelt(peer) és elfojtott(helyi) interested(peer) and unchoked(local) - érdekelt(helyi) és nem elfojtott(helyi) + érdekelt(helyi) és nem elfojtott(helyi) optimistic unchoke - optimistic unchoke + optimista elfojtás peer snubbed - peer félretéve + peer félretéve incoming connection - bejövő kapcsolat + bejövő kapcsolat not interested(local) and unchoked(peer) - nem érdekelt(helyi) és nem elfojtott(peer) + nem érdekelt(helyi) és nem elfojtott(peer) not interested(peer) and unchoked(local) - nem érdekelt(peer) és nem elfojtott(helyi) + nem érdekelt(peer) és nem elfojtott(helyi) peer from PEX - peer PEX hálózatból + peer PEX hálózatból peer from DHT - peer DHT hálózatból + peer DHT hálózatból encrypted traffic - titkosított forgalom + titkosított forgalom encrypted handshake - titkosított kézfogás + titkosított kézfogás peer from LSD - peer LSD hálózatból + peer LSD hálózatból @@ -3966,123 +3984,73 @@ Biztos, hogy bezárod a qBittorrentet? Relevancia - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Új ügyfél hozzáadása... - + Copy selected Kiválasztott másolása - - + + Ban peer permanently Ügyfél kitiltása végleg - + Manually adding peer '%1'... Ügyfél kitiltva '%1'... - + The peer '%1' could not be added to this torrent. Az ügyfélt '%1' nem lehet hozzáadni ehhez a torenthez. - + Manually banning peer '%1'... Ügyfél kitiltva '%1'... - - + + Peer addition Ügyfél hozzáadása - + Some peers could not be added. Check the Log for details. Néhány peert nem lehet hozzáadni. Ellenőrizd a Naplót a részletekért. - + The peers were added to this torrent. Ügyfelek hozzáadva ehhez a torrenthez. - + Are you sure you want to ban permanently the selected peers? Biztos vagy benne, hogy végleg kitiltod a kiválaszott ügyfelet? - + &Yes &Igen - + &No &Nem - - interested(local) and choked(peer) - érdekelt(helyi) és elfojtott(peer) - - - interested(local) and unchoked(peer) - érdekelt(helyi) és nem elfojtott(peer) - - - interested(peer) and choked(local) - érdekelt(peer) és elfojtott(helyi) - - - interested(peer) and unchoked(local) - érdekelt(helyi) és nem elfojtott(helyi) - - - optimistic unchoke - optimistic unchoke - - - peer snubbed - peer félretéve - - - incoming connection - bejövő kapcsolat - - - not interested(local) and unchoked(peer) - nem érdekelt(helyi) és nem elfojtott(peer) - - - not interested(peer) and unchoked(local) - nem érdekelt(peer) és nem elfojtott(helyi) - - - peer from PEX - peer PEX hálózatból - - - peer from DHT - peer DHT hálózatból - - - encrypted traffic - titkosított forgalom - - - encrypted handshake - titkosított kézfogás - - - peer from LSD - peer LSD hálózatból - PeersAdditionDlg @@ -4120,6 +4088,202 @@ Biztos, hogy bezárod a qBittorrentet? Kék: Elérhető darabok + + PluginSelectDlg + + + Search plugins + Kereső modulok + + + + Installed search plugins: + + + + + Name + Név + + + + Version + Verzió + + + + Url + Url + + + + + Enabled + Engedélyezve + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + További kereső modulok letölthetőek innen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Új telepítése + + + + Check for updates + Frissítések ellenőrzése + + + + Close + Bezárás + + + + Uninstall + Eltávolít + + + + + + Yes + Igen + + + + + + + No + Nem + + + + Uninstall warning + Figyelemeztetés + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Ezt a modult nem lehet eltávolítani, mivel a program része. Csak azokat lehet, amiket saját kezüleg telepítettél. Viszont kikapcsoltam a modult. + + + + Uninstall success + Sikeresen eltávolítva + + + + All selected plugins were uninstalled successfully + Minden kijelölt kereső modul sikeresen eltávolítva + + + + + New search engine plugin URL + Új kereső modul URL címe + + + + + URL: + URL: + + + + Invalid link + Érvénytelen link + + + + The link doesn't seem to point to a search engine plugin. + Úgy tűnik, a link nem egy keresőmotor kiegészítőre mutat. + + + + Select search plugins + Kereső modulok kiválasztása + + + + qBittorrent search plugin + qBittorrent kereső modul + + + + + + Search plugin update + Kereső modul frissítése + + + + All your plugins are already up to date. + A legújabb kereső modulokat használod. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Kereső modul telepítése + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Modul forrás + + + + Search plugin source: + Kereső modul forrása: + + + + Local file + Helyi fájl + + + + Web link + Webcím + + Preferences @@ -4176,89 +4340,89 @@ Biztos, hogy bezárod a qBittorrentet? .!qB végződés használata félkész fájloknál - + Copy .torrent files to: .torrent fájlok másolása ide: - + Connections Limits Kapcsolati Korlátok - + Proxy Server Proxy Szerver - + Global Rate Limits Globális Sebességkorlátok - + Apply rate limit to transport overhead Korlátok alkalmazása az átviteli többletre (overhead) is - + Schedule the use of alternative rate limits Alternatív sebességkorlátok ütemezése - + From: from (time1 to time2) Tőle: - + To: time1 to time2 Neki: - + Enable Local Peer Discovery to find more peers Helyi Peerek Felkutatása (LPD) engedélyezése, több ügyfél - + Encryption mode: Titkosítás módja: - + Prefer encryption Titkosítás előnyben részesítése - + Require encryption Titkosítás megkövetelése - + Disable encryption Titkosítás kikapcsolása - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">További információk</a>) - + Maximum active downloads: Maximum aktív letöltések száma: - + Maximum active uploads: Maximum aktív feltöltések száma: - + Maximum active torrents: Maximum aktív torrentek száma: @@ -4283,82 +4447,82 @@ Biztos, hogy bezárod a qBittorrentet? Néhány egyéb opció illetve a torrent tartalmának megjelenítése - + Run external program on torrent completion Külső program indítása a letöltés végén - + Port used for incoming connections: Port a bejövő kapcsoaltokhoz: - + Random Véletlenszerű - + Global maximum number of connections: Maximum kapcsolatok száma: - + Maximum number of connections per torrent: Kapcsolatok maximális száma torrentenként: - + Maximum number of upload slots per torrent: Feltöltési szálak száma torrentenként: - - + + Upload: Feltöltés: - - + + Download: Letöltések: - - - - + + + + KiB/s KiB/s - + Remove folder Könyvtár eltávolítása - + Every day Minden nap - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Ügyfélcsere használata a kompatibilis kliensekkel (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Típus: @@ -4531,262 +4695,262 @@ Biztos, hogy bezárod a qBittorrentet? Torrentek automatikus hozzáadása innen: - + Add folder... Könyvtár hozzáadása... - + Copy .torrent files for finished downloads to: Elkészült letöltések .torrent fájlainak másolása a következő helyre: - + Email notification upon download completion E-mail értesítés a letöltés végén - + Destination email: Cél e-mail cím: - + SMTP server: SMTP szerver: - + This server requires a secure connection (SSL) Ez a szerver biztonságos kapcsolatot (SSL) igényel - + Listening Port Használt Port - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP port átirányítás használata a routeremről - + Use different port on each startup Különféle portok használata minden indításnál - + Global maximum number of upload slots: Feltöltési slotok maximális száma: - + Otherwise, the proxy server is only used for tracker connections Egyéb esetben, a proxy csak a trackerek felé történő kommunikáció során kerül majd használatra - + Use proxy for peer connections Proxy használata peer forgalomhoz - + Disable connections not supported by proxies A proxik által nem támogatott kapcsolatok tiltása - + Use proxy only for torrents Proxy használata peer forgalomhoz - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS csatornák, keresőmotor, szoftver frissítések vagy bármi, ami más mint a torrent átvitelek és azzal összefüggő műveletek (akár csak a peer kicserélés) közvetlen kapcsolatot fog használni - + Info: The password is saved unencrypted Info: A jelszó titkosítás nélkül kerül elmentésre - + IP Filtering IP szűrés - + Reload the filter Szűrő újratöltése - + Apply to trackers Alkalmazás a trackerekre - + Apply rate limit to peers on LAN Korlátok alkalmazása a LAN kapcsolatokra is - + When: Ekkor: - + Weekdays Hétköznapok - + Weekends Hétvégék - + Rate Limits Settings Arány Korlátok Beállítások - + Enable µTP protocol µTP protokoll engedélyezése - + Apply rate limit to µTP protocol Arány korlát alkalmazása µTP protokollhoz - + Privacy Adatvédelem - + Enable DHT (decentralized network) to find more peers DHT engedélyezése, hogy több ügyfélt találjon - + Enable Peer Exchange (PeX) to find more peers PeX (ügyfélcsere) engedélyezése, hogy többet találjon - + Look for peers on your local network Ügyfél keresése a helyi hálózaton - + Enable when using a proxy or a VPN connection Bekapcsolás proxy vagy VPN kapcsolat esetén - + Enable anonymous mode Névtelen mód engedélyezése - + Do not count slow torrents in these limits Hagyja figyelmen kívül a lassú torrenteket a korlátok betartásánál - + Seed torrents until their ratio reaches Torrentek megosztása eddig az arányig - + then aztán - + Pause them Szüneteltetés - + Remove them Eltávolítás - + Automatically add these trackers to new downloads: Ezek a trackerek automatikus hozzáadása új letöltésekhez: - + Use UPnP / NAT-PMP to forward the port from my router UPnP / NAT-PMP használata a portok átirányítására - + Use HTTPS instead of HTTP HTTPS használata HTTP helyett - + Import SSL Certificate SSL Tanusítvány Importálása - + Import SSL Key SSL Kulcs Importálása - + Certificate: Tanusítvány: - + Alternative Rate Limits Alternatív Arány Korlátok - + Key: Kulcs: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Információ a tanusítványokról</a> - + Bypass authentication for localhost Hitelesítés mellőzése helyi gép esetén - + Update my dynamic domain name Frissítsd a dinamikus domain nevem - + Service: Szolgáltatás: - + Register Regisztráció - + Domain name: Domain név: - + (None) (Nincs) @@ -4796,61 +4960,61 @@ Biztos, hogy bezárod a qBittorrentet? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Hitelesítés - - - - + + + + Username: Felhasználónév: - - - - + + + + Password: Jelszó: - + Torrent Queueing Torrent Ütemezés - + Share Ratio Limiting Megosztási Arány Korlátozása - + Enable Web User Interface (Remote control) Webes felület engedélyezése (Távoli elérés) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Szűrő fájl helye (.dat, .p2p, .p2b): @@ -5056,10 +5220,6 @@ Biztos, hogy bezárod a qBittorrentet? Comment: Megjegyzés: - - Torrent content: - Torrent tartalma: - Select All @@ -5582,28 +5742,28 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Ismeretlen hiba - - + + Upgrade Frissítés - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Egy régebbi verzióról frissítettél, ami eltérően mentett dolgokat. Át kell térned az új mentési rendszerre. Nem fogsz tudni v3.3.0-nál régebbi verziót használni újra. Folytatod? [i/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Egy régebbi verzióról frissítettél, ami eltérően mentett dolgokat. Át kell térned az új mentési rendszerre. Ha folytatod, nem fogsz tudni v3.3.0-nál régebbi verziót használni újra. - + Couldn't migrate torrent with hash: %1 Nem lehet költöztetni torrentet ezzel a hashhel: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nem lehet költöztetni torrentet. Érvénytelen gyorsfolytatási fájl név: %1 @@ -5714,17 +5874,17 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. RSSImp - + Stream URL: Folyam URL: - + Please type a RSS stream URL Ez a hírcsatorna már fel van véve. - + This RSS feed is already in the list. Ez az RSS csatorna már a listában van. @@ -5744,75 +5904,92 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Új könyvtár - + Deletion confirmation Törlés megerősítése - + Are you sure you want to delete the selected RSS feeds? Biztosan törölni akarod a kiválasztott RSS csatornát? - + Please choose a new name for this RSS feed Válassz új nevet ennek az RSS csatornának - + New feed name: Új forrás neve: - + Name already in use A név már foglalt - + This name is already used by another item, please choose another one. Ez a név már foglalt, kérlek válassz másikat. - + Date: Dátum: - + Author: Szerző: - + Unread Olvasatlan - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Az automatikus letöltés '%1' a '%2' RSS csatornáról hibába ütközött mert nem tartalmaz torrentet, vagy mágneslinket... + Az automatikus letöltés '%1' a '%2' RSS csatornáról hibába ütközött mert nem tartalmaz torrentet, vagy mágneslinket... - + Automatically downloading '%1' torrent from '%2' RSS feed... - A(z) '%1' torrent automatikus letöltése a(z) '%2' RSS csatornából... + A(z) '%1' torrent automatikus letöltése a(z) '%2' RSS csatornából... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Az automatikus letöltés '%1' a '%2' RSS csatornáról hibába ütközött mert nem tartalmaz torrentet, vagy mágneslinket... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + A(z) '%1' torrent automatikus letöltése a(z) '%2' RSS csatornából... RssParser - Failed to open downloaded RSS file. - Nem sikerült megnyitni a letöltött RSS fájlt. + Nem sikerült megnyitni a letöltött RSS fájlt. - Invalid RSS feed at '%1'. - Érvénytelen RSS csatorna ennél: '%1'. + Érvénytelen RSS csatorna ennél: '%1'. @@ -5838,168 +6015,249 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Hírek maximális száma csatornánként: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Keresés... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Megfigyelt könyvtár - - Download here - Letöltés ide + + Save Files to + + + + Download here + Letöltés ide - Download path - Letöltési útvonal + Letöltési útvonal SearchCategories - All categories - Összes kategória + Összes kategória - Movies - Filmek + Filmek - TV shows - TV műsorok + TV műsorok - Music - Zene + Zene - Games - Játék + Játék - Anime - Anime + Anime - Software - Szoftver + Szoftver - Pictures - Képek + Képek - Books - Könyvek + Könyvek SearchEngine - - - Search - Keresés + Keresés - Please install Python to use the Search Engine. - A keresőmotor használatához telepítsd a Pythont. + A keresőmotor használatához telepítsd a Pythont. - Empty search pattern - Hiányzó kulcsszó + Hiányzó kulcsszó - Please type a search pattern first - Kérlek adj meg kulcsszót a kereséshez + Kérlek adj meg kulcsszót a kereséshez - Searching... - Keresés... + Keresés... - Stop - Stop + Stop - - Search Engine - Keresőmotor + Keresőmotor - - Search has finished - A keresés befejeződött + A keresés befejeződött - An error occurred during search... - Hiba a keresés közben... + Hiba a keresés közben... - - Search aborted - Keresés félbeszakítva + Keresés félbeszakítva - All enabled - Mind engedélyezve + Mind engedélyezve - All engines - Összes motor + Összes motor - - Multiple... - Többszörös + Többszörös - - Results <i>(%1)</i>: i.e: Search results - Eredmények <i>(%1)</i>: + Eredmények <i>(%1)</i>: - Search returned no results - Eredménytelen keresés + Eredménytelen keresés - Stopped - Megállítva + Megállítva + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Összes kategória + + + + Movies + Filmek + + + + TV shows + TV műsorok + + + + Music + Zene + + + + Games + Játék + + + + Anime + Anime + + + + Software + Szoftver + + + + Pictures + Képek + + + + Books + Könyvek SearchListDelegate - - + + Unknown Ismeretlen @@ -6007,35 +6265,160 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. SearchTab - + Name i.e: file name Név - + Size i.e: file size Méret - + Seeders i.e: Number of full sources Feltöltők - + Leechers i.e: Number of partial sources Peerek - + Search engine Kereső oldal + + SearchWidget + + + + + + + Search + Keresés + + + + Status: + Állapot: + + + + + Stopped + Megállítva + + + + Download + Letöltés + + + + Go to description page + Leírás oldal megnyitása + + + + Copy description page URL + Leírás oldal URL másolása + + + + Search plugins... + + + + + All enabled + Mind engedélyezve + + + + All plugins + + + + + + Multiple... + Többszörös + + + + + + Search Engine + Keresőmotor + + + + Please install Python to use the Search Engine. + A keresőmotor használatához telepítsd a Pythont. + + + + Empty search pattern + Hiányzó kulcsszó + + + + Please type a search pattern first + Kérlek adj meg kulcsszót a kereséshez + + + + + Results <i>(%1)</i>: + i.e: Search results + Eredmények <i>(%1)</i>: + + + + Searching... + Keresés... + + + + Stop + Stop + + + + + Search has finished + A keresés befejeződött + + + + + Search aborted + Keresés félbeszakítva + + + + Search returned no results + Eredménytelen keresés + + + + Search has failed + + + + + An error occurred during search... + Hiba a keresés közben... + + ShutdownConfirmDlg @@ -6175,12 +6558,12 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Total Upload - Összes Feltöltés + Összes feltöltés Total Download - Összes Letöltés + Összes letöltés @@ -6205,12 +6588,12 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. DHT Upload - DHT Feltöltés + DHT feltöltés DHT Download - DHT Letöltés + DHT letöltés @@ -6220,7 +6603,7 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Tracker Download - Tracker Letöltés + Tracker letöltés @@ -6480,24 +6863,28 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. TorrentContentModel - + Name Név - + Size Méret - + Progress Állapot - + + Download Priority + + + Priority - Priorítás + Priorítás @@ -6536,7 +6923,7 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Torrent was created successfully: %1 %1 is the path of the torrent - Torrent sikeresen elkészült: %1 + Torrent sikeresen létrehozva: %1 @@ -6613,7 +7000,7 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Please provide the location of '%1' %1 is a file name - Kérlek add meg a '%1' helyét + Kérlek add meg a(z) '%1' helyét @@ -6849,38 +7236,38 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Figyelmeztetés (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Nem lehet dekódolni favicont a(z) '%1' URL-hez. Favicon letöltésének megpróbálása PNG formátumban. - + Couldn't decode favicon for URL '%1'. Nem lehet dekódolni az ikont a linkről '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Nem lehet letölteni favicont a(z) '%1' URL-hez. Ok: %2 - + Resume torrents Torrentek folytatása - + Pause torrents Torrentek szüneteltetése - + Delete torrents Torrentek törlése - - + + All (%1) this is for the tracker filter Minden (%1) @@ -7148,17 +7535,17 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. TransferListFiltersWidget - + Status Állapot - + Labels Címkék - + Trackers Trackerek @@ -7442,7 +7829,7 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Add Peers - Peer hozzáadása + Peerek hozzáadása @@ -7697,205 +8084,154 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. engineSelect - Search plugins - Kereső modulok + Kereső modulok - Installed search engines: - Telepített keresők: + Telepített keresők: - Name - Név + Név - Version - Verzió + Verzió - Url - Url + Url - - Enabled - Engedélyezve + Engedélyezve - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - További kereső modulok letölthetőek innen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + További kereső modulok letölthetőek innen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Új telepítése + Új telepítése - Check for updates - Frissítések ellenőrzése + Frissítések ellenőrzése - Close - Bezárás + Bezárás - Uninstall - Eltávolít + Eltávolít engineSelectDlg - Uninstall warning - Figyelemeztetés + Figyelemeztetés - Uninstall success - Sikeresen eltávolítva + Sikeresen eltávolítva - Invalid plugin - Érvénytelen plugin + Érvénytelen plugin - The search engine plugin is invalid, please contact the author. - A keresési motor érvénytelen, kérem lépj kapcsolatba a fejlesztővel. + A keresési motor érvénytelen, kérem lépj kapcsolatba a fejlesztővel. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - A '%1' kereső modul egy újabb verziója már telepítve van. + A '%1' kereső modul egy újabb verziója már telepítve van. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' keresőt nem lehet frissíteni, előző verzió megtartva. + '%1' keresőt nem lehet frissíteni, előző verzió megtartva. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' kereső modul telepítése sikertelen. + '%1' kereső modul telepítése sikertelen. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' kereső modul sikeresen frissítve. + '%1' kereső modul sikeresen frissítve. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' kereső modul sikeresen telepítve. + '%1' kereső modul sikeresen telepítve. - The link doesn't seem to point to a search engine plugin. - Úgy tűnik, a link nem egy keresőmotor kiegészítőre mutat. + Úgy tűnik, a link nem egy keresőmotor kiegészítőre mutat. - Select search plugins - Kereső modulok kiválasztása + Kereső modulok kiválasztása - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Bocs, '%1' kereső modul telepítése sikertelen. + Bocs, '%1' kereső modul telepítése sikertelen. - - - - - Search plugin install - Kereső modul telepítése + Kereső modul telepítése - - - Yes - Igen + Igen - - - - No - Nem + Nem - qBittorrent search plugin - qBittorrent kereső modul + qBittorrent kereső modul - - - - Search plugin update - Kereső modul frissítése + Kereső modul frissítése - - Sorry, update server is temporarily unavailable. - Sajnálom, a frissíŧési szerver ideiglenesen nem elérhető. + Sajnálom, a frissíŧési szerver ideiglenesen nem elérhető. - All your plugins are already up to date. - A legújabb kereső modulokat használod. + A legújabb kereső modulokat használod. - All selected plugins were uninstalled successfully - Minden kijelölt kereső modul sikeresen eltávolítva + Minden kijelölt kereső modul sikeresen eltávolítva - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Ezt a modult nem lehet eltávolítani, mivel a program része. Csak azokat lehet, amiket saját kezüleg telepítettél. Viszont kikapcsoltam a modult. + Ezt a modult nem lehet eltávolítani, mivel a program része. Csak azokat lehet, amiket saját kezüleg telepítettél. Viszont kikapcsoltam a modult. - Invalid link - Érvénytelen link + Érvénytelen link - - New search engine plugin URL - Új kereső modul URL címe + Új kereső modul URL címe - - URL: - URL: + URL: @@ -8025,169 +8361,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Export könyvtár kiválasztása - - - - + + + + Choose a save directory Letöltési könyvtár megadása - + Add directory to scan Könyvtár hozzáadása megfigyelésre - + Supported parameters (case sensitive): Támogatott paraméterek (kis- és nagybetű érzékeny): - + %N: Torrent name %N: Torrent név - + %L: Label %L: Címke - + %F: Content path (same as root path for multifile torrent) %F: Tartalom elérési út (ugyanaz, mint a gyökér elérési út többfájlos torrenthez) - + %R: Root path (first torrent subdirectory path) %R: Gyökér elérési út (első torrent alkönyvtár elérési út) - + %D: Save path %D: Mentés útvonala - + %C: Number of files %C: Fájlok száma - + %Z: Torrent size (bytes) %Z: Torrent méret (bájtok) - + %T: Current tracker %T: Jelenlegi tracker - + %I: Info hash %I: Hash információ - + Folder is already being watched. A könyvtár már megfigyelés alatt van. - + Folder does not exist. A könyvtár nem létezik. - + Folder is not readable. A könyvtár nem olvasható. - + Failure Hiba - + Failed to add Scan Folder '%1': %2 Hiba a '%1' könyvtár vizsgálata közben: %2 - - + + Filters Szűrők - - + + Choose an IP filter file Válassz egy IP szűrő fájlt - + SSL Certificate SSL Tanusítvány - + SSL Key SSL Kulcs - + Parsing error Feldolgozási hiba - + Failed to parse the provided IP filter Megadott IP szűrő feldogozása sikertelen - + Successfully refreshed Sikeresen frissítve - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number A következő IP szűrő sikeresen feldolgozva: %1 szabály alkalmazva. - + Invalid key Érvénytelen kulcs - + This is not a valid SSL key. Érvénytelen SSL kulcs. - + Invalid certificate Érvénytelen tanusítvány - + This is not a valid SSL certificate. Érvénytelen SSL tanusítvány. - + The start time and the end time can't be the same. A kezdés és befejezés ideje nem lehet ugyanaz. - + Time Error Idő Hiba @@ -8195,24 +8531,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Modul forrás + Modul forrás - Search plugin source: - Kereső modul forrása: + Kereső modul forrása: - Local file - Helyi fájl + Helyi fájl - Web link - Webcím + Webcím @@ -8241,40 +8573,32 @@ Those plugins were disabled. search_engine - - Search - Keresés + Keresés - Status: - Állapot: + Állapot: - Stopped - Megállítva + Megállítva - Download - Letöltés + Letöltés - Go to description page - Leírás oldal megnyitása + Leírás oldal megnyitása - Copy description page URL - Leírás oldal URL másolása + Leírás oldal URL másolása - Search engines... - Keresőmotorok... + Keresőmotorok... diff --git a/src/lang/qbittorrent_hy.ts b/src/lang/qbittorrent_hy.ts index 1189a9697..824883d1f 100644 --- a/src/lang/qbittorrent_hy.ts +++ b/src/lang/qbittorrent_hy.ts @@ -175,172 +175,172 @@ Չբեռնել - - + + I/O Error Սխալ - + The torrent file does not exist. Torrent ֆայլը գոյություն չունի - + Invalid torrent Սխալ torrent - + Failed to load the torrent: %1 %1 torrent ֆայլի բացման սխալ - - + + Already in download list Արդեն ներբեռնումների ցանկում է - + Free disk space: %1 - + Not Available This comment is unavailable Հասանելի չէ - + Not Available This date is unavailable Հասանելի չէ - + Not available Հասանելի չէ - + Invalid magnet link Սխալ magnet հղում - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized magnet հղումը չի վերականգնվել - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnet հղում - + Retrieving metadata... - + Not Available This size is unavailable. Հասանելի չէ - - - + + + Choose save path Ընտրեք պահպանելու տեղը - + Rename the file Անվանափոխել - + New name: Նոր անուն. - - + + The file could not be renamed Ֆայլը չի կարող անվանփոխվել - + This file name contains forbidden characters, please choose a different one. Ֆայլի անունը պարունակում է արգելված նշաններ, ընտրեք այլ անուն։ - - + + This name is already in use in this folder. Please use a different name. Այս անունով արդեն առկա է։ Ընտրեք այլ անուն։ - + The folder could not be renamed Թղթապանակը չի կարող անվանափոխվել - + Rename... Անվանափոխել... - + Priority Առաջ-ը - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Որոշել peer-երի հոսթերի անունները - - Maximum number of half-open connections [0: Disabled] - Կիսաբաց միացումների առավ. քանակը [0. Անջատված] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Նոր կանոնի անունը - + Please type the name of the new download rule. Նշեք բեռնման կանոնի անունը։ - - + + Rule name conflict Այս անունը արդեն առկա է։ - - + + A rule with this name already exists, please choose another name. Այս անունով կանոն արդեն առկա է, ընտրեք այլ անուն։ - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Ջնջե՞լ ընտրված կանոնները։ - + Rule deletion confirmation Հաստատեք ջնջումը - + Destination directory Նշանակման թղթապանակը - + Invalid action Սխալ գործողություն - + The list is empty, there is nothing to export. Ցանկը դատարկ է, ոչինչ չկա արտածելու համար։ - + Where would you like to save the list? Որտե՞ղ պահպանել ցանկը։ - + Rules list (*.rssrules) Կանոնների ցանկը (*.rssrules) - + I/O Error Ն/Ա սխալ - + Failed to create the destination file Հնարավոր չէ ստեղծել նշանակման ֆայլը - + Please point to the RSS download rules file Նշեք RSS բեռնման կանոնների ֆայլը - + Rules list Կանոնների ցանկ - + Import Error Ներմուծման սխալ - + Failed to import the selected rules file Հնարավոր չէ ներմուծել ընտրված ֆայլը - + Add new rule... Ավելացնել նոր կանոն... - + Delete rule Ջնջել կանոնը - + Rename rule... Անվանափոխել կանոնը... - + Delete selected rules Ջնջել ընտրված կանոնները - + Rule renaming Կանոնի անվանափոխում - + Please type the new rule name Նշեք կանոնի անունը - + Regex mode: use Perl-like regular expressions Regex եղանակ. օգտ. Perl՝ կանոնավոր սահ-ը - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Wildcard եղանակ. կարող եք օգտագործել <ul><li>? պարզ նշանների համար</li><li>* զրո և զրոյից բարձր</li><li>Բացատներ ԵՎ օպերատորը </li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Wildcard եղանակ. կարող եք օգտագործել <ul><li>? պարզ նշանների համար</li><li>* զրո և զրոյից բարձր</li><li>| Բացատներ ԿԱՄ օպերատորը </li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Հաջողությամբ է ստուգվել IP ֆիլտրով. %1 կանոններ են կիրառվել։ - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Նշանակությունը - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS ալիքներ - + Unread Չկարդացած @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Մեկ հղում տողի համար - - Download local torrent - Ներբեռնել լոկալ torrent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Ներբեռնվել է @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Մասին - - Exit - Ելք - &Pause @@ -1984,22 +1982,6 @@ You should get this information from your Web browser preferences. E&xit - - Options - Ընտրանքներ - - - Resume - Վերսկսել - - - Pause - Դադար - - - Delete - Ջնջել - Open URL @@ -2017,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Ցուցադրել՛ - + Check for program updates Ստուգել ծրագրի թարմացումները - - Lock qBittorrent - Կողփել qBittorrent-ը - Add Torrent &Link... @@ -2042,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Բացառության ցանկը - + Clear the password Մաքրել գաղտնաբառը - + Filter torrent list... Զտրել torrent-ների ցանկը.... - + &Set Password - + &Clear Password - + Transfers Փոխանցումներ - + Torrent file association Torrent ֆայլի ասոցիացումներ - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent-ը torrent ֆայլերի կամ Magnet հղումների համար ասոցիացված ծրագիրը չէ։ Ասոցիացնե՞լ այն տվյալ ֆայլերի համար։ - + Icons Only Միայն պատկերակները - + Text Only Միայն տեքստը - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password Ծրագրի կողփման ծածկագիրը - - - + + + Please type the UI lock password: Նշեք ծածկագիրը. - + The password should contain at least 3 characters Ծածկագիրը պետք է պարունակի գոնե 3 նիշ - + Password update Թարմացնել ծածկագիրը - + The UI lock password has been successfully updated UI-ի կողփման ծածկագիրը հաջողությամբ թարմացվեց - + Are you sure you want to clear the password? - + Search Փնտրել - + Transfers (%1) Փոխանցումներ (%1) - + Error - + Failed to add torrent: %1 - + Download completion Բեռնումը ավարտվում է - + I/O Error i.e: Input/Output Error Ն/Ա սխալ - + Recursive download confirmation Բեռնման հաստատում - + Yes Այո - + No Ոչ - + Never Երբեք - + Global Upload Speed Limit Փոխանցման արագ-ան գլոբալ սահ-փակումներ - + Global Download Speed Limit Բեռնման արագ-ան գլոբալ սահ-փակումներ - + &No &Ոչ - + &Yes &Այո - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2258,156 +2242,150 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background - + Python found in '%1' - + Download error Ներբեռնելու սխալ - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Ծածկագիրը սխալ է - - + + RSS (%1) - + URL download error - + The password is invalid Ծածկագիրը սխալ է - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Ներբեռնում՝ %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Վերբեռնում՝ %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [Ներ. %1, Վեր. %2] qBittorrent %3 - + Hide Թաքցնել - + Exiting qBittorrent Ելք qBittorrent-ից - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Այս պահին որոշ ֆայլեր փախանցվում են։ Այնուհանդերձ դու՞րս գալ qBittorrent-ից։ - + Open Torrent Files Բացել torrent ֆայլեր - + Torrent Files Torrent ֆայլեր - + Options were saved successfully. Ընտրանքները հաջողությամբ պահպանվեցին։ @@ -2415,17 +2393,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2435,32 +2413,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2487,154 +2465,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2649,1137 +2622,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Ֆրանսիա + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Ֆրանսիա + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3943,64 +3906,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Ավելացնել նոր peer… - + Copy selected - - + + Ban peer permanently Արգելել peer-ը մեկընդմիշտ - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Peer-ի լրացում - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Արգելե՞լ ընտրված peer-երը։ - + &Yes &Այո - + &No &Ոչ @@ -4041,6 +4010,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Որոնող խրոցակներ + + + + Installed search plugins: + + + + + Name + Անունը + + + + Version + + + + + Url + Հղումը + + + + + Enabled + Միացված է + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Կարող եք գտնել որոնման խրոցակներ այստեղից. <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Տեղակայել նորը + + + + Check for updates + Ստուգել թարմացումները + + + + Close + Փակել + + + + Uninstall + Ջնջել + + + + + + Yes + Այո + + + + + + + No + Ոչ + + + + Uninstall warning + Զգուշացում ջնջելիս + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Հաջողությամբ ջնջվեց + + + + All selected plugins were uninstalled successfully + Բոլոր ընտրված խրոցակները հաջողությամբ ջնջվեցին + + + + + New search engine plugin URL + Փնտրման խրոցակի հղումը + + + + + URL: + Հղումը. + + + + Invalid link + + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + Ընտրեք փնտրման խրոցակը + + + + qBittorrent search plugin + + + + + + + Search plugin update + Փնտրման խրոցակի թարմացում + + + + All your plugins are already up to date. + Ձեր բոլոր խրոցակները նոր են։ + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Տեղակայել փնտրման խրոցակ + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Խրոցակի աղբյուրը + + + + Search plugin source: + Փնտրման խրոցակի աղբյուրը. + + + + Local file + Լոկալ ֆայլ + + + + Web link + Վեբ հղում + + Preferences @@ -4097,89 +4262,89 @@ Are you sure you want to quit qBittorrent? Կցել .!qB ընդլայոնւմը անավարտ ֆայլերի համար - + Copy .torrent files to: Պատճենել .torrent ֆայլերը՝ - + Connections Limits Միացումների սահ-ում - + Proxy Server Միջնորդը - + Global Rate Limits Սահմանափակումները - + Apply rate limit to transport overhead Կիրառել սահ-փակում գերազանցելու դեպքում - + Schedule the use of alternative rate limits Այլընտրանքային սահ-փակումների պլանավորում - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Միացնել Լոկալ Peer-երի բացահայտումը - + Encryption mode: Կոդավորման եղանակը. - + Prefer encryption Նախընտրելի կոդավորում - + Require encryption Պահանջել կոդավորում - + Disable encryption Անջատել կոդավորումը - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Մանրամասներ</a>) - + Maximum active downloads: Առավելագ. ակտիվ բեռնումներ. - + Maximum active uploads: Առավելագ. ակտիվ փոխանցումներ. - + Maximum active torrents: Առավելագ. ակտիվ torrent-ներ. @@ -4204,82 +4369,82 @@ Are you sure you want to quit qBittorrent? Ցուցադրել torrent-ի պարունակությունը և այլ ընտրանքներ - + Run external program on torrent completion - + Port used for incoming connections: Մուտքային կապուղիների դարպասը. - + Random Պատահական - + Global maximum number of connections: Կապուղիների առավ. քանակը - + Maximum number of connections per torrent: Կապուղիների առավ. քանակը torrent-ի համար. - + Maximum number of upload slots per torrent: Փոխանցումների սլոթների առավ. քանակը torrent-ի համար. - - + + Upload: Փոխանցում. - - + + Download: Բեռնում. - - - - + + + + KiB/s Կբիթ/վ - + Remove folder Ջնջել թղթապանակը - + Every day Ամեն օր - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Փոխանակել peer-երը համատեղելի Bittorrent ծրագրերի միջև (µTorrent, Vuze, ...) - + Host: Հոսթը. - + SOCKS4 SOCKS4 - + Type: Տեսակը. @@ -4452,262 +4617,262 @@ Are you sure you want to quit qBittorrent? Միանգամից ավելացնել torrent-ները՝ - + Add folder... Ավելացնել թղթապանակ... - + Copy .torrent files for finished downloads to: Պատճենել .torrent ֆայլերը ավարտված բեռնումների համար՝ - + Email notification upon download completion Բեռնումները ավարտելիս տեղեկացնել էլ. փոստով - + Destination email: էլ. հասցեն. - + SMTP server: SMTP սպասարկիչ. - + This server requires a secure connection (SSL) Սպասարկիչը պահանջում է անվտանգ միացում (SSL) - + Listening Port Մտնող դարպասը - + Use UPnP / NAT-PMP port forwarding from my router Օգտագործել UPnP / NAT-PMP դարպասի փոխանցում ռոութերից - + Use different port on each startup Յուրաքանչյուրի համար օգտ. առանձին պորտ - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections Այնուհանդերձ միջնորդը օգտ. է միայն ուղղորդիչներին միանալու համար - + Use proxy for peer connections Օգտ. միջնորդը՝ peer միացումների համար - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering Ֆիլտրում IP-ով - + Reload the filter Վերաբացել ֆիլտրը - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Երբ. - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Անվտանգություն - + Enable DHT (decentralized network) to find more peers Միացնել DHT՝ լրացուցիչ peer-եր գտնելու համար - + Enable Peer Exchange (PeX) to find more peers Միացնել Peer-երի փոխանակումը (PeX)՝ լրացուցիչ peer-եր գտնելու համար - + Look for peers on your local network Ձեր լոկալ ցանցի peer-երը - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Միացնել անանուն եղանակը - + Do not count slow torrents in these limits Չհաշվել դանդաղ torrent-ները այս սահ-մբ - + Seed torrents until their ratio reaches Փոխանցել torrent-ները մինչև սահ-ը կհասնի - + then ապա - + Pause them Դադարեցնել բոլորը - + Remove them Ջնջել - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Օգտ. UPnP / NAT-PMP՝ ռոութերից փոխանցելու համար - + Use HTTPS instead of HTTP Օգտ. HTTPS՝ HTTP-ի փոխարեն - + Import SSL Certificate Ներմուծել SSL վավերագիր - + Import SSL Key Ներմուծել SSL բանալի - + Certificate: Վավերագիրը. - + Alternative Rate Limits - + Key: Բանալին. - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Ինֆո վավերագրի մասին</a> - + Bypass authentication for localhost localhost-ի շրջանցիկ ներկայացում - + Update my dynamic domain name Թարմացնել ակտիվ տիրույթի անունը - + Service: Սպասարկիչը. - + Register Գրանցել - + Domain name: Տիրույթի անունը. - + (None) (Չկա) @@ -4717,61 +4882,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Դարպասը. - - - + + + Authentication Ներկայացում - - - - + + + + Username: Օգտվողը. - - - - + + + + Password: Ծածկագիրը. - + Torrent Queueing Torrent-ը հերթում է - + Share Ratio Limiting Փոխանցման սահ-ներ - + Enable Web User Interface (Remote control) Միացնել Web User Interface-ը (Հեռադիր կառավարում) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Ֆիլտրերի ճանապարհը (.dat, .p2p, .p2b). @@ -4977,10 +5142,6 @@ Are you sure you want to quit qBittorrent? Comment: Մեկնաբանություն. - - Torrent content: - Torrent-ի պարունակությունը. - Select All @@ -5500,28 +5661,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5632,17 +5793,17 @@ No further notices will be issued. RSSImp - + Stream URL: Հոսքի հղումը. - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5662,74 +5823,69 @@ No further notices will be issued. Նոր թղթապանակ - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Ընտրեք RSS ալիքի անունը - + New feed name: Անունը. - + Name already in use Այս անունով արդեն առկա է - + This name is already used by another item, please choose another one. Այս անունով արդեն առկա է, օգտագործեք այլ անուն։ - + Date: Ամսաթիվը. - + Author: Հեղինակը. - + Unread Չկարդացած - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... - RssParser + Rss::Private::Parser - - Failed to open downloaded RSS file. - - - - - Invalid RSS feed at '%1'. + + Invalid RSS feed. @@ -5756,168 +5912,220 @@ No further notices will be issued. Յուրաքանչյուր ալիքի համար հոդվածների առավ. ք-ը. + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Ընտրել... + + + + Choose save path + Ընտրեք պահպանելու տեղը + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Հետևելու թղթապանակը - - Download here - Բեռնել այստեղ + + Save Files to + - - Download path - + Download here + Բեռնել այստեղ SearchCategories - All categories - Բոլոր բաժինները + Բոլոր բաժինները - Movies - Ֆիլմեր + Ֆիլմեր - TV shows - TV շոուներ + TV շոուներ - Music - Երաժշտություն + Երաժշտություն - Games - Խաղեր + Խաղեր - Anime - Մուլտեր + Մուլտեր - Software - Ծրագրեր + Ծրագրեր - Pictures - Նկարներ + Նկարներ - Books - Գրքեր + Գրքեր SearchEngine - - - Search - Փնտրել + Փնտրել - - Please install Python to use the Search Engine. - - - - Empty search pattern - Դաշտը դատարկ է + Դաշտը դատարկ է - Please type a search pattern first - Նախ գրեք, թե ինչ փնտրել + Նախ գրեք, թե ինչ փնտրել - Searching... - Փնտրվում է… + Փնտրվում է… - Stop - Կանգնեցնել + Կանգնեցնել - - Search Engine - Որոնում + Որոնում - - Search has finished - Որոնումը ավարտվեց + Որոնումը ավարտվեց - An error occurred during search... - Սխալ՝ փնտրելիս… + Սխալ՝ փնտրելիս… - - Search aborted - Փնտրումը կանգնեցվել է + Փնտրումը կանգնեցվել է - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Ոչնինչ չի գտնվել + Ոչնինչ չի գտնվել - - Stopped - Կանգնեցված + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Բոլոր բաժինները + + + + Movies + Ֆիլմեր + + + + TV shows + TV շոուներ + + + + Music + Երաժշտություն + + + + Games + Խաղեր + + + + Anime + Մուլտեր + + + + Software + Ծրագրեր + + + + Pictures + Նկարներ + + + + Books + Գրքեր SearchListDelegate - - + + Unknown Անհայտ @@ -5925,35 +6133,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Անունը - + Size i.e: file size Չափը - + Seeders i.e: Number of full sources Seed-եր - + Leechers i.e: Number of partial sources Leech-եր - + Search engine Փնտրել + + SearchWidget + + + + + + + Search + + + + + Status: + Վիճակը. + + + + + Stopped + Կանգնեցված + + + + Download + Ներբեռնել + + + + Go to description page + Անցնել նկարագրությանը + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Որոնում + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Դաշտը դատարկ է + + + + Please type a search pattern first + Նախ գրեք, թե ինչ փնտրել + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Փնտրվում է… + + + + Stop + Կանգնեցնել + + + + + Search has finished + Որոնումը ավարտվեց + + + + + Search aborted + Փնտրումը կանգնեցվել է + + + + Search returned no results + Ոչնինչ չի գտնվել + + + + Search has failed + + + + + An error occurred during search... + Սխալ՝ փնտրելիս… + + ShutdownConfirmDlg @@ -6398,24 +6731,28 @@ No further notices will be issued. TorrentContentModel - + Name Անունը - + Size Չափը - + Progress Ընթացքը - + + Download Priority + + + Priority - Առաջ-ը + Առաջ-ը @@ -6767,38 +7104,38 @@ No further notices will be issued. Զգուշացում (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter Բոլորը (%1) @@ -7066,17 +7403,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Վիճակը - + Labels Նիշեր - + Trackers Ուղղորդիչներ @@ -7615,205 +7952,95 @@ No further notices will be issued. engineSelect - Search plugins - Որոնող խրոցակներ + Որոնող խրոցակներ - Installed search engines: - Տեղակայված որոնման խրոցակներ + Տեղակայված որոնման խրոցակներ - Name - Անունը + Անունը - - Version - - - - Url - Հղումը + Հղումը - - Enabled - Միացված է + Միացված է - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Կարող եք գտնել որոնման խրոցակներ այստեղից. <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Կարող եք գտնել որոնման խրոցակներ այստեղից. <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Տեղակայել նորը + Տեղակայել նորը - Check for updates - Ստուգել թարմացումները + Ստուգել թարմացումները - Close - Փակել + Փակել - Uninstall - Ջնջել + Ջնջել engineSelectDlg - Uninstall warning - Զգուշացում ջնջելիս + Զգուշացում ջնջելիս - Uninstall success - Հաջողությամբ ջնջվեց + Հաջողությամբ ջնջվեց - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - Ընտրեք փնտրման խրոցակը + Ընտրեք փնտրման խրոցակը - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Տեղակայել փնտրման խրոցակ + Տեղակայել փնտրման խրոցակ - - - Yes - Այո + Այո - - - - No - Ոչ + Ոչ - - qBittorrent search plugin - - - - - - - Search plugin update - Փնտրման խրոցակի թարմացում + Փնտրման խրոցակի թարմացում - - Sorry, update server is temporarily unavailable. - Ցավոք թարմացումների հասանելիությունը հանարավոր չէ ստուգել։ + Ցավոք թարմացումների հասանելիությունը հանարավոր չէ ստուգել։ - All your plugins are already up to date. - Ձեր բոլոր խրոցակները նոր են։ + Ձեր բոլոր խրոցակները նոր են։ - All selected plugins were uninstalled successfully - Բոլոր ընտրված խրոցակները հաջողությամբ ջնջվեցին + Բոլոր ընտրված խրոցակները հաջողությամբ ջնջվեցին - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - - Invalid link - - - - - New search engine plugin URL - Փնտրման խրոցակի հղումը + Փնտրման խրոցակի հղումը - - URL: - Հղումը. + Հղումը. @@ -7943,169 +8170,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Ընտրեք արտածման տեղը - - - - + + + + Choose a save directory Ընտրեք պահպանելու տեղը - + Add directory to scan Ստուգելու համար ավելացնել թղթապանակ - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Թղթապանակը արդեն ստուգվել է։ - + Folder does not exist. Թղթապանակը գոյություն չունի։ - + Folder is not readable. Թղթապանակը կարդալու համար չէ։ - + Failure Ձախողում - + Failed to add Scan Folder '%1': %2 Հնարավոր չէ ստուգման համարավելացնել թղթապանակ՝ '%1': %2 - - + + Filters Ֆիլտրեր - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Սխալ - + Failed to parse the provided IP filter IP ֆիլտրի տրամադրման սխալ - + Successfully refreshed Հաջողությամբ թարմացվեց - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Հաջողությամբ է ստուգվել IP ֆիլտրով. %1 կանոններ են կիրառվել։ - + Invalid key Սխալ բանալի - + This is not a valid SSL key. Սա ճիշտ SSLբանալի չէ։ - + Invalid certificate Սխալ վավերագիր - + This is not a valid SSL certificate. Սա ճիշտ SSL վավերագիր չէ։ - + The start time and the end time can't be the same. - + Time Error @@ -8113,24 +8340,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Խրոցակի աղբյուրը + Խրոցակի աղբյուրը - Search plugin source: - Փնտրման խրոցակի աղբյուրը. + Փնտրման խրոցակի աղբյուրը. - Local file - Լոկալ ֆայլ + Լոկալ ֆայլ - Web link - Վեբ հղում + Վեբ հղում @@ -8159,40 +8382,28 @@ Those plugins were disabled. search_engine - - Search - Փնտրել + Փնտրել - Status: - Վիճակը. + Վիճակը. - Stopped - Կանգնեցված + Կանգնեցված - Download - Ներբեռնել + Ներբեռնել - Go to description page - Անցնել նկարագրությանը + Անցնել նկարագրությանը - - Copy description page URL - - - - Search engines... - Փնտրել… + Փնտրել… diff --git a/src/lang/qbittorrent_id.ts b/src/lang/qbittorrent_id.ts index 8e517f843..8c9bace69 100644 --- a/src/lang/qbittorrent_id.ts +++ b/src/lang/qbittorrent_id.ts @@ -175,172 +175,172 @@ Jangan unduh - - + + I/O Error Galat I/O - + The torrent file does not exist. Berkas torrent tidak ada. - + Invalid torrent Torrent tidak valid - + Failed to load the torrent: %1 Gagal memuat torrent: %1 - - + + Already in download list Telah ada di dalam daftar unduh - + Free disk space: %1 Ruang bebas diska: 1% - + Not Available This comment is unavailable Tidak Tersedia - + Not Available This date is unavailable Tidak Tersedia - + Not available Tidak tersedia - + Invalid magnet link Tautan magnet tidak valid - + Torrent is already in download list. Trackers were merged. Torrent telah ada di dalam daftar unduh. Pelacak digabungkan. - - + + Cannot add torrent Tidak bisa menambahkan torrent - + Cannot add this torrent. Perhaps it is already in adding state. Tidak bisa menambahkan torrent ini. Sepertinya sudah ditambahkan. - + This magnet link was not recognized Tautan magnet ini tidak dikenali - + Magnet link is already in download list. Trackers were merged. Tautan magnet telah ada di dalam daftar unduh. Pelacak digabungkan. - + Cannot add this torrent. Perhaps it is already in adding. Tidak bisa menambahkan torrent ini. Sepertinya sedang ditambahkan. - + Magnet link Tautan magnet - + Retrieving metadata... Mengambil metadata... - + Not Available This size is unavailable. Tidak Tersedia - - - + + + Choose save path Pilih jalur penyimpanan - + Rename the file Ubah nama berkas - + New name: Nama baru: - - + + The file could not be renamed Berkas tidak bisa diubah namanya - + This file name contains forbidden characters, please choose a different one. Nama berkas ini mengandung karakter yang dilarang, mohon pilih karakter yang berbeda. - - + + This name is already in use in this folder. Please use a different name. Nama ini telah digunakan dalam folder ini. Mohon gunakan nama yang berbeda. - + The folder could not be renamed Folder tidak bisa diubah namanya - + Rename... Ubah nama... - + Priority Prioritas - + Invalid metadata Metadata tidak valid - + Parsing metadata... Mengurai metadata... - + Metadata retrieval complete Pengambilan metadata komplet - + Download Error Galat Unduh @@ -431,10 +431,6 @@ Resolve peer host names Singkap nama hos rekanan - - Maximum number of half-open connections [0: Disabled] - Jumlah maksimum koneksi terbuka-setengah [0: Nonaktif] - Strict super seeding @@ -661,205 +657,205 @@ &Ekspor... - + Matches articles based on episode filter. Artikel yang cocok berdasarkan penyaring episode. - + Example: Contoh: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match akan cocok 2, 5, 8 sampai 15, 30 dan episode seterusnya dari musim pertama - + Episode filter rules: Aturan penyaring episode: - + Season number is a mandatory non-zero value Nomor musim wajib bernilai bukan nol - + Episode number is a mandatory non-zero value Nomor episode wajib bernilai bukan nol - + Filter must end with semicolon Penyaring harus diakhiri dengan titik koma - + Three range types for episodes are supported: Tiga jenis rentang untuk episode yang didukung: - + Single number: <b>1x25;</b> matches episode 25 of season one Nomor tunggal: <b>1x25;</ b> cocok dengan episode 25 dari musim pertama - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Rentang normal: <b>1x25-40;</b> cocok dengan episode 25 sampai 40 dari musim pertama - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Rentang tidak terbatas: <b>1x25-;</b> cocok dengan episode 25 dan seterusnya dari musim pertama - + Last Match: %1 days ago Cocok Terakhir: %1 hari yang lalu - + Last Match: Unknown Cocok Terakhir: Tidak Diketahui - + New rule name Nama aturan baru - + Please type the name of the new download rule. Mohon ketik nama dari aturan unduh baru. - - + + Rule name conflict Nama aturan konflik - - + + A rule with this name already exists, please choose another name. Aturan dengan nama ini telah ada, mohon pilih nama lain. - + Are you sure you want to remove the download rule named '%1'? Apakah Anda yakin ingin membuang aturan unduhan bernama '%1'? - + Are you sure you want to remove the selected download rules? Apakah Anda yakin ingin menghapus aturan unduh yang dipilih? - + Rule deletion confirmation Konfirmasi penghapusan aturan - + Destination directory Direktori tujuan - + Invalid action Tindakan tidak valid - + The list is empty, there is nothing to export. Daftar ini kosong, tidak ada yang bisa diekspor. - + Where would you like to save the list? Di mana Anda ingin menyimpan daftar? - + Rules list (*.rssrules) Daftar aturan (*.rssrules) - + I/O Error Galat I/O - + Failed to create the destination file Gagal membuat berkas tujuan - + Please point to the RSS download rules file Mohon arahkan ke berkas aturan unduh RSS - + Rules list Daftar aturan - + Import Error Galat Impor - + Failed to import the selected rules file Gagal untuk mengimpor berkas aturan yang dipilih - + Add new rule... Tambah aturan baru... - + Delete rule Hapus aturan - + Rename rule... Ubah nama aturan... - + Delete selected rules Hapus aturan yang dipilih - + Rule renaming Menamai ulang aturan - + Please type the new rule name Mohon ketik nama aturan baru - + Regex mode: use Perl-like regular expressions Mode regex: gunakan ekspresi reguler mirip Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Mode wildcard: Anda dapat menggunakan<ul><li>? untuk mencocokkan karakter tunggal apapun</li><li>* untuk mencocokkan nol atau lebih karakter apapun</li><li>Spasi dihitung sebagai operator AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Mode wildcard: Anda dapat menggunakan<ul><li>? untuk mencocokkan karakter tunggal apapun</li><li>* untuk mencocokkan nol atau lebih karakter apapun</li><li>| digunakan sebagai operator OR</li></ul> @@ -952,65 +948,57 @@ '%1' telah mencapai rasio maksimum yang Anda tetapkan. Menangguhkan... - Error: Could not create torrent export directory: '%1' - Galat: Tidak bisa membuat direktori ekspor torrent: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Galat: tidak bisa mengekspor torrent '%1', mungkin belum memiliki metadata. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Status jaringan sistem berubah menjadi %1 - + ONLINE DARING - + OFFLINE LURING - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfigurasi jaringan dari %1 telah berubah, menyegarkan jalinan sesi - + Unable to decode '%1' torrent file. Tidak bisa mengawakode '%1' berkas torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Mengunduh rekursif berkas '%1' yang tertanam di dalam torrent '%2' - + Couldn't save '%1.torrent' Tidak bisa menyimpan '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. karena %1 dinonaktifkan. - + because %1 is disabled. this peer was blocked because TCP is disabled. karena %1 dinonaktifkan. - + URL seed lookup failed for URL: '%1', message: %2 Pencarian bibit URL gagal untuk URL: '%1', pesan: %2 @@ -1027,178 +1015,164 @@ '%1' telah dibuang dari daftar transfer. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Mengunduh '%1', mohon tunggu... - Torrent Export: torrent is invalid, skipping... - Ekspor Torrent: torrent tidak valid, lewati... - - - + DHT support [ON] Dukungan DHT [NYALA] - + DHT support [OFF]. Reason: %1 Dukungan DHT [MATI]. Alasan: %1 - + DHT support [OFF] Dukungan DHT [MATI] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sedang mencoba mendengarkan semua port antarmuka: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent gagal mendengarkan semua port antarmuka: %1. Alasan: %2 - - - + The network interface defined is invalid: %1 Antarmuka jaringan yang dijabarkan tidak valid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sedang mencoba mendengarkan port antarmuka %1: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent tidak menemukan alamat lokal %1 untuk didengarkan - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent gagal mendengarkan semua port antarmuka: %1. Alasan: %2. {1.?} + - + Tracker '%1' was added to torrent '%2' Pelacak '%1' telah ditambahkan ke torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Pelacak '%1' telah dihapus dari torrent '%2' - + URL seed '%1' was added to torrent '%2' Bibit URL '%1' telah ditambahkan ke torrent '%2' - + URL seed '%1' was removed from torrent '%2' Bibit URL '%1' telah dihapus dari torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Tidak bisa melanjutkan torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berhasil mengurai penyaring IP yang diberikan: %1 aturan diterapkan. - + Error: Failed to parse the provided IP filter. Galat: Gagal mengurai penyaring IP yang diberikan. - + Couldn't add torrent. Reason: %1 Tidak bisa menambahkan torrent. Alasan: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' dilanjutkan. (lanjut cepat) - + '%1' added to download list. 'torrent name' was added to download list. '%1' ditambahkan ke daftar unduh. - + An I/O error occurred, '%1' paused. %2 Sebuah galat I/O telah terjadi, '%1' ditangguhkan. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Pemetaan port gagal, pesan: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Pemetaan port sukses, pesan: %1 - + due to IP filter. this peer was blocked due to ip filter. disebabkan oleh penyaring IP. - + due to port filter. this peer was blocked due to port filter. disebabkan oleh penyaring port. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. disebabkan oleh pembatasan mode campuran i2p. - + because it has a low port. this peer was blocked because it has a low port. karena memiliki port yang rendah. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent berhasil mendengarkan port antarmuka %1: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent gagal mendengarkan port antarmuka %1: %2/%3. Alasan: %4. {1 ?} {2/%3.?} + - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent gagal mendengarkan port antarmuka %1: %2/%3. Alasan: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP eksternal: %1 @@ -1212,12 +1186,12 @@ Tidak bisa memindahkan torrent: '%1'. Alasan: %2 - + File sizes mismatch for torrent '%1', pausing it. Ukuran berkas tidak sama untuk torrent '%1', torrent ditangguhkan. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Data lanjut cepat ditolak untuk torrent '%1'. Alasan: %2. Memeriksa lagi... @@ -1242,7 +1216,7 @@ Nilai - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Kunci umum untuk kuki adalah: '%1', '%2'. @@ -1310,12 +1284,12 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. FeedListWidget - + RSS feeds Umpan RSS - + Unread Belum dibaca @@ -1412,10 +1386,6 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Only one link per line Hanya satu tautan per baris - - Download local torrent - Unduh torrent lokal - Download @@ -1602,7 +1572,17 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Terunduh @@ -1973,10 +1953,6 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.&About Tent&ang - - Exit - Keluar - &Pause @@ -2007,22 +1983,6 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.E&xit &Keluar - - Options - Opsi - - - Resume - Lanjutkan - - - Pause - Tangguhkan - - - Delete - Hapus - Open URL @@ -2040,19 +2000,15 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. - + Show Tampilkan - + Check for program updates Periksa pemutakhiran program - - Lock qBittorrent - Kunci qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. - + Execution Log Log Eksekusi - + Clear the password Kosongkan sandi - + Filter torrent list... Saring daftar torrent... - + &Set Password Tetapkan &Kata Sandi - + &Clear Password &Kosongkan Kata Sandi - + Transfers Transfer - + Torrent file association Asosiasi berkas torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent bukan aplikasi baku untuk membuka berkas torrent atau tautan magnet. Apakah Anda ingin mengasosiasikan qBittorrent dengan berkas torrent atau tautan magnet? - + Icons Only Hanya Ikon - + Text Only Hanya Teks - + Text Alongside Icons Teks di Samping Ikon - + Text Under Icons Teks di Bawah Ikon - + Follow System Style Ikuti Gaya Sistem - - - + + + UI lock password Sandi kunci UI - - - + + + Please type the UI lock password: Mohon ketik sandi kunci UI: - + The password should contain at least 3 characters Panjang sandi minimal harus 3 karakter - + Password update Sandi diperbarui - + The UI lock password has been successfully updated Sandi kunci UI telah berhasil diperbarui - + Are you sure you want to clear the password? Apakah Anda yakin ingin mengosongkan sandi? - + Search Cari - + Transfers (%1) Transfer (%1) - + Error Galat - + Failed to add torrent: %1 Gagal menambahkan torrent: %1 - + Download completion Keselesaian unduhan - + I/O Error i.e: Input/Output Error Galat I/O - + Recursive download confirmation Konfirmasi unduh rekursif - + Yes Ya - + No Tidak - + Never Jangan Pernah - + Global Upload Speed Limit Batas Kecepatan Unggah Global - + Global Download Speed Limit Batas Kecepatan Unduh Global - + &No &Tidak - + &Yes &Ya - + &Always Yes &Selalu Ya - + Python found in %1 Python ditemukan di %1 - + Old Python Interpreter Interpreter Python Usang - + qBittorrent Update Available Tersedia Pemutakhiran qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Telah Menggunakan qBittorrent Versi Terbaru - + Undetermined Python version Versi Python tidak diketahui - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' telah selesai diunduh. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Apakah Anda ingin mengasosiasikan qBittorrent dengan berkas torrent atau tautan Alasan: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent '%1' memuat berkas torrent, apakah Anda ingin melanjutkan dengan mengunduh mereka? - + Couldn't download file at URL '%1', reason: %2. Tidak bisa mengunduh berkas pada URL '%1', alasan: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Python versi %1 Anda sudah usang. Mohon mutakhirkan ke versi terakhir agar mesin pencari bisa bekerja. Kebutuhan minimum: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Tidak bisa menentukan versi Python Anda (%1), Mesin pencari dinonfungsikan. - - + + Missing Python Interpreter Kehilangan Interpreter Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python dibutuhkan untuk dapat menggunakan mesin pencari tetapi sepertinya belum dipasang. Apakah Anda ingin memasangnya sekarang? - + Python is required to use the search engine but it does not seem to be installed. Python dibutuhkan untuk dapat menggunakan mesin pencari tetapi sepertinya belum dipasang. - A new version is available. Update to version %1? - Versi baru tersedia. + Versi baru tersedia. Mutakhirkan ke versi %1? - + No updates available. You are already using the latest version. Pemutakhiran tidak tersedia. Anda telah menggunakan versi terbaru. - + &Check for Updates &Periksa Pemutakhiran - + Checking for Updates... Memeriksa Pemutakhiran... - + Already checking for program updates in the background Sudah memeriksa pemutakhiran program di latar belakang - + Python found in '%1' Python ditemukan di '%1' - + Download error Galat unduh - + Python setup could not be downloaded, reason: %1. Please install it manually. Python tidak bisa diunduh, alasan: %1. Mohon pasang secara manual. - - + + Invalid password Sandi tidak valid - - + + RSS (%1) RSS (%1) - + URL download error Galat unduh URL - + The password is invalid Sandi tidak valid - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Kecepatan DL: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Kecepatan UL: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, U: %2] qBittorrent %3 - + Hide Sembunyikan - + Exiting qBittorrent Keluar qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Beberapa sedang dalam proses transfer. Apakah Anda yakin ingin qBittorrent keluar? - + Open Torrent Files Buka Berkas Torrent - + Torrent Files Berkas Torrent - + Options were saved successfully. Opsi telah disimpan dengan sukses. @@ -2443,17 +2404,17 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::DNSUpdater - + Your dynamic DNS was successfully updated. DNS dinamis Anda telah berhasil diperbarui. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Galat DNS Dinamis: Layanan ini sementara tidak tersedia, akan dicoba ulang dalam 30 menit. - + Dynamic DNS error: hostname supplied does not exist under specified account. Galat DNS Dinamis: nama hos yang diberikan tidak ada di dalam akun yang disebutkan. @@ -2463,32 +2424,32 @@ Apakah Anda yakin ingin qBittorrent keluar? Galat DNS Dinamis: nama pengguna/sandi tidak valid. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Galat DNS Dinamis: qBittorrent terdaftar hitam oleh layanan, mohon laporkan kutu di http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Galat DNS Dinamis: %1 dikembalikan oleh layanan, mohon laporkan kutu di http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Galat DNS Dinamis: Nama pengguna Anda telah diblokir karena penyalahgunaan. - + Dynamic DNS error: supplied domain name is invalid. Galat DNS Dinamis: nama domain yang diberikan tidak valid. - + Dynamic DNS error: supplied username is too short. Galat DNS Dinamis: nama pengguna yang diberikan terlalu pendek. - + Dynamic DNS error: supplied password is too short. Galat DNS Dinamis: kata sandi yang diberikan terlalu pendek. @@ -2515,154 +2476,161 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Basis data GeoIP dimuat. Tipe: %1. Durasi bangun: %2. - + Couldn't load GeoIP database. Reason: %1 Tidak bisa memuat basis data GeoIP. Alasan: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A T/A - Asia/Pacific Region - Kawasan Asia/Pasifik + Kawasan Asia/Pasifik + + + Europe + Eropa - Europe - Eropa - - - Andorra Andora - + United Arab Emirates Uni Emirat Arab - + Afghanistan Afganistan - + Antigua and Barbuda Antigua dan Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antillen Belanda + Antillen Belanda - + Angola Angola - + Antarctica Antartika - + Argentina Argentina - + American Samoa Samoa Amerika - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaijan - + Bosnia and Herzegovina Bosnia dan Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Apakah Anda yakin ingin qBittorrent keluar? Brunei Darussalam - Bolivia - Bolivia + Bolivia - + Brazil Brazil - + Bahamas Bahama - + Bhutan Bhutan - + Bouvet Island Pulau Bouvet - + Botswana Botswana - + Belarus Belarusia - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kepulauan Cocos (Keeling) - + Congo, The Democratic Republic of the Republik Demokratik Kongo - + Central African Republic Republik Afrika Tengah - + Congo Kongo - + Switzerland Swiss - Cote D'Ivoire - Pantai Gading + Pantai Gading - + Cook Islands Kepulauan Cook - + Chile Chili - + Cameroon Kamerun - + China Cina - + Colombia Kolombia - + Costa Rica Kosta Rika - + Cuba Kuba - + Cape Verde Tanjung Verde - + + Curacao + + + + Christmas Island Pulau Natal - + Cyprus Siprus - + Czech Republic Republik Ceko - + Germany Jerman - + Djibouti Djibouti - + Denmark Denmark - + Dominica Dominika - + Dominican Republic Republik Dominika - + Algeria Aljazair - + Ecuador Ekuador - + Estonia Estonia - + Egypt Mesir - + Western Sahara Sahara Barat - + Eritrea Eritrea - + Spain Spanyol - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fiji - + Falkland Islands (Malvinas) Kepulauan Falkland (Malvina) - + Micronesia, Federated States of Federasi Mikronesia - + Faroe Islands Kepulauan Faroe - + France Perancis - France, Metropolitan - Perancis Metropolitan + Perancis Metropolitan - + Gabon Gabon - + United Kingdom Britania Raya - + Grenada Granada - + Georgia Georgia - + French Guiana Guyana Perancis - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Greenland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Guinea Khatulistiwa - + Greece Yunani - + South Georgia and the South Sandwich Islands Georgia Selatan dan Kepulauan Sandwich Selatan - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Pulau Heard dan Kepulauan McDonald - + Honduras Honduras - + Croatia Kroasia - + Haiti Haiti - + Hungary Hongaria - + Indonesia Indonesia - + Ireland Irlandia - + Israel Israel - + India India - + British Indian Ocean Territory Wilayah Samudra Hindia Britania - + Iraq Irak - + Iran, Islamic Republic of Republik Islam Iran - + Iceland Islandia - + Italy Italia - + Jamaica Jamaika - + Jordan Yordania - + Japan Jepang - + Kenya Kenya - + Kyrgyzstan Kirgizstan - + Cambodia Kamboja - + Kiribati Kiribati - + Comoros Komoro - + Saint Kitts and Nevis Saint Kitts dan Nevis - + Korea, Democratic People's Republic of Korea Utara - + Korea, Republic of Korea Selatan - + Kuwait Kuwait - + Cayman Islands Kepulauan Cayman - + Kazakhstan Kazakhstan - + Lao People's Democratic Republic Republik Demokratik Rakyat Laos - + Lebanon Lebanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luksemburg - + Latvia Latvia - Libyan Arab Jamahiriya - Libya + Libya - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Moldova - + Madagascar Madagaskar - + Marshall Islands Kepulauan Marshall - Macedonia - Makedonia + Makedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - Macau - Makau + Makau - + Northern Mariana Islands Kepulauan Mariana Utara - + Martinique Martinik - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maladewa - + Malawi Malawi - + Mexico Meksiko - + Malaysia Malaysia - + Mozambique Mozambik - + Namibia Namibia - + New Caledonia Kaledonia Baru - + Niger Niger - + Norfolk Island Pulau Norfolk - + Nigeria Nigeria - + Nicaragua Nikaragua - + Netherlands Belanda - + Norway Norwegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Selandia Baru - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Polinesia Perancis - + Papua New Guinea Papua Nugini - + Philippines Filipina - + Pakistan Pakistan - + Poland Polandia - + Saint Pierre and Miquelon Saint Pierre dan Miquelon - Pitcairn Islands - Kepulauan Pitcairn + Kepulauan Pitcairn - + Puerto Rico Puerto Riko - Palestinian Territory - Palestina + Palestina - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Reunion - + Romania Rumania - + Russian Federation Rusia - + Rwanda Rwanda - + Saudi Arabia Arab Saudi - + Solomon Islands Kepulauan Solomon - + Seychelles Seiselensa - + Sudan Sudan - + Sweden Swedia - + Singapore Singapura - Saint Helena - Saint Helena + Saint Helena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard dan Jan Mayen - + Slovakia Slowakia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe Sao Tome dan Principe - + El Salvador El Salvador - + Syrian Arab Republic Suriah - + Swaziland Swaziland - + Turks and Caicos Islands Kepulauan Turks dan Caicos - + Chad Chad - + French Southern Territories Daratan Selatan dan Antarktika Perancis - + Togo Togo - + Thailand Thailand - + Tajikistan Tajikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor-Leste - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turki - + Trinidad and Tobago Trinidad dan Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands Kepulauan Terluar Kecil Amerika Serikat - + United States Amerika Serikat - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Vatikan - + Saint Vincent and the Grenadines Saint Vincent dan Grenadine - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Kepulauan Virgin, Inggris - + Virgin Islands, U.S. Kepulauan Virgin, Amerika Serikat - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis dan Futuna - + Samoa Samoa - + Yemen Yaman - + Mayotte Mayotte - + Serbia Serbia - + South Africa Afrika Selatan - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Proksi Anonim + Proksi Anonim - Satellite Provider - Penyedia Satelit + Penyedia Satelit - Other - Lainnya + Lainnya - + Aland Islands Kepulauan Aland - + Guernsey Guernsey - + Isle of Man Pulau Man - + Jersey Jersey - + Saint Barthelemy Saint Barthelemy - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. Tidak bisa mengurai berkas basis data GeoIP. - + Couldn't save downloaded GeoIP database file. Tidak bisa menyimpan berkas basis data GeoIP yang diunduh. - + Successfully updated GeoIP database. Berhasil memperbarui basis data GeoIP. - + Couldn't download GeoIP database file. Reason: %1 Tidak bisa mengunduh berkas basis data GeoIP. Alasan: %1 @@ -3838,72 +3856,72 @@ Apakah Anda yakin ingin qBittorrent keluar? interested(local) and choked(peer) - tertarik(lokal) dan choked(rekanan) + interested(local) and unchoked(peer) - tertarik(lokal) dan unchoked(rekanan) + interested(peer) and choked(local) - tertarik(rekanan) dan choked(lokal) + interested(peer) and unchoked(local) - tertarik(rekanan) dan unchoked(lokal) + optimistic unchoke - unchoke optimistis + peer snubbed - penolakan rekanan + incoming connection - koneksi masuk + not interested(local) and unchoked(peer) - tidak tertarik(lokal) dan unchoked(rekanan) + not interested(peer) and unchoked(local) - tidak tertarik(rekanan) dan unchoked(lokal) + peer from PEX - rekanan dari PEX + peer from DHT - rekanan dari DHT + encrypted traffic - lalu lintas terenkripsi + encrypted handshake - handshake terenkripsi + peer from LSD - rekanan dari LSD + @@ -3971,123 +3989,73 @@ Apakah Anda yakin ingin qBittorrent keluar? Relevansi - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Tambah rekanan baru... - + Copy selected Salin yang dipilih - - + + Ban peer permanently Cekal rekanan secara permanen - + Manually adding peer '%1'... Secara manual menambahkan rekanan '%1'... - + The peer '%1' could not be added to this torrent. Rekanan '%1' tidak bisa ditambahkan ke torrent ini. - + Manually banning peer '%1'... Secara manual mencekal rekanan '%1'... - - + + Peer addition Tambahan rekanan - + Some peers could not be added. Check the Log for details. Beberapa rekanan tidak bisa ditambahkan. Periksa Log untuk detail lebih lanjut. - + The peers were added to this torrent. Rekanan telah ditambahkan ke torrent ini. - + Are you sure you want to ban permanently the selected peers? Apakah Anda yakin ingin mencekal secara permanen rekanan yang dipilih? - + &Yes &Ya - + &No &Tidak - - interested(local) and choked(peer) - tertarik(lokal) dan choked(rekanan) - - - interested(local) and unchoked(peer) - tertarik(lokal) dan unchoked(rekanan) - - - interested(peer) and choked(local) - tertarik(rekanan) dan choked(lokal) - - - interested(peer) and unchoked(local) - tertarik(rekanan) dan unchoked(lokal) - - - optimistic unchoke - unchoke optimistis - - - peer snubbed - penolakan rekanan - - - incoming connection - koneksi masuk - - - not interested(local) and unchoked(peer) - tidak tertarik(lokal) dan unchoked(rekanan) - - - not interested(peer) and unchoked(local) - tidak tertarik(rekanan) dan unchoked(lokal) - - - peer from PEX - rekanan dari PEX - - - peer from DHT - rekanan dari DHT - - - encrypted traffic - lalu lintas terenkripsi - - - encrypted handshake - handshake terenkripsi - - - peer from LSD - rekanan dari LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Apakah Anda yakin ingin qBittorrent keluar? Biru: Bagian yang ada + + PluginSelectDlg + + + Search plugins + Pengaya pencarian + + + + Installed search plugins: + + + + + Name + Nama + + + + Version + Versi + + + + Url + Url + + + + + Enabled + Diaktifkan + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Anda bisa mendapatkan mesin pencari baru di sini: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Pasang satu yang baru + + + + Check for updates + Periksa pemutakhiran + + + + Close + Tutup + + + + Uninstall + Bongkar + + + + + + Yes + Ya + + + + + + + No + Tidak + + + + Uninstall warning + Peringatan pembongkaran + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Beberapa pengaya tidak bisa dibuang karena mereka disertakan qBittorrent secara bawaan. Hanya yang Anda tambahkan sendiri yang bisa Anda buang. +Pengaya tersebut dinonfungsikan. + + + + Uninstall success + Berhasil dibongkar + + + + All selected plugins were uninstalled successfully + Semua pengaya yang dipilih telah berhasil dibuang. + + + + + New search engine plugin URL + URL pengaya mesin pencarian baru + + + + + URL: + URL: + + + + Invalid link + Tautan tidak valid + + + + The link doesn't seem to point to a search engine plugin. + Tautan sepertinya tidak mengarah ke pengaya mesin pencarian. + + + + Select search plugins + Pilih pengaya pencarian + + + + qBittorrent search plugin + Pengaya pencarian qBittorrent + + + + + + Search plugin update + Pemutakhiran pengaya pencarian + + + + All your plugins are already up to date. + Semua pengaya Anda telah dimutakhirkan. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Pemasangan pengaya pencarian + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Sumber pengaya + + + + Search plugin source: + Sumber pengaya pencarian: + + + + Local file + Berkas lokal + + + + Web link + Tautan web + + Preferences @@ -4181,89 +4346,89 @@ Apakah Anda yakin ingin qBittorrent keluar? Imbuh ekstensi .!qb untuk berkas yang belum komplet - + Copy .torrent files to: Salin berkas .torrent ke: - + Connections Limits Batas Koneksi - + Proxy Server Server Proksi - + Global Rate Limits Batas Laju Global - + Apply rate limit to transport overhead Terapkan batas laju untuk overhead transpor - + Schedule the use of alternative rate limits Jadwalkan penggunaan batas laju alternatif - + From: from (time1 to time2) Dari: - + To: time1 to time2 Ke: - + Enable Local Peer Discovery to find more peers Aktifkan Penemuan Rekanan Lokal untuk menemukan lebih banyak rekanan - + Encryption mode: Mode enkripsi: - + Prefer encryption Enkripsi Opsional - + Require encryption Enkripsi Wajib - + Disable encryption Enkripsi Nonaktif - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Informasi Lebih Banyak</a>) - + Maximum active downloads: Unduhan aktif maksimum: - + Maximum active uploads: Unggahan aktif maksimum: - + Maximum active torrents: Torrent aktif maksimum: @@ -4288,82 +4453,82 @@ Apakah Anda yakin ingin qBittorrent keluar? Tampilkan isi torrent dan beberapa opsi - + Run external program on torrent completion Jalankan program eksternal saat torrent selesai diunduh - + Port used for incoming connections: Port yang digunakan untuk koneksi masuk: - + Random Acak - + Global maximum number of connections: Jumlah maksimum koneksi global: - + Maximum number of connections per torrent: Jumlah maksimum koneksi per torrent: - + Maximum number of upload slots per torrent: Jumlah maksimum slot unggah per torrent: - - + + Upload: Unggah: - - + + Download: Unduh: - - - - + + + + KiB/s KiB/s - + Remove folder Buang folder - + Every day Setiap hari - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Pertukaran rekanan dengan aplikasi Bittorrent yang kompatibel (µTorrent, Vuze, ...) - + Host: Hos: - + SOCKS4 SOCKS4 - + Type: Jenis: @@ -4536,262 +4701,262 @@ Apakah Anda yakin ingin qBittorrent keluar? Secara otomatis menambahkan torrent dari: - + Add folder... Tambah folder... - + Copy .torrent files for finished downloads to: Salin berkas .torrent yang telah selesai diunduh ke: - + Email notification upon download completion Notifikasi surel saat selesai mengunduh - + Destination email: Surel tujuan: - + SMTP server: Server SMTP: - + This server requires a secure connection (SSL) Server ini membutuhkan koneksi aman (SSL) - + Listening Port Port yang Didengar - + Use UPnP / NAT-PMP port forwarding from my router Gunakan penerusan port UPnP / NAT-PMP dari router saya - + Use different port on each startup Gunakan port yang berbeda setiap kali memulai - + Global maximum number of upload slots: Jumlah maksimum slot unggah global: - + Otherwise, the proxy server is only used for tracker connections Jika tidak, server proksi hanya digunakan untuk koneksi pelacak - + Use proxy for peer connections Gunakan proksi untuk koneksi rekanan - + Disable connections not supported by proxies Nonaktifkan koneksi yang tidak didukung oleh proksi - + Use proxy only for torrents Gunakan proksi hanya untuk torrent saja - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Umpan RSS, mesin pencari, pemutakhiran perangkat lunak atau hal yang lain selain pengunduhan torrent atau yang terkait (seperti pertukaran rekanan) akan menggunakan sambungan langsung. - + Info: The password is saved unencrypted Info: Sandi disimpan tanpa enkripsi - + IP Filtering Penyaringan IP - + Reload the filter Muat ulang penyaring - + Apply to trackers Terapkan ke pelacak - + Apply rate limit to peers on LAN Terapkan batas laju untuk rekanan pada LAN - + When: Kapan: - + Weekdays Hari kerja - + Weekends Akhir pekan - + Rate Limits Settings Pengaturan Batas Laju - + Enable µTP protocol Aktifkan protokol µTP - + Apply rate limit to µTP protocol Terapkan batas lagu protokol µTP - + Privacy Privasi - + Enable DHT (decentralized network) to find more peers Aktifkan DHT (jaringan desentralisasi) untuk menemukan lebih banyak rekanan - + Enable Peer Exchange (PeX) to find more peers Aktifkan Pertukaran Rekanan (PeX) untuk menemukan lebih banyak rekanan - + Look for peers on your local network Temukan rekanan di jaringan lokal Anda - + Enable when using a proxy or a VPN connection Aktifkan ketika menggunakan proksi atau koneksi VPN - + Enable anonymous mode Aktifkan mode anonim - + Do not count slow torrents in these limits Jangan hitung torrent lambat pada batas ini - + Seed torrents until their ratio reaches Bibit torrent sampai rasio mereka tercapai - + then lalu - + Pause them Tangguhkan torrent - + Remove them Buang torrent - + Automatically add these trackers to new downloads: Secara otomatis menambahkan pelacak ini ke unduhan baru: - + Use UPnP / NAT-PMP to forward the port from my router Gunakan UPnP / NAT-PMP untuk meneruskan port dari router saya - + Use HTTPS instead of HTTP Gunakan HTTPS daripada HTTP - + Import SSL Certificate Impor sertifikat SSL - + Import SSL Key Impor kunci SSL - + Certificate: Sertifikat: - + Alternative Rate Limits Batas Laju Alternatif - + Key: Kunci: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informasi tentang sertifikat</a> - + Bypass authentication for localhost Lewati otentikasi untuk localhost - + Update my dynamic domain name Perbarui nama domain dinamis saya - + Service: Layanan: - + Register Daftar - + Domain name: Nama domain: - + (None) (Tak ada) @@ -4801,61 +4966,61 @@ Apakah Anda yakin ingin qBittorrent keluar? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Otentikasi - - - - + + + + Username: Nama pengguna: - - - - + + + + Password: Sandi: - + Torrent Queueing Pengantrean Torrent - + Share Ratio Limiting Pembatasan Rasio Berbagi - + Enable Web User Interface (Remote control) Aktifkan Antarmuka Pengguna Web (Pengendali jauh) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Jalur penyaring (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Comment: Komentar: - - Torrent content: - Isi torrent: - Select All @@ -5587,28 +5748,28 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Galat tidak dikenal - - + + Upgrade Tingkatkan - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Anda memutakhirkan dari versi lama yang memiliki proses penyimpanan yang berbeda. Anda harus meningkatkannya ke sistem penyimpanan baru. Anda tidak akan bisa menggunakan versi yang lebih lama dari v3.3.0 lagi. Lanjutkan? [y/t] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Anda memutakhirkan dari versi lama yang memiliki proses penyimpanan yang berbeda. Anda harus meningkatkannya ke sistem penyimpanan baru. Jika Anda melanjutkan, Anda tidak akan bisa menggunakan versi yang lebih lama dari v3.3.0 lagi. - + Couldn't migrate torrent with hash: %1 Tidak bisa migrasi torrent dengan hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Tidak bisa migrasi torrent. Nama berkas lanjutcepat tidak valid: %1 @@ -5719,17 +5880,17 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. RSSImp - + Stream URL: URL Strim: - + Please type a RSS stream URL Mohon ketik URL strim RSS - + This RSS feed is already in the list. Umpan RSS ini telah ada di dalam daftar. @@ -5749,75 +5910,92 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Folder baru - + Deletion confirmation Konfirmasi penghapusan - + Are you sure you want to delete the selected RSS feeds? Apakah Anda yakin ingin menghapus umpan RSS yang dipilih? - + Please choose a new name for this RSS feed Mohon pilih nama baru untuk umpan RSS ini - + New feed name: Nama umpan baru: - + Name already in use Nama telah digunakan - + This name is already used by another item, please choose another one. Nama ini telah digunakan oleh item lainnya, mohon pilih yang lain. - + Date: Tanggal: - + Author: Penulis: - + Unread Belum dibaca - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... + Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... + Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... RssParser - Failed to open downloaded RSS file. - Gagal membuka berkas RSS yang diunduh. + Gagal membuka berkas RSS yang diunduh. - Invalid RSS feed at '%1'. - Umpan RSS tidak valid pada '%1'. + Umpan RSS tidak valid pada '%1'. @@ -5843,168 +6021,249 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Jumlah maksimum artikel per umpan: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Telusuri... + + + + Choose save path + Pilih jalur penyimpanan + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Folder Dimonitor - - Download here - Unduh di sini + + Save Files to + + + + Download here + Unduh di sini - Download path - Jalur unduhan + Jalur unduhan SearchCategories - All categories - Semua kategori + Semua kategori - Movies - Film + Film - TV shows - Acara Tv + Acara Tv - Music - Musik + Musik - Games - Permainan + Permainan - Anime - Anime + Anime - Software - Perangkat lunak + Perangkat lunak - Pictures - Gambar + Gambar - Books - Buku + Buku SearchEngine - - - Search - Cari + Cari - Please install Python to use the Search Engine. - Mohon pasang Python untuk menggunakan Mesin Pencari. + Mohon pasang Python untuk menggunakan Mesin Pencari. - Empty search pattern - Pola pencarian kosong + Pola pencarian kosong - Please type a search pattern first - Mohon ketik pola pencarian telebih dahulu + Mohon ketik pola pencarian telebih dahulu - Searching... - Mencari... + Mencari... - Stop - Hentikan + Hentikan - - Search Engine - Mesin Pencari + Mesin Pencari - - Search has finished - Pencarian telah selesai + Pencarian telah selesai - An error occurred during search... - Sebuah galat terjadi saat pencarian... + Sebuah galat terjadi saat pencarian... - - Search aborted - Pencarian dibatalkan + Pencarian dibatalkan - All enabled - Semua diaktifkan + Semua diaktifkan - All engines - Semua mesin + Semua mesin - - Multiple... - Banyak... + Banyak... - - Results <i>(%1)</i>: i.e: Search results - Hasil <i>(%1)</i>: + Hasil <i>(%1)</i>: - Search returned no results - Pencarian tidak menghasilkan apa-apa + Pencarian tidak menghasilkan apa-apa - Stopped - Dihentikan + Dihentikan + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Semua kategori + + + + Movies + Film + + + + TV shows + Acara Tv + + + + Music + Musik + + + + Games + Permainan + + + + Anime + Anime + + + + Software + Perangkat lunak + + + + Pictures + Gambar + + + + Books + Buku SearchListDelegate - - + + Unknown Tidak diketahui @@ -6012,35 +6271,160 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. SearchTab - + Name i.e: file name Nama - + Size i.e: file size Ukuran - + Seeders i.e: Number of full sources Pembibit - + Leechers i.e: Number of partial sources Leecher - + Search engine Mesin pencari + + SearchWidget + + + + + + + Search + Cari + + + + Status: + Status: + + + + + Stopped + Dihentikan + + + + Download + Unduh + + + + Go to description page + Pergi ke halaman deskripsi + + + + Copy description page URL + Salin URL halaman deskripsi + + + + Search plugins... + + + + + All enabled + Semua diaktifkan + + + + All plugins + + + + + + Multiple... + Banyak... + + + + + + Search Engine + Mesin Pencari + + + + Please install Python to use the Search Engine. + Mohon pasang Python untuk menggunakan Mesin Pencari. + + + + Empty search pattern + Pola pencarian kosong + + + + Please type a search pattern first + Mohon ketik pola pencarian telebih dahulu + + + + + Results <i>(%1)</i>: + i.e: Search results + Hasil <i>(%1)</i>: + + + + Searching... + Mencari... + + + + Stop + Hentikan + + + + + Search has finished + Pencarian telah selesai + + + + + Search aborted + Pencarian dibatalkan + + + + Search returned no results + Pencarian tidak menghasilkan apa-apa + + + + Search has failed + + + + + An error occurred during search... + Sebuah galat terjadi saat pencarian... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. TorrentContentModel - + Name Nama - + Size Ukuran - + Progress Kemajuan - + + Download Priority + + + Priority - Prioritas + Prioritas @@ -6854,38 +7242,38 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Peringatan (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Tidak bisa mengawakode favicon untuk URL '%1'. Mencoba mengunduh favicon dalam format PNG. - + Couldn't decode favicon for URL '%1'. Tidak bisa mengawakode favicon untuk URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Tidak bisa mengunduh favicon untuk URL '%1'. Alasan: %2 - + Resume torrents Lanjutkan torrent - + Pause torrents Tangguhkan torrent - + Delete torrents Hapus torrent - - + + All (%1) this is for the tracker filter Semua (%1) @@ -7153,17 +7541,17 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. TransferListFiltersWidget - + Status Status - + Labels Label - + Trackers Pelacak @@ -7702,206 +8090,155 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. engineSelect - Search plugins - Pengaya pencarian + Pengaya pencarian - Installed search engines: - Mesin pencari terpasang: + Mesin pencari terpasang: - Name - Nama + Nama - Version - Versi + Versi - Url - Url + Url - - Enabled - Diaktifkan + Diaktifkan - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Anda bisa mendapatkan mesin pencari baru di sini: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Anda bisa mendapatkan mesin pencari baru di sini: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Pasang satu yang baru + Pasang satu yang baru - Check for updates - Periksa pemutakhiran + Periksa pemutakhiran - Close - Tutup + Tutup - Uninstall - Bongkar + Bongkar engineSelectDlg - Uninstall warning - Peringatan pembongkaran + Peringatan pembongkaran - Uninstall success - Berhasil dibongkar + Berhasil dibongkar - Invalid plugin - Plugin tidak valid + Plugin tidak valid - The search engine plugin is invalid, please contact the author. - Plugin mesin pencari tidak valid, silahkan hubungi pengembang. + Plugin mesin pencari tidak valid, silahkan hubungi pengembang. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Versi yang lebih baru dari pengaya mesin pencari '%1' telah dipasang. + Versi yang lebih baru dari pengaya mesin pencari '%1' telah dipasang. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Pengaya mesin pencarian '%1' tidak bisa dimutakhirkan, tetap pada versi lama. + Pengaya mesin pencarian '%1' tidak bisa dimutakhirkan, tetap pada versi lama. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Pengaya mesin pencarian '%1' tidak bisa dipasang. + Pengaya mesin pencarian '%1' tidak bisa dipasang. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Pengaya mesin pencarian '%1' telah berhasil dimutakhirkan. + Pengaya mesin pencarian '%1' telah berhasil dimutakhirkan. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Pengaya mesin pencarian '%1' telah berhasil dipasang. + Pengaya mesin pencarian '%1' telah berhasil dipasang. - The link doesn't seem to point to a search engine plugin. - Tautan sepertinya tidak mengarah ke pengaya mesin pencarian. + Tautan sepertinya tidak mengarah ke pengaya mesin pencarian. - Select search plugins - Pilih pengaya pencarian + Pilih pengaya pencarian - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Maaf, pemasangan pengaya pencarian '%1' gagal. + Maaf, pemasangan pengaya pencarian '%1' gagal. - - - - - Search plugin install - Pemasangan pengaya pencarian + Pemasangan pengaya pencarian - - - Yes - Ya + Ya - - - - No - Tidak + Tidak - qBittorrent search plugin - Pengaya pencarian qBittorrent + Pengaya pencarian qBittorrent - - - - Search plugin update - Pemutakhiran pengaya pencarian + Pemutakhiran pengaya pencarian - - Sorry, update server is temporarily unavailable. - Maaf, server pemutakhiran sementara tidak tersedia. + Maaf, server pemutakhiran sementara tidak tersedia. - All your plugins are already up to date. - Semua pengaya Anda telah dimutakhirkan. + Semua pengaya Anda telah dimutakhirkan. - All selected plugins were uninstalled successfully - Semua pengaya yang dipilih telah berhasil dibuang. + Semua pengaya yang dipilih telah berhasil dibuang. - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Beberapa pengaya tidak bisa dibuang karena mereka disertakan qBittorrent secara bawaan. Hanya yang Anda tambahkan sendiri yang bisa Anda buang. + Beberapa pengaya tidak bisa dibuang karena mereka disertakan qBittorrent secara bawaan. Hanya yang Anda tambahkan sendiri yang bisa Anda buang. Pengaya tersebut dinonfungsikan. - Invalid link - Tautan tidak valid + Tautan tidak valid - - New search engine plugin URL - URL pengaya mesin pencarian baru + URL pengaya mesin pencarian baru - - URL: - URL: + URL: @@ -8031,169 +8368,169 @@ Pengaya tersebut dinonfungsikan. options_imp - - + + Choose export directory Pilih direktori ekspor - - - - + + + + Choose a save directory Pilih direktori simpan - + Add directory to scan Tambah direktori untuk dipindai - + Supported parameters (case sensitive): Parameter yang didukung (sensitif besar kecil huruf): - + %N: Torrent name %N: Nama torrent - + %L: Label %L: Label - + %F: Content path (same as root path for multifile torrent) %F: Jalur konten (sama dengan jalur root untuk torrent multi-berkas) - + %R: Root path (first torrent subdirectory path) %R: Jalur root (jalur subdirektori torrent pertama) - + %D: Save path %D: Jalur simpan - + %C: Number of files %C: Jumlah berkas - + %Z: Torrent size (bytes) %Z: Ukuran torrent (bita) - + %T: Current tracker %T: Tracker saat ini - + %I: Info hash %I: Info hash - + Folder is already being watched. Folder telah dimonitor. - + Folder does not exist. Folder tidak ada. - + Folder is not readable. Folder tidak bisa dibaca. - + Failure Kegagalan - + Failed to add Scan Folder '%1': %2 Gagal untuk menambah Folder Pindaian '%1': %2 - - + + Filters Penyaring - - + + Choose an IP filter file Pilih berkas penyaring IP - + SSL Certificate Sertifikat SSL - + SSL Key Kunci SSL - + Parsing error Galat penguraian - + Failed to parse the provided IP filter Gagal mengurai penyaring IP yang diberikan - + Successfully refreshed Berhasil disegarkan - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berhasil mengurai penyaring IP yang diberikan: %1 aturan diterapkan. - + Invalid key Kunci tidak valid - + This is not a valid SSL key. Ini bukan kunci SSL yang valid. - + Invalid certificate Sertifikat tidak valid - + This is not a valid SSL certificate. Ini bukan Sertifikat SSL yang valid. - + The start time and the end time can't be the same. Waktu mulai dan berakhir tidak boleh sama. - + Time Error Galat Waktu @@ -8201,24 +8538,20 @@ Pengaya tersebut dinonfungsikan. pluginSourceDlg - Plugin source - Sumber pengaya + Sumber pengaya - Search plugin source: - Sumber pengaya pencarian: + Sumber pengaya pencarian: - Local file - Berkas lokal + Berkas lokal - Web link - Tautan web + Tautan web @@ -8247,40 +8580,32 @@ Pengaya tersebut dinonfungsikan. search_engine - - Search - Cari + Cari - Status: - Status: + Status: - Stopped - Dihentikan + Dihentikan - Download - Unduh + Unduh - Go to description page - Pergi ke halaman deskripsi + Pergi ke halaman deskripsi - Copy description page URL - Salin URL halaman deskripsi + Salin URL halaman deskripsi - Search engines... - Mesin pencari... + Mesin pencari... diff --git a/src/lang/qbittorrent_it.ts b/src/lang/qbittorrent_it.ts index fa2756927..2484c477c 100644 --- a/src/lang/qbittorrent_it.ts +++ b/src/lang/qbittorrent_it.ts @@ -127,7 +127,7 @@ Set as default label - + Etichetta predefinita @@ -175,172 +175,172 @@ Non scaricare - - + + I/O Error Errore I/O - + The torrent file does not exist. Il file torrent non esiste. - + Invalid torrent Torrent non valido - + Failed to load the torrent: %1 Impossibile caricare il torrent: %1 - - + + Already in download list Elemento già nell'elenco dei trasferimenti - + Free disk space: %1 Spazio disponibile sul disco: %1 - + Not Available This comment is unavailable Commento non disponibile - + Not Available This date is unavailable Non disponibile - + Not available Non disponibile - + Invalid magnet link Collegamento magnet non valido - + Torrent is already in download list. Trackers were merged. Il torrent è già nell'elenco dei trasferimenti. Aggiunti eventuali nuovi tracker. - - + + Cannot add torrent Impossibile aggiungere il torrent - + Cannot add this torrent. Perhaps it is already in adding state. Impossibile aggiungere questo torrent. Forse è già stato aggiunto. - + This magnet link was not recognized Collegamento magnet non riconosciuto - + Magnet link is already in download list. Trackers were merged. Il collegamento magnet è già nell'elenco dei trasferimenti. Aggiunti eventuali nuovi tracker. - + Cannot add this torrent. Perhaps it is already in adding. Impossibile aggiungere questo torrent. Forse è già stato aggiunto. - + Magnet link Collegamento magnet - + Retrieving metadata... Recupero metadati... - + Not Available This size is unavailable. Non disponibile - - - + + + Choose save path Scegli una cartella per il salvataggio - + Rename the file Rinomina file - + New name: Nuovo nome: - - + + The file could not be renamed Impossibile rinominare il file - + This file name contains forbidden characters, please choose a different one. Questo nome file contiene caratteri vietati, scegli un nome differente. - - + + This name is already in use in this folder. Please use a different name. Questo nome è già in uso in questa cartella, scegli un nome differente. - + The folder could not be renamed La cartella non può essere rinominata - + Rename... Rinomina... - + Priority Priorità - + Invalid metadata Metadati non validi - + Parsing metadata... Analisi metadati... - + Metadata retrieval complete Recupero metadati completato - + Download Error Errore di download @@ -431,10 +431,6 @@ Resolve peer host names Risolvi i nomi host dei peer - - Maximum number of half-open connections [0: Disabled] - Massimo numero di connessioni semi aperte [0: disattivato] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Numero massimo di connessioni semiaperte [0: Illimitato] @@ -661,205 +657,205 @@ &Esporta... - + Matches articles based on episode filter. Seleziona gli elementi che corrispondono al filtro episodi. - + Example: Esempio: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match seleziona gli episodi 2, 5, 8 fino a 15, 30 e successivi della prima stagione - + Episode filter rules: Regola per filtrare gli episodi: - + Season number is a mandatory non-zero value Il numero della stagione non può essere pari a zero - + Episode number is a mandatory non-zero value Il numero dell'episodio non può essere pari a zero - + Filter must end with semicolon La regola deve terminare con un punto e virgola - + Three range types for episodes are supported: Sono supportarti tre diversi tipi di intervallo: - + Single number: <b>1x25;</b> matches episode 25 of season one Numero singolo:<b>1x25;</b> corrisponde all'episodio 25 della prima stagione - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Intervallo normale: <b>1x25-40;</b> corrisponde agli episodi dal 25 al 40 della prima stagione - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Intervallo infinito: <b>1x25-;</b> corrisponde agli episodi 25 e successivi della prima stagione - + Last Match: %1 days ago Ultima occorrenza: %1 giorni fa - + Last Match: Unknown Ultima occorrenza: Sconosciuto - + New rule name Nuovo nome regola - + Please type the name of the new download rule. Inserire il nome della nuova regola di download. - - + + Rule name conflict Conflitto nel nome della regola - - + + A rule with this name already exists, please choose another name. Una regola con questo nome esiste già, scegli un nome differente. - + Are you sure you want to remove the download rule named '%1'? Sei sicuro di voler rimuovere la regola di download con nome '%1'? - + Are you sure you want to remove the selected download rules? Vuoi rimuovere la regola di download selezionata? - + Rule deletion confirmation Conferma eliminazione della regola - + Destination directory Cartella destinazione - + Invalid action Azione non valida - + The list is empty, there is nothing to export. L'elenco è vuoto, non c'è niente da esportare. - + Where would you like to save the list? Dove vuoi salvare l'elenco? - + Rules list (*.rssrules) Elenco regole (*.rssrules) - + I/O Error Errore I/O - + Failed to create the destination file Creazione del file di destinazione non riuscita - + Please point to the RSS download rules file Indica il file con le regole di download RSS - + Rules list Elenco regole - + Import Error Errore di importazione - + Failed to import the selected rules file Importazione del file della regola non riuscita - + Add new rule... Aggiungi nuova regola... - + Delete rule Elimina regola - + Rename rule... Rinomina regola... - + Delete selected rules Elimina regole selezionate - + Rule renaming Rinominazione regole - + Please type the new rule name Inserire il nuovo nome della regola - + Regex mode: use Perl-like regular expressions Modalità regex: usa espressioni regolari in stile Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Modalità jolly: è possibile utilizzare <ul><li>? per un singolo carattere</li><li>* per indicare zero o più caratteri</li><li>Gli spazi vuoti contano come operatori AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Modalità jolly: è possibile utilizzare <ul><li>? per un singolo carattere</li><li>* per indicare zero o più caratteri</li><li>| è usato come operatore OR</li></ul> @@ -952,65 +948,57 @@ '%1' ha raggiunto il massimo rapporto impostato. Metto in pausa... - Error: Could not create torrent export directory: '%1' - Errore: Non è stato possibile creare la cartella di esportazione: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Errore: non è stato possibile esportare il torrent '%1', forse non ha ancora metadati. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Lo stato di rete di sistema è cambiato in %1 - + ONLINE IN LINEA - + OFFLINE NON IN LINEA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding La configurazione di rete di %1 è cambiata, aggiornamento associazione di sessione - + Unable to decode '%1' torrent file. Impossibile decifrare il file torrent %1. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Download ricorsivo del file '%1' incluso nel torrent '%2' - + Couldn't save '%1.torrent' Impossibile salvare %1.torrent - + because %1 is disabled. this peer was blocked because uTP is disabled. perché %1 è disattivato. - + because %1 is disabled. this peer was blocked because TCP is disabled. perché %1 è disattivato. - + URL seed lookup failed for URL: '%1', message: %2 Ricerca seed web non riuscita per l'URL: '%1', messaggio: %2 @@ -1027,178 +1015,164 @@ '%1' è stato rimosso dall'elenco dei trasferimenti. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Download di '%1' in corso... - Torrent Export: torrent is invalid, skipping... - Esportazione del Torrent: il file torrent non è valido, lo sto saltando... - - - + DHT support [ON] Supporto DHT [ON] - + DHT support [OFF]. Reason: %1 Supporto DHT [OFF]. Motivo: %1 - + DHT support [OFF] Supporto DHT [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sta cercando di mettersi in ascolto su ogni interfaccia sulla porta: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent non è riuscito a mettersi in ascolto su nessuna interfaccia porta: %1. Motivo: %2 - - - + The network interface defined is invalid: %1 L'interfaccia di rete definita non è valida: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sta cercando di mettersi in ascolto sull'interfaccia %1 sulla porta: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent non ha trovato un indirizzo locale %1 su cui mettersi in ascolto - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent non è riuscito a mettersi in ascolto su nessuna interfaccia porta: %1. Motivo: %2. {1.?} + qBittorrent non è riuscito a mattersi in ascolto su alcuna interfaccia sulla porta: %1. Motivo: %2. - + Tracker '%1' was added to torrent '%2' Il tracker '%1' è stato aggiunto al torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Il tracker '%1' è stato rimosso dal torrent '%2' - + URL seed '%1' was added to torrent '%2' Il seed URL '%1' è stato aggiunto al torrent '%2' - + URL seed '%1' was removed from torrent '%2' Il seed URL '%1' è stato rimosso dal torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossibile riprendere il download del torrent: '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analisi filtro IP completata: sono state applicate %1 regole. - + Error: Failed to parse the provided IP filter. Errore: Impossibile analizzare il filtro IP. - + Couldn't add torrent. Reason: %1 Impossibile aggiungere il torrent. Motivo: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' ripreso. (recupero veloce) - + '%1' added to download list. 'torrent name' was added to download list. '%1' aggiunto all'elenco dei trasferimenti. - + An I/O error occurred, '%1' paused. %2 Si è verificato un errore I/O, '%1' messo in pausa. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Mappatura porta non riuscita, messaggio: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mappatura porta riuscita, messaggio: %1 - + due to IP filter. this peer was blocked due to ip filter. per via del filtro IP. - + due to port filter. this peer was blocked due to port filter. per via del filtro porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. per via di limitazioni nella modalità mista i2p. - + because it has a low port. this peer was blocked because it has a low port. perché ha una porta troppo bassa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent è correttamente in ascolto sull'interfaccia %1 porta: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 porta: %2/%3. Motivo: %4. {1 ?} {2/%3.?} + qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 sulla porta: %2/%3. Motivo: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 porta: %2/%3. Motivo: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP esterno: %1 @@ -1212,12 +1186,12 @@ Impossibile spostare il torrent: '%1'. Motivo: %2 - + File sizes mismatch for torrent '%1', pausing it. La dimensione del file discorda con il torrent "%1", metto in pausa. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Il recupero veloce del torrent %1 è stato rifiutato. Motivo: %2. Altro tentativo in corso... @@ -1242,7 +1216,7 @@ Valore - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Le chiavi comuni per i cookie sono: '%1', '%2'. @@ -1310,12 +1284,12 @@ Puoi ottenere questa informazione dalle preferenze del browser web. FeedListWidget - + RSS feeds Feed RSS - + Unread Non letti @@ -1412,10 +1386,6 @@ Puoi ottenere questa informazione dalle preferenze del browser web.Only one link per line Solo un collegamento per riga - - Download local torrent - Scarica torrent locale - Download @@ -1589,20 +1559,30 @@ Puoi ottenere questa informazione dalle preferenze del browser web. Save files to location: - Salva file nel percorso: + Salva file nel percorso: Label: - Etichetta: + Etichetta: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Scaricato @@ -1615,7 +1595,7 @@ Puoi ottenere questa informazione dalle preferenze del browser web. Upload local torrent - + Carica torrent locale @@ -1973,10 +1953,6 @@ Puoi ottenere questa informazione dalle preferenze del browser web.&About &Informazioni - - Exit - Esci - &Pause @@ -2007,22 +1983,6 @@ Puoi ottenere questa informazione dalle preferenze del browser web.E&xit &Esci - - Options - Opzioni - - - Resume - Riprendi - - - Pause - Metti in pausa - - - Delete - Elimina - Open URL @@ -2040,19 +2000,15 @@ Puoi ottenere questa informazione dalle preferenze del browser web. - + Show Visualizza - + Check for program updates Controlla gli aggiornamenti del programma - - Lock qBittorrent - Blocca qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Puoi ottenere questa informazione dalle preferenze del browser web. - + Execution Log Registro attività - + Clear the password Azzera la password - + Filter torrent list... Filtra elenco torrent... - + &Set Password &Imposta password - + &Clear Password &Azzera password - + Transfers Trasferimenti - + Torrent file association Associazione file torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent non è l'applicazione predefinita per l'apertura di file torrent o collegamenti magnet. Vuoi associare qBittorrent ai file torrent e ai collegamenti magnet? - + Icons Only Solo icone - + Text Only Solo testo - + Text Alongside Icons Testo accanto alle icone - + Text Under Icons Testo sotto le icone - + Follow System Style Segui stile di sistema - - - + + + UI lock password Password di blocco - - - + + + Please type the UI lock password: Inserire la password per il blocco di qBittorrent: - + The password should contain at least 3 characters La password deve contenere almeno 3 caratteri - + Password update Aggiornamento password - + The UI lock password has been successfully updated Aggiornamento password eseguito con successo - + Are you sure you want to clear the password? Sei sicuro di voler azzerare la password? - + Search Ricerca - + Transfers (%1) Trasferimenti (%1) - + Error Errore - + Failed to add torrent: %1 Impossibile aggiungere torrent: %1 - + Download completion Completamento download - + I/O Error i.e: Input/Output Error Errore I/O - + Recursive download confirmation Conferma ricorsiva di download - + Yes - + No No - + Never Mai - + Global Upload Speed Limit Limite globale upload - + Global Download Speed Limit Limite globale download - + &No &No - + &Yes &Sì - + &Always Yes Sem&pre sì - + Python found in %1 Trovato Python in %1 - + Old Python Interpreter Interprete Python troppo vecchio - + qBittorrent Update Available È disponibile un aggiornamento per qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Stai già usando l'ultima versione di qBittorrent - + Undetermined Python version Versione Python non determinata - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. %1 è stato scaricato. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Vuoi associare qBittorrent ai file torrent e ai collegamenti magnet? - + The torrent '%1' contains torrent files, do you want to proceed with their download? Il torrent "%1" contiene files torrent, vuoi procedere al download di questi file? - + Couldn't download file at URL '%1', reason: %2. Impossibile scaricare file dall'URL: %1, motivo: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. La versione %1 di Python è troppo vecchia. Aggiorna all'ultima versione o almeno 2.7.0/3.3.0 per far funzionare i motori di ricerca. - + Couldn't determine your Python version (%1). Search engine disabled. Impossibile determinare la versione di Python (%1). Motore di ricerca disattivato. - - + + Missing Python Interpreter Manca l'interprete Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python è necessario per poter usare il motore di ricerca, ma non risulta installato. Vuoi installarlo ora? - + Python is required to use the search engine but it does not seem to be installed. Python è necessario per poter usare il motore di ricerca, ma non risulta installato. - A new version is available. Update to version %1? - È disponibile una nuova versione. + È disponibile una nuova versione. Vuoi aggiornare alla versione %1? - + No updates available. You are already using the latest version. Nessun aggiornamento disponibile. Stai già usando l'ultima versione. - + &Check for Updates &Controlla gli aggiornamenti - + Checking for Updates... Controllo aggiornamenti in corso... - + Already checking for program updates in the background Controllo aggiornamenti già attivo in background - + Python found in '%1' Trovato Python in '%1' - + Download error Errore download - + Python setup could not be downloaded, reason: %1. Please install it manually. Il setup di Python non è stato scaricato, motivo: %1. Per favore installalo manualmente. - - + + Invalid password Password non valida - - + + RSS (%1) RSS (%1) - + URL download error Errore download URL - + The password is invalid La password non è valida - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Velocità DL: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Velocità UP: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, U: %2] qBittorrent %3 - + Hide Nascondi - + Exiting qBittorrent Uscire da qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Alcuni file sono ancora in trasferimento. Chiudere qBittorrent? - + Open Torrent Files Apri file torrent - + Torrent Files File torrent - + Options were saved successfully. Le opzioni sono state salvate. @@ -2443,17 +2404,17 @@ Chiudere qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Il tuo DNS dinamico è stato aggiornato con successo. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Errore DNS dinamico: Il servizio è momentaneamente indisponibile, nuovo tentativo fra 30 minuti. - + Dynamic DNS error: hostname supplied does not exist under specified account. Errore DNS dinamico: il nome host fornito non esiste per l'account indicato. @@ -2463,32 +2424,32 @@ Chiudere qBittorrent? Errore DNS dinamico: Nome utente/password non validi. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Errore DNS dinamico: qBittorrent è stato messo al bando dal servizio, per favore segnala un bug su http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Errore DNS dinamico: Il servizio ha risposto %1, per favore segnala un bug su http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Errore DNS dinamico: Il tuo nome utente è stato bloccato per abuso. - + Dynamic DNS error: supplied domain name is invalid. Errore DNS dinamico: il dominio indicato non è valido. - + Dynamic DNS error: supplied username is too short. Errore DNS dinamico: il nome utente specificato è troppo corto. - + Dynamic DNS error: supplied password is too short. Errore DNS dinamico: la password specificata è troppo corta. @@ -2515,154 +2476,161 @@ Chiudere qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Banca dati GeoIP caricata. Tipo: %1. Data di creazione: %2. - + Couldn't load GeoIP database. Reason: %1 Impossibile caricare la banca dati GeoIP. Motivo: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/D - Asia/Pacific Region - Regione Asia/Pacifico + Regione Asia/Pacifico + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emirati Arabi Uniti - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua e Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antille Olandesi + Antille Olandesi - + Angola Angola - + Antarctica Antartide - + Argentina Argentina - + American Samoa Samoa Americane - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaijan - + Bosnia and Herzegovina Bosnia ed Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgio - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Chiudere qBittorrent? Sultanato del Brunei - Bolivia - Bolivia + Bolivia - + Brazil Brasile - + Bahamas Bahamas - + Bhutan Butan - + Bouvet Island Isola Bouvet - + Botswana Botswana - + Belarus Bielorussia - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Isole Cocos (Keeling) - + Congo, The Democratic Republic of the Repubblica Democratica del Congo - + Central African Republic Repubblica Centrafricana - + Congo Congo - + Switzerland Svizzera - Cote D'Ivoire - Costa d'Avorio + Costa d'Avorio - + Cook Islands Isole Cook - + Chile Cile - + Cameroon Camerun - + China Cina - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Capo Verde - + + Curacao + + + + Christmas Island Isola di Natale - + Cyprus Cipro - + Czech Republic Repubblica Ceca - + Germany Germania - + Djibouti Gibuti - + Denmark Danimarca - + Dominica Dominica - + Dominican Republic Repubblica Dominicana - + Algeria Algeria - + Ecuador Ecuador - + Estonia Estonia - + Egypt Egitto - + Western Sahara Sahara Occidentale - + Eritrea Eritrea - + Spain Spagna - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fiji - + Falkland Islands (Malvinas) Isole Falkland (Malvinas) - + Micronesia, Federated States of Stati Federati di Micronesia - + Faroe Islands Isole Faroe - + France Francia - France, Metropolitan - Francia Metropolitana + Francia Metropolitana - + Gabon Gabon - + United Kingdom Regno Unito - + Grenada Grenada - + Georgia Georgia - + French Guiana Guyana Francese - + Ghana Ghana - + Gibraltar Gibilterra - + Greenland Groenlandia - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guinea Equatoriale - + Greece Grecia - + South Georgia and the South Sandwich Islands Georgia del Sud e Isole Sandwich Meridionali - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Isole Heard e McDonald - + Honduras Honduras - + Croatia Croazia - + Haiti Haiti - + Hungary Ungheria - + Indonesia Indonesia - + Ireland Irlanda - + Israel Israele - + India India - + British Indian Ocean Territory Territorio britannico dell'Oceano Indiano - + Iraq Iraq - + Iran, Islamic Republic of Iran - + Iceland Islanda - + Italy Italia - + Jamaica Giamaica - + Jordan Giordania - + Japan Giappone - + Kenya Kenya - + Kyrgyzstan Kirgyzistan - + Cambodia Cambogia - + Kiribati Kiribati - + Comoros Comore - + Saint Kitts and Nevis Saint Kitts e Nevis - + Korea, Democratic People's Republic of Repubblica Democratica Popolare di Corea - + Korea, Republic of Repubblica di Corea - + Kuwait Kuwait - + Cayman Islands Isole Cayman - + Kazakhstan Kazakistan - + Lao People's Democratic Republic Repubblica Popolare Democratica del Laos - + Lebanon Libano - + Saint Lucia Santa Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Lussemburgo - + Latvia Lettonia - Libyan Arab Jamahiriya - Repubblica Araba di Libia + Repubblica Araba di Libia - + Morocco Marocco - + Monaco Monaco - + Moldova, Republic of Moldova - + Madagascar Madagascar - + Marshall Islands Isole Marshall - Macedonia - Macedonia + Macedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - Macau - Macau + Macau - + Northern Mariana Islands Isole Marianne Settentrionali - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldive - + Malawi Malawi - + Mexico Messico - + Malaysia Malesia - + Mozambique Mozambico - + Namibia Namibia - + New Caledonia Nuova Caledonia - + Niger Niger - + Norfolk Island Isola Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Paesi Bassi - + Norway Norvegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nuova Zelanda - + Oman Oman - + Panama Panama - + Peru Perù - + French Polynesia Polinesia Francese - + Papua New Guinea Papua Nuova Guinea - + Philippines Filippine - + Pakistan Pakistan - + Poland Polonia - + Saint Pierre and Miquelon Saint-Pierre e Miquelon - Pitcairn Islands - Isole Pitcairn + Isole Pitcairn - + Puerto Rico Porto Rico - Palestinian Territory - Territori Palestinesi + Territori Palestinesi - + Portugal Portogallo - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Riunione - + Romania Romania - + Russian Federation Russia - + Rwanda Rwanda - + Saudi Arabia Arabia Saudita - + Solomon Islands Isole Solomon - + Seychelles Seychelles - + Sudan Sudan - + Sweden Svezia - + Singapore Singapore - Saint Helena - Sant'Elena + Sant'Elena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard e Jan Mayen - + Slovakia Slovacchia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Suriname - + Sao Tome and Principe São Tomé e Principe - + El Salvador El Salvador - + Syrian Arab Republic Repubblica Araba di Siria - + Swaziland Swaziland - + Turks and Caicos Islands Turks e Caicos - + Chad Chad - + French Southern Territories Territori Francesi del Sud - + Togo Togo - + Thailand Thailandia - + Tajikistan Tajikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor Est - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turchia - + Trinidad and Tobago Trinidad e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Repubblica Unita di Tanzania - + Ukraine Ucraina - + Uganda Uganda - + United States Minor Outlying Islands Isole Minori Esterne degli Stati Uniti - + United States Stati Uniti - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Santa Sede (Stato della Città del Vaticano) - + Saint Vincent and the Grenadines Saint Vincent e Grenadine - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Isole Vergini britanniche - + Virgin Islands, U.S. Isole Vergini americane. - Vietnam - Vietnam + Vietnam - + Vanuatu Vanatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Sud Africa - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Proxy anonimo + Proxy anonimo - Satellite Provider - Provider satellitare + Provider satellitare - Other - Altro + Altro - + Aland Islands Isole Aland - + Guernsey Guernsey - + Isle of Man Isola di Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. Impossibile estrarre il file banca dati GeoIP. - + Couldn't save downloaded GeoIP database file. Impossibile salvare il file banca dati GeoIP scaricato. - + Successfully updated GeoIP database. Banca dati GeoIP aggiornata correttamente. - + Couldn't download GeoIP database file. Reason: %1 Impossibile scaricare il file banca dati GeoIP. Motivo: %1 @@ -3838,72 +3856,72 @@ Chiudere qBittorrent? interested(local) and choked(peer) - interessato (locale) e congestionato (peer) + interessato(locale) e non servito(peer) interested(local) and unchoked(peer) - interessante (locale) e non segmentato (peer) + interessato(locale) e servito(peer) interested(peer) and choked(local) - interessato (peer) e congestionato (locale) + interessato(peer) e non servito(locale) interested(peer) and unchoked(local) - interessato (peer) e non congestionato (locale) + interessato(peer) e servito(locale) optimistic unchoke - optimistico non segmentato + servizio ottimistico peer snubbed - peer ignorato + peer ignorato incoming connection - connessione in entrata + connessione in entrata not interested(local) and unchoked(peer) - non interessato (locale) e non congestionato (peer) + non interessato(locale) e servito(peer) not interested(peer) and unchoked(local) - non interessato (peer) e non congestionato (peer) + non interessato(peer) e servito(locale) peer from PEX - peer da PEX + peer da PEX peer from DHT - peer da DHT + peer da DHT encrypted traffic - traffico cifrato + traffico cifrato encrypted handshake - negoziazione cifrata + negoziazione cifrata peer from LSD - peer da LSD + peer da LSD @@ -3971,123 +3989,73 @@ Chiudere qBittorrent? Rilevanza - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Aggiungi un nuovo peer... - + Copy selected Copia selezionati - - + + Ban peer permanently Metti peer permanentemente al bando - + Manually adding peer '%1'... Aggiunta manuale del peer %1... - + The peer '%1' could not be added to this torrent. Non è stato possibile aggiungere il peer '%1' a questo torrent. - + Manually banning peer '%1'... Banno manualmente il peer %1... - - + + Peer addition Aggiunta di peer - + Some peers could not be added. Check the Log for details. Impossibile aggiungere alcuni peer. Controlla il registro per i dettagli. - + The peers were added to this torrent. I peer sono stati aggiunti a questo torrent. - + Are you sure you want to ban permanently the selected peers? Vuoi mettere permanentemente al bando il peer selezionato? - + &Yes &Sì - + &No &No - - interested(local) and choked(peer) - interessato (locale) e congestionato (peer) - - - interested(local) and unchoked(peer) - interessante (locale) e non segmentato (peer) - - - interested(peer) and choked(local) - interessato (peer) e congestionato (locale) - - - interested(peer) and unchoked(local) - interessato (peer) e non congestionato (locale) - - - optimistic unchoke - optimistico non segmentato - - - peer snubbed - peer ignorato - - - incoming connection - connessione in entrata - - - not interested(local) and unchoked(peer) - non interessato (locale) e non congestionato (peer) - - - not interested(peer) and unchoked(local) - non interessato (peer) e non congestionato (peer) - - - peer from PEX - peer da PEX - - - peer from DHT - peer da DHT - - - encrypted traffic - traffico cifrato - - - encrypted handshake - negoziazione cifrata - - - peer from LSD - peer da LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Chiudere qBittorrent? Blu: Parti disponibili + + PluginSelectDlg + + + Search plugins + Plugin di ricerca + + + + Installed search plugins: + + + + + Name + Nome + + + + Version + Versione + + + + Url + Indirizzo + + + + + Enabled + Attivato + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + È possibile ottenere altri plugin di ricerca qui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Installane uno nuovo + + + + Check for updates + Controlla gli aggiornamenti + + + + Close + Chiudi + + + + Uninstall + Disinstalla + + + + + + Yes + + + + + + + + No + No + + + + Uninstall warning + Avviso di disinstallazione + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Alcuni plugin non hanno potuto essere disinstallati perché sono inclusi in qBittorrent. Solo quelli aggiunti da te possono essere disinstallati. +I plugin in questione sono stati invece disattivati. + + + + Uninstall success + Disinstallazione riuscita + + + + All selected plugins were uninstalled successfully + Tutti i plugin selezionati sono stati disinstallati con successo + + + + + New search engine plugin URL + Indirizzo del nuovo plugin di ricerca + + + + + URL: + Indirizzo web: + + + + Invalid link + Collegamento non valido + + + + The link doesn't seem to point to a search engine plugin. + Il collegamento non risulta puntare ad un plugin del motore di ricerca. + + + + Select search plugins + Seleziona plugin di ricerca + + + + qBittorrent search plugin + Plugin di ricerca per qBittorrent + + + + + + Search plugin update + Aggiornamento plugin di ricerca + + + + All your plugins are already up to date. + Tutti i plugin sono già aggiornati. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Installazione plugin di ricerca + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Origine del plugin + + + + Search plugin source: + Origine del plugin di ricerca: + + + + Local file + File locale + + + + Web link + Collegamento web + + Preferences @@ -4181,89 +4346,89 @@ Chiudere qBittorrent? Aggiungi l'estensione .!qB ai file incompleti - + Copy .torrent files to: Copia i file .torrent in: - + Connections Limits Limiti di connessione - + Proxy Server Server proxy - + Global Rate Limits Limiti di velocità globali - + Apply rate limit to transport overhead Applica limiti di velocità al traffico di servizio - + Schedule the use of alternative rate limits Pianifica l'uso dei limti di velocità alternativi - + From: from (time1 to time2) Da: - + To: time1 to time2 A: - + Enable Local Peer Discovery to find more peers Abilita ricerca peer locali per trovare più peer - + Encryption mode: Modalità di cifratura: - + Prefer encryption Preferisci cifratura - + Require encryption Richiedi cifratura - + Disable encryption Disattiva cifratura - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">maggiori informazioni</a>) - + Maximum active downloads: Numero massimo di download attivi: - + Maximum active uploads: Numero massimo di upload attivi: - + Maximum active torrents: Numero massimo di torrent attivi: @@ -4288,82 +4453,82 @@ Chiudere qBittorrent? Mostra il contenuto del torrent ed alcune opzioni - + Run external program on torrent completion Lancia un programma esterno al completamento del torrent - + Port used for incoming connections: Porta usata per connessioni in entrata: - + Random Casuale - + Global maximum number of connections: Numero massimo globale di connessioni: - + Maximum number of connections per torrent: Numero massimo di connessioni per torrent: - + Maximum number of upload slots per torrent: Numero massimo di slot in upload per torrent: - - + + Upload: Upload: - - + + Download: Download: - - - - + + + + KiB/s KiB/s - + Remove folder Rimuovi cartella - + Every day ogni giorno - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Scambia peer con client compatibili con qBittorrent (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Tipo: @@ -4536,262 +4701,262 @@ Chiudere qBittorrent? Aggiungi automaticamente i torrent da: - + Add folder... Aggiungi cartella... - + Copy .torrent files for finished downloads to: Copia i file .torrent per i download completati in: - + Email notification upon download completion Notifica email al completamento del download - + Destination email: Email destinazione: - + SMTP server: Server SMTP: - + This server requires a secure connection (SSL) Questo server richiede una connessione sicura (SSL) - + Listening Port Porta in ascolto - + Use UPnP / NAT-PMP port forwarding from my router Usa port forwarding UPnP / NAT-PMP del router - + Use different port on each startup Usa porte differenti ad ogni avvio - + Global maximum number of upload slots: Numero massimo globale di slot upload: - + Otherwise, the proxy server is only used for tracker connections Altrimenti, il server proxy viene solo usato per le connessioni ai tracker - + Use proxy for peer connections Usa il proxy per le connessioni ai peer - + Disable connections not supported by proxies Disattiva connessioni non supportate dai proxy - + Use proxy only for torrents Usa il proxy solo per i torrent - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Feed RSS, motori di ricerca, aggiornamenti software o qualunque altra cosa al di fuori dei trasferimenti torrent e operazioni annesse (quali scambio peer) useranno una connessione diretta - + Info: The password is saved unencrypted Info: La password è salvata in chiaro - + IP Filtering Filtraggio IP - + Reload the filter Ricarica il filtro - + Apply to trackers Applica ai tracker - + Apply rate limit to peers on LAN Applica limiti di velocità ai peer in LAN - + When: Quando: - + Weekdays Giorni feriali - + Weekends Fine settimana - + Rate Limits Settings Impostazioni limiti di velocità - + Enable µTP protocol Attiva protocollo µTP - + Apply rate limit to µTP protocol Applica limiti di velocità al protocollo µTP - + Privacy Riservatezza - + Enable DHT (decentralized network) to find more peers Abilita DHT (rete decentralizzata) per cercare più peer - + Enable Peer Exchange (PeX) to find more peers Abilita scambio peer (PeX) per trovare più peer - + Look for peers on your local network Cerca peer nella rete locale - + Enable when using a proxy or a VPN connection Attiva quando viene usato un proxy o una connessione VPN - + Enable anonymous mode Abilita modalità anonima - + Do not count slow torrents in these limits Non contare torrent lenti in questi limiti - + Seed torrents until their ratio reaches Distribuisci i torrent finché il loro rapporto non è - + then poi - + Pause them Mettili in pausa - + Remove them Rimuovili - + Automatically add these trackers to new downloads: Aggiungi automaticamente questi tracker ai nuovi download: - + Use UPnP / NAT-PMP to forward the port from my router Usa UPnP / NAT-PMP per inoltrare la porta del router - + Use HTTPS instead of HTTP Usa HTTPS invece di HTTP - + Import SSL Certificate Importa certificato SSL - + Import SSL Key Importa chiave SSL - + Certificate: Certificato: - + Alternative Rate Limits Limiti di velocità alternativi - + Key: Chiave: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informazioni sui certificati</a> - + Bypass authentication for localhost Aggira autenticazione per host locale - + Update my dynamic domain name Aggiorna il mio nome di dominio dinamico - + Service: Servizio: - + Register Registra - + Domain name: Nome dominio: - + (None) (Nessuno) @@ -4801,61 +4966,61 @@ Chiudere qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Porta: - - - + + + Authentication Autenticazione - - - - + + + + Username: Nome utente: - - - - + + + + Password: Password: - + Torrent Queueing Accodamento torrent - + Share Ratio Limiting Limite rapporto di condivisione - + Enable Web User Interface (Remote control) Abilita interfaccia web (controllo remoto) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Percorso filtro (.dat, .p2p, p2b): @@ -5061,10 +5226,6 @@ Chiudere qBittorrent? Comment: Commento: - - Torrent content: - Contenuto del torrent: - Select All @@ -5586,28 +5747,28 @@ Non verranno emessi avvisi. Errore sconosciuto - - + + Upgrade Aggiorna - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Hai aggiornato da una versione più vecchia che salvava i dati in maniera differente. Devi passare al nuovo sistema di salvataggio. Non ti sarà più possibile usare una versione più vecchia di v3.3.0. Continuare? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Hai aggiornato da una versione più vecchia che salvava i dati in maniera differente. Devi passare al nuovo sistema di salvataggio. Se continui, non ti sarà più possibile usare una versione più vecchia di v3.3.0. - + Couldn't migrate torrent with hash: %1 Impossibile trasferire il torrent con hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Impossibile trasferire il torrent. Nome del file per il recupero veloce non valido: %1 @@ -5718,17 +5879,17 @@ Non verranno emessi avvisi. RSSImp - + Stream URL: Indirizzo del flusso: - + Please type a RSS stream URL Inserisci un URL di flusso RSS - + This RSS feed is already in the list. Questa fonte RSS è già nell'elenco. @@ -5748,75 +5909,92 @@ Non verranno emessi avvisi. Nuova cartella - + Deletion confirmation Conferma eliminazione - + Are you sure you want to delete the selected RSS feeds? Sei sicuro di voler eliminare i feed RSS selezionati? - + Please choose a new name for this RSS feed Scegli un nuovo nome per questo feed RSS - + New feed name: Nuovo nome feed: - + Name already in use Nome già in uso - + This name is already used by another item, please choose another one. Questo nome è già in uso da un altro elemento. Scegli un nome differente. - + Date: Data: - + Author: Autore: - + Unread Non letti - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Scaricamento automatico di %1 dal feed RSS %2 non riuscito perché non contiene un collegamento torrent o magnet... + Scaricamento automatico di %1 dal feed RSS %2 non riuscito perché non contiene un collegamento torrent o magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Download automatico del torrent %1 dal feed RSS %2... + Download automatico del torrent %1 dal feed RSS %2... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Scaricamento automatico di %1 dal feed RSS %2 non riuscito perché non contiene un collegamento torrent o magnet... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Download automatico del torrent %1 dal feed RSS %2... RssParser - Failed to open downloaded RSS file. - Impossibile aprire il file RSS scaricato. + Impossibile aprire il file RSS scaricato. - Invalid RSS feed at '%1'. - Feed RSS non valido su '%1'. + Feed RSS non valido su '%1'. @@ -5842,168 +6020,249 @@ Non verranno emessi avvisi. Numero massimo di articoli per feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Naviga... + + + + Choose save path + Scegli una cartella per il salvataggio + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Cartella controllata - - Download here - Scarica qui + + Save Files to + + + + Download here + Scarica qui - Download path - Percorso di salvataggio + Percorso di salvataggio SearchCategories - All categories - Tutte le categorie + Tutte le categorie - Movies - Film + Film - TV shows - Programmi TV + Programmi TV - Music - Musica + Musica - Games - Giochi + Giochi - Anime - Anime + Anime - Software - Software + Software - Pictures - Immagini + Immagini - Books - Libri + Libri SearchEngine - - - Search - Ricerca + Ricerca - Please install Python to use the Search Engine. - Installa Python per usare il motore di ricerca. + Installa Python per usare il motore di ricerca. - Empty search pattern - Campo di ricerca vuoto + Campo di ricerca vuoto - Please type a search pattern first - È necessario inserire dei termini nel campo di ricerca + È necessario inserire dei termini nel campo di ricerca - Searching... - Ricerca in corso... + Ricerca in corso... - Stop - Ferma + Ferma - - Search Engine - Motore di ricerca + Motore di ricerca - - Search has finished - La ricerca è terminata + La ricerca è terminata - An error occurred during search... - Si è verificato un errore durante la ricerca... + Si è verificato un errore durante la ricerca... - - Search aborted - Ricerca annullata + Ricerca annullata - All enabled - Tutti abilitati + Tutti abilitati - All engines - Tutti i motori + Tutti i motori - - Multiple... - Multiplo... + Multiplo... - - Results <i>(%1)</i>: i.e: Search results - Risultati <i>(%1)</i>: + Risultati <i>(%1)</i>: - Search returned no results - La ricerca non ha prodotto risultati + La ricerca non ha prodotto risultati - Stopped - Fermato + Fermato + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Tutte le categorie + + + + Movies + Film + + + + TV shows + Programmi TV + + + + Music + Musica + + + + Games + Giochi + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Immagini + + + + Books + Libri SearchListDelegate - - + + Unknown Sconosciuto @@ -6011,35 +6270,160 @@ Non verranno emessi avvisi. SearchTab - + Name i.e: file name Nome - + Size i.e: file size Dimensione - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + Search engine Motore di ricerca + + SearchWidget + + + + + + + Search + Ricerca + + + + Status: + Stato: + + + + + Stopped + Fermato + + + + Download + Download + + + + Go to description page + Vai alla pagina di descrizione + + + + Copy description page URL + Copia URL pagina di descrizione + + + + Search plugins... + + + + + All enabled + Tutti abilitati + + + + All plugins + + + + + + Multiple... + Multiplo... + + + + + + Search Engine + Motore di ricerca + + + + Please install Python to use the Search Engine. + Installa Python per usare il motore di ricerca. + + + + Empty search pattern + Campo di ricerca vuoto + + + + Please type a search pattern first + È necessario inserire dei termini nel campo di ricerca + + + + + Results <i>(%1)</i>: + i.e: Search results + Risultati <i>(%1)</i>: + + + + Searching... + Ricerca in corso... + + + + Stop + Ferma + + + + + Search has finished + La ricerca è terminata + + + + + Search aborted + Ricerca annullata + + + + Search returned no results + La ricerca non ha prodotto risultati + + + + Search has failed + + + + + An error occurred during search... + Si è verificato un errore durante la ricerca... + + ShutdownConfirmDlg @@ -6484,24 +6868,28 @@ Non verranno emessi avvisi. TorrentContentModel - + Name Nome - + Size Dimensione - + Progress Avanzamento - + + Download Priority + + + Priority - Priorità + Priorità @@ -6853,38 +7241,38 @@ Non verranno emessi avvisi. Notifiche (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Impossibile decodificare favicon per l'URL '%1'. Provo a scaricare favicon in formato PNG. - + Couldn't decode favicon for URL '%1'. Impossibile decodificare favicon per l'URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Impossibile decodificare favicon per l'URL '%1'. Motivo: '%2' - + Resume torrents Riprendi i torrent - + Pause torrents Metti in pausa i torrent - + Delete torrents Elimina i torrent - - + + All (%1) this is for the tracker filter Tutti (%1) @@ -7152,17 +7540,17 @@ Non verranno emessi avvisi. TransferListFiltersWidget - + Status Stato - + Labels Etichette - + Trackers Tracker @@ -7701,206 +8089,155 @@ Non verranno emessi avvisi. engineSelect - Search plugins - Plugin di ricerca + Plugin di ricerca - Installed search engines: - Motori di ricerca installati: + Motori di ricerca installati: - Name - Nome + Nome - Version - Versione + Versione - Url - Indirizzo + Indirizzo - - Enabled - Attivato + Attivato - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - È possibile ottenere altri plugin di ricerca qui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + È possibile ottenere altri plugin di ricerca qui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Installane uno nuovo + Installane uno nuovo - Check for updates - Controlla gli aggiornamenti + Controlla gli aggiornamenti - Close - Chiudi + Chiudi - Uninstall - Disinstalla + Disinstalla engineSelectDlg - Uninstall warning - Avviso di disinstallazione + Avviso di disinstallazione - Uninstall success - Disinstallazione riuscita + Disinstallazione riuscita - Invalid plugin - Plugin non valido + Plugin non valido - The search engine plugin is invalid, please contact the author. - Il plugin di ricerca non è valido, per favore contatta l'autore. + Il plugin di ricerca non è valido, per favore contatta l'autore. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Una versione più recente del plugin di ricerca '%1' è già installata. + Una versione più recente del plugin di ricerca '%1' è già installata. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Non è stato possibile aggiornare il plugin di ricerca '%1', mantengo la versione attuale. + Non è stato possibile aggiornare il plugin di ricerca '%1', mantengo la versione attuale. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Non è stato possibile installare il plugin di ricerca %1. + Non è stato possibile installare il plugin di ricerca %1. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Il plugin di ricerca %1 è stato aggiornato con successo. + Il plugin di ricerca %1 è stato aggiornato con successo. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Il plugin di ricerca '%1' è stato installato con successo. + Il plugin di ricerca '%1' è stato installato con successo. - The link doesn't seem to point to a search engine plugin. - Il collegamento non risulta puntare ad un plugin del motore di ricerca. + Il collegamento non risulta puntare ad un plugin del motore di ricerca. - Select search plugins - Seleziona plugin di ricerca + Seleziona plugin di ricerca - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Installazione del plugin di ricerca '%1' non riuscita. + Installazione del plugin di ricerca '%1' non riuscita. - - - - - Search plugin install - Installazione plugin di ricerca + Installazione plugin di ricerca - - - Yes - + - - - - No - No + No - qBittorrent search plugin - Plugin di ricerca per qBittorrent + Plugin di ricerca per qBittorrent - - - - Search plugin update - Aggiornamento plugin di ricerca + Aggiornamento plugin di ricerca - - Sorry, update server is temporarily unavailable. - Il server non è momentaneamente disponibile. + Il server non è momentaneamente disponibile. - All your plugins are already up to date. - Tutti i plugin sono già aggiornati. + Tutti i plugin sono già aggiornati. - All selected plugins were uninstalled successfully - Tutti i plugin selezionati sono stati disinstallati con successo + Tutti i plugin selezionati sono stati disinstallati con successo - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alcuni plugin non hanno potuto essere disinstallati perché sono inclusi in qBittorrent. Solo quelli aggiunti da te possono essere disinstallati. + Alcuni plugin non hanno potuto essere disinstallati perché sono inclusi in qBittorrent. Solo quelli aggiunti da te possono essere disinstallati. I plugin in questione sono stati invece disattivati. - Invalid link - Collegamento non valido + Collegamento non valido - - New search engine plugin URL - Indirizzo del nuovo plugin di ricerca + Indirizzo del nuovo plugin di ricerca - - URL: - Indirizzo web: + Indirizzo web: @@ -8030,169 +8367,169 @@ I plugin in questione sono stati invece disattivati. options_imp - - + + Choose export directory Scegli cartella di esportazione - - - - + + + + Choose a save directory Scegli una cartella per il salvataggio - + Add directory to scan Aggiungi una cartella da scansionare - + Supported parameters (case sensitive): Parametri supportati (maiuscole/minuscole): - + %N: Torrent name %N: Nome torrent - + %L: Label %L: Etichetta - + %F: Content path (same as root path for multifile torrent) %F: Percorso contenuto (lo stesso che il percorso radice per i torrent multi-file) - + %R: Root path (first torrent subdirectory path) %R: Percorso radice (primo percorso sottocartella torrent) - + %D: Save path %D: Percorso salvataggio - + %C: Number of files %C: Numero di file - + %Z: Torrent size (bytes) %Z: Dimensione torrent (byte) - + %T: Current tracker %T: Tracker attuale - + %I: Info hash %I: Info hash - + Folder is already being watched. La cartella è già stata controllata. - + Folder does not exist. La cartella non esiste. - + Folder is not readable. La cartella è illeggibile. - + Failure Operazione non riuscita - + Failed to add Scan Folder '%1': %2 Impossibile aggiungere cartella da analizzare "%1": %2 - - + + Filters Filtri - - + + Choose an IP filter file Scegli un file filtro IP - + SSL Certificate Certificato SSL - + SSL Key Chiave SSL - + Parsing error Errore di analisi - + Failed to parse the provided IP filter Impossibile analizzare la condizione del filtro IP - + Successfully refreshed Aggiornato con successo - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Completata analisi filtro IP: sono state applicate %1 regole. - + Invalid key Chiave non valida - + This is not a valid SSL key. Questa non è una chiave SSL valida. - + Invalid certificate Certificato non valido - + This is not a valid SSL certificate. Questo non è un certificato SSL valido. - + The start time and the end time can't be the same. L'orario di inizio e di fine non possono essere lo stesso. - + Time Error Errore orario @@ -8200,24 +8537,20 @@ I plugin in questione sono stati invece disattivati. pluginSourceDlg - Plugin source - Origine del plugin + Origine del plugin - Search plugin source: - Origine del plugin di ricerca: + Origine del plugin di ricerca: - Local file - File locale + File locale - Web link - Collegamento web + Collegamento web @@ -8246,40 +8579,32 @@ I plugin in questione sono stati invece disattivati. search_engine - - Search - Ricerca + Ricerca - Status: - Stato: + Stato: - Stopped - Fermato + Fermato - Download - Download + Download - Go to description page - Vai alla pagina di descrizione + Vai alla pagina di descrizione - Copy description page URL - Copia URL pagina di descrizione + Copia URL pagina di descrizione - Search engines... - Motori di ricerca... + Motori di ricerca... diff --git a/src/lang/qbittorrent_ja.ts b/src/lang/qbittorrent_ja.ts index c594714f7..e2f75f726 100644 --- a/src/lang/qbittorrent_ja.ts +++ b/src/lang/qbittorrent_ja.ts @@ -127,7 +127,7 @@ Set as default label - + デフォルトラベルとして設定する @@ -175,172 +175,172 @@ ダウンロードしない - - + + I/O Error I/O エラー - + The torrent file does not exist. Torrent ファイルが存在しません。 - + Invalid torrent 無効な Torrent - + Failed to load the torrent: %1 Torrent: %1 の読み込みに失敗しました - - + + Already in download list 既存の Torrent - + Free disk space: %1 ディスクの空き容量: %1 - + Not Available This comment is unavailable 利用できません - + Not Available This date is unavailable 利用できません - + Not available 不明 - + Invalid magnet link 無効なマグネットリンク - + Torrent is already in download list. Trackers were merged. Torrent はすでにダウンロードリストにあります。トラッカーをマージします。 - - + + Cannot add torrent Torrent を追加できません - + Cannot add this torrent. Perhaps it is already in adding state. Torrent を追加できません。おそらくこれは現在追加中のものです。 - + This magnet link was not recognized このマグネットリンクは認識されませんでした - + Magnet link is already in download list. Trackers were merged. マグネットリストはすでにダウンロードリストにあります。トラッカーをマージします。 - + Cannot add this torrent. Perhaps it is already in adding. この Torrent は追加できません。おそらくこれはすでに追加中です。 - + Magnet link マグネットリンク - + Retrieving metadata... メタデータを回収しています... - + Not Available This size is unavailable. 利用できません - - - + + + Choose save path 保存先の選択 - + Rename the file ファイル名の変更 - + New name: 新しい名前: - - + + The file could not be renamed ファイル名を変更できませんでした - + This file name contains forbidden characters, please choose a different one. ファイル名に使用できない文字が含まれています。別の文字を選択してください。 - - + + This name is already in use in this folder. Please use a different name. 同じ名前のファイルがこのフォルダー内に存在します。別の名前を指定してください。 - + The folder could not be renamed フォルダー名を変更できませんでした - + Rename... 名前の変更... - + Priority 優先度 - + Invalid metadata 不正なメタデータ - + Parsing metadata... メタデータを解析しています... - + Metadata retrieval complete メタデータの回収が完了しました - + Download Error ダウンロードエラー @@ -431,10 +431,6 @@ Resolve peer host names ピアのホスト名を解決する - - Maximum number of half-open connections [0: Disabled] - 最大半開接続数 [0 無効] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + 細大半開接続数 [0: 無制限] @@ -661,205 +657,205 @@ &エクスポート... - + Matches articles based on episode filter. エピソードフィルイターで記事をマッチします。 - + Example: 例: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match シーズン 1 の第 2 話、5 話、8 話~15 話、30 話以降にマッチします - + Episode filter rules: エピソードフィルターのルール: - + Season number is a mandatory non-zero value シーズン番号は 0 以外でなければなりません - + Episode number is a mandatory non-zero value 話数は 0 以外でなければなりません - + Filter must end with semicolon フィルターはセミコロンで終了しなければなりません - + Three range types for episodes are supported: 3 種類の範囲指定をサポートしています: - + Single number: <b>1x25;</b> matches episode 25 of season one 単一番号: <b>1x25;</b> はシーズン 1 の第 25 話にマッチします - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one 通常の範囲指定: <b>1x25-40;</b> はシーズン 1 の第 25 話から 40 話にマッチします - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one 無限範囲: <b>1x25-;</b> はシーズン 1 の第 25 話以降にマッチします - + Last Match: %1 days ago 最後のマッチ: %1 日前 - + Last Match: Unknown 最後のマッチ: 不明 - + New rule name 新しいルール名 - + Please type the name of the new download rule. 新しいダウンロードルールの名前を入力してください。 - - + + Rule name conflict ルール名の衝突 - - + + A rule with this name already exists, please choose another name. この名前のルールはすでに存在しています。別の名前を選んでください。 - + Are you sure you want to remove the download rule named '%1'? ダウンロードルール '%1' を削除してよろしいですか? - + Are you sure you want to remove the selected download rules? 選択したダウンロードルールを削除してよろしいですか? - + Rule deletion confirmation ルールの削除の確認 - + Destination directory 保存先ディレクトリ - + Invalid action 不正な操作 - + The list is empty, there is nothing to export. リストは空です。エクスポートするものはありません。 - + Where would you like to save the list? どこへリストを保存しますか? - + Rules list (*.rssrules) ルールリスト (*.rssrules) - + I/O Error I/O エラー - + Failed to create the destination file 保存先ファイルの作成に失敗しました - + Please point to the RSS download rules file RSS ダウンロードルールファイルを指定してください - + Rules list ルールリスト - + Import Error インポートエラー - + Failed to import the selected rules file 選択したルールファイルのインポートに失敗しました - + Add new rule... 新しいルールの追加... - + Delete rule ルールの削除 - + Rename rule... ルール名の変更... - + Delete selected rules 選択したルールの削除 - + Rule renaming ルール名の変更 - + Please type the new rule name 新しいルール名を入力してください - + Regex mode: use Perl-like regular expressions 正規表現モード: Perl ライクな正規表現を使用してください - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> ワイルドカードモード: <ul><li>? はあらゆる 1 文字にマッチします</li><li>* は 0 個以上のあらゆる文字にマッチします</li><li>空白で区切ると AND 条件とみなされます</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> ワイルドカードモード: <ul><li>? はあらゆる 1 文字とマッチします</li><li>* は 0 個以上のあらゆる文字にマッチします</li><li>| で区切ると OR 条件とみなされます</li></ul> @@ -952,65 +948,57 @@ '%1' は共有比の上限に達しました。停止します... - Error: Could not create torrent export directory: '%1' - エラー: Torrent をエクスポートディレクトリ '%1' に作成できませんでした - - - Error: could not export torrent '%1', maybe it has not metadata yet. - エラー: Torrent '%1' をエクスポートできませんでした。これにはまだメタデータがないのかもしれません。 - - - + System network status changed to %1 e.g: System network status changed to ONLINE システムのネットワーク状態を %1 に変更しました - + ONLINE オンライン - + OFFLINE オフライン - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 のネットワーク構成が変更されました。セッションバインディングをリフレッシュします - + Unable to decode '%1' torrent file. Torrent ファイル '%1' をデコードできません。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Torrent '%2' に埋め込まれたファイル '%1' の再帰ダウンロード - + Couldn't save '%1.torrent' '%1.torrent' を保存できませんでした - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 が無効になっています。 - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 が無効になっています。 - + URL seed lookup failed for URL: '%1', message: %2 URL シードのルックアップに失敗しました ― URL: '%1', メッセージ: %2 @@ -1027,178 +1015,164 @@ '%1' を転送リストから削除しました。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' をダウンロードしています。お待ちください... - Torrent Export: torrent is invalid, skipping... - Torrent のエクスポート: 不正な Torrent です。スキップします... - - - + DHT support [ON] DHT サポート [ON] - + DHT support [OFF]. Reason: %1 DHT サポート [OFF]. 理由: %1 - + DHT support [OFF] DHT サポート [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent はいずれかのインターフェースでの待ち受けを試みています。ポート: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent はすべてのインターフェースでの待ち受けに失敗しました。ポート: %1. 理由: %2 - - - + The network interface defined is invalid: %1 定義されたネットワークインターフェースは無効です: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent はインターフェース %1 ポート %2 での待ち受けを試みています - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent は待ち受ける %1 ローカルアドレスを検出できませんでした - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent はすべてのインターフェースでの待ち受けに失敗しました。ポート: %1. 理由: %2. {1.?} + qBittorrent はすべてのインターフェースでの待ち受けに失敗しました。ポート: %1. 理由: %2. - + Tracker '%1' was added to torrent '%2' Torrent '%2' にトラッカー '%1' が追加されました - + Tracker '%1' was deleted from torrent '%2' Torrent '%2' からトラッカー '%1' が削除されました - + URL seed '%1' was added to torrent '%2' Torrent '%2' に URL シード '%1' が追加されました - + URL seed '%1' was removed from torrent '%2' Torrent '%2' から URL シード '%1' が削除されました - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Torrent '%1' の再開に失敗しました。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP フィルターは正常に解析されました: %1 個のルールが適用されました。 - + Error: Failed to parse the provided IP filter. エラー: IP フィルターの解析に失敗しました。 - + Couldn't add torrent. Reason: %1 Torrent を追加できませんでした: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' を再開しました. (高速再開) - + '%1' added to download list. 'torrent name' was added to download list. '%1' をダウンロードリストに追加しました。 - + An I/O error occurred, '%1' paused. %2 I/O エラーが発生しました。'%1' を停止しました。 %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: ポートマッピングに失敗しました。メッセージ: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: ポートマッピングに成功しました。メッセージ: %1 - + due to IP filter. this peer was blocked due to ip filter. IP フィルターによる。 - + due to port filter. this peer was blocked due to port filter. ポートフィルターによる。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p 混在モード制限による。 - + because it has a low port. this peer was blocked because it has a low port. 低いポート番号による。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent はインターフェース %1, ポート: %2/%3 での待ち受けを正常に開始しました - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent はインターフェース %1 ポート: %2/%3 での待ち受けに失敗しました。理由: %4. {1 ?} {2/%3.?} + qBittorrent はインターフェース %1 ポート: %2/%3 での待ち受けに失敗しました。理由: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent はインターフェース %1 ポート: %2/%3 での待ち受けに失敗しました。理由: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP: %1 @@ -1212,12 +1186,12 @@ Torrent '%1' を移動できませんでした。理由: %2 - + File sizes mismatch for torrent '%1', pausing it. Torrent '%1' のファイルサイズにミスマッチがあります。停止します。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Torrent '%1' 高速再開データはリジェクトされました (理由: %2)。再チェックしています... @@ -1242,7 +1216,7 @@ - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Cookie の共通キーは次のとおりです: '%1', '%2'. @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS フィード - + Unread 未読 @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line 1 行に 1 リンクを入力してください - - Download local torrent - ローカルの Torrent ファイルでダウンロード - Download @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - ファイルの保存場所: + ファイルの保存場所: Label: - ラベル: + ラベル: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? ダウンロード @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + ローカルの Torrent をアップロード @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About qBittorrent について(&A) - - Exit - 終了 - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit 終了(&X) - - Options - オプション - - - Resume - 再開 - - - Pause - 停止 - - - Delete - 削除 - Open URL @@ -2040,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show 表示 - + Check for program updates プログラムの更新情報をチェックします - - Lock qBittorrent - qBittorrent をロック - Add Torrent &Link... @@ -2065,215 +2021,221 @@ You should get this information from your Web browser preferences. - + Execution Log 実行ログ - + Clear the password パスワードのクリア - + Filter torrent list... Torrent リストをフィルター... - + &Set Password パスワードの設定(&S) - + &Clear Password パスワードのクリア(&C) - + Transfers 転送 - + Torrent file association Torrent ファイルの関連付け - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent は Torrent ファイルやマグネットリンクを開くデフォルトアプリケーションではありません。 qBittorrent を Torrent ファイルおよびマグネットリンクに関連付けますか? - + Icons Only アイコンのみ - + Text Only 文字のみ - + Text Alongside Icons アイコンの横に文字 - + Text Under Icons アイコンの下に文字 - + Follow System Style システムの設定に従う - - - + + + UI lock password UI ロックパスワード - - - + + + Please type the UI lock password: UI ロックパスワードを入力してください: - + The password should contain at least 3 characters パスワードは 3 文字以上でなくてはなりません - + Password update パスワードの更新 - + The UI lock password has been successfully updated UI ロックパスワードは正常に更新されました - + Are you sure you want to clear the password? パスワードをクリアしてよろしいですか? - + Search 検索 - + Transfers (%1) 転送 (%1) - + Error エラー - + Failed to add torrent: %1 Torrent の追加に失敗しました: %1 - + Download completion ダウンロード完了 - + I/O Error i.e: Input/Output Error I/O エラー - + Recursive download confirmation 再帰的ダウンロードの確認 - + Yes はい - + No いいえ - + Never すべてしない - + Global Upload Speed Limit 全体のアップロード速度上限 - + Global Download Speed Limit 全体のダウンロード速度上限 - + &No いいえ(&N) - + &Yes はい(&Y) - + &Always Yes 常にはい(&A) - + Python found in %1 Python を %1 内に見つけました - + Old Python Interpreter Python インタープリターが古すぎます - + qBittorrent Update Available 新しいバージョンの qBittorrent が利用できます - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version すでに最新の qBittorrent を使用しています - + Undetermined Python version Python バージョンを解決できません - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' のダウンロードが完了しました。 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ qBittorrent を Torrent ファイルおよびマグネットリンクに関連 理由: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent '%1' は Torrent ファイルを含んでいます。これらのダウンロードを行いますか? - + Couldn't download file at URL '%1', reason: %2. URL '%1' のファイルをダウンロードできませんでした (理由: %2)。 - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Python バージョン %1 は古いためサポートされていません。検索エンジンを使用するには少なくとも パージョン 2.7.0/3.3.0 が必要です。 - + Couldn't determine your Python version (%1). Search engine disabled. Python のバージョンを解決できませんでした (%1)。検索エンジンを無効にしました。 - - + + Missing Python Interpreter Python インタープリターが見つかりません - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? 検索エンジンを使用するには Python が必要ですがインストールされていないようです。 いますぐインストールしますか? - + Python is required to use the search engine but it does not seem to be installed. 検索エンジンを使用するには Python が必要ですがインストールされていないようです。 - A new version is available. Update to version %1? - 新しいバージョンが利用可能です。 + 新しいバージョンが利用可能です。 バージョン %1 にアップデートしますか? - + No updates available. You are already using the latest version. 更新情報がありません。 すでに最新のバージョンを使用しています。 - + &Check for Updates 更新情報のチェック(&C) - + Checking for Updates... 更新情報をチェックしています... - + Already checking for program updates in the background プログラムの更新情報をバックグラウンドでチェックしています - + Python found in '%1' Python が '%1' に見つかりました - + Download error ダウンロードエラー - + Python setup could not be downloaded, reason: %1. Please install it manually. Python セットアップをダウンロードできませんでした。理由: %1。 手動でインストールしてください。 - - + + Invalid password 不正なパスワード - - + + RSS (%1) RSS (%1) - + URL download error URL ダウンロードエラー - + The password is invalid パスワードが正しくありません - - + + DL speed: %1 e.g: Download speed: 10 KiB/s DL 速度: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s UP 速度: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, U: %2] qBittorrent %3 - + Hide 隠す - + Exiting qBittorrent qBittorrent の終了 - + Some files are currently transferring. Are you sure you want to quit qBittorrent? 現在転送中のファイルがあります。 qBittorrent を終了しますか? - + Open Torrent Files Torrent ファイルを開く - + Torrent Files Torrent ファイル - + Options were saved successfully. オプションは正常に保存されました。 @@ -2443,17 +2404,17 @@ qBittorrent を終了しますか? Net::DNSUpdater - + Your dynamic DNS was successfully updated. ダイナミック DNS は正常に更新されました。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. ダイナミック DNS エラー: サービスが一時的に利用できない状態です。30分後にリトライします。 - + Dynamic DNS error: hostname supplied does not exist under specified account. ダイナミック DNS エラー: 与えられたホスト名が指定されたアカウント下に存在しません。 @@ -2463,32 +2424,32 @@ qBittorrent を終了しますか? ダイナミック DNS エラー: 不正なユーザー名/パスワードです。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. ダイナミック DNS エラー: qBittorrent はサービスのブラックリストに入っています。, バグとして http://bugs.qbittorrent.org に報告してください。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. ダイナミック DNS エラー: サービスから %1 が返されました。バグとして http://bugs.qbittorrent.org に報告してください。 - + Dynamic DNS error: Your username was blocked due to abuse. ダイナミック DNS エラー: あなたのユーザー名は不正利用を理由にブロックされました。 - + Dynamic DNS error: supplied domain name is invalid. ダイナミック DNS エラー: 与えられたドメイン名は無効です。 - + Dynamic DNS error: supplied username is too short. ダイナミック DNS エラー: 与えられたユーザー名は短すぎます。 - + Dynamic DNS error: supplied password is too short. ダイナミック DNS エラー: 与えられたパスワードは短すぎます。 @@ -2515,154 +2476,161 @@ qBittorrent を終了しますか? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP データベースを読み込みました。タイプ: %1. ビルド日時: %2. - + Couldn't load GeoIP database. Reason: %1 GeoIP データベースを読み込めませんでした。理由: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/A - Asia/Pacific Region - アジア/太平洋地域 + アジア/太平洋地域 + + + Europe + ヨーロッパ - Europe - ヨーロッパ - - - Andorra アンドラ - + United Arab Emirates アラブ首長国連邦 - + Afghanistan アフガニスタン - + Antigua and Barbuda アンティグア・バーブーダ - + Anguilla アンギラ - + Albania アルバニア - + Armenia アルメニア - Netherlands Antilles - オランダ領アンティル + オランダ領アンティル - + Angola アンゴラ - + Antarctica 南極大陸 - + Argentina アルゼンチン - + American Samoa アメリカ領サモア - + Austria オーストリア - + Australia オーストラリア - + Aruba アルバ - + Azerbaijan アゼルバイジャン - + Bosnia and Herzegovina ボスニア・ヘルツェゴビナ - + Barbados バルバドス - + Bangladesh バングラデシュ - + Belgium ベルギー - + Burkina Faso ブルキナ・ファソ - + Bulgaria ブルガリア - + Bahrain バーレーン - + Burundi ブルンジ - + Benin ベナン @@ -2677,1138 +2645,1188 @@ qBittorrent を終了しますか? ブルネイ・ダルサラーム - Bolivia - ボリビア + ボリビア - + Brazil ブラジル - + Bahamas バハマ - + Bhutan ブータン - + Bouvet Island ブーベ島 - + Botswana ボツワナ - + Belarus ベラルーシ - + Belize ベリーズ - + Canada カナダ - + Cocos (Keeling) Islands ココス (キーリング) 諸島 - + Congo, The Democratic Republic of the コンゴ民主共和国 - + Central African Republic 中央アフリカ - + Congo コンゴ - + Switzerland スイス - Cote D'Ivoire - コートジボワール + コートジボワール - + Cook Islands クック諸島 - + Chile チリ - + Cameroon カメルーン - + China 中国 - + Colombia コロンビア - + Costa Rica コスタリカ - + Cuba キューバ - + Cape Verde カーボベルデ - + + Curacao + + + + Christmas Island クリスマス島 - + Cyprus キプロス - + Czech Republic チェコ - + Germany ドイツ - + Djibouti ジブチ - + Denmark デンマーク - + Dominica ドミニカ国 - + Dominican Republic ドミニカ共和国 - + Algeria アルジェリア - + Ecuador エクアドル - + Estonia エストニア - + Egypt エジプト - + Western Sahara 西サハラ - + Eritrea エリトリア - + Spain スペイン - + Ethiopia エチオピア - + Finland フィンランド - + Fiji フィジー - + Falkland Islands (Malvinas) フォークランド (マルビナス) 諸島 - + Micronesia, Federated States of ミクロネシア連邦 - + Faroe Islands フェロー諸島 - + France フランス - France, Metropolitan - フランス・メトロポリテーヌ + フランス・メトロポリテーヌ - + Gabon ガボン - + United Kingdom イギリス - + Grenada グレナダ - + Georgia ジョージア (グルジア) - + French Guiana フランス領ギアナ - + Ghana ガーナ - + Gibraltar ジブラルタル - + Greenland グリーンランド - + Gambia ガンビア - + Guinea ギニア - + Guadeloupe グアドループ - + Equatorial Guinea 赤道ギニア - + Greece ギリシャ - + South Georgia and the South Sandwich Islands サウスジョージア・サウスサンドウィッチ諸島 - + Guatemala グアテマラ - + Guam グアム - + Guinea-Bissau ギニアビサウ - + Guyana ガイアナ - + Hong Kong 香港 - + Heard Island and McDonald Islands ハード島とマクドナルド諸島 - + Honduras ホンジュラス - + Croatia クロアチア - + Haiti ハイチ - + Hungary ハンガリー - + Indonesia インドネシア - + Ireland アイルランド - + Israel イスラエル - + India インド - + British Indian Ocean Territory イギリス領インド洋地域 - + Iraq イラク - + Iran, Islamic Republic of イラン - + Iceland アイスランド - + Italy イタリア - + Jamaica ジャマイカ - + Jordan ヨルダン - + Japan 日本 - + Kenya ケニア - + Kyrgyzstan キルギスタン - + Cambodia カンボジア - + Kiribati キリバス - + Comoros コモロ - + Saint Kitts and Nevis セントクリストファー・ネイビス - + Korea, Democratic People's Republic of 北朝鮮 - + Korea, Republic of 韓国 - + Kuwait クウェート - + Cayman Islands ケイマン諸島 - + Kazakhstan カザフスタン - + Lao People's Democratic Republic ラオス - + Lebanon レバノン - + Saint Lucia セントルシア - + Liechtenstein リヒテンシュタイン - + Sri Lanka スリランカ - + Liberia リベリア - + Lesotho レソト - + Lithuania リトアニア - + Luxembourg ルクセンブルク - + Latvia ラトビア - Libyan Arab Jamahiriya - リビア + リビア - + Morocco モロッコ - + Monaco モナコ - + Moldova, Republic of モルドバ - + Madagascar マダガスカル - + Marshall Islands マーシャル諸島 - Macedonia - マケドニア + マケドニア - + Mali マリ - + Myanmar ミャンマー - + Mongolia モンゴル - Macau - マカウ + マカウ - + Northern Mariana Islands 北マリアナ諸島 - + Martinique マルティニーク - + Mauritania モーリタニア - + Montserrat モントセラト - + Malta マルタ - + Mauritius モーリシャス - + Maldives モルディブ - + Malawi マワリ - + Mexico メキシコ - + Malaysia マレーシア - + Mozambique モザンビーク - + Namibia ナミビア - + New Caledonia ニューカレドニア - + Niger ニジェール - + Norfolk Island ノーフォーク島 - + Nigeria ナイジェリア - + Nicaragua ニカラグア - + Netherlands オランダ - + Norway ノルウェイ - + Nepal ネパール - + Nauru ナウル - + Niue ニウエ - + New Zealand ニュージーランド - + Oman オマーン - + Panama パナマ - + Peru ペルー - + French Polynesia フランス領ポリネシア - + Papua New Guinea パプアニューギニア - + Philippines フィリピン - + Pakistan パキスタン - + Poland ポーランド - + Saint Pierre and Miquelon サンピエール島・ミクロン島 - Pitcairn Islands - ピトケアン諸島 + ピトケアン諸島 - + Puerto Rico プエルトリコ - Palestinian Territory - パレスチナ地域 + パレスチナ地域 - + Portugal ポルトガル - + Palau パラウ - + Paraguay パラグアイ - + Qatar カタール - + Reunion レユニオン - + Romania ルーマニア - + Russian Federation ロシア - + Rwanda ルワンダ - + Saudi Arabia サウジアラビア - + Solomon Islands ソロモン諸島 - + Seychelles セーシェル - + Sudan スーダン - + Sweden スウェーデン - + Singapore シンガポール - Saint Helena - セントヘレナ + セントヘレナ - + Slovenia スロベニア - + Svalbard and Jan Mayen スヴァールバル諸島およびヤンマイエン島 - + Slovakia スロバキア - + Sierra Leone シエラレオネ - + San Marino サンマリノ - + Senegal セネガル - + Somalia ソマリア - + Suriname スリナム - + Sao Tome and Principe サントメ・プリンシペ - + El Salvador エルサルバドル - + Syrian Arab Republic シリア - + Swaziland スワジランド - + Turks and Caicos Islands タークス・カイコス諸島 - + Chad チャド - + French Southern Territories フランス領南方・南極地域 - + Togo トーゴ - + Thailand タイ - + Tajikistan タジキスタン - + Tokelau トケラウ - + Turkmenistan トルクメニスタン - + Tunisia チュニジア - + Tonga トンガ - + Timor-Leste 東ティモール - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey トルコ - + Trinidad and Tobago トリニダード・トバゴ - + Tuvalu ツバル - + Taiwan 台湾 - + Tanzania, United Republic of タンザニア - + Ukraine ウクライナ - + Uganda ウガンダ - + United States Minor Outlying Islands 合衆国領有小離島 - + United States アメリカ - + Uruguay ウルグアイ - + Uzbekistan ウズベキスタン - + Holy See (Vatican City State) バチカン - + Saint Vincent and the Grenadines セントビンセント・グレナディーン - Venezuela - ベネズエラ + ベネズエラ - + Virgin Islands, British イギリス領ヴァージン諸島 - + Virgin Islands, U.S. アメリカ領ヴァージン諸島. - Vietnam - ベトナム + ベトナム - + Vanuatu バヌアツ - + Wallis and Futuna ウォリス・フツナ - + Samoa サモア - + Yemen イエメン - + Mayotte マヨット - + Serbia セルビア - + South Africa 南アフリカ - + Zambia ザンビア - + Montenegro モンテネグロ - + Zimbabwe ジンバブエ - Anonymous Proxy - 匿名プロキシ + 匿名プロキシ - Satellite Provider - 衛星プロバイダー + 衛星プロバイダー - Other - その他 + その他 - + Aland Islands オーランド諸島 - + Guernsey ガーンジー - + Isle of Man マン島 - + Jersey ジャージー - + Saint Barthelemy サン・バルテルミー島 - Saint Martin - セント・マーチン島 + セント・マーチン島 - + Could not uncompress GeoIP database file. GeoIP データベースファイルを展開できませんでした。 - + Couldn't save downloaded GeoIP database file. ダウンロードした GeoIP データベースファイルを保存できませんでした。 - + Successfully updated GeoIP database. GeoIP データベースは正常に更新されました。 - + Couldn't download GeoIP database file. Reason: %1 GeoIP データベースファイルをダウンロードできませんでした。理由: %1 @@ -3839,72 +3857,72 @@ qBittorrent を終了しますか? interested(local) and choked(peer) - d = ローカルがインタレスト/ピアがチョーク + d = インタレスト (ローカル)/チョーク (ピア) interested(local) and unchoked(peer) - D = ローカルがインタレスト/ピアが非チョーク + D = インタレスト (ローカル)/非チョーク (ピア) interested(peer) and choked(local) - u = ピアがインタレスト/ローカルがチョーク + u = インタレスト (ピア)/チョーク (ローカル) interested(peer) and unchoked(local) - U = ピアがインタレスト/ローカルが非チョーク + U = インタレスト (ピア)/非チョーク (ローカル) optimistic unchoke - O = 楽観的非チョーク + O = 楽観的非チョーク peer snubbed - S = ピアがスナッブ状態 + S = ピアがスナッブ状態 incoming connection - I = ピアが着信接続 + I = 着信接続 not interested(local) and unchoked(peer) - K = ローカルが非インタレスト/ピアが非チョーク + K = 非インタレスト (ローカル)/非チョーク (ピア) not interested(peer) and unchoked(local) - ? = ピアが非インタレスト/ローカルが非チョーク + ? = 非インタレスト (ピア)/非チョーク (ローカル) peer from PEX - X = PEX から取得したピア + X = PEX から取得したピア peer from DHT - H = DHT から取得したピア + H = DHT から取得したピア encrypted traffic - E = 暗号化 (トラフィック) + E = 暗号化トラフィック encrypted handshake - e = 暗号化 (ハンドシェイク) + e = 暗号化ハンドシェイク peer from LSD - L = LSD から取得したピア + L = LSD から取得したピア @@ -3972,123 +3990,73 @@ qBittorrent を終了しますか? 関連性 - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... 新しいピアの追加... - + Copy selected 選択したものをコピー - - + + Ban peer permanently ピアを永久にアクセス禁止にする - + Manually adding peer '%1'... ピア '%1' を手動で追加しています... - + The peer '%1' could not be added to this torrent. ピア '%1'をこの Torrent に追加できませんでした。 - + Manually banning peer '%1'... ピア '%1' をアクセス禁止にしています... - - + + Peer addition ピアの追加 - + Some peers could not be added. Check the Log for details. 一部のピアは追加できませんでした。詳細はログを参照してください。 - + The peers were added to this torrent. ピアをこの Torrent に追加しました。 - + Are you sure you want to ban permanently the selected peers? 選択したピアを永久にアク禁にしてよろしいですか? - + &Yes はい(&Y) - + &No いいえ(&N) - - interested(local) and choked(peer) - d = ローカルがインタレスト/ピアがチョーク - - - interested(local) and unchoked(peer) - D = ローカルがインタレスト/ピアが非チョーク - - - interested(peer) and choked(local) - u = ピアがインタレスト/ローカルがチョーク - - - interested(peer) and unchoked(local) - U = ピアがインタレスト/ローカルが非チョーク - - - optimistic unchoke - O = 楽観的非チョーク - - - peer snubbed - S = ピアがスナッブ状態 - - - incoming connection - I = ピアが着信接続 - - - not interested(local) and unchoked(peer) - K = ローカルが非インタレスト/ピアが非チョーク - - - not interested(peer) and unchoked(local) - ? = ピアが非インタレスト/ローカルが非チョーク - - - peer from PEX - X = PEX から取得したピア - - - peer from DHT - H = DHT から取得したピア - - - encrypted traffic - E = 暗号化 (トラフィック) - - - encrypted handshake - e = 暗号化 (ハンドシェイク) - - - peer from LSD - L = LSD から取得したピア - PeersAdditionDlg @@ -4126,6 +4094,202 @@ qBittorrent を終了しますか? 青: 利用可能なピース + + PluginSelectDlg + + + Search plugins + 検索プラグイン + + + + Installed search plugins: + + + + + Name + 名前 + + + + Version + バージョン + + + + Url + URL + + + + + Enabled + 有効 + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 新しい検索エンジンを <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> から入手できます + + + + Install a new one + 新しい検索エンジンをインストール + + + + Check for updates + 更新のチェック + + + + Close + 閉じる + + + + Uninstall + アンインストール + + + + + + Yes + はい + + + + + + + No + いいえ + + + + Uninstall warning + アンインストールの警告 + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + 後から追加されたプラグインのみアンインストールできます。qBittorrent に含まれるプラグインはアンインストールされず、無効になります。 + + + + Uninstall success + アンインストール成功 + + + + All selected plugins were uninstalled successfully + 選択されたすべてのプラグインは正常にアンインストールされました + + + + + New search engine plugin URL + 新しい検索エンジンプラグイン URL + + + + + URL: + URL: + + + + Invalid link + 不正なリンク + + + + The link doesn't seem to point to a search engine plugin. + リンク先は検索エンジンプラグインではないようです。 + + + + Select search plugins + 検索プラグインの選択 + + + + qBittorrent search plugin + qBittorrent 検索エンジン + + + + + + Search plugin update + 検索プラグインのアップデート + + + + All your plugins are already up to date. + すべてのプラグインは最新です。 + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + 検索プラグインのインストール + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + プラグインソース + + + + Search plugin source: + 検索プラグインのソース: + + + + Local file + ローカルファイル + + + + Web link + ウェブリンク + + Preferences @@ -4182,89 +4346,89 @@ qBittorrent を終了しますか? 未完了のファイル名に拡張子 .!qB を付加する - + Copy .torrent files to: .torrent ファイルの保存先: - + Connections Limits 接続制限 - + Proxy Server プロキシサーバー - + Global Rate Limits 全体の速度制限 - + Apply rate limit to transport overhead トランスポートオーバーヘッドにも制限を適用する - + Schedule the use of alternative rate limits 代替速度制限の使用スケジュール - + From: from (time1 to time2) 開始: - + To: time1 to time2 終了: - + Enable Local Peer Discovery to find more peers より多くのピアを見つけるためにローカルピア検出 (LSD) を有効にする - + Encryption mode: 暗号化モード: - + Prefer encryption 暗号化を許可 - + Require encryption 暗号化を強制 - + Disable encryption 暗号化しない - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">詳しい情報</a>) - + Maximum active downloads: 最大アクティブダウンロード数: - + Maximum active uploads: 最大アクティブアップロード数: - + Maximum active torrents: 最大アクティブ Torrent 数: @@ -4289,82 +4453,82 @@ qBittorrent を終了しますか? Torrent の内容とオプションの一部を表示する - + Run external program on torrent completion Torrent の完了時に外部プログラムを実行する - + Port used for incoming connections: 着信接続で使用するポート: - + Random ランダム - + Global maximum number of connections: 全体の最大接続数: - + Maximum number of connections per torrent: Torrent あたりの最大接続数: - + Maximum number of upload slots per torrent: Torrent あたりの最大アップロードスロット数: - - + + Upload: アップロード: - - + + Download: ダウンロード: - - - - + + + + KiB/s KiB/s - + Remove folder フォルダーを除去 - + Every day 毎日 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Bittorrent 互換クライアント (µTorrent, Vuze など) とピア情報を交換します - + Host: ホスト: - + SOCKS4 SOCKS4 - + Type: 種類: @@ -4537,262 +4701,262 @@ qBittorrent を終了しますか? 自動的に Torrent を追加するフォルダー: - + Add folder... フォルダーを追加... - + Copy .torrent files for finished downloads to: ダウンロードが完了した .torrent ファイルのコピー先: - + Email notification upon download completion ダウンロード完了時にEメールで通知する - + Destination email: 送信先Eメール: - + SMTP server: SMTP サーバー: - + This server requires a secure connection (SSL) このサーバーではセキュアな接続 (SSL) が必要 - + Listening Port 待ち受けポート - + Use UPnP / NAT-PMP port forwarding from my router ルーターからのポート転送に UPnP / NAT-PMP を使用する - + Use different port on each startup 起動時に毎回異なるポートを使用する - + Global maximum number of upload slots: 全体の最大アップロードスロット数: - + Otherwise, the proxy server is only used for tracker connections このオプションを有効にしない場合、プロキシはトラッカーとの接続のみに使用されます - + Use proxy for peer connections ピアとの接続にプロキシを使用する - + Disable connections not supported by proxies プロキシでサポートされていない接続は無効にする - + Use proxy only for torrents Torrent に対してのみプロキシを利用する - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS フィード、検索エンジン、ソフトウェアアップデートやその他 Torrent の転送および関連処理 (ピア交換など) に関係しない通信ではプロキシを使用しません - + Info: The password is saved unencrypted 注意: パスワードは暗号化されません - + IP Filtering IP フィルタリング - + Reload the filter フィルターの再読み込み - + Apply to trackers トラッカーにも適用する - + Apply rate limit to peers on LAN LAN 上のピアに対しても速度制限を適用する - + When: 曜日: - + Weekdays 平日 - + Weekends 週末 - + Rate Limits Settings 速度制限設定 - + Enable µTP protocol µTP プロトコルを有効にする - + Apply rate limit to µTP protocol 速度制限を µTP プロトコルにも適用する - + Privacy プライバシー - + Enable DHT (decentralized network) to find more peers より多くのピアを見つけるため DHT (分散ネットワーク) を有効にする - + Enable Peer Exchange (PeX) to find more peers より多くのピアを見つけるためにピア交換 (PeX) を有効にする - + Look for peers on your local network ローカルネットワーク内のピアも探します - + Enable when using a proxy or a VPN connection プロキシまたは VPN 接続を使用する場合有効にします - + Enable anonymous mode 匿名モードを有効にする - + Do not count slow torrents in these limits 遅いトレントはカウントしない - + Seed torrents until their ratio reaches 指定共有比に達するまでシードする ― 共有比が - + then に達したとき - + Pause them 停止する - + Remove them 削除する - + Automatically add these trackers to new downloads: 新しいダウンロードに以下のトラッカーを自動で追加する: - + Use UPnP / NAT-PMP to forward the port from my router ルーターからのポート転送に UPnP / NAT-PMP を使用する - + Use HTTPS instead of HTTP HTTP ではなく HTTPS を使用する - + Import SSL Certificate SSL 証明書をインポート - + Import SSL Key SSL 公開鍵をインポート - + Certificate: 証明書: - + Alternative Rate Limits 代替速度制限 - + Key: 公開鍵: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>SSL 証明書について</a> - + Bypass authentication for localhost localhost では認証を行わない - + Update my dynamic domain name ダイナミックドメイン名を更新する - + Service: サービス: - + Register 登録 - + Domain name: ドメイン名: - + (None) (なし) @@ -4802,61 +4966,61 @@ qBittorrent を終了しますか? BitTorrent - + HTTP HTTP - - + + Port: ポート: - - - + + + Authentication 認証 - - - - + + + + Username: ユーザー名: - - - - + + + + Password: パスワード: - + Torrent Queueing Torrent キュー - + Share Ratio Limiting 共有比上限 - + Enable Web User Interface (Remote control) ウェブユーザーインターフェース (リモート制御) を有効にする - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): フィルターパス (.dat, .p2p, .p2b): @@ -5062,10 +5226,6 @@ qBittorrent を終了しますか? Comment: コメント: - - Torrent content: - Torrent の内容: - Select All @@ -5587,28 +5747,28 @@ No further notices will be issued. 未知のエラー - - + + Upgrade アップグレード - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] このアップデートでは、過去のバージョンで保存された情報をこのバージョン用に移行する必要があります。変換を行うと v3.3.0 より古いバージョンで使用することはできなくなります。アップデートしますか? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. このアップデートでは、過去のバージョンで保存された情報をこのバージョン用に移行する必要があります。変換を行うと v3.3.0 より古いバージョンで使用することはできなくなります。 - + Couldn't migrate torrent with hash: %1 Torrent を移行できませんでした。ハッシュ: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Torrent を移行できませんでした。高速再開ファイル名が正しくありません: %1 @@ -5719,17 +5879,17 @@ No further notices will be issued. RSSImp - + Stream URL: ストリームの URL: - + Please type a RSS stream URL RSS ストリームの URL を入力してください - + This RSS feed is already in the list. この RSS フィードはすでにリストにあります。 @@ -5749,75 +5909,92 @@ No further notices will be issued. 新しいフォルダー - + Deletion confirmation 削除の確認 - + Are you sure you want to delete the selected RSS feeds? 選択した RSS フィードを削除しますか? - + Please choose a new name for this RSS feed この RSS フィードの新しい名前を選択してください - + New feed name: 新しいフィード名: - + Name already in use 名前はすでに使用されています - + This name is already used by another item, please choose another one. この名前はすでに別のアイテムで使用されています。他の名前を選んでください。 - + Date: 日付: - + Author: 作者: - + Unread 未読 - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - RSS フィード '%2' からの '%1' の自動ダウンロードが失敗しました。これには Torrent やマグネットリンクが含まれていません... + RSS フィード '%2' からの '%1' の自動ダウンロードが失敗しました。これには Torrent やマグネットリンクが含まれていません... - + Automatically downloading '%1' torrent from '%2' RSS feed... - RSS フィード '%2' からの Torrent '%1' を自動ダウンロードしています... + RSS フィード '%2' からの Torrent '%1' を自動ダウンロードしています... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + RSS フィード '%2' からの '%1' の自動ダウンロードが失敗しました。これには Torrent やマグネットリンクが含まれていません... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + RSS フィード '%2' からの Torrent '%1' を自動ダウンロードしています... RssParser - Failed to open downloaded RSS file. - ダウンロードした RSS ファイルのオープンに失敗しました。 + ダウンロードした RSS ファイルのオープンに失敗しました。 - Invalid RSS feed at '%1'. - 不正な RSS フィード '%1'. + 不正な RSS フィード '%1'. @@ -5843,168 +6020,249 @@ No further notices will be issued. フィードあたりの最大記事数: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + 参照... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder 監視フォルダー - - Download here - そこにダウンロードする + + Save Files to + + + + Download here + そこにダウンロードする - Download path - ダウンロードパス + ダウンロードパス SearchCategories - All categories - すべてのカテゴリ + すべてのカテゴリ - Movies - 映画 + 映画 - TV shows - TV 番組 + TV 番組 - Music - 音楽 + 音楽 - Games - ゲーム + ゲーム - Anime - アニメ + アニメ - Software - ソフトウェア + ソフトウェア - Pictures - 画像 + 画像 - Books - 書籍 + 書籍 SearchEngine - - - Search - 検索 + 検索 - Please install Python to use the Search Engine. - 検索エンジンを使用するには Python をインストールしてください。 + 検索エンジンを使用するには Python をインストールしてください。 - Empty search pattern - 検索パターンが空です + 検索パターンが空です - Please type a search pattern first - 検索パターンを入力してください + 検索パターンを入力してください - Searching... - 検索しています... + 検索しています... - Stop - 停止 + 停止 - - Search Engine - 検索エンジン + 検索エンジン - - Search has finished - 検索が完了しました + 検索が完了しました - An error occurred during search... - 検索中にエラーが発生しました... + 検索中にエラーが発生しました... - - Search aborted - 検索を中止しました + 検索を中止しました - All enabled - すべて有効 + すべて有効 - All engines - すべてのエンジン + すべてのエンジン - - Multiple... - 複数指定... + 複数指定... - - Results <i>(%1)</i>: i.e: Search results - 検索結果 <i>(%1)</i>: + 検索結果 <i>(%1)</i>: - Search returned no results - 検索結果は 0 件でした + 検索結果は 0 件でした - Stopped - 停止 + 停止 + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + すべてのカテゴリ + + + + Movies + 映画 + + + + TV shows + TV 番組 + + + + Music + 音楽 + + + + Games + ゲーム + + + + Anime + アニメ + + + + Software + ソフトウェア + + + + Pictures + 画像 + + + + Books + 書籍 SearchListDelegate - - + + Unknown 不明 @@ -6012,35 +6270,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name 名前 - + Size i.e: file size サイズ - + Seeders i.e: Number of full sources シーダー - + Leechers i.e: Number of partial sources リーチャー - + Search engine 検索エンジン + + SearchWidget + + + + + + + Search + 検索 + + + + Status: + 状態: + + + + + Stopped + 停止 + + + + Download + ダウンロード + + + + Go to description page + 説明ページヘ移動 + + + + Copy description page URL + 説明ページ URL をコピー + + + + Search plugins... + + + + + All enabled + すべて有効 + + + + All plugins + + + + + + Multiple... + 複数指定... + + + + + + Search Engine + 検索エンジン + + + + Please install Python to use the Search Engine. + 検索エンジンを使用するには Python をインストールしてください。 + + + + Empty search pattern + 検索パターンが空です + + + + Please type a search pattern first + 検索パターンを入力してください + + + + + Results <i>(%1)</i>: + i.e: Search results + 検索結果 <i>(%1)</i>: + + + + Searching... + 検索しています... + + + + Stop + 停止 + + + + + Search has finished + 検索が完了しました + + + + + Search aborted + 検索を中止しました + + + + Search returned no results + 検索結果は 0 件でした + + + + Search has failed + + + + + An error occurred during search... + 検索中にエラーが発生しました... + + ShutdownConfirmDlg @@ -6485,24 +6868,28 @@ No further notices will be issued. TorrentContentModel - + Name 名前 - + Size サイズ - + Progress 進行状況 - + + Download Priority + + + Priority - 優先度 + 優先度 @@ -6854,38 +7241,38 @@ No further notices will be issued. 警告 (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. URL '%1' のファビコンをデコードできませんでした。 PNG フォーマットのダウンロードを試みています。 - + Couldn't decode favicon for URL '%1'. URL '%1' のファビコンをデコードできませんでした。 - + Couldn't download favicon for URL '%1'. Reason: %2 URL '%1' のファビコンをダウンロードできませんでした。理由: %2 - + Resume torrents Torrent の再開 - + Pause torrents Torrent の停止 - + Delete torrents Torrent の削除 - - + + All (%1) this is for the tracker filter すべて (%1) @@ -7153,17 +7540,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status 状態 - + Labels ラベル - + Trackers トラッカー @@ -7702,205 +8089,154 @@ No further notices will be issued. engineSelect - Search plugins - 検索プラグイン + 検索プラグイン - Installed search engines: - インストール済みの検索エンジン: + インストール済みの検索エンジン: - Name - 名前 + 名前 - Version - バージョン + バージョン - Url - URL + URL - - Enabled - 有効 + 有効 - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 新しい検索エンジンを <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> から入手できます + 新しい検索エンジンを <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> から入手できます - Install a new one - 新しい検索エンジンをインストール + 新しい検索エンジンをインストール - Check for updates - 更新のチェック + 更新のチェック - Close - 閉じる + 閉じる - Uninstall - アンインストール + アンインストール engineSelectDlg - Uninstall warning - アンインストールの警告 + アンインストールの警告 - Uninstall success - アンインストール成功 + アンインストール成功 - Invalid plugin - 不正なプラグイン + 不正なプラグイン - The search engine plugin is invalid, please contact the author. - 不正な検索エンジンプラグインです。作者に連絡してください。 + 不正な検索エンジンプラグインです。作者に連絡してください。 - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - より新しいバージョンの '%1' 検索エンジンプラグインがインストール済みです。 + より新しいバージョンの '%1' 検索エンジンプラグインがインストール済みです。 - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' 検索エンジンプラグインをアップデートできませんでした。古いバージョンを維持します。 + '%1' 検索エンジンプラグインをアップデートできませんでした。古いバージョンを維持します。 - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' 検索エンジンプラグインをインストールできませんでした。 + '%1' 検索エンジンプラグインをインストールできませんでした。 - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' 検索エンジンプラグインは正常にアップデートされました。 + '%1' 検索エンジンプラグインは正常にアップデートされました。 - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' 検索エンジンプラグインは正常にインストールされました。 + '%1' 検索エンジンプラグインは正常にインストールされました。 - The link doesn't seem to point to a search engine plugin. - リンク先は検索エンジンプラグインではないようです。 + リンク先は検索エンジンプラグインではないようです。 - Select search plugins - 検索プラグインの選択 + 検索プラグインの選択 - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - すみません、'%1' 検索エンジンプラグインのインストールに失敗しました。 + すみません、'%1' 検索エンジンプラグインのインストールに失敗しました。 - - - - - Search plugin install - 検索プラグインのインストール + 検索プラグインのインストール - - - Yes - はい + はい - - - - No - いいえ + いいえ - qBittorrent search plugin - qBittorrent 検索エンジン + qBittorrent 検索エンジン - - - - Search plugin update - 検索プラグインのアップデート + 検索プラグインのアップデート - - Sorry, update server is temporarily unavailable. - すみません、アップデートサーバーは一時的に利用できなくなっています。 + すみません、アップデートサーバーは一時的に利用できなくなっています。 - All your plugins are already up to date. - すべてのプラグインは最新です。 + すべてのプラグインは最新です。 - All selected plugins were uninstalled successfully - 選択されたすべてのプラグインは正常にアンインストールされました + 選択されたすべてのプラグインは正常にアンインストールされました - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 後から追加されたプラグインのみアンインストールできます。qBittorrent に含まれるプラグインはアンインストールされず、無効になります。 + 後から追加されたプラグインのみアンインストールできます。qBittorrent に含まれるプラグインはアンインストールされず、無効になります。 - Invalid link - 不正なリンク + 不正なリンク - - New search engine plugin URL - 新しい検索エンジンプラグイン URL + 新しい検索エンジンプラグイン URL - - URL: - URL: + URL: @@ -8030,169 +8366,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory エクスポートディレクトリの選択 - - - - + + + + Choose a save directory 保存ディレクトリの選択 - + Add directory to scan スキャンするディレクトリの追加 - + Supported parameters (case sensitive): サポートパラメーター (大文字小文字を区別): - + %N: Torrent name %N: Torrent 名 - + %L: Label %L: ラベル - + %F: Content path (same as root path for multifile torrent) %F: コンテンツパス (Torrent 内ファイルのルート) - + %R: Root path (first torrent subdirectory path) %R: ルートパス (最初の Torrent のパス) - + %D: Save path %D: 保存パス - + %C: Number of files %C: ファイル数 - + %Z: Torrent size (bytes) %Z: Torrent サイズ (バイト) - + %T: Current tracker %T: 現在のトラッカー - + %I: Info hash %I: 情報ハッシュ - + Folder is already being watched. フォルダーはすでに監視されています。 - + Folder does not exist. フォルダーが存在しません。 - + Folder is not readable. フォルダーが読み込み可能ではありません。 - + Failure 失敗 - + Failed to add Scan Folder '%1': %2 スキャンフォルダー '%1' の追加に失敗しました: %2 - - + + Filters フィルター - - + + Choose an IP filter file IP フィルターファイルの選択 - + SSL Certificate SSL 証明書 - + SSL Key SSL キー - + Parsing error 解析エラー - + Failed to parse the provided IP filter 与えられた IP フィルターの解析に失敗しました - + Successfully refreshed 正常にリフレッシュされました - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP フィルターの解析に成功しました: %1 ルールが適用されました。 - + Invalid key 不正な鍵 - + This is not a valid SSL key. これは正常な SSL 鍵ではありません。 - + Invalid certificate 不正な証明書 - + This is not a valid SSL certificate. これは正常な SSL 証明書ではありません。 - + The start time and the end time can't be the same. 開始時刻と終了時刻は同じにできません。 - + Time Error 時刻エラー @@ -8200,24 +8536,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - プラグインソース + プラグインソース - Search plugin source: - 検索プラグインのソース: + 検索プラグインのソース: - Local file - ローカルファイル + ローカルファイル - Web link - ウェブリンク + ウェブリンク @@ -8246,40 +8578,32 @@ Those plugins were disabled. search_engine - - Search - 検索 + 検索 - Status: - 状態: + 状態: - Stopped - 停止 + 停止 - Download - ダウンロード + ダウンロード - Go to description page - 説明ページヘ移動 + 説明ページヘ移動 - Copy description page URL - 説明ページ URL をコピー + 説明ページ URL をコピー - Search engines... - 検索エンジン... + 検索エンジン... diff --git a/src/lang/qbittorrent_ka.ts b/src/lang/qbittorrent_ka.ts index 4d00bb28a..20b55640c 100755 --- a/src/lang/qbittorrent_ka.ts +++ b/src/lang/qbittorrent_ka.ts @@ -175,172 +175,172 @@ არ გადმოტვირთვა - - + + I/O Error I/O შეცდომა - + The torrent file does not exist. ტორენტ ფაილი არ არსებობს. - + Invalid torrent უმართებულო ტორენტი - + Failed to load the torrent: %1 ტორენტის ჩატვირთვა ჩაიშალა: %1 - - + + Already in download list უკვე ჩამოტვირთვების სიაშია - + Free disk space: %1 თავისუფალი ადგილი დისკზე: %1 - + Not Available This comment is unavailable ხელმიუწვდომელი - + Not Available This date is unavailable ხელმიუწვდომელი - + Not available მიუწვდომელი - + Invalid magnet link უმართებულო მაგნიტური ბმული - + Torrent is already in download list. Trackers were merged. ტორენტი უკვე ჩამოტვირთვების სიაშია. ტრეკერები შეერთდნენ.. - - + + Cannot add torrent ტორენტის დამატება ვერ მოხერხდა - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized მოცემული მაგნიტური ბმულის ამოცნობა ვერ მოხერხდა - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link მაგნიტური ბმული - + Retrieving metadata... - + Not Available This size is unavailable. ხელმიუწვდომელი - - - + + + Choose save path აირჩიეთ შენახვის ადგილი - + Rename the file ფაილის გადარქმევა - + New name: ახალი სახელი: - - + + The file could not be renamed ფაილის გადარქმევა ვერ მოხერხდა - + This file name contains forbidden characters, please choose a different one. ფაილის სახელი შეიცავს აკრძალულ სიმბოლოებს, გთხოვთ აირჩიეთ სხვა სახელი. - - + + This name is already in use in this folder. Please use a different name. ამ საქაღალდეში ეს სახელი უკვე გამოიყენება. გთხოვთ აირჩიეთ სხვა სახელი. - + The folder could not be renamed საქაღალდის გადარქმევა ვერ მოხერხდა - + Rename... გადარქმევა... - + Priority პრიორიტეტი - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names პირების ჰოსტის სახელის დადგენა - - Maximum number of half-open connections [0: Disabled] - ნახევრად-გახსნილი კავშირების მაქსიმალური რაოდენობა [0: გამორთული] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name ახალი წესის სახელი - + Please type the name of the new download rule. - - + + Rule name conflict წესის სახელის კონფლიქტი - - + + A rule with this name already exists, please choose another name. წესი იგივე სახელით უკვე არსებობს, გთხოვთ აირჩიეთ სხვა სახელი. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? დარწმუნებული ხართ რომ არჩეული ჩამოტვირთვის წესების წაშლა გსურთ? - + Rule deletion confirmation წესის წაშლის დასტური - + Destination directory დანიშნულების მდებარეობა - + Invalid action არასწორი მოქმედება - + The list is empty, there is nothing to export. სია ცარიელია, გამოსატანი არაფერია. - + Where would you like to save the list? სად გსურთ სიის შენახვა? - + Rules list (*.rssrules) წესების საი (*.rssrules) - + I/O Error I/O შეცდომა - + Failed to create the destination file დანიშნულების ფაილის შექმნა ვერ მოხერხდა - + Please point to the RSS download rules file გთხოვთ მიუთითეთ RSS ჩამოტვირთვის წესის ფაილი - + Rules list - + Import Error შემოტანის შეცდომა - + Failed to import the selected rules file არჩეული წესის ფაილი შემოტანა ჩაიშალა - + Add new rule... - + Delete rule წესის წაშლა - + Rename rule... - + Delete selected rules არჩეული წესების წაშლა - + Rule renaming წესის გადარქმევა - + Please type the new rule name გთხოვთ ჩაწერეთ ახალი წესის სახელი - + Regex mode: use Perl-like regular expressions Regex რეჟიმის გამოყენება: გამოიყენეთ Perl-ის მსგავსი რეგულარული გამოსახულებები - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> ჩანაცვლების ნიშნის რეჟიმი: თქვენ შეგიძლიათ გამოიყენოთ <ul><li>? რათა დაამთხვიოთ ნებისმიერ ერთ სიმბოლოს</li><li>* რათა დაამთხვიოთ ნულს ან მეტ ნებისმიერ სიმბოლოს</li><li>ცარიელი ადგილი ითვლება როგორც AND ოპერატორი</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> ჩანაცვლების ნიშნის რეჟიმი: თქვენ შეგიძლიათ გამოიყენოთ <ul><li>? რათა დაამთხვიოთ ნებისმიერ ერთ სიმბოლოს</li><li>* რათა დაამთხვიოთ ნულს ან მეტ ნებისმიერ სიმბოლოს</li><li>| გამოიყენება როგორც OR ოპერატორი</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ მნიშვნელობა - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS არხები - + Unread წაუკითხავი @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line მხოლოდ ერთი ბმული თითო ხაზზე - - Download local torrent - ლოკალური ტორენტის ჩამოტვირთვა - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? ჩამოტვირთული @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &შესახებ - - Exit - გამოსვლა - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show ჩვენება - + Check for program updates - - Lock qBittorrent - qBittorrent-ის ჩაკეტვა - Add Torrent &Link... @@ -2026,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log გაშვების ჟურნალი - + Clear the password - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers ტრანსფერები - + Torrent file association ტორენტ ფაილებთან ასოციაცია - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent არ არის ტორენტ ფაილების და მაგნიტური ბმულების გასახსნელად ნაგულისხმევი პროგრამა . გსურთ qBittorrent-ის ასოცირება ტორენტ ფაილებთან და მაგნიტურ ბმულებთან? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password ინტერფეისის ჩაკეტვის პაროლი - - - + + + Please type the UI lock password: გთხოვთ შეიყვანეთ ინტერფეისის ჩაკეტვის პაროლი: - + The password should contain at least 3 characters პაროლი უნდა შეიცავდეს მინიმუმ 3 სიმბოლოს - + Password update პაროლის განახლება - + The UI lock password has been successfully updated ინტერფეისის ჩაკეტვის პაროლი წარმატებით განახლდა - + Are you sure you want to clear the password? - + Search ძებნა - + Transfers (%1) ტრანსფერები (%1) - + Error - + Failed to add torrent: %1 - + Download completion ჩამოტვირთვის დასრულება - + I/O Error i.e: Input/Output Error I/O შეცდომა - + Recursive download confirmation რეკურსიული ჩამოტვირთვის დასტური - + Yes დიახ - + No არა - + Never არასოდეს - + Global Upload Speed Limit ატვირთვის სიჩქარის საერთო ლიმიტი - + Global Download Speed Limit ჩამოტვირთვის სიჩქარის საერთო ლიმიტი - + &No &არა - + &Yes &დიახ - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2242,156 +2242,150 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background - + Python found in '%1' - + Download error ჩამოტვირთვის შეცდომა - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password პაროლი არასწორია - - + + RSS (%1) - + URL download error - + The password is invalid პაროლი არასწორია - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide დამალვა - + Exiting qBittorrent qBittorrent-იდან გამოსვლა - + Some files are currently transferring. Are you sure you want to quit qBittorrent? ზოგიერთი ფაილი კვლავ ტრანსფერზეა. დარწმუნებული ხართ რომ qBittorrent-იდან გამოსვლა გსურთ? - + Open Torrent Files ტორენტ ფაილის გახსნა - + Torrent Files ტორენტ ფაილები - + Options were saved successfully. პარამეტრები წარმატბით დამახსოვრდა. @@ -2399,17 +2393,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2419,32 +2413,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2471,154 +2465,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2633,1137 +2622,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - საფრანგეთი + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + საფრანგეთი + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece საბერძნეთი - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3927,64 +3906,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... ახალი პირის დამატება... - + Copy selected - - + + Ban peer permanently პირის დაბლოკვა სამუდამოდ - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition პირის დამატება - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? დარწმუნებული ხართ რომ არჩეული პირების სამუდამოდ წაშლა გსურთ? - + &Yes &დიახ - + &No &არა @@ -4025,6 +4010,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + მოდულების ძებნა + + + + Installed search plugins: + + + + + Name + სახელი + + + + Version + + + + + Url + ბმული + + + + + Enabled + ჩართული + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + თქვენ ახალი საძიებო სისტემების მოდულების მიღება შეგიძლიათ აქ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + ახლის დაყენება + + + + Check for updates + განახლებების შემოწმება + + + + Close + დახურვა + + + + Uninstall + დეინსტალაცია + + + + + + Yes + დიახ + + + + + + + No + არა + + + + Uninstall warning + დეინსტალაციის გაფრთხილება + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + დეინსტალაცია წარმატებულია + + + + All selected plugins were uninstalled successfully + ყველა მონიშნული მოდული წარმატებით წაიშალა + + + + + New search engine plugin URL + ახალი საძიებო სისტემის მობულის ბმული + + + + + URL: + ბმული: + + + + Invalid link + + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + აირჩიეთ საძიებო მოდულები + + + + qBittorrent search plugin + + + + + + + Search plugin update + საძიებო მოდულის განახლება + + + + All your plugins are already up to date. + ყველა თქვენი მოდული უკვე განახლებულია. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + საძიებო მოდულის ინსტალაცია + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + მოდულის წყარო + + + + Search plugin source: + მოდულის წყაროს ძებნა: + + + + Local file + ლოკალური ფაილი + + + + Web link + ვებ ბმული + + Preferences @@ -4081,89 +4262,89 @@ Are you sure you want to quit qBittorrent? დაუსრულებელი ფაილებისთვის .!qB გაფართოების მინიჭება - + Copy .torrent files to: ტორენტ ფაილების კოპირება: - + Connections Limits კავშირების ლიმიტი - + Proxy Server პროქსი სერვერი - + Global Rate Limits შეფარდების საერთო ლიმიტი - + Apply rate limit to transport overhead შეფარდების ლიმიტის მორგება ზედა ტრანსფერებზე - + Schedule the use of alternative rate limits შეფარდების ალტერნატიული ლიმიტის გამოყენების გრაფიკი - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers ლოკალური პირების აღმოჩენის მხარდაჭერის ჩართვა მეტი პირების საპოვნად - + Encryption mode: დაშიფვრის რეჟიმი: - + Prefer encryption დაშიფრვის მჯობინება - + Require encryption დაშიფვრის მოთხოვნა - + Disable encryption დაშიფვრის გამორთვა - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: მაქსიმალური აქტიური ჩამოტვირთვები: - + Maximum active uploads: მაქსიმალური აქტიური ატვირთვები: - + Maximum active torrents: მაქსიმალური აქტიური ტორენტები: @@ -4188,82 +4369,82 @@ Are you sure you want to quit qBittorrent? ტორენტის შიგთავსის და რამდენიმე პარამეტრის ჩვენება - + Run external program on torrent completion - + Port used for incoming connections: შემომავალი კავშირებისთვის გამოყენებული პორტი: - + Random შემთხვევითი - + Global maximum number of connections: კავშირების საერთო მაქსიმალური რაოდენობა: - + Maximum number of connections per torrent: კავშირების მაქსიმალური რაოდენობა ერთ ტორენტზე: - + Maximum number of upload slots per torrent: ატვირთვის სლოტების მაქსიმალური რაოდენობა ერთ ტორენტზე: - - + + Upload: ატვირთვა: - - + + Download: ჩამოტვირთვა: - - - - + + + + KiB/s კბ/წმ - + Remove folder საქაღალდის წაშლა - + Every day ყოველდღე - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) პირების გაცვლა თავსებად Bittorrent კლიენტებთან (µTorrent, Vuze, ...) - + Host: ჰოსტი: - + SOCKS4 SOCKS4 - + Type: ტიპი: @@ -4436,262 +4617,262 @@ Are you sure you want to quit qBittorrent? ტორენტები ავტომატურად დაემატოს აქედან: - + Add folder... საქაღალდის დამატება... - + Copy .torrent files for finished downloads to: - + Email notification upon download completion ელ-ფოსტით შეტყობინება ჩამოტვირთვის დასრულებისას - + Destination email: დანიშნულების ელ-ფოსტა: - + SMTP server: SMTP სერვერი: - + This server requires a secure connection (SSL) სერვერი მოითხოვს დაცულ კავშირს (SSL) - + Listening Port მოსამსენი პორტი - + Use UPnP / NAT-PMP port forwarding from my router UPnP / NAT-PMP-ს გამოყენება ჩემი როუტერიდან პორტის გადამისამართებისთვის - + Use different port on each startup - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections სხვა შემთხვევაში პროქსი სერვერი გამოიყენება მხოლოდ ტრეკერის კავშირებისთვის - + Use proxy for peer connections პროქსის გამოყენება პირებთან კავშირებისთვის - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering IP-ის გაფილტრვა - + Reload the filter ფილტრის გადატვირთვა - + Apply to trackers - + Apply rate limit to peers on LAN - + When: როდის: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy კონფიდენციალურობა - + Enable DHT (decentralized network) to find more peers დეცენტრალიზებული ქსელის (DHT) ჩართვა მეტი პირის მოსაძიებლად - + Enable Peer Exchange (PeX) to find more peers პირების გაცვლის ჩართვა (PeX) მეტი პირის მოსაძიებლად - + Look for peers on your local network პირების ძებნა თქვენს ლოკალურ ქსელში - + Enable when using a proxy or a VPN connection - + Enable anonymous mode ანონიმური რეჟიმის ჩართვა - + Do not count slow torrents in these limits ამ ლიმიტებში არ ჩაითვალოს ნელი ტორენტები - + Seed torrents until their ratio reaches ტორენტების სიდირება მანამ სანამ მათი შეფარდება მიაღწევს - + then შემდეგ კი - + Pause them მათი დაპაუზება - + Remove them მათი წაშლა - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router UPnP / NAT-PMP-ს გამოყენება პორტის გადამისამართებისთვის ჩემი როუტერიდან - + Use HTTPS instead of HTTP HTTP-ს ნაცვლად HTTPS-ს გამოყენება - + Import SSL Certificate SSL სერთიფიკატის შემოტანა - + Import SSL Key SSL გასაღების შემოტანა - + Certificate: სერთიფიკატი: - + Alternative Rate Limits - + Key: გასაღები: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>ინფორმაცია სერთიფიკატების შესახებ</a> - + Bypass authentication for localhost ლოკალჰოსტისთვის ავთენტიფიკაციის გვერდის ავლა - + Update my dynamic domain name ჩემი დინამიკური დომეინის სახელის განახლება - + Service: მომსახურება: - + Register რეგისტრაცია - + Domain name: დომეინის სახელი: - + (None) (არცერთი) @@ -4701,61 +4882,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: პორტი: - - - + + + Authentication ავთენტიფიკაცია - - - - + + + + Username: მომხმარებლის სახელი: - - - - + + + + Password: პაროლი: - + Torrent Queueing ტორენტი რიგში დგომა - + Share Ratio Limiting გაზიარების შეფარდების ლიმიტი - + Enable Web User Interface (Remote control) ვებ ინტერფეისის ჩართვა (დისტანციური კონტროლი) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): ფილტრის მდებარეობა (.dat, .p2p, .p2b): @@ -4961,10 +5142,6 @@ Are you sure you want to quit qBittorrent? Comment: კომენტარი: - - Torrent content: - ტორენტის შიგთავსი: - Select All @@ -5484,28 +5661,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5616,17 +5793,17 @@ No further notices will be issued. RSSImp - + Stream URL: არხის ბმული: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5646,74 +5823,69 @@ No further notices will be issued. ახალი საქაღალდე - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed გთხოვთ აირჩიეთ ახალი სახელი ამ RSS არხისთვის - + New feed name: არხის ახალი სახელი: - + Name already in use სახელი უკვე გამოიყენება - + This name is already used by another item, please choose another one. ეს სახელი უკვე გამოიყენება სხვა ელემენტის მიერ, გთხოვთ აირჩიეთ სხვა სახელი. - + Date: თარიღი: - + Author: ავტორი: - + Unread წაუკითხავი - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... - RssParser + Rss::Private::Parser - - Failed to open downloaded RSS file. - - - - - Invalid RSS feed at '%1'. + + Invalid RSS feed. @@ -5740,168 +5912,216 @@ No further notices will be issued. სტატიების მაქს. რაოდენობა ერთი არხიდან: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + მოძიება... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder მეთვალყურეობის ქვეშ მყოფი საქაღალდე - - Download here - ჩამოიტვირთოს აქ + + Save Files to + - - Download path - + Download here + ჩამოიტვირთოს აქ SearchCategories - All categories - ყველა კატეგორია + ყველა კატეგორია - Movies - ფილმები + ფილმები - TV shows - სერიალები + სერიალები - Music - მუსიკა + მუსიკა - Games - თამაშები + თამაშები - Anime - ანიმე + ანიმე - Software - პროგრამა + პროგრამა - Pictures - სურათები + სურათები - Books - წიგნები + წიგნები SearchEngine - - - Search - ძებნა + ძებნა - - Please install Python to use the Search Engine. - - - - Empty search pattern - ცარიელი საძიებო შაბლონი + ცარიელი საძიებო შაბლონი - Please type a search pattern first - გთხოვთ პირველ რიგში შეიყვანეთ საძიებო შაბლონი + გთხოვთ პირველ რიგში შეიყვანეთ საძიებო შაბლონი - Searching... - ძებნა... + ძებნა... - - Stop - - - - - Search Engine - საძიებო სისტემა + საძიებო სისტემა - - Search has finished - ძებნა დასრულდა + ძებნა დასრულდა - An error occurred during search... - ძებნისას დაფიქსირდა შეცდომა... + ძებნისას დაფიქსირდა შეცდომა... - - Search aborted - ძებნა გაუქმდა + ძებნა გაუქმდა - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - ძებნა უშედეგოა + ძებნა უშედეგოა - - Stopped - შეჩერებულია + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + ყველა კატეგორია + + + + Movies + ფილმები + + + + TV shows + სერიალები + + + + Music + მუსიკა + + + + Games + თამაშები + + + + Anime + ანიმე + + + + Software + პროგრამა + + + + Pictures + სურათები + + + + Books + წიგნები SearchListDelegate - - + + Unknown უცნობია @@ -5909,35 +6129,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name სახელი - + Size i.e: file size ზომა - + Seeders i.e: Number of full sources სიდერები - + Leechers i.e: Number of partial sources ლიჩერები - + Search engine საძიებო სისტემა + + SearchWidget + + + + + + + Search + ძებნა + + + + Status: + სტატუსი: + + + + + Stopped + შეჩერებულია + + + + Download + ჩამოტვირთვა + + + + Go to description page + ახსნის გვერდზე გადასვლა + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + საძიებო სისტემა + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + ცარიელი საძიებო შაბლონი + + + + Please type a search pattern first + გთხოვთ პირველ რიგში შეიყვანეთ საძიებო შაბლონი + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + ძებნა... + + + + Stop + + + + + + Search has finished + ძებნა დასრულდა + + + + + Search aborted + ძებნა გაუქმდა + + + + Search returned no results + ძებნა უშედეგოა + + + + Search has failed + + + + + An error occurred during search... + ძებნისას დაფიქსირდა შეცდომა... + + ShutdownConfirmDlg @@ -6382,24 +6727,24 @@ No further notices will be issued. TorrentContentModel - + Name სახელი - + Size ზომა - + Progress პროგრესი - - Priority - პრიორიტეტი + + Download Priority + @@ -6751,38 +7096,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7050,17 +7395,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status სტატუსი - + Labels - + Trackers ტრეკერები @@ -7599,205 +7944,95 @@ No further notices will be issued. engineSelect - Search plugins - მოდულების ძებნა + მოდულების ძებნა - Installed search engines: - დაინსტალირებული საძიებო სისტემები: + დაინსტალირებული საძიებო სისტემები: - Name - სახელი + სახელი - - Version - - - - Url - ბმული + ბმული - - Enabled - ჩართული + ჩართული - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - თქვენ ახალი საძიებო სისტემების მოდულების მიღება შეგიძლიათ აქ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + თქვენ ახალი საძიებო სისტემების მოდულების მიღება შეგიძლიათ აქ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - ახლის დაყენება + ახლის დაყენება - Check for updates - განახლებების შემოწმება + განახლებების შემოწმება - Close - დახურვა + დახურვა - Uninstall - დეინსტალაცია + დეინსტალაცია engineSelectDlg - Uninstall warning - დეინსტალაციის გაფრთხილება + დეინსტალაციის გაფრთხილება - Uninstall success - დეინსტალაცია წარმატებულია + დეინსტალაცია წარმატებულია - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - აირჩიეთ საძიებო მოდულები + აირჩიეთ საძიებო მოდულები - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - საძიებო მოდულის ინსტალაცია + საძიებო მოდულის ინსტალაცია - - - Yes - დიახ + დიახ - - - - No - არა + არა - - qBittorrent search plugin - - - - - - - Search plugin update - საძიებო მოდულის განახლება + საძიებო მოდულის განახლება - - Sorry, update server is temporarily unavailable. - ბოდიში, განახლების სერვერი დროებით მიუწვდომელია. + ბოდიში, განახლების სერვერი დროებით მიუწვდომელია. - All your plugins are already up to date. - ყველა თქვენი მოდული უკვე განახლებულია. + ყველა თქვენი მოდული უკვე განახლებულია. - All selected plugins were uninstalled successfully - ყველა მონიშნული მოდული წარმატებით წაიშალა + ყველა მონიშნული მოდული წარმატებით წაიშალა - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - - Invalid link - - - - - New search engine plugin URL - ახალი საძიებო სისტემის მობულის ბმული + ახალი საძიებო სისტემის მობულის ბმული - - URL: - ბმული: + ბმული: @@ -7927,169 +8162,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory აირჩიეთ გასატანი მდებარეობა - - - - + + + + Choose a save directory აირჩიეთ შესანახი მდებარეობა - + Add directory to scan დასასკანირებელი მდებარეობის დამატება - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. საქაღალდე უკვე მეთვალყურეობის ქვეშაა. - + Folder does not exist. საქაღალდე არ არსებობს. - + Folder is not readable. საქაღალდე არ არის წაკითხვადი. - + Failure მარცხი - + Failed to add Scan Folder '%1': %2 დასასკანირებელი საქაღალდის დამატება ჩაიშალა: '%1': %2 - - + + Filters ფილტრები - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error ანალიზის შეცდომა - + Failed to parse the provided IP filter მოწოდებული IP ფილტრის ანალიზი ჩაიშალა - + Successfully refreshed წარმატებით განახლდა - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key არასწორი გასაღები - + This is not a valid SSL key. ეს არ არის სწორი SSL გასაღები. - + Invalid certificate არასწორი სერთიფიკატი - + This is not a valid SSL certificate. ეს არ არის სწორი SSL სერთიფიკატი. - + The start time and the end time can't be the same. - + Time Error @@ -8097,24 +8332,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - მოდულის წყარო + მოდულის წყარო - Search plugin source: - მოდულის წყაროს ძებნა: + მოდულის წყაროს ძებნა: - Local file - ლოკალური ფაილი + ლოკალური ფაილი - Web link - ვებ ბმული + ვებ ბმული @@ -8143,40 +8374,28 @@ Those plugins were disabled. search_engine - - Search - ძებნა + ძებნა - Status: - სტატუსი: + სტატუსი: - Stopped - შეჩერებულია + შეჩერებულია - Download - ჩამოტვირთვა + ჩამოტვირთვა - Go to description page - ახსნის გვერდზე გადასვლა + ახსნის გვერდზე გადასვლა - - Copy description page URL - - - - Search engines... - საძიებო სისტემები... + საძიებო სისტემები... diff --git a/src/lang/qbittorrent_ko.ts b/src/lang/qbittorrent_ko.ts index 14febf3d2..8e4348be3 100644 --- a/src/lang/qbittorrent_ko.ts +++ b/src/lang/qbittorrent_ko.ts @@ -6,7 +6,7 @@ About qBittorrent - 큐빗 토렌트에 대하여 + 큐빗토렌트에 대하여 @@ -44,7 +44,7 @@ Current maintainer - 현재 제작자 + 현재 관리자 @@ -59,7 +59,7 @@ This version of qBittorrent was built against the following libraries: - 이 큐빗 토렌트 버전은 다음의 라이브러리와 함께 제작되었습니다: + 이 버전의 큐빗토렌트는 다음의 라이브러리와 함께 제작되었습니다: @@ -102,7 +102,7 @@ Never show again - 다시 보지 않음 + 다시 표시 안함 @@ -127,7 +127,7 @@ Set as default label - + 기본 라벨로 지정 @@ -175,172 +175,172 @@ 받지 않음 - - + + I/O Error 입출력 오류 - + The torrent file does not exist. 토렌트 파일이 없습니다. - + Invalid torrent 잘못된 토렌트 - + Failed to load the torrent: %1 토렌트 불러오기 실패: %1 - - + + Already in download list 이미 내려받기 목록에 있습니다 - + Free disk space: %1 사용 가능한 디스크 공간: %1 - + Not Available This comment is unavailable 이 의견은 사용할 수 없습니다 - + Not Available This date is unavailable 이 날짜는 사용할 수 없습니다 - + Not available 사용할 수 없습니다 - + Invalid magnet link 잘못된 자석망 고리 - + Torrent is already in download list. Trackers were merged. - 내려받기 목록에 이미 토렌트가 있습니다. 트래커는 합병되었습니다. + 내려받기 목록에 이미 토렌트가 있습니다. 추적기는 합병되었습니다. - - + + Cannot add torrent 토렌트를 추가할 수 없습니다 - + Cannot add this torrent. Perhaps it is already in adding state. 이 토렌트를 추가 할 수 없습니다. 상태를 이미 추가한것 같습니다. - + This magnet link was not recognized 이 자석망 고리는 인식할 수 없습니다 - + Magnet link is already in download list. Trackers were merged. - 내려받기 목록에 마그넷 고리가 이미 존재합니다. 트래커는 합병됩니다. + 내려받기 목록에 마그넷 고리가 이미 존재합니다. 추적기는 합병됩니다. - + Cannot add this torrent. Perhaps it is already in adding. 이 토렌트를 추가 할 수 없습니다. 아마도 이미 추가 되었을 것입니다. - + Magnet link 자석망 고리 - + Retrieving metadata... - 메타 정보 검색하는 중... + 메타 정보 검색하는중... - + Not Available This size is unavailable. 사용할 수 없습니다 - - - + + + Choose save path 저장 경로를 선택 - + Rename the file 파일 이름 바꾸기 - + New name: 새로운 이름: - - + + The file could not be renamed 파일 이름을 바꿀 수 없습니다 - + This file name contains forbidden characters, please choose a different one. 이 파일 이름은 금지된 문자를 포함하고 있습니다. 다른 이름을 사용하시길 바랍니다. - - + + This name is already in use in this folder. Please use a different name. 이 이름은 이미 이 폴더 안에 있습니다. 다른 이름을 사용해주세요. - + The folder could not be renamed 폴더 이름을 바꿀 수 없습니다 - + Rename... 이름 바꾸기... - + Priority 우선순위 - + Invalid metadata 잘못된 메타데이터 - + Parsing metadata... - 메타 정보를 구문 분석하는 중... + 메타 정보를 구문 분석하는중... - + Metadata retrieval complete 메타 정보 검색을 완료 - + Download Error 내려받기 오류 @@ -375,7 +375,7 @@ Transfer list refresh interval - 전송 목록 새로 고침 간격 + 전송 목록 새로고침 간격 @@ -424,16 +424,12 @@ Resolve peer countries (GeoIP) - 공유자 국가 분석 (GeoIP) + 불완전체 공유자 국가 분석 (지오IP) Resolve peer host names - 공유자 호스트 이름 분석 - - - Maximum number of half-open connections [0: Disabled] - 최대 하프 오픈(Half-open) 연결 수 [0: 비활성화] + 불완전체 공유자 호스트 이름 분석 @@ -448,7 +444,7 @@ Listen on IPv6 address (requires restart) - IPv6 주소로 대기 (다시 시작 필요) + IPv6 주소로 대기 (다시 시작 필요함) @@ -458,7 +454,7 @@ Exchange trackers with other peers - 다른 공유자들과 추적기 교환 + 다른 불완전체 공유자들과 추적기 교환 @@ -475,17 +471,17 @@ Save resume data interval How often the fastresume file is saved. - 데이터 구간을 다시 저장하기?? + 재개 데이터 구간 저장 Maximum number of half-open connections [0: Unlimited] - + 최대 반-개방 연결 수 [0: 무제한] IP Address to report to trackers (requires restart) - 추적기에게 IP주소 보고함 (다시 시작 필요) + 추적기에게 IP주소 보고함 (다시 시작 필요함) @@ -519,7 +515,7 @@ qBittorrent %1 started qBittorrent v3.2.0alpha started - 큐빗 토렌트 %1 이 시작됨 + 큐빗토렌트 %1 이 시작됨 @@ -529,7 +525,7 @@ To control qBittorrent, access the Web UI at http://localhost:%1 - 큐빗 토렌트를 제어하려면 http://localhost:%1 로 웹 UI에 접속하세요 + 큐빗토렌트를 제어하려면 http://localhost:%1 로 웹 UI에 접속하세요 @@ -661,205 +657,205 @@ 내보내기... - + Matches articles based on episode filter. 에피소드 거름기를 기반으로한 기사 일치하기. - + Example: 예제: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match 시즌 하나의 2, 5, 8 ~ 15, 30 이후 에피소드가 일치합니다.?? - + Episode filter rules: 에피소드 거름기 규칙: - + Season number is a mandatory non-zero value 시즌번호의 값은 0이 아니어야 합니다 - + Episode number is a mandatory non-zero value 에피소드 번호의 값은 0이 아니어야 합니다 - + Filter must end with semicolon 거름기는 세미콜론으로 끝나야합니다 - + Three range types for episodes are supported: 에피소드로 세가지 범위 유형이 지원됩니다: - + Single number: <b>1x25;</b> matches episode 25 of season one 단일 번호: <b>1x25;</b> 가 한시즌의 에피소드 25와 일치합니다?? - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one 일반 범위: <b>1x25-40;</b> 가 한시즌의 에피소드 25~40과 일치합니다?? - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one 무한 범위: <b>1x25-;</b> 가 시즌 1의 에피소드 25 이후와 일치합니다 - + Last Match: %1 days ago 최근 일치: %1 하루 전 - + Last Match: Unknown 최근 일치: 알수 없음 - + New rule name 새로운 규칙 이름 - + Please type the name of the new download rule. 새로운 내려받기 규칙의 이름을 입력해주세요. - - + + Rule name conflict 규칙 이름 충돌 - - + + A rule with this name already exists, please choose another name. 이미 이 이름의 규칙이 있습니다. 다른 이름을 입력해주세요. - + Are you sure you want to remove the download rule named '%1'? - '%1" 로 정의된 다운로드 규칙을 제거하시겠습니까? + '%1" 로 정의된 내려받기 규칙을 제거하시겠습니까? - + Are you sure you want to remove the selected download rules? 선택한 내려받기 규칙을 제거하시겠습니까? - + Rule deletion confirmation 규칙 삭제 확인 - + Destination directory 대상 디렉토리 - + Invalid action 잘못된 동작 - + The list is empty, there is nothing to export. 목록이 비어있어서 아무것도 내보내지 않습니다. - + Where would you like to save the list? 어느 장소에 목록을 저장하시겠습니까? - + Rules list (*.rssrules) 규칙 목록 (*.rssrules) - + I/O Error 입출력 오류 - + Failed to create the destination file 대상 파일을 생성하는데 실패했습니다 - + Please point to the RSS download rules file RSS 내려받기 규칙 파일을 선택해주세요 - + Rules list 규칙 목록 - + Import Error 가져오기 오류 - + Failed to import the selected rules file 선택한 규칙 파일을 가져오는데 실패했습니다 - + Add new rule... 새로운 규칙 추가... - + Delete rule 규칙 삭제 - + Rename rule... 규칙 이름 바꾸기... - + Delete selected rules 선택한 규칙 삭제 - + Rule renaming 규칙 이름 바꾸기 - + Please type the new rule name 새로운 규칙 이름을 입력해주세요 - + Regex mode: use Perl-like regular expressions 정규식 모드: Perl과 같은 정규 표현식 사용 - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> 와일드카드 모드: <ul><li>? 를 모든 한 글자</li><li>* 를 0 개 이상의 모든 문자</li><li>공백은 AND 연산자</li></ul>로 사용할 수 있습니다 - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> 와일드카드 모드: <ul><li>? 를 모든 한 글자</li><li>* 를 0 개 이상의 모든 문자</li><li>| 을 OR 연산자</li></ul>로 사용할 수 있습니다 @@ -869,12 +865,12 @@ Peer ID: - 공유자 ID: + 불완전체 공유자 ID: HTTP User-Agent is '%1' - HTTP 사용자 에이전트 는 '%1' + HTTP 사용자 에이전트는 '%1' @@ -904,12 +900,12 @@ Local Peer Discovery support [ON] - 지역 피어 발견 지원 [켜짐] + 지역 불완전체 공유자 발견 지원 [켜짐] Local Peer Discovery support [OFF] - 지역 피어 발견 지원 [꺼짐] + 지역 불완전체 공유자 발견 지원 [꺼짐] @@ -929,17 +925,17 @@ Embedded Tracker [ON] - 내장된 트래커 [켜짐] + 내장된 추적기 [켜짐] Failed to start the embedded tracker! - 내장된 트래커를 시작하는데 실패했습니다! + 내장된 추적기를 시작하는데 실패했습니다! Embedded Tracker [OFF] - 내장된 트래커 [꺼짐] + 내장된 추적기 [꺼짐] @@ -949,68 +945,60 @@ '%1' reached the maximum ratio you set. Pausing... - '%1' 이 당신이 설정한 최대 비율에 도달 했습니다. 중지 중... + '%1' 이 당신이 설정한 최대 비율에 도달 했습니다. 중지중... - Error: Could not create torrent export directory: '%1' - 오류: 토렌트 내보내기 폴더를 생성할수 없습니다: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - 오류: '%1' 토렌트를 내보낼 수 없습니다, 아마 메타데이터가 아직 없습니다. - - - + System network status changed to %1 e.g: System network status changed to ONLINE 시스템 네트워크 상태가 %1 로 변경되었습니다. - + ONLINE 온라인 - + OFFLINE 오프라인 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - %1 네트워크 설정이 변경 되었습니다, 활동 기간 묶음 갱신중 + %1 네트워크 설정이 변경 되었습니다, 활동 기간 묶음 새로고침중 - + Unable to decode '%1' torrent file. '%1' 토렌트 파일을 해독할 수 없습니다. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 중복 다운 '%2' 의 토렌트 에는 '%1' 의 파일이 포함되어 있습니다. - + Couldn't save '%1.torrent' '%1.torrent' 를 저장할 수 없습니다. - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 이 비활성화 되었기때문입니다. - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 이 비활성화 되었기때문입니다. - + URL seed lookup failed for URL: '%1', message: %2 URL 배포를 찾을 수 없습니다; '%1', 메시지: %2 @@ -1027,178 +1015,164 @@ '%1'이(가) 전송 목록에서 제거되었습니다. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1'을(를) 받는중입니다. 기다려주세요... - Torrent Export: torrent is invalid, skipping... - 토렌트 내보내기 : 토렌트 인식 불가능, 건너뛰는중... - - - + DHT support [ON] DHT 지원[켜짐] - + DHT support [OFF]. Reason: %1 DHT 지원[꺼짐]. 원인: %1 - + DHT support [OFF] DHT 지원 [꺼짐] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - 큐빗 토렌트가 모든 인터페이스 포트에서 수신을 시도합니다: %1 + 큐빗토렌트가 모든 인터페이스 포트에서 수신을 시도합니다: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - 큐빗 토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2 - - - + The network interface defined is invalid: %1 정의된 네트워크 인터페이스가 잘못되었습니다: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - 큐빗 토렌트가 인터페이스 %1 포트: %2 에서 수신을 시도합니다 + 큐빗토렌트가 인터페이스 %1 포트: %2 에서 수신을 시도합니다 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - 큐빗 토렌트가 수신할 지역주소 %1 을 찾지 못했습니다 + 큐빗토렌트가 수신할 지역주소 %1 을 찾지 못했습니다 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - 큐빗 토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2. {1.?} + 큐빗토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2. - + Tracker '%1' was added to torrent '%2' '%2' 토렌트에 추적기 '%1' 이추가되었습니다 - + Tracker '%1' was deleted from torrent '%2' - 트래커 '%1' 이(가) '%2' 토렌트 에서 삭제되었습니다. + 추적기 '%1' 이(가) '%2' 토렌트 에서 삭제되었습니다. - + URL seed '%1' was added to torrent '%2' '%2' 토렌트에 '%1' URL 배포가 추가되었습니다 - + URL seed '%1' was removed from torrent '%2' 토렌트 '%2' 에서 URL 배포 '%1' 이 삭제되었습니다 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 토렌트 재개 불가 '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - 제공된 IP 필터에 의해 성공적으로 분석되었습니다: %1 규칙들이 적용 되었습니다. + 제공된 IP 필터에 의해 분석되었습니다: %1 규칙들이 적용 되었습니다. - + Error: Failed to parse the provided IP filter. 오류: 제공된 IP 필터에 의한 분석이 실패했습니다. - + Couldn't add torrent. Reason: %1 - 토렌트를 추가할 수 없습니다. 이유: %1 + 토렌트를 추가할 수 없습니다. 원인: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - '%1' 를 받습니다. (빠른 받기) + '%1' 를 받습니다. (빠른 재개) - + '%1' added to download list. 'torrent name' was added to download list. '%1' 이 내려받기 목록에 추가되었습니다. - + An I/O error occurred, '%1' paused. %2 입출력 오류가 발생해서 '%1'이 정지되었습니다. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: 포트 제작 실패, 메시지: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: 포트 제작 성공, 메시지: %1 - + due to IP filter. this peer was blocked due to ip filter. - IP 거름망 때문. + IP 거름기 때문. - + due to port filter. this peer was blocked due to port filter. 포트 필터에 의해 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p 혼합 모드 제한에 의해 - + because it has a low port. this peer was blocked because it has a low port. 하위 포트를 가지고 있기 때문에 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 큐빗토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 성공했습니다 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - 큐빗 토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 실패했습니다. 이유: %4. {1 ?} {2/%3.?} + 큐빗토렌트가 인터페이스 %1 포트%2/%3 에서 수신이 실패했습니다. 원인: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - 큐빗 토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 실패했습니다. 이유: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 외부 IP: %1 @@ -1209,17 +1183,17 @@ Could not move torrent: '%1'. Reason: %2 - 토렌트 '%1' 를 이동할수 없습니다. 이유: %2 + 토렌트 '%1' 를 이동할수 없습니다. 원인: %2 - + File sizes mismatch for torrent '%1', pausing it. 토렌트 '%1' 의 파일 크기가 불일치 하여, 정지되었습니다. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - 토렌트 '%1' 의 빠른 재개 결정이 거절되었습니다. 이유: %2. 다시 검사 하는 중... + 토렌트 '%1' 의 빠른 재개 결정이 거절되었습니다. 원인: %2. 다시 검사 하는중... @@ -1242,7 +1216,7 @@ - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. 쿠키의 공통 키는 다음과 같습니다: '%1', '%2'. @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS 피드 - + Unread 읽지 않음 @@ -1338,7 +1312,7 @@ You should get this information from your Web browser preferences. Parsing Error: The filter file is not a valid PeerGuardian P2B file. - 분석 오류: PeerGuardian P2B 파일은 올바른 거름기 파일이 아닙니다. + 분석 오류: 불완전체 공유자Guardian P2B 파일은 올바른 거름기 파일이 아닙니다. @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line 한 줄에 고리 한개씩 - - Download local torrent - 지역 토렌트 받기 - Download @@ -1424,27 +1394,27 @@ You should get this information from your Web browser preferences. Global upload rate limit must be greater than 0 or disabled. - 전역 올리기 비율 제한은 0보다 높아야 하며, 0일 경우 제한하지 않습니다. + 전역 올리기 비율 제한은 0보다 높거나 비활성화 되어야합니다. Global download rate limit must be greater than 0 or disabled. - 전역 내려 받기 비율 제한은 0보다 높아야 하며, 0일 경우 제한하지 않습니다. + 전역 내려 받기 비율 제한은 0보다 높거나 비활성화 되어야합니다. Alternative upload rate limit must be greater than 0 or disabled. - 대안 올리기 비율 제한은 0보다 높아야 하며, 0일 경우 제한하지 않습니다. + 대안 올리기 비율 제한은 0보다 높거나 비활성화 되어야합니다. Alternative download rate limit must be greater than 0 or disabled. - 대안 내려 받기 비율 제한은 0보다 높아야 하며, 0일 경우 제한하지 않습니다. + 대안 내려 받기 비율 제한은 0보다 높거나 비활성화 되어야합니다. Maximum active downloads must be greater than -1. - 최대 활성화 다운로드는 -1보다 커야합니다. + 최대 활성화 내려받기는 -1보다 커야합니다. @@ -1474,7 +1444,7 @@ You should get this information from your Web browser preferences. Unable to save program preferences, qBittorrent is probably unreachable. - 설정을 저장할 수 없습니다. 큐빗 토렌트가 연결할 수 없습니다. + 설정을 저장할 수 없습니다. 큐빗토렌트가 연결할 수 없습니다. @@ -1494,7 +1464,7 @@ You should get this information from your Web browser preferences. Unable to log in, qBittorrent is probably unreachable. - 로그인 할 수 없습니다. 큐빗 토렌트에 도달 할 수 없는것 같습니다. + 로그인 할 수 없습니다. 큐빗토렌트에 도달 할 수 없는것 같습니다. @@ -1554,12 +1524,12 @@ You should get this information from your Web browser preferences. Downloading - 받는 중 + 받는중 Seeding - 배포 중 + 배포중 @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - 파일 저장 위치: + 파일 저장 위치: Label: - 라벨: + 라벨: Cookie: + 쿠키: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? 받기 완료됨 @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + 지역 파일 올리기 @@ -1640,7 +1620,7 @@ You should get this information from your Web browser preferences. qBittorrent client is not reachable - 큐빗 토렌트 클라이언트에 도달할 수 없습니다 + 큐빗토렌트 클라이언트에 도달할 수 없습니다 @@ -1665,7 +1645,7 @@ You should get this information from your Web browser preferences. qBittorrent has been shutdown. - 큐빗 토렌트가 종료되었습니다. + 큐빗토렌트가 종료되었습니다. @@ -1772,7 +1752,7 @@ You should get this information from your Web browser preferences. Clear - 비우기 + 지우기 @@ -1810,17 +1790,17 @@ You should get this information from your Web browser preferences. &Options... - 옵션...(&O) + 선택사항...(&O) &Resume - 시작(&R) + 재개(&R) Torrent &Creator - 토렌트 생성자(&C) + 토렌트 생성기(&C) @@ -1901,7 +1881,7 @@ You should get this information from your Web browser preferences. L&ock qBittorrent - 큐빗 토렌트 잠금(&O) + 큐빗토렌트 잠금(&O) @@ -1931,7 +1911,7 @@ You should get this information from your Web browser preferences. &Exit qBittorrent - 큐빗 토렌트 종료(&E) + 큐빗토렌트 종료(&E) @@ -1951,7 +1931,7 @@ You should get this information from your Web browser preferences. &Disabled - 사용안함(&D) + 비활성화됨(&D) @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About 정보(&A) - - Exit - 종료 - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit 끝내기(&X) - - Options - 옵션 - - - Resume - 재개 - - - Pause - 일시정지 - - - Delete - 삭제 - Open URL @@ -2040,18 +2000,14 @@ You should get this information from your Web browser preferences. - + Show 표시 - + Check for program updates - 프로그램 새로 고침 확인 - - - Lock qBittorrent - 큐빗 토렌트 잠금 + 프로그램 판올림을 확인 @@ -2061,399 +2017,404 @@ You should get this information from your Web browser preferences. If you like qBittorrent, please donate! - 큐빗 토렌트가 좋다면 기부해주세요! + 큐빗토렌트가 좋다면 기부해주세요! - + Execution Log 실행 기록 - + Clear the password - 암호 비우기 + 암호 지우기 - + Filter torrent list... 토렌트 목록 거름기... - + &Set Password 암호 입력(&S) - + &Clear Password 암호 지우기(&C) - + Transfers 전송 - + Torrent file association 토렌트 파일 연결 - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - 큐빗 토렌트가 토렌트 파일과 자석망 고리의 기본 프로그램으로 지정되지 않았습니다. -큐빗 토렌트를 토렌트 파일과 자석망 고리에 연결하시겠습니까? + 큐빗토렌트가 토렌트 파일과 자석망 고리의 기본 프로그램으로 지정되지 않았습니다. +큐빗토렌트를 토렌트 파일과 자석망 고리에 연결하시겠습니까? - + Icons Only 아이콘만 - + Text Only 텍스트만 - + Text Alongside Icons 아이콘 옆에 텍스트 - + Text Under Icons 아이콘 아래 텍스트 - + Follow System Style 시스템 스타일을 따름 - - - + + + UI lock password UI 잠금 암호 - - - + + + Please type the UI lock password: UI 잠금 암호를 입력해주세요: - + The password should contain at least 3 characters 암호는 최소 3자 이상이야 합니다 - + Password update - 암호 새로 고침 + 암호 판올림 - + The UI lock password has been successfully updated - UI 잠금 암호를 새로 고침 하였습니다 + UI 잠금 암호를 판올림 하였습니다 - + Are you sure you want to clear the password? 암호를 지우시겠습니까? - + Search 검색 - + Transfers (%1) 전송 (%1) - + Error 오류 - + Failed to add torrent: %1 토렌트 추가 실패: %1 - + Download completion 내려받기 완료 - + I/O Error i.e: Input/Output Error 입출력 오류 - + Recursive download confirmation 토렌트 내의 토렌트 내려받기 확인 - + Yes - + No 아니오 - + Never 절대 안함 - + Global Upload Speed Limit - 전체 올리기 속도 제한 + 전역 올리기 속도 제한 - + Global Download Speed Limit - 전체 받기 속도 제한 + 전역 받기 속도 제한 - + &No 아니오(&N) - + &Yes 예(&Y) - + &Always Yes 항상 예(&A) - + Python found in %1 %1 에서 파이선이 발견됨 - + Old Python Interpreter 오래된 파이썬 해석기 - + qBittorrent Update Available 큐토렌트의 새로운 버전을 사용 가능함 - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version 이미 큐빗토렌트의 최신 버전을 사용중입니다 - + Undetermined Python version 알 수 없는 파이썬 버전 - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' 의 내려받기가 완료되었습니다. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. 토렌트 '%1' 에서 입출력 오류가 발생했습니다. - 이유: %2 + 원인: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? 토렌트 '%1' 가 .torrent 파일을 포함하고 있습니다. 이 파일로 내려받기를 진행하시겠습니까? - + Couldn't download file at URL '%1', reason: %2. - 파일을 다운로드 할 수 없습니다. URL: %1, 원인: %2 + 파일을 내려받기 할 수 없습니다. URL: %1, 원인: %2 - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - 파이썬 버전 %1 은 오래되었습니다. 검색 엔진이 작동하려면 최신 버전으로 판올림 하십시오. 최소 요구 사항 : 2.7.0 / 3.3.0. + 파이썬 버전 %1 은 오래되었습니다. 검색 엔진이 작동하려면 최신 버전으로 판올림 하십시오. 최소 요구 사항: 2.7.0 / 3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - 파이썬 버전 (% 1)을 확인할 수 없습니다. 검색 엔진을 사용할 수 없습니다. + 파이썬 버전 (% 1)을 확인할 수 없습니다. 검색 엔진을 비활성화 합니다. - - + + Missing Python Interpreter 파이썬 번역 해석기가 없습니다 - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? 파이썬은 검색 엔진을 사용하는 데 필요하지만 설치가 안된것 같습니다. 지금 설치 하시겠습니까? - + Python is required to use the search engine but it does not seem to be installed. 파이썬은 검색 엔진을 사용하는 데 필요하지만 설치가 안된것 같습니다. - A new version is available. Update to version %1? - 새로운 버전이 이용가능합니다. -%1으로 새로 고침 하시겠습니까? + 새로운 버전이 이용가능합니다. +%1으로 판올림 하시겠습니까? - + No updates available. You are already using the latest version. 새로운 버전이 없습니다. 이미 새로운 버전을 사용중입니다. - + &Check for Updates 새로운 버전을 검사하기(&C) - + Checking for Updates... 새로운 버전을 검사중... - + Already checking for program updates in the background - 이미 백그라운드로 프로그램 새로 고침을 확인중입니다 + 이미 백그라운드로 프로그램 판올림을 확인중입니다 - + Python found in '%1' '%1' 에서 파이썬이 발견됨 - + Download error 내려받기 오류 - + Python setup could not be downloaded, reason: %1. Please install it manually. 파이썬 설치 파일을 내러받기를 할 수 없습니다, 원인: %1. 수동으로 설치 하십시요. - - + + Invalid password 잘못된 암호 - - + + RSS (%1) RSS (%1) - + URL download error URL 내려받기 오류 - + The password is invalid 암호가 올바르지 않습니다 - - + + DL speed: %1 e.g: Download speed: 10 KiB/s 내려받기 속도: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s 올리기 속도: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - [D: %1, U: %2] 큐빗 토렌트 %3 + [D: %1, U: %2] 큐빗토렌트 %3 - + Hide 숨김 - + Exiting qBittorrent - 큐빗 토렌트 종료 + 큐빗토렌트 종료 - + Some files are currently transferring. Are you sure you want to quit qBittorrent? 파일이 현재 전송중입니다. -큐빗 토렌트를 종료하겠습니까? +큐빗토렌트를 종료하겠습니까? - + Open Torrent Files 토렌트 파일 열기 - + Torrent Files 토렌트 파일 - + Options were saved successfully. - 옵션이 성공적으로 저장되었습니다. + 선택사항이 저장되었습니다. Net::DNSUpdater - + Your dynamic DNS was successfully updated. - 당신의 동적 DNS가 성공적으로 업데이트 되었습니다. + 당신의 동적 DNS가 업데이트 되었습니다. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 동적 DNS 오류: 서비스가 잠시 불가능합니다. 30분후에 재시도할것입니다. - + Dynamic DNS error: hostname supplied does not exist under specified account. 동적 DNS 오류: 제공받은 호스트명이 특정 계정에 존재하지 않습니다. @@ -2463,32 +2424,32 @@ Are you sure you want to quit qBittorrent? 동적 DNS 오류: 잘못된 사용자명/암호입니다. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - 동적 DNS 오류 : 큐빗토렌트는 이 서비스를 블랙리스트에 올렸습니다. http://bugs.qbittorrent.org에 버그를 신고 해주세요. + 동적 DNS 오류: 큐빗토렌트는 이 서비스를 블랙리스트에 올렸습니다. http://bugs.qbittorrent.org에 버그를 신고 해주세요. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 동적 DNS 오류: %1이 서비스에서 반송되었습니다. http://bugs.qbittorrent.org에 버그를 신고해주세요. - + Dynamic DNS error: Your username was blocked due to abuse. 동적 DNS 오류: 당신의 사용자명이 악용되어 차단되었습니다. - + Dynamic DNS error: supplied domain name is invalid. 동적 DNS 오류: 제공받는 도메인 이름이 잘못되었습니다. - + Dynamic DNS error: supplied username is too short. 동적 DNS 오류: 제공받은 사용자명은 너무 짧습니다. - + Dynamic DNS error: supplied password is too short. 동적 DNS 오류: 제공받은 암호가 너무 짧습니다. @@ -2503,166 +2464,173 @@ Are you sure you want to quit qBittorrent? The file size is %1. It exceeds the download limit of %2. - 파일 크기는 %1 입니다. 2% 의 다운로드 한도가 초과하였습니다. + 파일 크기는 %1 입니다. 2% 의 내려받기 한도가 초과하였습니다. Unexpected redirect to magnet URI. - + 자석망 URI로 예기치 않은 넘겨주기 입니다. Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + 지오IP 데이터베이스가 불러오기되었습니다. 유형: 1%. 구축항목: %2 - + Couldn't load GeoIP database. Reason: %1 - GeoIP 데이터베이스를 불러올 수 없습니다. 이유: %1 + 지오IP 데이터베이스를 불러올 수 없습니다. 원인: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A 해당 없음 - Asia/Pacific Region - 아시아/태평양 지역 + 아시아/태평양 지역 + + + Europe + 유럽 - Europe - 유럽 - - - Andorra 안도라 - + United Arab Emirates 아랍에미리트 - + Afghanistan 아프가니스탄 - + Antigua and Barbuda 앤티가 바부다 - + Anguilla 앵귈라 - + Albania 알바니아 - + Armenia 아르메니아 - Netherlands Antilles - 네덜란드령 안틸리스 제도 + 네덜란드령 안틸리스 제도 - + Angola 앙고라 - + Antarctica 남극 - + Argentina 아르헨티나 - + American Samoa 아메리칸사모아 - + Austria 오스트리아 - + Australia 오스트레일리아 - + Aruba 아루바 - + Azerbaijan 아제르바이잔 - + Bosnia and Herzegovina 보스니아 헤르체고비나 - + Barbados 바베이도스 - + Bangladesh 방글라데시 - + Belgium 벨기에 - + Burkina Faso 부르키나파소 - + Bulgaria 불가리아 - + Bahrain 바레인 - + Burundi 부룬디 - + Benin 베냉 @@ -2677,1139 +2645,1189 @@ Are you sure you want to quit qBittorrent? 브루나이 - Bolivia - 볼리비아 + 볼리비아 - + Brazil 브라질 - + Bahamas 바하마 - + Bhutan 부탄 - + Bouvet Island 부베 섬 - + Botswana 보츠와나 - + Belarus 벨라루스 - + Belize 벨리즈 - + Canada 캐나다 - + Cocos (Keeling) Islands 코코스 제도 - + Congo, The Democratic Republic of the 콩고 민주 공화국 - + Central African Republic 중앙아프리카 공화국 - + Congo 콩고 - + Switzerland 스위스 - Cote D'Ivoire - 코트디부아르 + 코트디부아르 - + Cook Islands 쿡 제도 - + Chile 칠레 - + Cameroon 카메룬 - + China 중국 - + Colombia 콜롬비아 - + Costa Rica 코스타리카 - + Cuba 쿠바 - + Cape Verde 카보베르데 - + + Curacao + + + + Christmas Island 크리스마스 섬 - + Cyprus 키프로스 - + Czech Republic 체코 - + Germany 독일 - + Djibouti 지부티 - + Denmark 덴마크 - + Dominica 도미니카 연방 - + Dominican Republic 도미니카 공화국 - + Algeria 알제리 - + Ecuador 에콰도르 - + Estonia 에스토니아 - + Egypt 이집트 - + Western Sahara 서사하라 - + Eritrea 에리트레아 - + Spain 스페인 - + Ethiopia 에티오피아 - + Finland 핀란드 - + Fiji 피지 - + Falkland Islands (Malvinas) 포클랜드 제도(말비나스 군도) - + Micronesia, Federated States of 미크로네시아 연방 - + Faroe Islands 페로 제도 - + France 프랑스 - France, Metropolitan - 프랑스 본토 + 프랑스 본토 - + Gabon 가봉 - + United Kingdom 영국 - + Grenada 그레나다 - + Georgia 조지아 - + French Guiana 프랑스령 기아나 - + Ghana 가나 - + Gibraltar 지브롤터 - + Greenland 그린란드 - + Gambia 감비아 - + Guinea 기니 - + Guadeloupe 과들루프 - + Equatorial Guinea 적도 기니 - + Greece 그리스 - + South Georgia and the South Sandwich Islands 사우스조지아 사우스샌드위치 제도 - + Guatemala 과테말라 - + Guam - + Guinea-Bissau 기니비사우 - + Guyana 가이아나 - + Hong Kong 홍콩 - + Heard Island and McDonald Islands 허드 맥도널드 제도 - + Honduras 온두라스 - + Croatia 크로아티아 - + Haiti 아이티 - + Hungary 헝가리 - + Indonesia 인도네시아 - + Ireland 아일랜드 섬 - + Israel 이스라엘 - + India 인도 - + British Indian Ocean Territory 영국령 인도양 지역 - + Iraq 이라크 - + Iran, Islamic Republic of 이란 - + Iceland 아이슬란드 - + Italy 이탈리아 - + Jamaica 자메이카 - + Jordan 요르단 - + Japan 일본 - + Kenya 케냐 - + Kyrgyzstan 키르기스스탄 - + Cambodia 캄보디아 - + Kiribati 키리바시 - + Comoros 코모로 - + Saint Kitts and Nevis 세인트키츠 네비스 - + Korea, Democratic People's Republic of 북한 - + Korea, Republic of 대한민국 - + Kuwait 쿠웨이트 - + Cayman Islands 케이맨 제도 - + Kazakhstan 카자흐스탄 - + Lao People's Democratic Republic 라오스 - + Lebanon 레바논 - + Saint Lucia 세인트루시아 - + Liechtenstein 리히텐슈타인 - + Sri Lanka 스리랑카 - + Liberia 라이베리아 - + Lesotho 레소토 - + Lithuania 리투아니아 - + Luxembourg 룩셈부르크 - + Latvia 라트비아 - Libyan Arab Jamahiriya - 리비아 + 리비아 - + Morocco 모로코 - + Monaco 모나코 - + Moldova, Republic of 몰도바 - + Madagascar 마다가스카르 - + Marshall Islands 마셜 제도 - Macedonia - 마케도니아 공화국 + 마케도니아 공화국 - + Mali 말리 - + Myanmar 미얀마 - + Mongolia 몽골 - Macau - 마카오 + 마카오 - + Northern Mariana Islands 북마리아나 제도 - + Martinique 마르티니크 - + Mauritania 모리타니 - + Montserrat 몬세라트 - + Malta 몰타 - + Mauritius 모리셔스 - + Maldives 몰디브 - + Malawi 말라위 - + Mexico 멕시코 - + Malaysia 말레이시아 - + Mozambique 모잠비크 - + Namibia 나미비아 - + New Caledonia 누벨칼레도니 - + Niger 니제르 - + Norfolk Island 노퍽 섬 - + Nigeria 나이지리아 - + Nicaragua 니카라과 - + Netherlands 네덜란드 - + Norway 노르웨이 - + Nepal 네팔 - + Nauru 나우루 - + Niue 니우에 - + New Zealand 뉴질랜드 - + Oman 오만 - + Panama 파나마 - + Peru 페루 - + French Polynesia 프랑스령 폴리네시아 - + Papua New Guinea 파푸아 뉴기니 - + Philippines 필리핀 - + Pakistan 파키스탄 - + Poland 폴란드 - + Saint Pierre and Miquelon 생피에르 미클롱 - Pitcairn Islands - 핏케언 제도 + 핏케언 제도 - + Puerto Rico 푸에르토리코 - Palestinian Territory - 팔레스타인 영토 + 팔레스타인 영토 - + Portugal 포르투갈 - + Palau 팔라우 - + Paraguay 파라과이 - + Qatar 카타르 - + Reunion 레위니옹 - + Romania 루마니아 - + Russian Federation 러시아 - + Rwanda 르완다 - + Saudi Arabia 사우디아라비아 - + Solomon Islands 솔로몬 제도 - + Seychelles 세이셸 - + Sudan 수단 - + Sweden 스웨덴 - + Singapore 싱가포르 - Saint Helena - 세인트헬레나 + 세인트헬레나 - + Slovenia 슬로베니아 - + Svalbard and Jan Mayen 스발바르 얀마옌 제도 - + Slovakia 슬로바키아 - + Sierra Leone 시에라리온 - + San Marino 산마리노 - + Senegal 세네갈 - + Somalia 소말리아 - + Suriname 수리남 - + Sao Tome and Principe 상투메 프린시페 - + El Salvador 엘살바도르 - + Syrian Arab Republic 시리아 - + Swaziland 스와질란드 - + Turks and Caicos Islands 터크스 케이커스 제도 - + Chad 차드 - + French Southern Territories 프랑스령 남방 및 남극 - + Togo 토고 - + Thailand 태국 - + Tajikistan 타지키스탄 - + Tokelau 토켈라우 - + Turkmenistan 투르크메니스탄 - + Tunisia 튀니지 - + Tonga 통가 - + Timor-Leste 동티모르 - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey 터키 - + Trinidad and Tobago 트리니다드 토바고 - + Tuvalu 투발루 - + Taiwan 대만 - + Tanzania, United Republic of 탄자니아 - + Ukraine 우크라이나 - + Uganda 우간다 - + United States Minor Outlying Islands 미국령 군소 제도 - + United States 미국 - + Uruguay 우루과이 - + Uzbekistan 우즈베키스탄 - + Holy See (Vatican City State) 교황청 (바티칸) - + Saint Vincent and the Grenadines 세인트빈센트 그레나딘 - Venezuela - 베네수엘라 + 베네수엘라 - + Virgin Islands, British 영국령 버진아일랜드 - + Virgin Islands, U.S. 미국령 버진아일랜드 - Vietnam - 베트남 + 베트남 - + Vanuatu 바누아투 - + Wallis and Futuna 왈리스 퓌튀나 - + Samoa 사모아 - + Yemen 예멘 - + Mayotte 마요트 - + Serbia 세르비아 - + South Africa 남아프리카 공화국 - + Zambia 잠비아 - + Montenegro 몬테네그로 - + Zimbabwe 짐바브웨 - Anonymous Proxy - 익명 프록시 + 익명 프록시 - Satellite Provider - 위성 공급자 + 위성 공급자 - Other - 기타 + 기타 - + Aland Islands 올란드 제도 - + Guernsey 건지 섬 - + Isle of Man 맨 섬 - + Jersey 저지 섬 - + Saint Barthelemy 생바르텔레미 - Saint Martin - 세인트 마틴 + 세인트 마틴 - + Could not uncompress GeoIP database file. - + 지오IP 데이터베이스 파일의 압축을 풀 수 없습니다. - + Couldn't save downloaded GeoIP database file. - + 내려받은 지오IP 데이터베이스 파일을 저장할 수 없습니다. - + Successfully updated GeoIP database. - + 지오IP 데이터베이스를 판올림 하였습니다. - + Couldn't download GeoIP database file. Reason: %1 - + 지오IP 데이터베이스 파일을 내려받기 할 수 없습니다. 원인: %1 @@ -3838,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - 관심있음(지역), 혼잡함(공유자) + 관심있음(지역), 혼잡함(불완전체 공유자) interested(local) and unchoked(peer) - 관심있음(지역), 혼잡하지 않음(공유자) + 관심있음(지역), 혼잡하지 않음(불완전체 공유자) interested(peer) and choked(local) - 관심있음(공유자), 혼잡함(지역) + 관심있음(불완전체 공유자), 혼잡함(지역) interested(peer) and unchoked(local) - 관심있음(공유자), 혼잡하지 않음(지역) + 관심있음(불완전체 공유자), 혼잡하지 않음(지역) optimistic unchoke - 낙관적으로 혼잡하지 않음 + 낙관적으로 혼잡하지 않음 peer snubbed - 공유자가 거절함 + 불완전체 공유자가 거절함 incoming connection - 수신 연결 + 수신 연결 not interested(local) and unchoked(peer) - 관심없음(지역), 혼잡하지 않음(공유자) + 관심없음(지역), 혼잡하지 않음(불완전체 공유자) not interested(peer) and unchoked(local) - 관심없음(공유자), 혼잡하지 않음(지역) + 관심없음(불완전체 공유자), 혼잡하지 않음(지역) peer from PEX - PEX 공유자 + PEX 불완전체 공유자 peer from DHT - DHT 공유자 + DHT 불완전체 공유자 encrypted traffic - 암호화된 트래픽 + 암호화된 트래픽 encrypted handshake - 암호화된 핸드쉐이크 + 암호화된 핸드쉐이크 peer from LSD - LSD 공유자 + LSD 불완전체 공유자 @@ -3944,7 +3962,7 @@ Are you sure you want to quit qBittorrent? Down Speed i.e: Download speed - 받기 속도 + 내려받기 속도 @@ -3971,145 +3989,95 @@ Are you sure you want to quit qBittorrent? 관련성 - - Add a new peer... - 새로운 공유자 추가... + + Files + i.e. files that are being downloaded right now + - + + Add a new peer... + 새로운 불완전체 공유자 추가... + + + Copy selected 선택 항목 복사 - - + + Ban peer permanently - 공유자 영구 추방 + 불완전체 공유자 영구 추방 - + Manually adding peer '%1'... - 공유자 '%1' 을(를) 직접 추가하기... + 불완전체 공유자 '%1' 을(를) 수동으로 추가하기... - + The peer '%1' could not be added to this torrent. - + 불완전체 공유자 %1 은(는) 이 토렌트에 추가 될 수 없습니다. - + Manually banning peer '%1'... - 공유자 '%1' 을(를) 직접 추방하기... + 불완전체 공유자 '%1' 을(를) 수동으로 추방하기... - - + + Peer addition - 공유자 추가 + 불완전체 공유자 추가 - + Some peers could not be added. Check the Log for details. - + 일부 불완전체 공유자는 추가 될 수 없습니다. 자세한 내용은 로그를 확인하십시오. - + The peers were added to this torrent. - 이 공유자는 이 토렌트에 추가 되었습니다. - - - - Are you sure you want to ban permanently the selected peers? - 선택된 공유자를 영구적으로 추방하시겠습니까? + 이 불완전체 공유자는 이 토렌트에 추가 되었습니다. + Are you sure you want to ban permanently the selected peers? + 선택된 불완전체 공유자를 영구적으로 추방하시겠습니까? + + + &Yes 예(&Y) - + &No 아니오(&N) - - interested(local) and choked(peer) - 관심있음(지역), 혼잡함(공유자) - - - interested(local) and unchoked(peer) - 관심있음(지역), 혼잡하지 않음(공유자) - - - interested(peer) and choked(local) - 관심있음(공유자), 혼잡함(지역) - - - interested(peer) and unchoked(local) - 관심있음(공유자), 혼잡하지 않음(지역) - - - optimistic unchoke - 낙관적으로 혼잡하지 않음 - - - peer snubbed - 공유자가 거절함 - - - incoming connection - 수신 연결 - - - not interested(local) and unchoked(peer) - 관심없음(지역), 혼잡하지 않음(공유자) - - - not interested(peer) and unchoked(local) - 관심없음(공유자), 혼잡하지 않음(지역) - - - peer from PEX - PEX 공유자 - - - peer from DHT - DHT 공유자 - - - encrypted traffic - 암호화된 트래픽 - - - encrypted handshake - 암호화된 핸드쉐이크 - - - peer from LSD - LSD 공유자 - PeersAdditionDlg No peer entered - 공유자가 입력되지 않음 + 불완전체 공유자가 입력되지 않음 Please type at least one peer. - 적어도 하나의 공유자를 입력하십시오. + 적어도 하나의 불완전체 공유자를 입력하십시오. Invalid peer - 잘못된 공유자 + 잘못된 불완전체 공유자 The peer '%1' is invalid. - '%1' 은 잘못된 공유자입니다. + '%1' 은(는) 잘못된 불완전체 공유자입니다. @@ -4125,6 +4093,203 @@ Are you sure you want to quit qBittorrent? 파란색: 사용할 수 있는 부분 + + PluginSelectDlg + + + Search plugins + 검색 플러그인 + + + + Installed search plugins: + + + + + Name + 이름 + + + + Version + 버전 + + + + Url + URL + + + + + Enabled + 활성화됨 + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 새로운 검색 플러그인은 다음 고리에서 받을 수 있습니다: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + 새로운 플러그인 설치 + + + + Check for updates + 판올림 확인 + + + + Close + 닫기 + + + + Uninstall + 프로그램 삭제하기 + + + + + + Yes + + + + + + + + No + 아니오 + + + + Uninstall warning + 프로그램 삭제 경고 + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + 일부 플러그인은 큐빗토렌트에 포함되서 프로그램 삭제 될 수 없습니다. 사용자가 직접 설치한 플러그인만 제거할 수 있습니다. +이러한 플러그인들은 "비활성화" 되었습니다. + + + + Uninstall success + 프로그램 삭제 완료 + + + + All selected plugins were uninstalled successfully + 선택된 모든 플러그인들이 제거 되었습니다 + + + + + New search engine plugin URL + 새로운 검색엔진 플러그인 URL + + + + + URL: + URL: + + + + Invalid link + 잘못된 고리 + + + + The link doesn't seem to point to a search engine plugin. + 검색 엔진 플러그인에서 고리를 찾을 수 없습니다. + + + + Select search plugins + 검색 플러그인을 선택하십시오 + + + + qBittorrent search plugin + 큐빗토렌트 검색 플러그인 + + + + + + Search plugin update + 검색 플러그인 판올림 + + + + All your plugins are already up to date. + 모든 플러그인이 최신버젼입니다. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + 검색 플러그인 설치 + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + 플러그인 소스 + + + + Search plugin source: + 검색엔진 플러그인 소스: + + + + Local file + 지역 파일 + + + + Web link + 웹 고리 + + Preferences @@ -4155,13 +4320,13 @@ Are you sure you want to quit qBittorrent? (Requires restart) - (다시 시작해야함) + (다시 시작 필요함) Use alternating row colors In transfer list, one every two rows will have grey background. - 각 행마다 구별하기 쉽게 색입히기 + 각 줄마다 구별하기 쉽게 색입히기 @@ -4181,89 +4346,89 @@ Are you sure you want to quit qBittorrent? 완료되지 않은 파일에 .!qB 확장자 추가 - + Copy .torrent files to: .torrent를 여기로 복사하기: - + Connections Limits 연결 수 제한 - + Proxy Server 프록시 서버 - + Global Rate Limits - 전체 비율 제한 + 전역 비율 제한 - + Apply rate limit to transport overhead 전송 오버헤드에 비율 제한 적용하기 - + Schedule the use of alternative rate limits 대체 속도 제한에 예약 사용 - + From: from (time1 to time2) - + 에서??: - + To: time1 to time2 - + 까지:?? - + Enable Local Peer Discovery to find more peers - 더 많은 공유자를 찾기 위해 지역 공유자 검색 활성화 + 더 많은 불완전체 공유자를 찾기 위해 지역 불완전체 공유자 검색 활성화 - + Encryption mode: 암호화 방식: - + Prefer encryption 암호화 선호 - + Require encryption 암호화 요청 - + Disable encryption - 비암호화 + 암호화 비활성화 - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">부가 정보</a>) - + Maximum active downloads: 최대 활성 받기 수: - + Maximum active uploads: 최대 활성 올리기 수: - + Maximum active torrents: 최대 활성 토렌트: @@ -4288,94 +4453,94 @@ Are you sure you want to quit qBittorrent? 토렌트 내용과 선택사항을 보이기 - + Run external program on torrent completion - + 토렌트 완료시 외부 프로그램 실행 - + Port used for incoming connections: 송신 연결 포트: - + Random 무작위 - + Global maximum number of connections: - 전체 최대 연결 수: + 전역 최대 연결 수: - + Maximum number of connections per torrent: 토렌트당 최대 연결 수: - + Maximum number of upload slots per torrent: 토렌트당 최대 올리기 수: - - + + Upload: 올리기: - - + + Download: 내려받기: - - - - + + + + KiB/s KiB/초 - + Remove folder 퐅더 제거 - + Every day 매일 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - 호환되는 비트토렌트 클라이언트(µTorrent, Vuze 등)와 공유자 교환하기 + 호환되는 비트토렌트 클라이언트(µTorrent, Vuze 등)와 불완전체 공유자 교환하기 - + Host: 호스트: - + SOCKS4 SOCKS4 - + Type: 종류: Options - 옵션 + 선택사항 Action on double-click - 더블 클릭시 동작 + 두번 클릭시 동작 @@ -4406,18 +4571,18 @@ Are you sure you want to quit qBittorrent? Start qBittorrent minimized - 큐빗 토렌트를 최소화하여 시작 + 큐빗토렌트를 최소화하여 시작 Minimize qBittorrent to notification area - 큐빗 토렌트 최소화시 알림 알림 영역으로 숨김 + 큐빗토렌트 최소화시 알림 알림 영역으로 숨김 Close qBittorrent to notification area i.e: The systray tray icon will still be visible when closing the main window. - 큐빗 토렌트 닫을시 알림 알림 영역으로 숨김 + 큐빗토렌트 닫을시 알림 알림 영역으로 숨김 @@ -4452,12 +4617,12 @@ Are you sure you want to quit qBittorrent? Confirm when deleting torrents - + 토렌트를 삭제할때 확인 Start qBittorrent on Windows start up - 윈도우 기동시 큐빗 토렌트 시작 + 윈도우 시작시 큐빗토렌트 시작 @@ -4467,7 +4632,7 @@ Are you sure you want to quit qBittorrent? Show qBittorrent in notification area - 알림 영역에 큐빗 토렌트 아이콘 표시 + 알림 영역에 큐빗토렌트 아이콘 표시 @@ -4477,12 +4642,12 @@ Are you sure you want to quit qBittorrent? Use qBittorrent for .torrent files - .torrent 파일에 큐빗 토렌트를 사용하기 + .torrent 파일에 큐빗토렌트를 사용하기 Use qBittorrent for magnet links - 자석망 고리에 큐빗 토렌트를 사용하기 + 자석망 고리에 큐빗토렌트를 사용하기 @@ -4536,262 +4701,262 @@ Are you sure you want to quit qBittorrent? 다음 경로에 있는 토렌트를 자동으로 추가: - + Add folder... 폴더 추가... - + Copy .torrent files for finished downloads to: 받기 완료된 .torrent 파일을 여기로 복사하기: - + Email notification upon download completion 받기 완료시 이메일로 알림 - + Destination email: 대상 전자우편: - + SMTP server: SMTP 서버: - + This server requires a secure connection (SSL) 이 서버는 보안된 접속이 필요합니다 (SSL) - + Listening Port 수신 포트 - + Use UPnP / NAT-PMP port forwarding from my router 내 라우터에서 UPnp / NAT-PMP 포트 포워딩 사용 - + Use different port on each startup 시작할 때마다 다른 포트 사용 - + Global maximum number of upload slots: - 전체 최대 올리기 수: + 전역 최대 올리기 수: - + Otherwise, the proxy server is only used for tracker connections 그렇지만, 프록시 서버는 추적기 연결에만 사용됩니다 - + Use proxy for peer connections - 공유자 연결에 프록시 사용 + 불완전체 공유자 연결에 프록시 사용 - + Disable connections not supported by proxies - 프록시가 지원하지않는 연결을 해제하기 - - - - Use proxy only for torrents - + 프록시가 지원하지않는 연결을 비활성화 - RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Use proxy only for torrents + 토렌트에 프록시만 사용 - + + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection + RSS 피드, 검색 엔진, 소프트웨어 판올림 또는 그밖에 토렌트 전송 또는 관련된 조작(불완전체 공유자 교환과 같은)은 직접 연결을 사용합니다 + + + Info: The password is saved unencrypted 정보: 암호가 암호화되지 않고 저장되었습니다. - + IP Filtering IP 걸러내는중 - + Reload the filter 거름기 다시 읽기 - + Apply to trackers 추적기 적용 - + Apply rate limit to peers on LAN - + LAN에 있는 불완전체 공유자에 속도 제한을 적용 - + When: 요일: - + Weekdays - + 주중 - + Weekends - + 주말 - + Rate Limits Settings - + 속도 제한 설정 - + Enable µTP protocol - + μ토렌트 프로토콜을 활성화 - + Apply rate limit to µTP protocol - + μ토렌트 프로토콜에 속도 제한을 적용 - + Privacy 개인 정보 보호 - + Enable DHT (decentralized network) to find more peers - 더 많은 공유자를 찾기 위해 DHT (분산 네트워크) 활성화 + 더 많은 불완전체 공유자를 찾기 위해 DHT (분산 네트워크) 활성화 - + Enable Peer Exchange (PeX) to find more peers - 더 많은 공유자들을 찾기 위해 공유자 교환(PeX) 활성화 + 더 많은 불완전체 공유자들을 찾기 위해 공유자 교환(PeX) 활성화 - + Look for peers on your local network - 지역 네트워크상의 공유자 찾기 + 지역 네트워크상의 불완전체 공유자 찾기 - + Enable when using a proxy or a VPN connection 프록시나 VPN연결을 사용할때 사용하기 - + Enable anonymous mode 익명 모드 사용 - + Do not count slow torrents in these limits 느린 토렌트는 이 제한에 집계하지 않음 - + Seed torrents until their ratio reaches 토렌트 배포 비율이 - + then 에 도달하면 - + Pause them 정지 - + Remove them 제거 - + Automatically add these trackers to new downloads: - + 이러한 추적기를 자동으로 새로운 내려받기에 추가 : - + Use UPnP / NAT-PMP to forward the port from my router 내 라우터의 UPnP / NAT-PMP 포트 포워드를 사용하기 - + Use HTTPS instead of HTTP HTTP 대신에 HTTPS 사용 - + Import SSL Certificate SSL 인증서 가져오기 - + Import SSL Key SSL 키 가져오기 - + Certificate: 인증서: - + Alternative Rate Limits - + 대체 속도 제한 - + Key: 키: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>인증서에 대한 정보</a> - + Bypass authentication for localhost 지역 호스트를 위한 인증 우회 - + Update my dynamic domain name - 내 동적 도메인 이름 갱신 + 내 동적 도메인 이름을 판올림 하기 - + Service: 서비스: - + Register 등록(가입) - + Domain name: 도메인 이름: - + (None) (없음) @@ -4801,78 +4966,78 @@ Are you sure you want to quit qBittorrent? 비트 토렌트 - + HTTP HTTP - - + + Port: 포트: - - - + + + Authentication 인증 - - - - + + + + Username: 사용자명: - - - - + + + + Password: 암호: - + Torrent Queueing 토렌트 대기중 - + Share Ratio Limiting 공유 비율 제한 - + Enable Web User Interface (Remote control) 웹 사용자 인터페이스 사용 (원격 제어) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): 거름기 경로(.dat, .p2p, .p2b): Detected unclean program exit. Using fallback file to restore settings. - + 부정한 프로그램이 감지되어 종료합니다. 설정을 복원 할 대체 파일을 사용합니다. An access error occurred while trying to write the configuration file. - + 구성 파일을 쓰는 동안 접근 오류가 발생했습니다. A format error occurred while trying to write the configuration file. - + 구성 파일을 쓰는 동안 형식 오류 발생했습니다. @@ -4955,7 +5120,7 @@ Are you sure you want to quit qBittorrent? Peers - 공유자 + 불완전체 공유자 @@ -5029,7 +5194,7 @@ Are you sure you want to quit qBittorrent? Peers: - 공유자: + 불완전체 공유자: @@ -5061,10 +5226,6 @@ Are you sure you want to quit qBittorrent? Comment: 설명: - - Torrent content: - 토렌트 내용: - Select All @@ -5166,13 +5327,13 @@ Are you sure you want to quit qBittorrent? %1 (%2 this session) - + %1(%2 현재 세션) %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (배포한지 %2)?? @@ -5269,7 +5430,7 @@ Are you sure you want to quit qBittorrent? qBittorrent - 큐빗 토렌트 + 큐빗토렌트 @@ -5348,7 +5509,7 @@ Are you sure you want to quit qBittorrent? You cannot use %1: qBittorrent is already running for this user. - %1 을 사용할 수 없습니다: 이 사용자로 큐빗 토렌트가 이미 실행 중입니다. + %1 을 사용할 수 없습니다: 이 사용자로 큐빗토렌트가 이미 실행중입니다. @@ -5358,7 +5519,7 @@ Are you sure you want to quit qBittorrent? Options: - 옵션: + 선택사항: @@ -5378,7 +5539,7 @@ Are you sure you want to quit qBittorrent? Disable splash screen - 분할 화면을 해제하기 + 분할 화면을 비활성화 @@ -5398,7 +5559,7 @@ Are you sure you want to quit qBittorrent? Run application with -h option to read about command line parameters. - 명령 줄 매개 변수를 읽으려면 옵션 -h 를 사용하여 응용프로그램을 실행하십시오. + 명령 줄 매개 변수를 읽으려면 선택사항 -h 를 사용하여 응용프로그램을 실행하십시오. @@ -5421,7 +5582,7 @@ Are you sure you want to quit qBittorrent? qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility. No further notices will be issued. - 큐빗 토렌트는 파일 공유 프로그램입니다. 토렌트를 실행하면, 그 데이터는 올리기의 수단으로서 다른 사람이 이용가능하게 됩니다. 어떠한 공유 내용물이라도 전적으로 귀하의 책임입니다. + 큐빗토렌트는 파일 공유 프로그램입니다. 토렌트를 실행하면, 그 데이터는 올리기의 수단으로서 다른 사람이 이용가능하게 됩니다. 어떠한 공유 내용물이라도 전적으로 귀하의 책임입니다. 더 이상 알림이 나타나지 않습니다. @@ -5479,7 +5640,7 @@ No further notices will be issued. The remote host name was not found (invalid hostname) - + 원격 호스트명을 찾을 수 없습니다 (잘못된 호스트명) @@ -5525,12 +5686,12 @@ No further notices will be issued. The connection to the proxy timed out or the proxy did not reply in time to the request sent - + 프록시 서버에 요청한 작업에 대한 회신을 받기 전에 연결 시간 초과됨 The proxy requires authentication in order to honor the request but did not accept any credentials offered - + 프록시는 요청을 존중하기 위해 인증이 필요하지만 제공하는 어떠한 자격도 수락하지 않았습니다 @@ -5588,30 +5749,30 @@ No further notices will be issued. 알 수 없는 오류 - - + + Upgrade 판 올림 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + 다르게 저장된 이전 버전에서 판올림 되었습니다. 새로운 저장 체제로 이주해야 합니다. 기존 방식을 계속 유지하시면, v3.3.0 보다 이전 버전을 사용할 수 없습니다. 계속하시겠습니까? [예/아니오] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + 다르게 저장된 이전 버전에서 판올림 되었습니다. 새로운 저장 체제로 이주해야 합니다. 기존 방식을 계속 유지하시면, v3.3.0 보다 이전 버전을 사용할 수 없습니다. - + Couldn't migrate torrent with hash: %1 - + 토렌트를 해시로 이주시킬수 없습니다: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 - + 토렌트를 이주시킬수 없습니다. 잘못된 빠른 재개 파일 이름: %1 @@ -5636,7 +5797,7 @@ No further notices will be issued. Update all - 전부 갱신 + 전부 판올림 @@ -5651,7 +5812,7 @@ No further notices will be issued. Torrents: (double-click to download) - + 토렌트: (내려받기하려면 두번 클릭) @@ -5673,7 +5834,7 @@ No further notices will be issued. Update - 갱신 + 판올림 @@ -5684,7 +5845,7 @@ No further notices will be issued. Update all feeds - 모든 피드 갱신 + 모든 피드 판올림 @@ -5704,7 +5865,7 @@ No further notices will be issued. New folder... - 새 폴더... + 새로운 폴더... @@ -5714,23 +5875,23 @@ No further notices will be issued. Refresh RSS streams - RSS 스트림 새로 고침 + RSS 스트림 새로고침 RSSImp - + Stream URL: 스트림 URL: - + Please type a RSS stream URL RSS 스트림 URL을 입력하십시오 - + This RSS feed is already in the list. 이 RSS 피드는 목록에 이미 있습니다. @@ -5750,75 +5911,92 @@ No further notices will be issued. 새로운 폴더 - + Deletion confirmation - + 삭제 확인 - + Are you sure you want to delete the selected RSS feeds? - + 선택한 RSS 공급을 삭제 하시겠습니까? - + Please choose a new name for this RSS feed RSS 피드에 사용할 새로운 이름을 입력하세요 - + New feed name: 새로운 피드 이름: - + Name already in use 이 이름은 이미 사용중입니다 - + This name is already used by another item, please choose another one. 이 이름은 이미 다른 항목이 사용하고 있습니다. 다른 이름을 사용하십시오. - + Date: 날짜: - + Author: 작성자: - + Unread 안 읽음 - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + RSS 피드 '%2' 에서 자동 내려받기 '%1' 에 실패했습니다. 토렌트나 자석망 포함하지 않기 때문입니다... - + Automatically downloading '%1' torrent from '%2' RSS feed... + '%1' 토렌트를 '%2' RSS 피드에서 자동으로 받는중... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + RSS 피드 '%2' 에서 자동 내려받기 '%1' 에 실패했습니다. 토렌트나 자석망 포함하지 않기 때문입니다... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + '%1' 토렌트를 '%2' RSS 피드에서 자동으로 받는중... + + RssParser - Failed to open downloaded RSS file. - 받은 RSS 파일를 여는데 실패했습니다. + 받은 RSS 파일를 여는데 실패했습니다. - Invalid RSS feed at '%1'. - + '%1' 에 RSS 피드가 올바르지 않습니다. @@ -5831,7 +6009,7 @@ No further notices will be issued. RSS feeds refresh interval: - RSS 피드 갱신 간격: + RSS 피드 새로고침 간격: @@ -5844,168 +6022,249 @@ No further notices will be issued. 피드당 최대 기사 수: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + 찾아보기... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder 주시할 폴더 - - Download here - 여기에 내려받기 + + Save Files to + + + + Download here + 여기에 내려받기 - Download path - + 내려받기 경로 SearchCategories - All categories - 모든 분류 + 모든 분류 - Movies - 영화 + 영화 - TV shows - 텔레비젼 쇼 + 텔레비젼 쇼 - Music - 음악 + 음악 - Games - 게임 + 게임 - Anime - 애니 + 애니 - Software - 유틸 + 유틸 - Pictures - 사진 + 사진 - Books - + SearchEngine - - - Search - 검색 + 검색 - Please install Python to use the Search Engine. - 검색 엔진을 사용하려면 파이썬을 설치 하십시오. + 검색 엔진을 사용하려면 파이썬을 설치 하십시오. - Empty search pattern - 검색 양식 비우기 + 검색 양식 비우기 - Please type a search pattern first - 검색 양식을 작성해주십시오 + 검색 양식을 작성해주십시오 - Searching... - 검색중... + 검색중... - Stop - 중지 + 정지 - - Search Engine - 검색 엔진 + 검색 엔진 - - Search has finished - 검색 완료 + 검색 완료 - An error occurred during search... - 검색 중 오류 발생... + 검색중 오류 발생... - - Search aborted - 검색이 중단됨 + 검색이 중단됨 - All enabled - 모두 활성화됨 + 모두 활성화됨 - All engines - 모든 엔진 + 모든 엔진 - - Multiple... - 여러개... + 여러개... - - Results <i>(%1)</i>: i.e: Search results + 결과 <i>(%1)</i>: + + + Search returned no results + 검색 결과가 없음 + + + Stopped + 정지됨 + + + + Unknown search engine plugin file format. - - Search returned no results - 검색 결과가 없음 + + A more recent version of this plugin is already installed. + - - Stopped - 정지됨 + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + 모든 분류 + + + + Movies + 영화 + + + + TV shows + 텔레비젼 쇼 + + + + Music + 음악 + + + + Games + 게임 + + + + Anime + 애니 + + + + Software + 유틸 + + + + Pictures + 사진 + + + + Books + SearchListDelegate - - + + Unknown 알 수 없음 @@ -6013,35 +6272,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name 이름 - + Size i.e: file size 크기 - + Seeders i.e: Number of full sources 배포자 - + Leechers i.e: Number of partial sources 공유자 - + Search engine 검색 엔진 + + SearchWidget + + + + + + + Search + 검색 + + + + Status: + 상태: + + + + + Stopped + 정지됨 + + + + Download + 받기 + + + + Go to description page + 설명 페이지로 가기 + + + + Copy description page URL + 설명 페이지 URL 을 복사 + + + + Search plugins... + + + + + All enabled + 모두 활성화됨 + + + + All plugins + + + + + + Multiple... + 여러개... + + + + + + Search Engine + 검색 엔진 + + + + Please install Python to use the Search Engine. + 검색 엔진을 사용하려면 파이썬을 설치 하십시오. + + + + Empty search pattern + 검색 양식 비우기 + + + + Please type a search pattern first + 검색 양식을 작성해주십시오 + + + + + Results <i>(%1)</i>: + i.e: Search results + 결과 <i>(%1)</i>: + + + + Searching... + 검색중... + + + + Stop + 정지 + + + + + Search has finished + 검색 완료 + + + + + Search aborted + 검색이 중단됨 + + + + Search returned no results + 검색 결과가 없음 + + + + Search has failed + + + + + An error occurred during search... + 검색중 오류 발생... + + ShutdownConfirmDlg @@ -6067,7 +6451,7 @@ No further notices will be issued. qBittorrent will now exit unless you cancel within the next %1 seconds. - 다음 %1 초 이내에 취소하지 않으면 큐빗 토렌트가 종료될 것입니다. + 다음 %1 초 이내에 취소하지 않으면 큐빗토렌트가 종료될 것입니다. @@ -6108,22 +6492,22 @@ No further notices will be issued. Payload Upload - + 유료 하중 올리기 Payload Download - + 유료 하중 내려받기 Overhead Upload - + 오버헤드?? 올리기 Overhead Download - + 오버헤드?? 내려받기 @@ -6166,47 +6550,47 @@ No further notices will be issued. 30 Minutes - 5 분 {30 ?} + 30 분 6 Hours - + 6 시간 Select Graphs - + 그래프를 선택 Total Upload - 전체 올리기 + 전체 올리기 Total Download - 전체 내려받기 + 전체 내려받기 Payload Upload - + 유료 하중 올리기 Payload Download - + 유료 하중 내려받기 Overhead Upload - + 오버헤드?? 올리기 Overhead Download - + 오버헤드?? 내려받기 @@ -6244,12 +6628,12 @@ No further notices will be issued. Total peer connections: - 전체 공유자 연결수: + 전체 불완전체 공유자 연결수: Global ratio: - 전체 비율: + 전역 비율: @@ -6340,12 +6724,12 @@ No further notices will be issued. qBittorrent needs to be restarted - 큐빗 토렌트를 다시 시작해야 합니다 + 큐빗토렌트를 다시 시작해야 합니다 qBittorrent was just updated and needs to be restarted for the changes to be effective. - 큐빗 토렌트가 방금 업데이트 되었으며 변경사항을 적용하려면 프로그램을 재시작 해야 합니다. + 큐빗토렌트가 방금 업데이트 되었으며 변경사항을 적용하려면 프로그램을 재시작 해야 합니다. @@ -6356,7 +6740,7 @@ No further notices will be issued. Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - 오프라인. 이것은 보통 큐빗 토렌트가 들어오는 연결을 선택된 포트로의 수신하지 못했음을 의미합니다. + 오프라인. 이것은 보통 큐빗토렌트가 들어오는 연결을 선택된 포트로의 수신하지 못했음을 의미합니다. @@ -6381,12 +6765,12 @@ No further notices will be issued. Global Download Speed Limit - 전체 받기 속도 제한 + 전역 받기 속도 제한 Global Upload Speed Limit - 전체 올리기 속도 제한 + 전역 올리기 속도 제한 @@ -6415,7 +6799,7 @@ No further notices will be issued. Resumed (0) - 재개 (0) + 재개됨 (0) @@ -6465,7 +6849,7 @@ No further notices will be issued. Resumed (%1) - 재개 (%1) + 재개됨 (%1) @@ -6480,30 +6864,34 @@ No further notices will be issued. Errored (%1) - + 오류남 (%1) TorrentContentModel - + Name 이름 - + Size 크기 - + Progress 진행상황 - + + Download Priority + + + Priority - 우선순위 + 우선순위 @@ -6536,13 +6924,13 @@ No further notices will be issued. Torrent Files (*.torrent) - + 토렌트 파일 (*.torrent) Torrent was created successfully: %1 %1 is the path of the torrent - + 토렌트가 생성되었습니다: %1 @@ -6554,7 +6942,7 @@ No further notices will be issued. Torrent creation was unsuccessful, reason: %1 - 토렌트 생성이 성공하지 못했습니다. 이유: %1 + 토렌트 생성이 성공하지 못했습니다. 원인: %1 @@ -6572,7 +6960,7 @@ No further notices will be issued. This assistant will help you share with qBittorrent a torrent that you have already downloaded. - 이 도움은 이미 받은 토렌트를 큐빗 토렌트로 공유를 돕습니다. + 이 도움은 이미 받은 토렌트를 큐빗토렌트로 공유를 돕습니다. @@ -6613,13 +7001,13 @@ No further notices will be issued. '%1' Files %1 is a file extension (e.g. PDF) - + '%1' 파일 Please provide the location of '%1' %1 is a file name - + '%1' 의 위치를 제공해주세요 @@ -6673,7 +7061,7 @@ No further notices will be issued. Peers i.e. partial sources (often untranslated) - 공유자 + 불완전체 공유자 @@ -6855,38 +7243,38 @@ No further notices will be issued. 경고 (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + URL '%1' 에 대한 파비콘을 해석 할 수 없습니다. PNG 형식으로 파비콘을 내려받기중입니다. - + Couldn't decode favicon for URL '%1'. - + URL '%1' 에 대한 파비콘을 해석 할 수 없습니다. - + Couldn't download favicon for URL '%1'. Reason: %2 - + URL '%1 ' 에 대한 파비콘을 내려받기 할 수 없습니다. 원인: %2 - + Resume torrents 토렌트 재개 - + Pause torrents 토렌트 일시정지 - + Delete torrents 토렌트 삭제 - - + + All (%1) this is for the tracker filter 전체 (%1) @@ -6907,7 +7295,7 @@ No further notices will be issued. Peers - 공유자 + 불완전체 공유자 @@ -6923,7 +7311,7 @@ No further notices will be issued. Disabled - 비활성화 + 비활성화됨 @@ -6933,7 +7321,7 @@ No further notices will be issued. Updating... - 갱신중... + 판올림중... @@ -7027,7 +7415,7 @@ No further notices will be issued. Error while trying to open the downloaded file. - 받은 파일을 여는 중 오류 발생. + 받은 파일을 여는중 오류 발생. @@ -7084,7 +7472,7 @@ No further notices will be issued. Seeding Torrent is complete and in upload-only mode - 공유중 + 배포중 @@ -7136,13 +7524,13 @@ No further notices will be issued. Errored torrent status, the torrent has an error - + 오류남 %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (완전체 배포한지 %2)?? @@ -7154,17 +7542,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status 상태 - + Labels 라벨 - + Trackers 추적기 @@ -7377,7 +7765,7 @@ No further notices will be issued. Use global ratio limit - 전체 비율 제한 사용하기 + 전역 비율 제한 사용하기 @@ -7420,7 +7808,7 @@ No further notices will be issued. Copyright %1 2006-2015 The qBittorrent project - 저작권 %1 2006-2015 큐빗 토렌트 프로젝트 + 저작권 %1 2006-2015 큐빗토렌트 프로젝트 @@ -7448,12 +7836,12 @@ No further notices will be issued. Add Peers - 공유자 추가 + 불완전체 공유자 추가 List of peers to add (one per line): - 추가할 공유자 목록 (한줄에 하나씩): + 추가할 불완전체 공유자 목록 (한줄에 하나씩): @@ -7505,7 +7893,7 @@ No further notices will be issued. Deletion confirmation - qBittorrent - 삭제 확인 - 큐빗 토렌트 + 삭제 확인 - 큐빗토렌트 @@ -7703,206 +8091,155 @@ No further notices will be issued. engineSelect - Search plugins - 검색 플러그인 + 검색 플러그인 - Installed search engines: - 설치된 검색엔진: + 설치된 검색엔진: - Name - 이름 + 이름 - Version - 버전 + 버전 - Url - URL + URL - - Enabled - 활성화됨 + 활성화됨 - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 새로운 검색 플러그인은 다음 고리에서 받을 수 있습니다: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 새로운 검색 플러그인은 다음 고리에서 받을 수 있습니다: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - 새로운 플러그인 설치 + 새로운 플러그인 설치 - Check for updates - 판올림 확인 + 판올림 확인 - Close - 닫기 + 닫기 - Uninstall - 프로그램 삭제하기 + 프로그램 삭제하기 engineSelectDlg - Uninstall warning - 프로그램 삭제 경고 + 프로그램 삭제 경고 - Uninstall success - 프로그램 삭제 완료 + 프로그램 삭제 완료 - Invalid plugin - 잘못된 플러그인 + 잘못된 플러그인 - The search engine plugin is invalid, please contact the author. - 잘못된 검색 엔진 플러그인입니다. 저자에게 문의 하십시오 + 잘못된 검색 엔진 플러그인입니다. 저자에게 문의 하십시오 - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - '%1' 검색 엔진 플러그인 의 최신 버전이 이미 설치되어 있습니다. + '%1' 검색 엔진 플러그인 의 최신 버전이 이미 설치되어 있습니다. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 판올림 되지 않았습니다. 예전 버전을 유지합니다. + '%1' 검색 엔진 플러그인이 판올림 되지 않았습니다. 예전 버전을 유지합니다. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 설치되지 않았습니다. + '%1' 검색 엔진 플러그인이 설치되지 않았습니다. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 판올림 되었습니다. + '%1' 검색 엔진 플러그인이 판올림 되었습니다. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 설치 되었습니다. + '%1' 검색 엔진 플러그인이 설치 되었습니다. - The link doesn't seem to point to a search engine plugin. - 검색 엔진 플러그인에서 고리를 찾을 수 없습니다. + 검색 엔진 플러그인에서 고리를 찾을 수 없습니다. - Select search plugins - 검색 플러그인을 선택하십시오 + 검색 플러그인을 선택하십시오 - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - 죄송합니다, '%1' 검색 플러그인 설치에 실패 했습니다. + 죄송합니다, '%1' 검색 플러그인 설치에 실패 했습니다. - - - - - Search plugin install - 검색 플러그인 설치 + 검색 플러그인 설치 - - - Yes - + - - - - No - 아니오 + 아니오 - qBittorrent search plugin - 큐빗 토렌트 검색 플러그인 + 큐빗토렌트 검색 플러그인 - - - - Search plugin update - 검색 플러그인 새로 고침 + 검색 플러그인 판올림 - - Sorry, update server is temporarily unavailable. - 죄송합니다. 현재 일시적으로 새로 고침 서버의 접속이 불가능합니다. + 죄송합니다. 현재 일시적으로 판올림 서버의 접속이 불가능합니다. - All your plugins are already up to date. - 모든 플러그인이 최신버젼입니다. + 모든 플러그인이 최신버젼입니다. - All selected plugins were uninstalled successfully - 선택된 모든 플러그인들이 성공적으로 제거 되었습니다 + 선택된 모든 플러그인들이 제거 되었습니다 - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 일부 플러그인은 큐빗 토렌트에 포함되서 프로그램 삭제 될 수 없습니다. 사용자가 직접 설치한 플러그인만 제거할 수 있습니다. -이러한 플러그인들은 "사용안함" 되었습니다. + 일부 플러그인은 큐빗토렌트에 포함되서 프로그램 삭제 될 수 없습니다. 사용자가 직접 설치한 플러그인만 제거할 수 있습니다. +이러한 플러그인들은 "비활성화" 되었습니다. - Invalid link - 잘못된 고리 + 잘못된 고리 - - New search engine plugin URL - 새로운 검색엔진 플러그인 URL + 새로운 검색엔진 플러그인 URL - - URL: - URL: + URL: @@ -7994,7 +8331,7 @@ Those plugins were disabled. qBittorrent will shutdown the computer now because all downloads are complete. - 큐빗 토렌트가 모든 내려받기를 완료했으므로 이제 시스템을 종료하겠습니다. + 큐빗토렌트가 모든 내려받기를 완료했으므로 이제 시스템을 종료하겠습니다. @@ -8016,7 +8353,7 @@ Those plugins were disabled. Updating... - 갱신중... + 판올림중... @@ -8032,169 +8369,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory 내보낼 폴더를 선택 - - - - + + + + Choose a save directory 파일을 저장할 경로를 선택 - + Add directory to scan 스캔 할 폴더 추가 - + Supported parameters (case sensitive): 지원되는 인자 (대소문자 구분): - + %N: Torrent name %N: 토렌트 이름 - + %L: Label %L: 라벨 - + %F: Content path (same as root path for multifile torrent) %F: 내용 경로 (여러 토렌트 파일의 같은 루트 경로) - + %R: Root path (first torrent subdirectory path) %R: 루트 경로 (토렌트의 처음 하위 디렉토리 경로) - + %D: Save path %D: 저장 경로 - + %C: Number of files %C: 파일 개수 - + %Z: Torrent size (bytes) %Z: 토렌트 크기 (바이트) - + %T: Current tracker %T: 현재 추적기 - + %I: Info hash %I: 정보 해쉬 - + Folder is already being watched. 선택한 폴더는 이미 스캔 목록에 포함되어 있습니다. - + Folder does not exist. 선택한 폴더는 존재하지 않습니다. - + Folder is not readable. 선택한 폴더를 읽을 수 없습니다. - + Failure 실패 - + Failed to add Scan Folder '%1': %2 폴더 추가 실패 '%1': %2 - - + + Filters 거름기 - - + + Choose an IP filter file IP 거름기 파일 선택하기 - + SSL Certificate SSL 인증서 - + SSL Key SSL 키 - + Parsing error 분석 오류 - + Failed to parse the provided IP filter - 제공된 IP 거름망으로부터 분석이 실패했습니다 + 제공된 IP 거름기로부터 분석이 실패했습니다 - + Successfully refreshed - 성공적으로 새로 고침 됨 + 새로고침 됨 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - 제공된 IP 거름기로부터 성공적으로 분석했습니다: %1개의 규칙이 적용되었습니다. + 제공된 IP 거름기로부터 분석했습니다: %1개의 규칙이 적용되었습니다. - + Invalid key 잘못된 키 - + This is not a valid SSL key. 이 SSL 키는 올바르지 않습니다. - + Invalid certificate 잘못된 인증서 - + This is not a valid SSL certificate. 이 SSL 인증서는 올바르지 않습니다. - + The start time and the end time can't be the same. 시작 시간과 종료 시간이 동일하지 않습니다. - + Time Error 시간 오류 @@ -8202,24 +8539,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - 플러그인 소스 + 플러그인 소스 - Search plugin source: - 검색엔진 플러그인 소스: + 검색엔진 플러그인 소스: - Local file - 지역 파일 + 지역 파일 - Web link - 웹 고리 + 웹 고리 @@ -8248,40 +8581,32 @@ Those plugins were disabled. search_engine - - Search - 검색 + 검색 - Status: - 상태: + 상태: - Stopped - 정지됨 + 정지됨 - Download - 받기 + 받기 - Go to description page - 설명 페이지로 가기 + 설명 페이지로 가기 - Copy description page URL - 설명 페이지 URL 을 복사 + 설명 페이지 URL 을 복사 - Search engines... - 검색 엔진... + 검색 엔진... diff --git a/src/lang/qbittorrent_lt.ts b/src/lang/qbittorrent_lt.ts index e4d0551e6..b0a44ee21 100644 --- a/src/lang/qbittorrent_lt.ts +++ b/src/lang/qbittorrent_lt.ts @@ -127,7 +127,7 @@ Set as default label - + Nustatyti kaip numatytąją etiketę @@ -175,172 +175,172 @@ Nesiųsti - - + + I/O Error I/O klaida - + The torrent file does not exist. Torento failas neegzistuoja. - + Invalid torrent Netaisyklingas torentas - + Failed to load the torrent: %1 Nepavyko įkelti torento: %1 - - + + Already in download list Jau yra siuntimų sąraše - + Free disk space: %1 Laisva vieta diske: %1 - + Not Available This comment is unavailable Neprieinama - + Not Available This date is unavailable Neprieinama - + Not available Neprieinama - + Invalid magnet link Netaisyklinga magnet nuoroda - + Torrent is already in download list. Trackers were merged. Torentas jau yra siuntimų sąraše. Seklių sąrašai buvo sulieti. - - + + Cannot add torrent Nepavyko pridėti torento - + Cannot add this torrent. Perhaps it is already in adding state. Nepavyko pridėti šio torento. Galbūt, jis jau yra pridėjimo būsenoje. - + This magnet link was not recognized Ši magnet nuoroda neatpažinta - + Magnet link is already in download list. Trackers were merged. Magnet nuoroda jau yra siuntimų sąraše. Seklių sąrašai buvo sulieti. - + Cannot add this torrent. Perhaps it is already in adding. Nepavyko pridėti šio torento. Galbūt, jis jau yra pridedamas. - + Magnet link Magnet nuoroda - + Retrieving metadata... Atsiunčiami metaduomenys... - + Not Available This size is unavailable. Neprieinama - - - + + + Choose save path Pasirinkite išsaugojimo vietą - + Rename the file Pervadinti failą - + New name: Naujas vardas: - - + + The file could not be renamed Failo pervadinti nepavyko - + This file name contains forbidden characters, please choose a different one. Šiame failo varde yra neleistinų simbolių, pasirinkite kitokį. - - + + This name is already in use in this folder. Please use a different name. Šis vardas šiame aplanke jau naudojamas. Pasirinkite kitokį vardą. - + The folder could not be renamed Aplanko pervadinti nepavyko - + Rename... Pervadinti... - + Priority Svarba - + Invalid metadata Netaisyklingi metaduomenys - + Parsing metadata... Analizuojami metaduomenys... - + Metadata retrieval complete Metaduomenų atsiuntimas baigtas - + Download Error Atsiuntimo Klaida @@ -431,10 +431,6 @@ Resolve peer host names Gauti siuntėjų stočių vardus - - Maximum number of half-open connections [0: Disabled] - Didžiausias pusiau atvirų prisijungimų kiekis[0: Išjungta] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Didžiausias pusiau atvirų prisijungimų skaičius [0: Neribotas] @@ -562,17 +558,17 @@ RSS Downloader - + RSS atsiuntimas Enable Automated RSS Downloader - + Įjungti automatizuotą RSS atsiuntimą Download Rules - + Atsiuntimo taisyklės @@ -618,7 +614,7 @@ days - dienų + dienų @@ -643,12 +639,12 @@ Apply Rule to Feeds: - + Taikyti taisyklę šiems kanalams: Matching RSS Articles - + Atitinkantys RSS įrašai @@ -661,205 +657,205 @@ &Eksportuoti... - + Matches articles based on episode filter. Atitinka, epizodų filtru pagrįstus, filtrus. - + Example: Pavyzdys: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match atitiks pirmojo sezono 2, 5, nuo 8 iki 15, 30 ir tolesnius epizodus - + Episode filter rules: Epizodų filtravimo taisyklės: - + Season number is a mandatory non-zero value Sezono numeris yra privaloma nenulinė reikšmė - + Episode number is a mandatory non-zero value Epizodo numeris yra privaloma nenulinė reikšmė - + Filter must end with semicolon Filtras privalo užsibaigti kabliataškiu - + Three range types for episodes are supported: Yra palaikomi trys epizodų rėžiai: - + Single number: <b>1x25;</b> matches episode 25 of season one Pavienis skaičius: <b>1x25;</b> atitinka 25, pirmojo sezono, epizodą - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normalus rėžis: <b>1x25-40;</b> atitinka pirmojo sezono epizodus nuo 25 iki 40 - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Begalinis rėžis: <b>1x25-;</b> atitinka pirmojo sezono epizodus nuo 25 ir toliau - + Last Match: %1 days ago Paskutinis atitikimas: prieš %1 dienų - + Last Match: Unknown Paskutinis atitikimas: Nežinoma - + New rule name Naujas taisyklės vardas - + Please type the name of the new download rule. Įveskite vardą naujai atsiuntimo taisyklei. - - + + Rule name conflict Taisyklių vardų nesuderinamumas - - + + A rule with this name already exists, please choose another name. Taisyklė tokiu vardu jau egzistuoja, pasirinkite kitokį vardą. - + Are you sure you want to remove the download rule named '%1'? Ar tikrai norite pašalinti atsiuntimo taisyklę, pavadinimu "%1"? - + Are you sure you want to remove the selected download rules? Ar tikrai norite pašalinti pasirinktas atsiuntimo taisykles? - + Rule deletion confirmation Taisyklių pašalinimo patvirtinimas - + Destination directory Išsaugojimo aplankas - + Invalid action Netinkamas veiksmas - + The list is empty, there is nothing to export. Sąrašas tuščias, nėra ką eksportuoti. - + Where would you like to save the list? Kur norėtumėte išsaugoti sąrašą? - + Rules list (*.rssrules) Taisyklių sąrašas (*.rssrules) - + I/O Error I/O klaida - + Failed to create the destination file Nepavyko sukurti išvesties failo - + Please point to the RSS download rules file Nurodykite kelią iki RSS atsiuntimo taisyklių failo - + Rules list Taisyklių sąrašas - + Import Error Įkėlimo klaida - + Failed to import the selected rules file Nepavyko įkelti nurodyto taisyklių failo - + Add new rule... Pridėti naują taisyklę... - + Delete rule Ištrinti taisyklę - + Rename rule... Pervadinti taisyklę... - + Delete selected rules Ištrinti pasirinktas taisykles - + Rule renaming Taisyklių pervadinimas - + Please type the new rule name Įveskite naują taisyklės vardą - + Regex mode: use Perl-like regular expressions Regex režimas: naudoti Perl stiliaus reguliariąsias išraiškas - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Pakaitos simbolių režimas: galite naudoti <ul><li>? vietoje vieno bet kokio simbolio</li><li>* vietoje nulio ar daugiau bet kokių simbolių</li><li>Tarpai laikomi logine operacija AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Pakaitos simbolių režimas: galite naudoti <ul><li>? vietoje vieno bet kokio simbolio</li><li>* vietoje nulio ar daugiau bet kokių simbolių</li><li>| naudojamas loginei operacijai ARBA</li></ul> @@ -874,7 +870,7 @@ HTTP User-Agent is '%1' - + HTTP naudotojo agentas yra "%1" @@ -952,65 +948,57 @@ "%1" pasiekė didžiausią jūsų nustatytą dalinimosi santykį. Pristabdoma... - Error: Could not create torrent export directory: '%1' - Klaida: Nepavyko sukurti torento eksportavimo katalogo: "%1" - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Klaida: nepavyko eksportuoti torento "%1", galbūt, jis dar neturi metaduomenų. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Sistemos tinklo būsena pasikeitė į %1 - + ONLINE PRISIJUNGTA - + OFFLINE ATSIJUNGTA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Nepavyko iškoduoti "%1" torento failo. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursyvus failo "%1", įdėto į torentą "%2", atsiuntimas - + Couldn't save '%1.torrent' Nepavyko išsaugoti "%1.torrent" - + because %1 is disabled. this peer was blocked because uTP is disabled. nes %1 yra išjungta. - + because %1 is disabled. this peer was blocked because TCP is disabled. nes %1 yra išjungta. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1027,178 +1015,164 @@ '%1' buvo pašalintas iš siuntimų sąrašo. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Atsiunčiamas '%1', luktelkite... - Torrent Export: torrent is invalid, skipping... - Torento Eksportavimas: netaisyklingas torentas, praleidžiama... - - - + DHT support [ON] DHT palaikymas [ĮJUNGTAS] - + DHT support [OFF]. Reason: %1 DHT palaikymas [IŠJUNGTAS]. Priežastis: %1 - + DHT support [OFF] DHT palaikymas [IŠJUNGTAS] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent bando klausytis ties visų įrenginių prievadu: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2 - - - + The network interface defined is invalid: %1 Ši tinklo sąsaja yra netinkama: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent bando klausytis ties įrenginio %1 prievadu: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorent nepavyko rasti %1 vietinio adreso klausymuisi - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2. {1.?} + qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2. - + Tracker '%1' was added to torrent '%2' Seklys '%1' buvo pridėtas prie torento '%2' - + Tracker '%1' was deleted from torrent '%2' Seklys '%1' buvo ištrintas iš torento '%2' - + URL seed '%1' was added to torrent '%2' URL šaltinis '%1' buvo pridėtas prie torento '%2' - + URL seed '%1' was removed from torrent '%2' URL šaltinis '%1' buvo pašalintas iš torento '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nepavyko pratęsti torento "%1". - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Nurodytas IP filtras sėkmingai įkeltas. %1 taisyklės pritaikytos. - + Error: Failed to parse the provided IP filter. Klaida: Nepavyko įkelti nurodyto IP filtro. - + Couldn't add torrent. Reason: %1 Nepavyko pridėti torento. Priežastis: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' buvo pratęstas (spartus pratęsimas) - + '%1' added to download list. 'torrent name' was added to download list. '%1' buvo pridėtas į siuntimų sąrašą. - + An I/O error occurred, '%1' paused. %2 Įvyko I/O klaida, '%1' pristabdytas. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Prievadų išdėstymas nesėkmingas, žinutė: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Prievadų išdėstymas sėkmingas, žinutė: %1 - + due to IP filter. this peer was blocked due to ip filter. dėl IP filtro. - + due to port filter. this peer was blocked due to port filter. dėl prievadų filtro. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. dėl i2p maišytos veiksenos apribojimų. - + because it has a low port. this peer was blocked because it has a low port. nes jo žemas prievadas. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent sėkmingai klausosi ties įrenginio %1 prievadu: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4. {1 ?} {2/%3.?} + qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Išorinis IP: %1 @@ -1212,12 +1186,12 @@ Nepavyko perkelti torento: '%1'. Priežastis: %2 - + File sizes mismatch for torrent '%1', pausing it. - + Failų dydžio nesutapimas torente "%1", jis pristabdomas. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Spartaus pratęsimo duomenys torentui "%1" buvo atmesti. Priežastis: %2. Tikrinama iš naujo... @@ -1242,7 +1216,7 @@ Reikšmė - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Dažnai pasitaikantys slapukų raktai yra: '%1'. '%2'. @@ -1255,7 +1229,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + Ar tikrai norite ištrinti "%1" iš siuntimų sąrašo? @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds - RSS srautai + RSS kanalai - + Unread Neskaityta @@ -1338,7 +1312,7 @@ You should get this information from your Web browser preferences. Parsing Error: The filter file is not a valid PeerGuardian P2B file. - + Analizavimo klaida: Filtrų failas nėra taisyklingas PeerGuardian P2B failas. @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line Po vieną nuorodą eilutėje - - Download local torrent - Atsiųsti vietinį torentą - Download @@ -1564,7 +1534,7 @@ You should get this information from your Web browser preferences. Completed - Užbaigta + Užbaigta @@ -1574,35 +1544,45 @@ You should get this information from your Web browser preferences. Paused - Pristabdyta + Pristabdyta Active - + Aktyvūs Inactive - + Neaktyvūs Save files to location: - Failus išsaugoti į: + Failus išsaugoti į: Label: - Etiketė: + Etiketė: Cookie: + Slapukas: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Atsiųstas @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About &Apie - - Exit - Išeiti - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit Iš&eiti - - Options - Parinktys - - - Resume - Tęsti - - - Pause - Pristabdyti - - - Delete - Ištrinti - Open URL @@ -2040,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show Rodyti - + Check for program updates Tikrinti, ar yra programos atnaujinimų - - Lock qBittorrent - Užrakinti qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ You should get this information from your Web browser preferences. - + Execution Log Vykdymo žurnalas - + Clear the password Išvalyti slaptažodį - + Filter torrent list... Filtruoti torentų sąrašą... - + &Set Password &Nustatyti slaptažodį - + &Clear Password &Išvalyti slaptažodį - + Transfers Siuntimai - + Torrent file association .torrent failų susiejimas - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent nėra numatytoji programa atverti .torrent failams bei Magnet nuorodoms. Ar norite susieti .torrent failus bei Magnet nuorodas su qBittorrent? - + Icons Only Tik Piktogramos - + Text Only Tik Tekstas - + Text Alongside Icons Tekstas Šalia Piktogramų - + Text Under Icons Tekstas Po Piktogramomis - + Follow System Style Sekti Sistemos Stilių - - - + + + UI lock password Vartotojo sąsajos užrakinimo slaptažodis - - - + + + Please type the UI lock password: Įveskite vartotojo sąsajos užrakinimo slaptažodį: - + The password should contain at least 3 characters Slaptažodį turi sudaryti bent 3 simboliai - + Password update Slaptažodžio atnaujinimas - + The UI lock password has been successfully updated Vartotojo sąsajos užrakinimo slaptažodis sėkmingai atnaujintas - + Are you sure you want to clear the password? Ar tikrai norite išvalyti slaptažodį? - + Search Paieška - + Transfers (%1) Siuntimai (%1) - + Error Klaida - + Failed to add torrent: %1 Nepavyko pridėti torento: %1 - + Download completion - Atsiuntimo užbaigimas + Atsiuntimas užbaigtas - + I/O Error i.e: Input/Output Error I/O klaida - + Recursive download confirmation Rekursyvaus siuntimo patvirtinimas - + Yes Taip - + No Ne - + Never Niekada - + Global Upload Speed Limit Globalus išsiuntimo greičio apribojimas - + Global Download Speed Limit Globalus atsiuntimo greičio apribojimas - + &No &Ne - + &Yes &Taip - + &Always Yes &Visada Taip - + Python found in %1 - + Python rasta kataloge %1 - + Old Python Interpreter Senas Python interpretatorius - + qBittorrent Update Available Yra prieinamas qBittorrent atnaujinimas - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Jau yra naudojama naujausia qBittorrent versija - + Undetermined Python version Nenustatyta Python versija - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. "%1" atsiuntimas užbaigtas. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Ar norite susieti .torrent failus bei Magnet nuorodas su qBittorrent? - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torente "%1" yra torentų failų. Ar norite atsisiųsti ir juos? - + Couldn't download file at URL '%1', reason: %2. Nepavyko atsisiųsti failo iš URL "%1", prežastis: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Jūsų Python versija %1 yra pasenusi. Kad veiktų paieškos sistemos, prašome atnaujinti iki naujausios versijos. Minimalūs reikalavimai: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Nepavyko nustatyti jūsų Python versijos (%1). Paieškos sistema išjungta. - - + + Missing Python Interpreter Nerastas Python Interpretatorius - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Norint naudoti paieškos sistemą, būtinas Python interpretatorius, tačiau neatrodo, jog jis būtų įdiegtas. Ar norite įdiegti jį dabar? - + Python is required to use the search engine but it does not seem to be installed. Norint naudoti paieškos sistemą, būtinas Python interpretatorius, tačiau neatrodo, jog jis būtų įdiegtas. - A new version is available. Update to version %1? - Yra prieinama nauja versija. + Yra prieinama nauja versija. Atsinaujinti iki versijos %1? - + No updates available. You are already using the latest version. Nėra prieinamų atnaujinimų. Jūs jau naudojate naujausią versiją. - + &Check for Updates &Tikrinti, ar yra atnaujinimų - + Checking for Updates... Tikrinama, ar yra atnaujinimų... - + Already checking for program updates in the background Šiuo metu fone jau ieškoma programos atnaujinimų... - + Python found in '%1' - + Python rasta kataloge "%1" - + Download error Atsiuntimo klaida - + Python setup could not be downloaded, reason: %1. Please install it manually. Python įdiegties atsiųsti nepavyko, priežastis: %1. Prašome padaryti tai rankiniu būdu. - - + + Invalid password Neteisingas slaptažodis - - + + RSS (%1) RSS (%1) - + URL download error URL atsiuntimo klaida - + The password is invalid Slaptažodis yra neteisingas - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Ats. greitis: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Išs. greitis: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [A: %1, I: %2] qBittorrent %3 - + Hide Slėpti - + Exiting qBittorrent Uždaroma qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Šiuo metu vyksta kelių failų siuntimas. Ar tikrai norite uždaryti qBittorrent? - + Open Torrent Files Atverti torentų failus - + Torrent Files Torentų failai - + Options were saved successfully. Parinktys sėkmingai išsaugotos. @@ -2443,17 +2404,17 @@ Ar tikrai norite uždaryti qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Jūsų dinamis DNS buvo sėkmingai atnaujintas. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dinaminio DNS klaida: Paslauga laikinai neprieinama, bus bandoma iš naujo po 30 minučių. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dinaminio DNS klaida: pateikto stoties vardo nurodytoje paskyroje nėra. @@ -2463,32 +2424,32 @@ Ar tikrai norite uždaryti qBittorrent? Dinaminio DNS klaida: Neteisingas vartotojo vardas/slaptažodis. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dinaminio DNS klaida: qBittorrent buvo uždraustas šioje paslaugoje, prašome apie klaidą pranešti adresu http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dinaminio DNS klaida: paslauga grąžino %1, prašome pranešti apie klaidą adresu http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Dinaminio DNS klaida: Jūsų vartotojo vardas buvo užblokuotas dėl netinkamo naudojimo. - + Dynamic DNS error: supplied domain name is invalid. Dinaminio DNS klaida: pateiktas domeno vardas yra netaisyklingas. - + Dynamic DNS error: supplied username is too short. Dinaminio DNS klaida: pateiktas vartotojo vardas yra per trumpas. - + Dynamic DNS error: supplied password is too short. Dinaminio DNS klaida: pateiktas slaptažodis yra per trumpas. @@ -2503,7 +2464,7 @@ Ar tikrai norite uždaryti qBittorrent? The file size is %1. It exceeds the download limit of %2. - + Failo dydis yra %1. Jis viršija %2 atsiuntimo ribą. @@ -2515,154 +2476,161 @@ Ar tikrai norite uždaryti qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP duomenų bazė įkelta. Tipas: %1. Sukūrimo laikas: %2. - + Couldn't load GeoIP database. Reason: %1 Nepavyko įkelti GeoIP duomenų bazės. Priežastis: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Nėra - Asia/Pacific Region - Azija/Ramiojo vandenyno regionas + Azija/Ramiojo vandenyno regionas + + + Europe + Europa - Europe - Europa - - - Andorra Andora - + United Arab Emirates Jungtiniai Arabų Emyratai - + Afghanistan Afganistanas - + Antigua and Barbuda Antigva ir Barbuda - + Anguilla Angilija - + Albania Albanija - + Armenia Armėnija - Netherlands Antilles - Nyderlandų Antilai + Nyderlandų Antilai - + Angola Angola - + Antarctica Antarktida - + Argentina Argentina - + American Samoa Amerikos Samoa - + Austria Austrija - + Australia Australija - + Aruba Aruba - + Azerbaijan Azerbaidžanas - + Bosnia and Herzegovina Bosnija ir Hercegovina - + Barbados Barbadosas - + Bangladesh Bangladešas - + Belgium Belgija - + Burkina Faso Burkina Fasas - + Bulgaria Bulgarija - + Bahrain Bahreinas - + Burundi Burundis - + Benin Beninas @@ -2677,1137 +2645,1171 @@ Ar tikrai norite uždaryti qBittorrent? Brunėjaus Darusalamas - Bolivia - Bolivija + Bolivija - + Brazil Brazilija - + Bahamas Bahamos - + Bhutan Butanas - + Bouvet Island Buvė sala - + Botswana Botsvana - + Belarus Baltarusija - + Belize Belizas - + Canada Kanada - + Cocos (Keeling) Islands Kokosų (Kilingo) salos - + Congo, The Democratic Republic of the Kongo Respublika - + Central African Republic Centrinės Afrikos Respublika - + Congo Kongas - + Switzerland Šveicarija - Cote D'Ivoire - Dramblio Kaulo Krantas + Dramblio Kaulo Krantas - + Cook Islands Kuko salos - + Chile Čilė - + Cameroon Kamerūnas - + China Kinija - + Colombia Kolumbija - + Costa Rica Kosta Rika - + Cuba Kuba - + Cape Verde Žaliasis Kyšulys - + + Curacao + + + + Christmas Island Kalėdų sala - + Cyprus Kipras - + Czech Republic Čekija - + Germany Vokietija - + Djibouti Džibutis - + Denmark Danija - + Dominica Dominika - + Dominican Republic Dominikos Respublika - + Algeria Alžyras - + Ecuador Ekvadoras - + Estonia Estija - + Egypt Egiptas - + Western Sahara Vakarų Sachara - + Eritrea Eritrėja - + Spain Ispanija - + Ethiopia Etiopija - + Finland Suomija - + Fiji Fidžis - + Falkland Islands (Malvinas) Folklando (Malvinų) salos - + Micronesia, Federated States of Mikronezijos Federacinės Valstijos - + Faroe Islands Farerų salos - + France Prancūzija - France, Metropolitan - Prancūzija, Metropolija + Prancūzija, Metropolija - + Gabon Gabonas - + United Kingdom Jungtinė Karalystė - + Grenada Grenada - + Georgia Gruzija - + French Guiana Prancūzijos Gviana - + Ghana Gana - + Gibraltar Gibraltaras - + Greenland Grenlandija - + Gambia Gambija - + Guinea Gvinėja - + Guadeloupe - + Gvadelupa - + Equatorial Guinea - + Greece Graikija - + South Georgia and the South Sandwich Islands - + Guatemala Gvatemala - + Guam - + Guamas - + Guinea-Bissau Bisau Gvinėja - + Guyana Gajana - + Hong Kong Honkongas - + Heard Island and McDonald Islands - + Honduras Hondūras - + Croatia Kroatija - + Haiti Haitis - + Hungary Vengrija - + Indonesia Indonezija - + Ireland Airija - + Israel Izraelis - + India Indija - + British Indian Ocean Territory - + Iraq Irakas - + Iran, Islamic Republic of Irano Islamo Respublika - + Iceland Islandija - + Italy Italija - + Jamaica Jamaika - + Jordan Jordanija - + Japan Japonija - + Kenya Kenija - + Kyrgyzstan Kirgizija - + Cambodia Kambodža - + Kiribati Kiribatis - + Comoros Komorai - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korėjos Liaudies Demokratinė Respublika - + Korea, Republic of Korėjos Respublika - + Kuwait Kuveitas - + Cayman Islands - + Kaimanų salos - + Kazakhstan Kazachstanas - + Lao People's Democratic Republic - + Laoso Liaudies Demokratinė Respublika - + Lebanon Libanas - + Saint Lucia - + Liechtenstein Lichtenšteinas - + Sri Lanka Šri Lanka - + Liberia Liberija - + Lesotho Lesotas - + Lithuania Lietuva - + Luxembourg Liuksemburgas - + Latvia Latvija - - Libyan Arab Jamahiriya - - - - + Morocco Marokas - + Monaco Monakas - + Moldova, Republic of Moldovos Respublika - + Madagascar Madagaskaras - + Marshall Islands Maršalo Salos - Macedonia - Makedonija + Makedonija - + Mali Malis - + Myanmar Mianmaras - + Mongolia Mongolija - Macau - Makao + Makao - + Northern Mariana Islands - + Martinique Martinika - + Mauritania Mauritanija - + Montserrat Montseratas - + Malta Malta - + Mauritius Mauricijus - + Maldives Maldyvai - + Malawi Malavis - + Mexico Meksika - + Malaysia Malaizija - + Mozambique Mozambikas - + Namibia Namibija - + New Caledonia Naujoji Kaledonija - + Niger Nigeris - + Norfolk Island Norfolko sala - + Nigeria Nigerija - + Nicaragua Nikaragva - + Netherlands Olandija - + Norway Norvegija - + Nepal Nepalas - + Nauru Nauru - + Niue Niujė - + New Zealand Naujoji Zelandija - + Oman Omanas - + Panama Panama - + Peru Peru - + French Polynesia Prancūzijos Polinezija - + Papua New Guinea Papua Naujoji Gvinėja - + Philippines Filipinai - + Pakistan Pakistanas - + Poland Lenkija - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico Puerto Rikas - Palestinian Territory - + Palestinos teritorija - + Portugal Portugalija - + Palau Palau - + Paraguay Paragvajus - + Qatar Kataras - + Reunion Reunionas - + Romania Rumunija - + Russian Federation Rusijos Federacija - + Rwanda Ruanda - + Saudi Arabia Saudo Arabija - + Solomon Islands Saliamono salos - + Seychelles Seišeliai - + Sudan Sudanas - + Sweden Švedija - + Singapore Singapūras - - Saint Helena - - - - + Slovenia Slovėnija - + Svalbard and Jan Mayen - + Slovakia Slovakija - + Sierra Leone Siera Leonė - + San Marino San Marinas - + Senegal Senegalas - + Somalia Somalis - + Suriname Surinamas - + Sao Tome and Principe San Tomė ir Prinsipė - + El Salvador Salvadoras - + Syrian Arab Republic - + Swaziland Svazilandas - + Turks and Caicos Islands - + Chad Čadas - + French Southern Territories - + Togo Togas - + Thailand Tailandas - + Tajikistan Tadžikija - + Tokelau Tokelau - + Turkmenistan Turkmėnija - + Tunisia Tunisas - + Tonga Tonga - + Timor-Leste Rytų Timoras - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turkija - + Trinidad and Tobago Trinidadas ir Tobagas - + Tuvalu Tuvalu - + Taiwan Taivanas - + Tanzania, United Republic of Tanzanijos Jungtinė Respublika - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands - + United States Jungtinės Valstijos - + Uruguay Urugvajus - + Uzbekistan Uzbekija - + Holy See (Vatican City State) - + Šventasis Sostas (Vatikano Miesto Valstybė) - + Saint Vincent and the Grenadines - Venezuela - Venesuela + Venesuela - + Virgin Islands, British - + Virgin Islands, U.S. - Vietnam - Vietnamas + Vietnamas - + Vanuatu Vanuatu - + Wallis and Futuna - + Samoa Samoa - + Yemen Jemenas - + Mayotte Majotas - + Serbia Serbija - + South Africa Pietų Afrika - + Zambia Zambija - + Montenegro Juodkalnija - + Zimbabwe Zimbabvė - Anonymous Proxy - + Anoniminis įgaliotasis serveris - - Satellite Provider - - - - Other - Kita + Kita - + Aland Islands - + Alandai - + Guernsey - + Gernsis - + Isle of Man Meno sala - + Jersey - + Saint Barthelemy - + Šv. Bartolomėjaus sala - Saint Martin - + Šv. Martyno sala - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. Nepavyko įrašyti atsiųsto GeoIP duomenų bazės failo. - + Successfully updated GeoIP database. GeoIP duomenų bazė sėkmingai atnaujinta. - + Couldn't download GeoIP database file. Reason: %1 Nepavyko atsisiųsti GeoIP duomenų bazės failo. Priežastis: %1 @@ -3838,72 +3840,72 @@ Ar tikrai norite uždaryti qBittorrent? interested(local) and choked(peer) - susidomėjęs(vietinis) ir prismaugtas(siuntėjas) + interested(local) and unchoked(peer) - susidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) + interested(peer) and choked(local) - susidomėjęs(siuntėjas) ir prismaugtas(vietinis) + interested(peer) and unchoked(local) - susidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) + optimistic unchoke - optimistiškai nebesmaugiamas + peer snubbed - siuntėjas ignoruojamas + siuntėjas ignoruojamas incoming connection - įeinantis prisijungimas + įeinantis prisijungimas not interested(local) and unchoked(peer) - nesusidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) + not interested(peer) and unchoked(local) - nesusidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) + peer from PEX - siuntėjas iš PEX + siuntėjas iš PEX peer from DHT - siuntėjas iš DHT + siuntėjas iš DHT encrypted traffic - šifruotas srautas + užšifruotas srautas encrypted handshake - užšifruotas pasisveikinimas + užšifruotas pasisveikinimas peer from LSD - siuntėjas iš LSD + siuntėjas iš LSD @@ -3971,123 +3973,73 @@ Ar tikrai norite uždaryti qBittorrent? Tinkamumas - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Pridėti siuntėją... - + Copy selected Kopijuoti pasirinktą - - + + Ban peer permanently Uždrausti siuntėją visam laikui - + Manually adding peer '%1'... Rankiniu būdu pridedamas siuntėjas "%1"... - + The peer '%1' could not be added to this torrent. Siuntėjo "%1" nepavyko pridėti prie šio torento. - + Manually banning peer '%1'... Rankiniu būdu uždraudžiamas siuntėjas "%1"... - - + + Peer addition Siuntėjo pridėjimas - + Some peers could not be added. Check the Log for details. Nepavyko pridėti kai kurių siuntėjų. Išsamesnei informacijai žiūrėkite žurnalą. - + The peers were added to this torrent. Siuntėjai buvo pridėti prie šio torento. - + Are you sure you want to ban permanently the selected peers? Ar tikrai norite visam laikui uždrausti pasirinktus siuntėjus? - + &Yes &Taip - + &No &Ne - - interested(local) and choked(peer) - susidomėjęs(vietinis) ir prismaugtas(siuntėjas) - - - interested(local) and unchoked(peer) - susidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) - - - interested(peer) and choked(local) - susidomėjęs(siuntėjas) ir prismaugtas(vietinis) - - - interested(peer) and unchoked(local) - susidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) - - - optimistic unchoke - optimistiškai nebesmaugiamas - - - peer snubbed - siuntėjas ignoruojamas - - - incoming connection - įeinantis prisijungimas - - - not interested(local) and unchoked(peer) - nesusidomėjęs(vietinis) ir nebesmaugiamas(siuntėjas) - - - not interested(peer) and unchoked(local) - nesusidomėjęs(siuntėjas) ir nebesmaugiamas(vietinis) - - - peer from PEX - siuntėjas iš PEX - - - peer from DHT - siuntėjas iš DHT - - - encrypted traffic - šifruotas srautas - - - encrypted handshake - užšifruotas pasisveikinimas - - - peer from LSD - siuntėjas iš LSD - PeersAdditionDlg @@ -4125,6 +4077,204 @@ Ar tikrai norite uždaryti qBittorrent? Mėlyna: Prieinamos dalys + + PluginSelectDlg + + + Search plugins + Ieškyklės + + + + Installed search plugins: + + + + + Name + Vardas + + + + Version + Versija + + + + Url + URL + + + + + Enabled + Įjungtas + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Naujų paieškos sistemų galite gauti čia: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Įdiegti naują + + + + Check for updates + Tikrinti, ar yra atnaujinimų + + + + Close + Uždaryti + + + + Uninstall + Pašalinti + + + + + + Yes + Taip + + + + + + + No + Ne + + + + Uninstall warning + Pašalinimo įspėjimas + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Kai kurių priedų nepavyko pašalinti, nes jie integruoti į qBittorrent. +Pašalinti galima tik tuos priedus, kuriuos pridėjote Jūs. +Tie priedai buvo išjungti. + + + + Uninstall success + Sėkmingai pašalinta + + + + All selected plugins were uninstalled successfully + Visi pasirinkti priedai buvo sėkmingai pašalinti + + + + + New search engine plugin URL + Naujos paieškos sistemos URL + + + + + URL: + URL: + + + + Invalid link + Netaisyklinga nuoroda + + + + The link doesn't seem to point to a search engine plugin. + Nepanašu, jog nuoroda rodytų į paieškos variklio priedą. + + + + Select search plugins + Pasirinkite paieškos priedus + + + + qBittorrent search plugin + qBittorrent paieškos priedas + + + + + + Search plugin update + Paieškos priedo atnaujinimas + + + + All your plugins are already up to date. + Visi priedai yra naujausios laidos. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Paieškos priedo įdiegimas + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Priedo šaltinis + + + + Search plugin source: + Ieškoti priedo šaltinio: + + + + Local file + Vietiniame faile + + + + Web link + Tinklo nuorodoje + + Preferences @@ -4181,89 +4331,89 @@ Ar tikrai norite uždaryti qBittorrent? Pridėti .!qB plėtinį nebaigtiems siųsti failams - + Copy .torrent files to: Kopijuoti .torrent failus į: - + Connections Limits Prisijungimų apribojimai - + Proxy Server Proxy serveris - + Global Rate Limits Globalus greičio ribojimas - + Apply rate limit to transport overhead Taikyti santykio apribojimą perdavimo lygio duomenims - + Schedule the use of alternative rate limits Planuoti alternatyvių greičio apribojimų naudojimą - + From: from (time1 to time2) Nuo: - + To: time1 to time2 - + Iki: - + Enable Local Peer Discovery to find more peers Įjungti vietinių siuntėjų aptikimą, kad rasti daugiau siuntėjų - + Encryption mode: Šifravimo veiksena: - + Prefer encryption Teikti pirmenybę šifravimui - + Require encryption Reikalauti šifravimo - + Disable encryption Išjungti šifravimą - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Plačiau</a>) - + Maximum active downloads: Didžiausias aktyvių atsiuntimų kiekis: - + Maximum active uploads: Didžiausias aktyvių išsiuntimų kiekis: - + Maximum active torrents: Didžiausias aktyvių torentų kiekis: @@ -4288,82 +4438,82 @@ Ar tikrai norite uždaryti qBittorrent? Rodyti torento turinį ir keletą parinkčių - + Run external program on torrent completion Užbaigus torento siuntimą, paleisti išorinę programą - + Port used for incoming connections: Prievadas, naudojamas įeinantiems sujungimams: - + Random Atsitiktinis - + Global maximum number of connections: Globalus didžiausias prisijungimų skaičius: - + Maximum number of connections per torrent: Didžiausias prisijungimų kiekis vienam torentui: - + Maximum number of upload slots per torrent: Didžiausias išsiuntimo prisijungimų kiekis vienam torentui: - - + + Upload: Išsiuntimo: - - + + Download: Atsiuntimo: - - - - + + + + KiB/s KiB/s - + Remove folder Pašalinti aplanką - + Every day Kasdien - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Keistis siuntėjais su suderinamais BitTorrent klientais (µTorrent, Vuze, ...) - + Host: Stotis: - + SOCKS4 SOCKS4 - + Type: Tipas: @@ -4396,7 +4546,7 @@ Ar tikrai norite uždaryti qBittorrent? Desktop - Darbastalis + Darbalaukis @@ -4536,262 +4686,262 @@ Ar tikrai norite uždaryti qBittorrent? Automatiškai pridėti torentus iš: - + Add folder... Pridėti aplanką... - + Copy .torrent files for finished downloads to: Kopijuoti baigtų atsiuntimų .torrent failus į: - + Email notification upon download completion Pabaigus atsiuntimą, pranešti el. paštu - + Destination email: Gavėjo el. pašto adresas: - + SMTP server: SMTP serveris: - + This server requires a secure connection (SSL) Šis serveris reikalauja saugaus susijungimo (SSL) - + Listening Port Klausymosi prievadas - + Use UPnP / NAT-PMP port forwarding from my router Naudoti UPnP / NAT-PMP prievadų nukreipimą mašrutizatoriuje - + Use different port on each startup Kiekvieno paleidimo metu naudoti skirtingą prievadą - + Global maximum number of upload slots: Globalus didžiausias leistinas išsiuntimo prisijungimų kiekis: - + Otherwise, the proxy server is only used for tracker connections Kitais atvejais proxy serveris naudojamas tik prisijungimams prie seklių - + Use proxy for peer connections Naudoti proxy susijungimams su siuntėjais - + Disable connections not supported by proxies Išjungti proxy serverių nepalaikomus ryšius - - - Use proxy only for torrents - - - RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Use proxy only for torrents + Naudoti proxy tik torentams - + + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection + RSS kanalai, paieškos sistemos, programinės įrangos atnaujinimai ar bet kas kita nei torentų persiuntimai ar su jais susijusios operacijos (pvz., apsikeitimai su kitais siuntėjais) naudos tiesioginį susijungimą + + + Info: The password is saved unencrypted Informacija: Slaptažodis yra išsaugomas nešifruotai - + IP Filtering IP filtravimas - + Reload the filter Įkelti filtrą iš naujo - + Apply to trackers Taikyti sekliams - + Apply rate limit to peers on LAN - + Taikyti greičio apribojimus siuntėjams LAN tinkle - + When: Kada: - + Weekdays - + Weekends - + Rate Limits Settings - + Greičio apribojimų nustatymai - + Enable µTP protocol Įjungti µTP protokolą - + Apply rate limit to µTP protocol Taikyti greičio apribojimus µTP protokolui - + Privacy Privatumas - + Enable DHT (decentralized network) to find more peers Įjungti DHT (išcentruotą tinklą), kad rasti daugiau siuntėjų - + Enable Peer Exchange (PeX) to find more peers Įjungti siuntėjų apsikeitimą (PeX), kad rasti daugiau siuntėjų - + Look for peers on your local network Ieškoti siuntėjų vietiniame tinkle - + Enable when using a proxy or a VPN connection Įgalinkite, naudodami proxy ar VPN ryšį - + Enable anonymous mode Įjungti anoniminę veikseną - + Do not count slow torrents in these limits Šiuose apribojimuose neįskaičiuoti lėtų torentų - + Seed torrents until their ratio reaches Skleisti torentus, kol jų dalinimosi santykis pasieks - + then o tada - + Pause them juos pristabdyti - + Remove them juos pašalinti - + Automatically add these trackers to new downloads: - + Į naujus atsiuntimus, automatiškai pridėti šiuos seklius: - + Use UPnP / NAT-PMP to forward the port from my router Naudoti UPnP / NAT-PMP, kad nukreipti prievadą iš maršrutizatoriaus - + Use HTTPS instead of HTTP Naudoti HTTPS vietoje HTTP - + Import SSL Certificate Įkelti SSL sertifikatą - + Import SSL Key Įkelti SSL raktą - + Certificate: Sertifikatas: - + Alternative Rate Limits - + Alternatyvūs greičio apribojimai - + Key: Raktas: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informacija apie sertifikatus</a> - + Bypass authentication for localhost Apeiti vietinio serverio autentifikaciją - + Update my dynamic domain name Atnaujinti mano dinaminį domeno vardą - + Service: Paslauga: - + Register Registruotis - + Domain name: Domeno vardas: - + (None) (jokio) @@ -4801,61 +4951,61 @@ Ar tikrai norite uždaryti qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Prievadas: - - - + + + Authentication Atpažinimas - - - - + + + + Username: Vartotojo vardas: - - - - + + + + Password: Slaptažodis: - + Torrent Queueing Siuntimų eilė - + Share Ratio Limiting Dalinimosi santykio ribojimas - + Enable Web User Interface (Remote control) Įjungti Tinklo vartotojo sąsają (nuotolinis valdymas) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Kelias iki filtro (.dat, .p2p, .p2b): @@ -4999,12 +5149,12 @@ Ar tikrai norite uždaryti qBittorrent? Time Active: Time (duration) the torrent is active (not paused) - + Aktyvus: ETA: - + Dar liko laukti: @@ -5014,7 +5164,7 @@ Ar tikrai norite uždaryti qBittorrent? Seeds: - + Skleidėjai: @@ -5061,10 +5211,6 @@ Ar tikrai norite uždaryti qBittorrent? Comment: Komentaras: - - Torrent content: - Torento turinys: - Select All @@ -5093,12 +5239,12 @@ Ar tikrai norite uždaryti qBittorrent? Reannounce In: - + Atnaujinama po: Last Seen Complete: - Paskutinį kartą matytas užbaigtu + Paskutinį kartą matytas užbaigtu: @@ -5160,7 +5306,7 @@ Ar tikrai norite uždaryti qBittorrent? %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 x %2 (turima %3) @@ -5172,7 +5318,7 @@ Ar tikrai norite uždaryti qBittorrent? %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (skleidžiama jau %2) @@ -5192,7 +5338,7 @@ Ar tikrai norite uždaryti qBittorrent? %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (vidut. %2) @@ -5587,28 +5733,28 @@ Daugiau nebus rodoma pranešimų apie tai. Nežinoma klaida - - + + Upgrade Atnaujinti - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Jūs atsinaujinote iš senesnės versijos, kuri kitaip išsaugodavo duomenis. Privalote persikelti į naują išsaugojimo sistemą. Jūs daugiau nebegalėsite naudoti senesnės nei v3.3.0 versijos. Tęsti? [t/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Jūs atsinaujinote iš senesnės versijos, kuri kitaip išsaugodavo duomenis. Privalote persikelti į naują išsaugojimo sistemą. Jeigu tęsite, jūs daugiau nebegalėsite naudoti senesnės nei v3.3.0 versijos. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5683,7 +5829,7 @@ Daugiau nebus rodoma pranešimų apie tai. Update all feeds - Atnaujinti visus srautus + Atnaujinti visus kanalus @@ -5698,7 +5844,7 @@ Daugiau nebus rodoma pranešimų apie tai. Copy feed URL - Kopijuoti srauto URL + Kopijuoti kanalo URL @@ -5719,19 +5865,19 @@ Daugiau nebus rodoma pranešimų apie tai. RSSImp - + Stream URL: Srauto URL: - + Please type a RSS stream URL Įveskite RSS srauto URL adresą - + This RSS feed is already in the list. - Šis RSS srautas jau yra sąraše. + Šis RSS kanalas jau yra sąraše. @@ -5749,75 +5895,92 @@ Daugiau nebus rodoma pranešimų apie tai. Naujas aplankas - + Deletion confirmation Pašalinimo patvirtinimas - + Are you sure you want to delete the selected RSS feeds? - + Ar tikrai norite ištrinti pasirinktus RSS kanalus? - + Please choose a new name for this RSS feed - Pasirinkite naują vardą šiam RSS srautui + Pasirinkite naują vardą šiam RSS kanalui - + New feed name: - Naujas srauto vardas: + Naujas kanalo vardas: - + Name already in use Šis vardas jau naudojamas - + This name is already used by another item, please choose another one. Šis vardas jau naudojamas, pasirinkite kitokį vardą. - + Date: Data: - + Author: Autorius: - + Unread Neskaityta - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatinis "%1" atsiuntimas iš "%2" RSS kanalo nepavyko, nes jame nėra torento ar magnet nuorodos... - + Automatically downloading '%1' torrent from '%2' RSS feed... + Automatiškai atsiunčiamas torentas "%1" torentas iš "%2" RSS kanalo... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Automatinis "%1" atsiuntimas iš "%2" RSS kanalo nepavyko, nes jame nėra torento ar magnet nuorodos... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Automatiškai atsiunčiamas torentas "%1" torentas iš "%2" RSS kanalo... + + RssParser - Failed to open downloaded RSS file. - Nepavyko atverti atsiųsto RSS failo. + Nepavyko atverti atsiųsto RSS failo. - Invalid RSS feed at '%1'. - Netaisyklingas RSS kanalas ties %1. + Netaisyklingas RSS kanalas ties %1. @@ -5830,7 +5993,7 @@ Daugiau nebus rodoma pranešimų apie tai. RSS feeds refresh interval: - RSS srautų atnaujinimo intervalas: + RSS kanalų atnaujinimo intervalas: @@ -5840,171 +6003,252 @@ Daugiau nebus rodoma pranešimų apie tai. Maximum number of articles per feed: - Didžiausias įrašų sraute kiekis: + Didžiausias įrašų kanale kiekis: + + + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Naršyti... + + + + Choose save path + Pasirinkite išsaugojimo vietą ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Stebimas aplankas - - Download here - Atsiųsti čia + + Save Files to + + + + Download here + Atsiųsti čia - Download path - + Atsiuntimo kelias SearchCategories - All categories - Visos kategorijos + Visos kategorijos - Movies - Filmai + Filmai - TV shows - TV laidos + TV laidos - Music - Muzika + Muzika - Games - Žaidimai + Žaidimai - Anime - Anime + Anime - Software - Programinė įranga + Programinė įranga - Pictures - Nuotraukos + Nuotraukos - Books - Knygos + Knygos SearchEngine - - - Search - Paieška + Paieška - Please install Python to use the Search Engine. - Norėdami naudoti paieškos sistemą, įdiekite Python. + Norėdami naudoti paieškos sistemą, įdiekite Python. - Empty search pattern - Tuščias paieškos raktažodis + Tuščias paieškos raktažodis - Please type a search pattern first - Visų pirma nurodykite paieškos raktažodį + Visų pirma nurodykite paieškos raktažodį - Searching... - Ieškoma... + Ieškoma... - Stop - Stabdyti + Stabdyti - - Search Engine - Paieškos variklis + Paieškos sistema - - Search has finished - Paieška baigta + Paieška baigta - An error occurred during search... - Paieškos metu įvyko klaida... + Paieškos metu įvyko klaida... - - Search aborted - Paieška nutraukta + Paieška nutraukta - All enabled - + Visos įjungtos - All engines - + Visos sistemos - - Multiple... - + Kelios... - - Results <i>(%1)</i>: i.e: Search results - Rezultatai <i>(%1)</i>: + Rezultatai <i>(%1)</i>: - Search returned no results - Paieška negrąžino rezultatų + Paieška negrąžino rezultatų - Stopped - Sustabdyta + Sustabdyta + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Visos kategorijos + + + + Movies + Filmai + + + + TV shows + TV laidos + + + + Music + Muzika + + + + Games + Žaidimai + + + + Anime + Anime + + + + Software + Programinė įranga + + + + Pictures + Nuotraukos + + + + Books + Knygos SearchListDelegate - - + + Unknown Nežinoma @@ -6012,33 +6256,158 @@ Daugiau nebus rodoma pranešimų apie tai. SearchTab - + Name i.e: file name Vardas - + Size i.e: file size Dydis - + Seeders i.e: Number of full sources Skleidėjai - + Leechers i.e: Number of partial sources Siuntėjai - + Search engine - Paieškos variklis + Paieškos sistema + + + + SearchWidget + + + + + + + Search + + + + + Status: + Būsena: + + + + + Stopped + Sustabdyta + + + + Download + + + + + Go to description page + Eiti į aprašymo puslapį + + + + Copy description page URL + Kopijuoti aprašymo puslapio URL + + + + Search plugins... + + + + + All enabled + Visos įjungtos + + + + All plugins + + + + + + Multiple... + Kelios... + + + + + + Search Engine + Paieškos sistema + + + + Please install Python to use the Search Engine. + Norėdami naudoti paieškos sistemą, įdiekite Python. + + + + Empty search pattern + Tuščias paieškos raktažodis + + + + Please type a search pattern first + Visų pirma nurodykite paieškos raktažodį + + + + + Results <i>(%1)</i>: + i.e: Search results + Rezultatai <i>(%1)</i>: + + + + Searching... + Ieškoma... + + + + Stop + Stabdyti + + + + + Search has finished + Paieška baigta + + + + + Search aborted + Paieška nutraukta + + + + Search returned no results + Paieška negrąžino rezultatų + + + + Search has failed + + + + + An error occurred during search... + Paieškos metu įvyko klaida... @@ -6097,12 +6466,12 @@ Daugiau nebus rodoma pranešimų apie tai. Total Upload - + Bendras išsiuntimas Total Download - + Bendras atsiuntimas @@ -6127,22 +6496,22 @@ Daugiau nebus rodoma pranešimų apie tai. DHT Upload - + DHT išsiuntimas DHT Download - + DHT atsiuntimas Tracker Upload - + Seklio išsiuntimas Tracker Download - + Seklio atsiuntimas @@ -6175,17 +6544,17 @@ Daugiau nebus rodoma pranešimų apie tai. Select Graphs - + Pasirinkti kreives Total Upload - + Bendras išsiuntimas Total Download - + Bendras atsiuntimas @@ -6210,22 +6579,22 @@ Daugiau nebus rodoma pranešimų apie tai. DHT Upload - + DHT išsiuntimas DHT Download - + DHT atsiuntimas Tracker Upload - + Seklio išsiuntimas Tracker Download - + Seklio atsiuntimas @@ -6434,7 +6803,7 @@ Daugiau nebus rodoma pranešimų apie tai. Errored (0) - + Klaida (0) @@ -6479,30 +6848,34 @@ Daugiau nebus rodoma pranešimų apie tai. Errored (%1) - + Klaida (%1) TorrentContentModel - + Name Vardas - + Size Dydis - + Progress Baigta - + + Download Priority + + + Priority - Svarba + Svarba @@ -6612,13 +6985,13 @@ Daugiau nebus rodoma pranešimų apie tai. '%1' Files %1 is a file extension (e.g. PDF) - + "%1" tipo failai Please provide the location of '%1' %1 is a file name - + Prašome nurodyti "%1" vietą @@ -6790,7 +7163,7 @@ Daugiau nebus rodoma pranešimų apie tai. Last Seen Complete Indicates the time when the torrent was last seen complete/whole - Paskutinį Kartą Matytas Užbaigtu + Paskutinį kartą matytas užbaigtu @@ -6854,38 +7227,38 @@ Daugiau nebus rodoma pranešimų apie tai. Įspėjimas (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Nepavyko iškoduoti svetainės piktogramos URL adresui "%1". Bandoma atsisiųsti svetainės piktogramą PNG formatu. - + Couldn't decode favicon for URL '%1'. - + Nepavyko iškoduoti svetainės piktogramos URL adresui "%1". - + Couldn't download favicon for URL '%1'. Reason: %2 - + Nepavyko atsisiųsti svetainės piktogramos URL adresui "%1". Priežastis: %2 - + Resume torrents Prastęsti torentus - + Pause torrents Pristabdyti torentus - + Delete torrents Ištrinti torentus - - + + All (%1) this is for the tracker filter Visi (%1) @@ -7135,13 +7508,13 @@ Daugiau nebus rodoma pranešimų apie tai. Errored torrent status, the torrent has an error - + Klaida %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (skleidžiama jau %2) @@ -7153,17 +7526,17 @@ Daugiau nebus rodoma pranešimų apie tai. TransferListFiltersWidget - + Status Būsena - + Labels Etiketės - + Trackers Sekliai @@ -7702,207 +8075,156 @@ Daugiau nebus rodoma pranešimų apie tai. engineSelect - Search plugins - Ieškyklės + Ieškyklės - Installed search engines: - Įdiegti paieškos varikliai: + Įdiegti paieškos sistemos: - Name - Vardas + Vardas - Version - Versija + Versija - Url - URL + URL - - Enabled - Įjungtas + Įjungtas - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Naujų paieškos variklių galite gauti čia: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Naujų paieškos sistemų galite gauti čia: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Įdiegti naują + Įdiegti naują - Check for updates - Tikrinti, ar yra atnaujinimų + Tikrinti, ar yra atnaujinimų - Close - Uždaryti + Uždaryti - Uninstall - Pašalinti + Pašalinti engineSelectDlg - Uninstall warning - Pašalinimo įspėjimas + Pašalinimo įspėjimas - Uninstall success - Sėkmingai pašalinta + Sėkmingai pašalinta - Invalid plugin - Netaisyklingas priedas + Netaisyklingas priedas - The search engine plugin is invalid, please contact the author. - + Paieškos sistemos ieškyklė yra netaisyklinga, prašome susisiekti su autoriumi. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - + Jau yra įdiegta naujesnė "%1" paieškos sistemos ieškyklė. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - + "%1" paieškos sistemos ieškyklės nepavyko atnaujinti, paliekama senoji versija. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - + Nepavyko įdiegti "%1" paieškos sistemos priedo. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" paieškos sistemos priedas buvo sėkmingai atnaujintas. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" paieškos sistemos priedas buvo sėkmingai įdiegtas. - The link doesn't seem to point to a search engine plugin. - Nepanašu, jog nuoroda rodytų į paieškos variklio priedą. + Nepanašu, jog nuoroda rodytų į paieškos variklio priedą. - Select search plugins - Pasirinkite paieškos priedus + Pasirinkite paieškos priedus - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - + Atleiskite, "%1" ieškyklės įdiegimas nepavyko. - - - - - Search plugin install - Paieškos priedo įdiegimas + Paieškos priedo įdiegimas - - - Yes - Taip + Taip - - - - No - Ne + Ne - qBittorrent search plugin - qBittorrent paieškos priedas + qBittorrent paieškos priedas - - - - Search plugin update - Paieškos priedo atnaujinimas + Paieškos priedo atnaujinimas - - Sorry, update server is temporarily unavailable. - Atsiprašome, atnaujinimų serveris kolkas nepasiekiamas. + Atsiprašome, atnaujinimų serveris kolkas nepasiekiamas. - All your plugins are already up to date. - Visi priedai yra naujausios laidos. + Visi priedai yra naujausios laidos. - All selected plugins were uninstalled successfully - Visi pasirinkti priedai buvo sėkmingai pašalinti + Visi pasirinkti priedai buvo sėkmingai pašalinti - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Kai kurių priedų nepavyko pašalinti, nes jie integruoti į qBittorrent. + Kai kurių priedų nepavyko pašalinti, nes jie integruoti į qBittorrent. Pašalinti galima tik tuos priedus, kuriuos pridėjote Jūs. Tie priedai buvo išjungti. - Invalid link - Netaisyklinga nuoroda + Netaisyklinga nuoroda - - New search engine plugin URL - Naujo paieškos priedo URL + Naujos paieškos sistemos URL - - URL: - URL: + URL: @@ -8032,169 +8354,169 @@ Tie priedai buvo išjungti. options_imp - - + + Choose export directory Pasirinkite eksportavimo katalogą - - - - + + + + Choose a save directory Pasirinkite išsaugojimo aplanką - + Add directory to scan Pridėkite norimą skenuoti aplanką - + Supported parameters (case sensitive): - + Palaikomi parametrai (skiriant raidžių dydį): - + %N: Torrent name %N: Torento pavadinimas - + %L: Label %L: Etiketė - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %D: Atsiuntimo vieta - + %C: Number of files %C: Failų skaičius - + %Z: Torrent size (bytes) %Z: Torento dydis (baitais) - + %T: Current tracker - + %T: Esamas seklys - + %I: Info hash - + %I: Informacijos maiša - + Folder is already being watched. Šis aplankas jau stebimas. - + Folder does not exist. Aplankas neegzistuoja. - + Folder is not readable. Aplanko skaityti nepavyko. - + Failure Nepavyko - + Failed to add Scan Folder '%1': %2 Nepavyko pridėti skenuojamo aplanko '%1': %2 - - + + Filters Filtrai - - + + Choose an IP filter file Pasirinkite IP filtrų failą - + SSL Certificate SSL sertifikatas - + SSL Key SSL raktas - + Parsing error Įkėlimo klaida - + Failed to parse the provided IP filter Nepavyko įkelti nurodyto IP filtro - + Successfully refreshed Sėkmingai atnaujinta - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Nurodytas IP filtras sėkmingai įkeltas. %1 taisyklės pritaikytos. - + Invalid key Netaisyklingas raktas - + This is not a valid SSL key. Šis raktas nėra taisyklingas SSL raktas. - + Invalid certificate Netaisyklingas sertifikatas - + This is not a valid SSL certificate. Šis sertifikatas nėra taisyklingas SSL sertifikatas. - + The start time and the end time can't be the same. Pradžios bei pabaigos laikai negali sutapti. - + Time Error Laiko klaida @@ -8202,24 +8524,20 @@ Tie priedai buvo išjungti. pluginSourceDlg - Plugin source - Priedo šaltinis + Priedo šaltinis - Search plugin source: - Ieškoti priedo šaltinio: + Ieškoti priedo šaltinio: - Local file - Vietiniame faile + Vietiniame faile - Web link - Tinklo nuorodoje + Tinklo nuorodoje @@ -8248,40 +8566,32 @@ Tie priedai buvo išjungti. search_engine - - Search - Ieškoti + Ieškoti - Status: - Būsena: + Būsena: - Stopped - Sustabdyta + Sustabdyta - Download - Parsisiųsti + Parsisiųsti - Go to description page - Eiti į aprašymo puslapį + Eiti į aprašymo puslapį - Copy description page URL - Kopijuoti aprašymo puslapio URL + Kopijuoti aprašymo puslapio URL - Search engines... - Paieškos varikliai... + Paieškos sistemos... diff --git a/src/lang/qbittorrent_nb.ts b/src/lang/qbittorrent_nb.ts index e5bf45f6f..f7901de39 100644 --- a/src/lang/qbittorrent_nb.ts +++ b/src/lang/qbittorrent_nb.ts @@ -127,7 +127,7 @@ Set as default label - + Sett som standardetikett @@ -175,172 +175,172 @@ Ikke last ned - - + + I/O Error Inn/ut-operasjonsfeil - + The torrent file does not exist. Torrentfilen eksisterer ikke. - + Invalid torrent Ugyldig torrent - + Failed to load the torrent: %1 Mislyktes med å laste inn torrenten: %1 - - + + Already in download list Allerede i nedlastingsliste - + Free disk space: %1 Ledig diskplass: %1 - + Not Available This comment is unavailable Ikke Tilgjengelig - + Not Available This date is unavailable Ikke Tilgjengelig - + Not available Ikke tilgjengelig - + Invalid magnet link Ugyldig magnetlenke - + Torrent is already in download list. Trackers were merged. Torrenten er allerede i nedlastingsliste. Sporere ble sammenslått. - - + + Cannot add torrent Kan ikke legge til torrent - + Cannot add this torrent. Perhaps it is already in adding state. Kan ikke legge til denne torrenten. Kanskje den allerede er i tilleggingstilstand. - + This magnet link was not recognized Denne magnetlenken ble ikke gjenkjent - + Magnet link is already in download list. Trackers were merged. Magnetlenken er allerede i nedlastingsliste. Sporere ble sammenslått. - + Cannot add this torrent. Perhaps it is already in adding. Kan ikke legge til denne torrenten. Kanskje den allerede er i tillegging. - + Magnet link Magnetlenke - + Retrieving metadata... Henter metadata... - + Not Available This size is unavailable. Ikke Tilgjengelig - - - + + + Choose save path Velg lagringssti - + Rename the file Omdøp filen - + New name: Nytt navn: - - + + The file could not be renamed Filen kunne ikke omdøpes - + This file name contains forbidden characters, please choose a different one. Dette filnavnet inneholder forbudte tegn, vennligst velg et annet et. - - + + This name is already in use in this folder. Please use a different name. Dette navnet er allerede i bruk i denne mappen. Vennligst bruk et annet navn. - + The folder could not be renamed Mappen kunne ikke omdøpes - + Rename... Omdøp... - + Priority Prioritet - + Invalid metadata Ugyldig metadata - + Parsing metadata... Analyserer metadata... - + Metadata retrieval complete Henting av metadata fullført - + Download Error Nedlastingsfeil @@ -431,10 +431,6 @@ Resolve peer host names Løs deltaker-vertsnavn - - Maximum number of half-open connections [0: Disabled] - Maksimalt antall halvåpne tilkoblinger [0: Deaktivert] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maksimalt antall halvåpne tilkoblinger [0: Ubegrenset] @@ -661,205 +657,205 @@ &Eksporter... - + Matches articles based on episode filter. Matchende artikler basert på episodefilter. - + Example: Eksempel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match vil matche 2, 5, 8 gjennom 15, 30 og påfølgende episoder av sesong en - + Episode filter rules: Episodefilter-regler: - + Season number is a mandatory non-zero value Sesongnummer er en obligatorisk ikke-null verdi - + Episode number is a mandatory non-zero value Episodenummer er en obligatorisk ikke-null verdi - + Filter must end with semicolon Filter må slutte med semikolon - + Three range types for episodes are supported: Tre grupperingstyper for episoder er støttet: - + Single number: <b>1x25;</b> matches episode 25 of season one Enkeltnummer: <b>1x25;</b> matcher episode 25 av sesong en - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normalgruppering: <b>1x25-40;</b> matcher episoder 25 gjennom 40 av sesong en - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Uendelig gruppering: <b>1x25-;</b> matcher episoder 25 og oppover av sesong en - + Last Match: %1 days ago Siste Match: %1 dager siden - + Last Match: Unknown Siste Match: Ukjent - + New rule name Navn på ny regel - + Please type the name of the new download rule. Vennligst skriv navnet på den nye nedlastingsregelen. - - + + Rule name conflict Regelnavn konflikt - - + + A rule with this name already exists, please choose another name. En regel med dette navnet eksisterer allerede, vennligst velg et annet navn. - + Are you sure you want to remove the download rule named '%1'? Er du sikker på at du vil fjerne nedlastingsregelen som heter '%1'? - + Are you sure you want to remove the selected download rules? Er du sikker på at du vil fjerne de valgte nedlastingsreglene? - + Rule deletion confirmation Regelslettingsbekreftelse - + Destination directory Destinasjonskatalog - + Invalid action Ugyldig handling - + The list is empty, there is nothing to export. Listen er tom, det er ingenting å eksportere. - + Where would you like to save the list? Hvor vil du lagre listen? - + Rules list (*.rssrules) Regelliste (*.rssrules) - + I/O Error Inn/ut-operasjonsfeil - + Failed to create the destination file Oppretting av destinasjonsfil mislyktes - + Please point to the RSS download rules file Vennligst pek på filen med nyhetsmating-nedlastingsreglene - + Rules list Regelliste - + Import Error Importeringsfeil - + Failed to import the selected rules file Importering av den valgte regelfilen mislyktes - + Add new rule... Legg til ny regel... - + Delete rule Slett regel - + Rename rule... Omdøp regel... - + Delete selected rules Slett valgte regler - + Rule renaming Regel omdøping - + Please type the new rule name Vennligst skriv nytt regelnavn - + Regex mode: use Perl-like regular expressions Regex modus: bruk Perl-lignende regulære uttrykk - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Jokertegnmodus: du kan bruke<ul><li>? til å matche hvilke som helst enkle tegn</li><li>* for å matche null eller mer av hvilke som helst tegn</li><li>Blanktegn teller som OG-operatører</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Jokertegnmodus: du kan bruke<ul><li>? til å matche hvilke som helst enkle tegn</li><li>* for å matche null eller mer av hvilke som helst tegn</li><li>| er brukt som ELLER-operatør</li></ul> @@ -952,65 +948,57 @@ '%1' nådde det maksimale forholdet du satte. Setter på pause... - Error: Could not create torrent export directory: '%1' - Feil: Kunne ikke opprette torrent-eksporteringskatalog: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Feil: kunne ikke eksportere torrent '%1, kanskje den ikke har noe metadata ennå. - - - + System network status changed to %1 e.g: System network status changed to ONLINE System-nettverkstatus forandret til %1 - + ONLINE TILKOBLET - + OFFLINE FRAKOBLET - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Nettverkskonfigurasjon av %1 har blitt forandret, oppdaterer sesjonsbinding - + Unable to decode '%1' torrent file. Ikke i stand til å dekode '%1' torrentfil. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursiv nedlasting av fil '%1' innebygd i torrent '%2' - + Couldn't save '%1.torrent' Kunne ikke lagre '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. fordi %1 er deaktivert. - + because %1 is disabled. this peer was blocked because TCP is disabled. fordi %1 er deaktivert. - + URL seed lookup failed for URL: '%1', message: %2 Nettadressegivningsoppsøking mislyktes for nettadresse: '%1', melding: %2 @@ -1027,178 +1015,164 @@ '%1' ble fjernet fra overføringsliste. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Laster ned '%1', vennligst vent... - Torrent Export: torrent is invalid, skipping... - Torrent-eksportering: torrent er ugyldig, hopper over... - - - + DHT support [ON] DHT støtte [PÅ] - + DHT support [OFF]. Reason: %1 DHT støtte [AV]. Grunn: %1 - + DHT support [OFF] DHT støtte [AV] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent forsøker å lytte på hvilket som helst grensesnitts-port: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2 - - - + The network interface defined is invalid: %1 Det definerte nettverksgrensesnittet er ugyldig: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent forsøker å lytte på grensesnitt %1 port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent fant ikke en %1 lokal adresse å lytte på - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2. {1.?} + qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2. - + Tracker '%1' was added to torrent '%2' Sporer '%1' ble lagt til torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Sporer '%1' ble slettet fra torrent '%2' - + URL seed '%1' was added to torrent '%2' Nettadressegivning '%1' ble lagt til torrent '%2' - + URL seed '%1' was removed from torrent '%2' Nettadressegivning '%1' ble fjernet fra torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ikke i stand til å gjenoppta torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Det oppgitte IP filteret ble vellykket analysert: %1 regler ble lagt til. - + Error: Failed to parse the provided IP filter. Feil: Mislyktes i å analysere det oppgitte IP filteret. - + Couldn't add torrent. Reason: %1 Kunne ikke legge til torrent. Grunn: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' ble gjenopptatt (hurtig gjenopptaking) - + '%1' added to download list. 'torrent name' was added to download list. '%1' lagt til nedlastingsliste. - + An I/O error occurred, '%1' paused. %2 En inn/ut-operasjonsfeil oppstod, '%1' satt på pause. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Port-tildelingssvikt, melding: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Port-tildeling vellykket, melding: %1 - + due to IP filter. this peer was blocked due to ip filter. pga. IP filter. - + due to port filter. this peer was blocked due to port filter. pga. port-filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. pga. i2p blandingsmodus-restriksjoner. - + because it has a low port. this peer was blocked because it has a low port. fordi den har en lav port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent lytter vellykket på grensesnitt %1 port: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4. {1 ?} {2/%3.?} + qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Ekstern IP: %1 @@ -1212,12 +1186,12 @@ Kunne ikke flytte torrent: '%1'. Grunn: %2 - + File sizes mismatch for torrent '%1', pausing it. Misforhold i filstørrelser for torrent '%1', setter den på pause. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Rask gjenopptakelsesdata ble avvist for torrent '%1'. Grunn: %2. Sjekker igjen... @@ -1227,7 +1201,7 @@ Cookies management - Behandling av cookies + Behandling av informasjonskapsler @@ -1242,10 +1216,10 @@ Verdi - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - Vanlige nøkler for cookies er: '%1', '%2'. + Vanlige nøkler for informasjonskapsler er: '%1', '%2'. Du bør få denne informasjonen fra innstillingene til nettleseren din. @@ -1310,12 +1284,12 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. FeedListWidget - + RSS feeds Nyhetsmatinger - + Unread Ulest @@ -1412,10 +1386,6 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.Only one link per line Kun en lenke per linje - - Download local torrent - Last ned lokal torrent - Download @@ -1589,20 +1559,30 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. Save files to location: - Lagre filer til plassering: + Lagre filer til plassering: Label: - Etikett: + Etikett: Cookie: + Informasjonskapsel: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Nedlastet @@ -1615,7 +1595,7 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. Upload local torrent - + Last opp lokal torrent @@ -1973,10 +1953,6 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.&About &Om - - Exit - Avslutt - &Pause @@ -2007,22 +1983,6 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.E&xit &Avslutt - - Options - Alternativer - - - Resume - Gjenoppta - - - Pause - Sett på pause - - - Delete - Slett - Open URL @@ -2040,19 +2000,15 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. - + Show Vis - + Check for program updates Sjekk for programoppdateringer - - Lock qBittorrent - Lås qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. - + Execution Log Utførelseslogg - + Clear the password Fjern passordet - + Filter torrent list... Filtrer torrentliste... - + &Set Password &Sett Passord - + &Clear Password &Fjern Passord - + Transfers Overføringer - + Torrent file association Torrent-filassosiasjon - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent er ikke satt som standardapplikasjon for åpning av torrentfiler eller Magnetlenker. Vil du assosiere qBittorrent til torrentfiler og Magnetlenker? - + Icons Only Kun Ikoner - + Text Only Kun Tekst - + Text Alongside Icons Tekst Ved Siden Av ikoner - + Text Under Icons Tekst Under Ikoner - + Follow System Style Følg Systemstil - - - + + + UI lock password Brukergrensesnitt låsingspassord - - - + + + Please type the UI lock password: Vennligst skriv brukergrensesnitt låsingspassordet: - + The password should contain at least 3 characters Passordet bør inneholde minst 3 tegn - + Password update Passord oppdatering - + The UI lock password has been successfully updated Brukergrensesnitt-låsingspassordet har blitt vellykket oppdatert - + Are you sure you want to clear the password? Er du sikker på at du vil fjerne passordet? - + Search Søk - + Transfers (%1) Overføringer (%1) - + Error Feil - + Failed to add torrent: %1 Mislyktes med å legge til torrent: %1 - + Download completion Nedlastingsfullførelse - + I/O Error i.e: Input/Output Error Inn/ut-operasjonsfeil - + Recursive download confirmation Rekursiv nedlastingsbekreftelse - + Yes Ja - + No Nei - + Never Aldri - + Global Upload Speed Limit Global Opplastingshastighetsgrense - + Global Download Speed Limit Global Nedlastingshastighetsgrense - + &No &Nei - + &Yes &Ja - + &Always Yes &Alltid Ja - + Python found in %1 Python funnet i %1 - + Old Python Interpreter Gammel Python Fortolker - + qBittorrent Update Available qBittorrent Oppdatering Tilgjengelig - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Bruker Allerede den Siste qBittorrent Versjonen - + Undetermined Python version Ubestemt Python versjon - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' er ferdig nedlastet. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Vil du assosiere qBittorrent til torrentfiler og Magnetlenker? Grunn: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrenten '%1' inneholder torrentfiler, vil du fortsette med deres nedlasting? - + Couldn't download file at URL '%1', reason: %2. Kunne ikke laste ned fil hos nettadresse: '%1', grunn: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Din Python versjon %1 er utdatert. Vennligst oppgrader til siste versjon for at søkemotorene skal virke. Minimumskrav: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Kunne ikke bestemme din Python versjon (%1). Søkemotor deaktivert. - - + + Missing Python Interpreter Manglende Python Fortolker - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python kreves for å bruke søkemotoren, men det synes ikke å være installert. Vil du installere det nå? - + Python is required to use the search engine but it does not seem to be installed. Python kreves for å bruke søkemotoren, men det synes ikke å være installert. - A new version is available. Update to version %1? - En ny versjon er tilgjengelig. + En ny versjon er tilgjengelig. Oppdatere til versjon %1? - + No updates available. You are already using the latest version. Ingen oppdateringer tilgjengelig. Du bruker allerede den siste versjonen. - + &Check for Updates &Sjekk for Oppdateringer - + Checking for Updates... Sjekker for Oppdateringer... - + Already checking for program updates in the background Sjekker allerede for programoppdateringer i bakgrunnen - + Python found in '%1' Python funnet i '%1' - + Download error Nedlastingsfeil - + Python setup could not be downloaded, reason: %1. Please install it manually. Python-oppsett kunne ikke bli nedlastet, grunn: %1. Vennligst installer det manuelt. - - + + Invalid password Ugyldig passord - - + + RSS (%1) Nyhetsmating (%1) - + URL download error Nettadresse nedlastingsfeil - + The password is invalid Passordet er ugyldig - - + + DL speed: %1 e.g: Download speed: 10 KiB/s NL-hastighet: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s OL-hastighet: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [N: %1, O: %2] qBittorrent %3 - + Hide Skjul - + Exiting qBittorrent Avslutter qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Noen filer overføres for øyeblikket. Er du sikker på at du vil avslutte qBittorrent? - + Open Torrent Files Åpne Torrentfiler - + Torrent Files Torrentfiler - + Options were saved successfully. Alternativene ble vellykket lagret. @@ -2443,17 +2404,17 @@ Er du sikker på at du vil avslutte qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Din dynamiske DNS ble vellykket oppdatert. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dynamisk DNS-feil: Tjenesten er midlertidlig utilgjengelig. Det vil bli prøvd på nytt om 30 minutter. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dynamisk DNS-feil: oppgitt vertsnavn eksisterer ikke under spesifisert konto. @@ -2463,32 +2424,32 @@ Er du sikker på at du vil avslutte qBittorrent? Dynamisk DNS-feil: Ugyldig brukernavn/passord. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dynamisk DNS-feil: qBittorrent ble svartelistet av tjenesten. Vennligst rapporter en feil hos http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dynamisk DNS-feil: %1 ble returnert av tjenesten. Vennligst rapporter en feil hos http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Dynamisk DNS-feil: Brukernavnet ditt ble blokert på grunn av misbruk. - + Dynamic DNS error: supplied domain name is invalid. Dynamisk DNS-feil: oppgitt domenenavn er ugyldig. - + Dynamic DNS error: supplied username is too short. Dynamisk DNS-feil: oppgitt brukernavn er for kort. - + Dynamic DNS error: supplied password is too short. Dynamisk DNS-feil: oppgitt passord er for kort. @@ -2515,154 +2476,161 @@ Er du sikker på at du vil avslutte qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP database innlastet. Type: %1. Byggetid: %2. - + Couldn't load GeoIP database. Reason: %1 Kunne ikke laste inn GeoIP database. Grunn: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Ikke tilgjengelig - Asia/Pacific Region - Asia/Stillehavsområdet + Asia/Stillehavsområdet + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Forente Arabiske Emirater, De - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua og Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Nederlandske Antillene, De + Nederlandske Antillene, De - + Angola Angola - + Antarctica Antarktis - + Argentina Argentina - + American Samoa Amerikansk Samoa - + Austria Østerrike - + Australia Australia - + Aruba Aruba - + Azerbaijan Aserbajdsjan - + Bosnia and Herzegovina Bosnia og Hercegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Er du sikker på at du vil avslutte qBittorrent? Brunei Darussalam - Bolivia - Bolivia + Bolivia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Bouvetøya - + Botswana Botswana - + Belarus Hviterussland - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Kokosøyene - + Congo, The Democratic Republic of the Kongo, Den Demokratiske Republikken - + Central African Republic Sentralafrikanske Republikk, Den - + Congo Kongo - + Switzerland Sveits - Cote D'Ivoire - Elfenbenskysten + Elfenbenskysten - + Cook Islands Cookøyene - + Chile Chile - + Cameroon Kamerun - + China Kina - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Kapp Verde - + + Curacao + + + + Christmas Island Christmasøya - + Cyprus Kypros - + Czech Republic Tsjekkia - + Germany Tyskland - + Djibouti Djibouti - + Denmark Danmark - + Dominica Dominica - + Dominican Republic Dominikanske Republikk, Den - + Algeria Algerie - + Ecuador Ecuador - + Estonia Estland - + Egypt Egypt - + Western Sahara Vest-Sahara - + Eritrea Eritrea - + Spain Spania - + Ethiopia Etiopia - + Finland Finland - + Fiji Fiji - + Falkland Islands (Malvinas) Falklandsøyene - + Micronesia, Federated States of Mikronesia - + Faroe Islands Færøyene - + France Frankrike - France, Metropolitan - Fastlands-Frankrike og Øyen Korsika + Fastlands-Frankrike og Øyen Korsika - + Gabon Gabon - + United Kingdom Storbritannia - + Grenada Grenada - + Georgia Georgia - + French Guiana Fransk Guyana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Grønland - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Ekvatorial-Guinea - + Greece Hellas - + South Georgia and the South Sandwich Islands Sør-Georgia og Sør-Sandwichøyene - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Heard- og McDonaldøyene - + Honduras Honduras - + Croatia Kroatia - + Haiti Haiti - + Hungary Ungarn - + Indonesia Indonesia - + Ireland Irland - + Israel Israel - + India India - + British Indian Ocean Territory Britiske Territoriet i Indiahavet, Det - + Iraq Irak - + Iran, Islamic Republic of Iran, Den Islamske Republikken - + Iceland Island - + Italy Italia - + Jamaica Jamaica - + Jordan Jordan - + Japan Japan - + Kenya Kenya - + Kyrgyzstan Kirgisistan - + Cambodia Kambodsja - + Kiribati Kiribati - + Comoros Komorene - + Saint Kitts and Nevis Saint Kitts og Nevis - + Korea, Democratic People's Republic of Nord-Korea - + Korea, Republic of Sør-Korea - + Kuwait Kuwait - + Cayman Islands Caymanøyene - + Kazakhstan Kasakhstan - + Lao People's Democratic Republic Laofolkets Demokratiske Folkerepublikk - + Lebanon Libanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litauen - + Luxembourg Luxembourg - + Latvia Latvia - Libyan Arab Jamahiriya - Libya + Libya - + Morocco Marokko - + Monaco Monaco - + Moldova, Republic of Moldova - + Madagascar Madagaskar - + Marshall Islands Marshalløyene - Macedonia - Makedonia + Makedonia - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolia - Macau - Macao + Macao - + Northern Mariana Islands Nord-Marianene - + Martinique Martinique - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldivene - + Malawi Malawi - + Mexico Mexico - + Malaysia Malaysia - + Mozambique Mosambik - + Namibia Namibia - + New Caledonia Ny-Caledonia - + Niger Niger - + Norfolk Island Norfolkøya - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Nederland - + Norway Norge - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand New Zealand - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Fransk Polynesia - + Papua New Guinea Papua Ny-Guinea - + Philippines Filippinene - + Pakistan Pakistan - + Poland Polen - + Saint Pierre and Miquelon Saint-Pierre og Miquelon - Pitcairn Islands - Pitcairnøyene + Pitcairnøyene - + Puerto Rico Puerto Rico - Palestinian Territory - Palestinske Territoriene, De + Palestinske Territoriene, De - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Réunion - + Romania Romania - + Russian Federation Russiske Føderasjon, Den - + Rwanda Rwanda - + Saudi Arabia Saudi-Arabia - + Solomon Islands Salomonøyene - + Seychelles Seychellene - + Sudan Sudan - + Sweden Sverige - + Singapore Singapore - Saint Helena - Saint Helena + Saint Helena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard og Jan Mayen - + Slovakia Slovakia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe São Tomé og Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Syria, Den Arabiske Republikk - + Swaziland Swaziland - + Turks and Caicos Islands Turks- og Caicosøyene - + Chad Tsjad - + French Southern Territories Franske Sørterritorier, De - + Togo Togo - + Thailand Thailand - + Tajikistan Tadsjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Øst-Timor - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Tyrkia - + Trinidad and Tobago Trinidad og Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania, Den Forente Republikken - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands USAs Ytre Småøyer - + United States USA - + Uruguay Uruguay - + Uzbekistan Usbekistan - + Holy See (Vatican City State) Hellige Stol, Den (Vatikanstaten) - + Saint Vincent and the Grenadines Saint Vincent og Grenadinene - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Jomfruøyene, De Britiske - + Virgin Islands, U.S. Jomfruøyene, De Amerikanske. - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis og Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Sør-Afrika - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Anonym Mellomtjener + Anonym Mellomtjener - Satellite Provider - Satellitt-leverandør + Satellitt-leverandør - Other - Annet + Annet - + Aland Islands Åland - + Guernsey Guernsey - + Isle of Man Isle of Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. Kunne ikke dekomprimere GeoIP database-fil. - + Couldn't save downloaded GeoIP database file. Kunne ikke lagre nedlastet GeoIP database-fil. - + Successfully updated GeoIP database. GeoIP database ble vellykket oppdatert. - + Couldn't download GeoIP database file. Reason: %1 Kunne ikke laste ned GeoIP database-fil. Grunn: %1 @@ -3838,72 +3856,72 @@ Er du sikker på at du vil avslutte qBittorrent? interested(local) and choked(peer) - interessert(lokal) og kvalt(delktaker) + interessert(lokal) og kvalt(delktaker) interested(local) and unchoked(peer) - interessert(lokal) og ukvalt(delktaker) + interessert(lokal) og ukvalt(delktaker) interested(peer) and choked(local) - interessert(deltaker) og kvalt(lokal) + interessert(deltaker) og kvalt(lokal) interested(peer) and unchoked(local) - interessert(deltaker) og ukvalt(lokal) + interessert(deltaker) og ukvalt(lokal) optimistic unchoke - optimistisk avkvelning + optimistisk avkvelning peer snubbed - deltaker avbrutt + deltaker avbrutt incoming connection - innkommende tilkobling + innkommende tilkobling not interested(local) and unchoked(peer) - ikke interessert(lokal) og ukvalt(delktaker) + ikke interessert(lokal) og ukvalt(delktaker) not interested(peer) and unchoked(local) - ikke interessert(deltaker) og ukvalt(lokal) + ikke interessert(deltaker) og ukvalt(lokal) peer from PEX - deltaker fra PEX + deltaker fra PEX peer from DHT - deltaker fra DHT + deltaker fra DHT encrypted traffic - kryptert trafikk + kryptert trafikk encrypted handshake - kryptert håndtrykk + kryptert håndtrykk peer from LSD - deltaker fra LSD + deltaker fra LSD @@ -3971,123 +3989,73 @@ Er du sikker på at du vil avslutte qBittorrent? Relevans - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Legg til ny deltaker... - + Copy selected Kopier valgte - - + + Ban peer permanently Bannlys deltaker permanent - + Manually adding peer '%1'... Legger manuelt til deltaker '%1'... - + The peer '%1' could not be added to this torrent. Deltakeren '%1 kunne ikke bli lagt til denne torrenten. - + Manually banning peer '%1'... Bannlyser manuelt deltaker '%1'... - - + + Peer addition Deltaker tillegging - + Some peers could not be added. Check the Log for details. Noen deltakere kunne ikke legges til. Sjekk loggen for detaljer. - + The peers were added to this torrent. Deltakerne ble lagt til denne torrenten. - + Are you sure you want to ban permanently the selected peers? Er du sikker på at du vil bannlyse de valgte deltakerne permanent? - + &Yes &Ja - + &No &Nei - - interested(local) and choked(peer) - interessert(lokal) og kvalt(delktaker) - - - interested(local) and unchoked(peer) - interessert(lokal) og ukvalt(delktaker) - - - interested(peer) and choked(local) - interessert(deltaker) og kvalt(lokal) - - - interested(peer) and unchoked(local) - interessert(deltaker) og ukvalt(lokal) - - - optimistic unchoke - optimistisk avkvelning - - - peer snubbed - deltaker avbrutt - - - incoming connection - innkommende tilkobling - - - not interested(local) and unchoked(peer) - ikke interessert(lokal) og ukvalt(delktaker) - - - not interested(peer) and unchoked(local) - ikke interessert(deltaker) og ukvalt(lokal) - - - peer from PEX - deltaker fra PEX - - - peer from DHT - deltaker fra DHT - - - encrypted traffic - kryptert trafikk - - - encrypted handshake - kryptert håndtrykk - - - peer from LSD - deltaker fra LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Er du sikker på at du vil avslutte qBittorrent? Blått: Tilgjengelige deler + + PluginSelectDlg + + + Search plugins + Søke-programtillegg + + + + Installed search plugins: + + + + + Name + Navn + + + + Version + Versjon + + + + Url + Nettadresse + + + + + Enabled + Aktivert + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan skaffe nye søkemotor-programtillegg her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Installer en ny + + + + Check for updates + Søk etter oppdateringer + + + + Close + Steng + + + + Uninstall + Avinstaller + + + + + + Yes + Ja + + + + + + + No + Nei + + + + Uninstall warning + Avinstalleringsadvarsel + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Noen programtillegg kunne ikke avinstalleres, siden de er inkludert i qBittorrent. Kun de du har lagt til selv kan avinstalleres. +Disse programtilleggene ble deaktivert. + + + + Uninstall success + Avinstallering vellykket + + + + All selected plugins were uninstalled successfully + Alle valgte programtillegg ble vellykket avinstallert + + + + + New search engine plugin URL + Ny søkemotor-programtilleggs nettadresse + + + + + URL: + Nettadresse: + + + + Invalid link + Ugyldig lenke + + + + The link doesn't seem to point to a search engine plugin. + Lenken ser ikke ut til å peke mot et søkemotor-programtillegg. + + + + Select search plugins + Velg søke-programtillegg + + + + qBittorrent search plugin + qBittorrent søke-programtillegg + + + + + + Search plugin update + Søke-programtillegg oppdatering + + + + All your plugins are already up to date. + Alle dine programtillegg er allerede oppdatert. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Søke-programtillegg installering + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Programtilleggskilde + + + + Search plugin source: + Søke-programtillegg kilde: + + + + Local file + Lokal fil + + + + Web link + Nettlenke + + Preferences @@ -4181,89 +4346,89 @@ Er du sikker på at du vil avslutte qBittorrent? Tilføy .!qB benevnelse til ikke-fullførte filer - + Copy .torrent files to: Kopier torrentfiler til: - + Connections Limits Tilkoblingsgrenser - + Proxy Server Mellomtjener - + Global Rate Limits Globale Forholdsgrenser - + Apply rate limit to transport overhead Bruk forholdsgrense for transportering av tilleggsdata - + Schedule the use of alternative rate limits Planlegg bruken av alternative forholdsgrenser - + From: from (time1 to time2) Fra: - + To: time1 to time2 Til: - + Enable Local Peer Discovery to find more peers Aktiver lokal deltakeroppdagelse for å finne flere deltakere - + Encryption mode: Krypteringsmodus: - + Prefer encryption Foretrekk kryptering - + Require encryption Krev kryptering - + Disable encryption Deaktiver kryptering - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mer informasjon</a>) - + Maximum active downloads: Maksimalt aktive nedlastinger: - + Maximum active uploads: Maksimalt aktive opplastinger: - + Maximum active torrents: Maksimalt aktive torrenter: @@ -4288,82 +4453,82 @@ Er du sikker på at du vil avslutte qBittorrent? Vis torrentinnhold og noen alternativer - + Run external program on torrent completion Kjør eksternt program ved torrent-fullførelse - + Port used for incoming connections: Port brukt for innkommende tilkoblinger: - + Random Tilfeldig - + Global maximum number of connections: Globalt maksimalt antall tilkoblinger: - + Maximum number of connections per torrent: Maksimalt antall tilkoblinger per torrent: - + Maximum number of upload slots per torrent: Maksimalt antall opplastingsåpninger per torrent: - - + + Upload: Opplasting: - - + + Download: Nedlasting: - - - - + + + + KiB/s KiB/s - + Remove folder Fjern mappe - + Every day Hver dag - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Utveksle deltakere med kompatible Bittorrent-klienter (µTorrent, Vuze, ...) - + Host: Vert: - + SOCKS4 SOCKS4 - + Type: Type: @@ -4536,262 +4701,262 @@ Er du sikker på at du vil avslutte qBittorrent? Legg automatisk til torrenter fra: - + Add folder... Legg til mappe... - + Copy .torrent files for finished downloads to: Kopier .torrent filer for ferdige nedlastinger til: - + Email notification upon download completion Epost-varsling ved nedlastingsfullførelse - + Destination email: Destinasjons-epost: - + SMTP server: SMTP tjener: - + This server requires a secure connection (SSL) Denne tjeneren krever en sikker tilkobling (SSL) - + Listening Port Lytteport - + Use UPnP / NAT-PMP port forwarding from my router Bruk UPnP / NAT-PMP port-videresending fra min ruter - + Use different port on each startup Bruk annen port ved hver oppstart - + Global maximum number of upload slots: Globalt maksimalt antall opplastingsåpninger: - + Otherwise, the proxy server is only used for tracker connections Ellers så er mellomtjeneren kun brukt for sporertilkoblinger - + Use proxy for peer connections Bruk mellomtjener for deltakertilkoblinger - + Disable connections not supported by proxies Deaktiver tilkoblinger som ikke er støttet av mellomtjenere - + Use proxy only for torrents Bruk mellomtjener kun for torrenter - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Nyhetsmatinger, søkemotor, programvareoppdateringer, eller hva som helst annet enn torrentoverføringer og relaterte operasjoner (slik som deltakerutvekslinger) vil bruke en direkte tilkobling - + Info: The password is saved unencrypted Info: Passordet er lagret ukryptert - + IP Filtering IP Filtrering - + Reload the filter Last inn filteret på nytt - + Apply to trackers Bruk til sporere - + Apply rate limit to peers on LAN Bruk forholdsgrense for deltakere på lokalnett - + When: Når: - + Weekdays Ukedager - + Weekends Helger - + Rate Limits Settings Innstillinger for Forholdsgrenser - + Enable µTP protocol Aktiver µTP protokoll - + Apply rate limit to µTP protocol Bruk forholdsgrense for µTP protokoll - + Privacy Personvern - + Enable DHT (decentralized network) to find more peers Aktiver DHT (desentralisert nettverk) for å finne flere deltakere - + Enable Peer Exchange (PeX) to find more peers Aktiver utveksling av deltakere (PeX) for å finne flere deltakere - + Look for peers on your local network Se etter deltakere i ditt lokale nettverk - + Enable when using a proxy or a VPN connection Aktiver ved bruk av mellomtjener eller en VPN tilkobling - + Enable anonymous mode Aktiver anonymitetsmodus - + Do not count slow torrents in these limits Ikke tell trege torrenter i disse grensene - + Seed torrents until their ratio reaches Vær giver for torrenter til forholdet deres når - + then deretter - + Pause them Sett dem på pause - + Remove them Fjern dem - + Automatically add these trackers to new downloads: Automatisk legg disse sporerne til nye nedlastinger: - + Use UPnP / NAT-PMP to forward the port from my router Bruk UPnP / NAT-PMP for å videresende porten fra min ruter - + Use HTTPS instead of HTTP Bruk HTTPS istedenfor HTTP - + Import SSL Certificate Importer SSL Sertifikat - + Import SSL Key Importer SSL Nøkkel - + Certificate: Sertifikat: - + Alternative Rate Limits Alternative Forholdsgrenser - + Key: Nøkkel: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informasjon om sertifikater</a> - + Bypass authentication for localhost Omgå autentisering for lokalvert - + Update my dynamic domain name Oppdater mitt dynamiske domenenavn - + Service: Tjeneste: - + Register Registrer - + Domain name: Domenenavn: - + (None) (Ingen) @@ -4801,61 +4966,61 @@ Er du sikker på at du vil avslutte qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Autentisering - - - - + + + + Username: Brukernavn: - - - - + + + + Password: Passord: - + Torrent Queueing Torrentkø-danning - + Share Ratio Limiting Delingsforholdsbegrensning - + Enable Web User Interface (Remote control) Aktiver Nettbrukergrenesnitt (Web UI) *Fjernkontroll* - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filtersti (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Er du sikker på at du vil avslutte qBittorrent? Comment: Kommentar: - - Torrent content: - Torrentinnhold: - Select All @@ -5587,28 +5748,28 @@ Ingen flere notiser vil bli gitt. Ukjent feil - - + + Upgrade Oppgrader - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Du oppdaterte fra en eldre versjon som lagret ting annerledes. Du må migrere til det nye lagringssystemet. Du vil ikke kunne bruke en eldre versjon enn v3.3.0 igjen. Fortsett? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Du oppdaterte fra en eldre versjon som lagret ting annerledes. Du må migrere til det nye lagringssystemet. Hvis du fortsetter, så vil du ikke kunne bruke en eldre versjon enn v3.3.0 igjen. - + Couldn't migrate torrent with hash: %1 Kunne ikke migrere torrent med verifiseringsnøkkel: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Kunne ikke migrere torrent. Ugyldig rask gjenopptakelse-filnavn: %1 @@ -5708,7 +5869,7 @@ Ingen flere notiser vil bli gitt. Manage cookies... - Behandle cookies... + Behandle informasjonskapsler... @@ -5719,17 +5880,17 @@ Ingen flere notiser vil bli gitt. RSSImp - + Stream URL: Dataflytsnettadresse: - + Please type a RSS stream URL Vennligst skriv en nyhetsmatingsdataflyt-nettadresse - + This RSS feed is already in the list. Denne nyhetsmatingen er allerede i listen. @@ -5749,75 +5910,92 @@ Ingen flere notiser vil bli gitt. Ny mappe - + Deletion confirmation Slettingsbekreftelse - + Are you sure you want to delete the selected RSS feeds? Er du sikker på at du vil slette de valgte nyhetsmatingene? - + Please choose a new name for this RSS feed Vennligst velg et nytt navn for denne nyhetsmatingen - + New feed name: Nytt matingsnavn: - + Name already in use Navn allerede i bruk - + This name is already used by another item, please choose another one. Dette navnet brukes allerede av en annen gjenstand, vennligst velg et annet et. - + Date: Dato: - + Author: Opphavsperson: - + Unread Ulest - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... + Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... + Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... RssParser - Failed to open downloaded RSS file. - Mislyktes med å åpne nedlastet nyhetsmatingsfil. + Mislyktes med å åpne nedlastet nyhetsmatingsfil. - Invalid RSS feed at '%1'. - Ugyldig nyhetsmating hos '%1'. + Ugyldig nyhetsmating hos '%1'. @@ -5843,168 +6021,249 @@ Ingen flere notiser vil bli gitt. Maksimalt antall artikler per mating: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Bla gjennom... + + + + Choose save path + Velg lagringssti + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Overvåket Mappe - - Download here - Last ned her + + Save Files to + + + + Download here + Last ned her - Download path - Nedlastingssti + Nedlastingssti SearchCategories - All categories - Alle kategorier + Alle kategorier - Movies - Filmer + Filmer - TV shows - TV-forestillinger + TV-forestillinger - Music - Musikk + Musikk - Games - Spill + Spill - Anime - Anime + Anime - Software - Programvare + Programvare - Pictures - Bilder + Bilder - Books - Bøker + Bøker SearchEngine - - - Search - Søk + Søk - Please install Python to use the Search Engine. - Vennligst installer Python for å bruke Søkemotoren. + Vennligst installer Python for å bruke Søkemotoren. - Empty search pattern - Tom søkestreng + Tom søkestreng - Please type a search pattern first - Vennligst skriv en søkestreng først + Vennligst skriv en søkestreng først - Searching... - Søker... + Søker... - Stop - Stopp + Stopp - - Search Engine - Søkemotor + Søkemotor - - Search has finished - Søket er ferdig + Søket er ferdig - An error occurred during search... - Det oppstod en feil under søket... + Det oppstod en feil under søket... - - Search aborted - Søk avbrutt + Søk avbrutt - All enabled - Alle aktivert + Alle aktivert - All engines - Alle motorer + Alle motorer - - Multiple... - Flere... + Flere... - - Results <i>(%1)</i>: i.e: Search results - Resultater <i>(%1)</i>: + Resultater <i>(%1)</i>: - Search returned no results - Søket ga ingen resultater + Søket ga ingen resultater - Stopped - Stoppet + Stoppet + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Alle kategorier + + + + Movies + Filmer + + + + TV shows + TV-forestillinger + + + + Music + Musikk + + + + Games + Spill + + + + Anime + Anime + + + + Software + Programvare + + + + Pictures + Bilder + + + + Books + Bøker SearchListDelegate - - + + Unknown Ukjent @@ -6012,35 +6271,160 @@ Ingen flere notiser vil bli gitt. SearchTab - + Name i.e: file name Navn - + Size i.e: file size Størrelse - + Seeders i.e: Number of full sources Givere - + Leechers i.e: Number of partial sources Sankere - + Search engine Søkemotor + + SearchWidget + + + + + + + Search + Søk + + + + Status: + Status: + + + + + Stopped + Stoppet + + + + Download + Last ned + + + + Go to description page + Gå til beskrivelsesside + + + + Copy description page URL + Kopier beskrivelsesside-nettadresse + + + + Search plugins... + + + + + All enabled + Alle aktivert + + + + All plugins + + + + + + Multiple... + Flere... + + + + + + Search Engine + Søkemotor + + + + Please install Python to use the Search Engine. + Vennligst installer Python for å bruke Søkemotoren. + + + + Empty search pattern + Tom søkestreng + + + + Please type a search pattern first + Vennligst skriv en søkestreng først + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultater <i>(%1)</i>: + + + + Searching... + Søker... + + + + Stop + Stopp + + + + + Search has finished + Søket er ferdig + + + + + Search aborted + Søk avbrutt + + + + Search returned no results + Søket ga ingen resultater + + + + Search has failed + + + + + An error occurred during search... + Det oppstod en feil under søket... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ Ingen flere notiser vil bli gitt. TorrentContentModel - + Name Navn - + Size Størrelse - + Progress Fremdrift - + + Download Priority + + + Priority - Prioritet + Prioritet @@ -6854,38 +7242,38 @@ Ingen flere notiser vil bli gitt. Advarsel (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Kunne ikke dekode favikon for nettadresse '%1'. Prøver å laste ned favikon i PNG format. - + Couldn't decode favicon for URL '%1'. Kunne ikke dekode favikon for nettadresse '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Kunne ikke laste ned favikon for nettadresse '%1'. Grunn: '%2' - + Resume torrents Gjenoppta torrenter - + Pause torrents Sett torrenter på pause - + Delete torrents Slett torrenter - - + + All (%1) this is for the tracker filter Alle (%1) @@ -7153,17 +7541,17 @@ Ingen flere notiser vil bli gitt. TransferListFiltersWidget - + Status Status - + Labels Etiketter - + Trackers Sporere @@ -7702,206 +8090,155 @@ Ingen flere notiser vil bli gitt. engineSelect - Search plugins - Søke-programtillegg + Søke-programtillegg - Installed search engines: - Installerte søkemotorer: + Installerte søkemotorer: - Name - Navn + Navn - Version - Versjon + Versjon - Url - Nettadresse + Nettadresse - - Enabled - Aktivert + Aktivert - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan skaffe nye søkemotor-programtillegg her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan skaffe nye søkemotor-programtillegg her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Installer en ny + Installer en ny - Check for updates - Søk etter oppdateringer + Søk etter oppdateringer - Close - Steng + Steng - Uninstall - Avinstaller + Avinstaller engineSelectDlg - Uninstall warning - Avinstalleringsadvarsel + Avinstalleringsadvarsel - Uninstall success - Avinstallering vellykket + Avinstallering vellykket - Invalid plugin - Ugyldig programtillegg + Ugyldig programtillegg - The search engine plugin is invalid, please contact the author. - Søkemotor-programtillegget er ugyldig, vennligst kontakt opphavspersonen. + Søkemotor-programtillegget er ugyldig, vennligst kontakt opphavspersonen. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - En nyere versjon av '%1' søkemotor-programtillegget er allerede installert. + En nyere versjon av '%1' søkemotor-programtillegget er allerede installert. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' søkemotor-programtillegg kunne ikke oppdateres, beholder gammel versjon. + '%1' søkemotor-programtillegg kunne ikke oppdateres, beholder gammel versjon. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' søkemotor-programtillegg kunne ikke installeres. + '%1' søkemotor-programtillegg kunne ikke installeres. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' søkemotor-programtillegg ble vellykket oppdatert. + '%1' søkemotor-programtillegg ble vellykket oppdatert. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' søkemotor-programtillegg ble vellykket installert. + '%1' søkemotor-programtillegg ble vellykket installert. - The link doesn't seem to point to a search engine plugin. - Lenken ser ikke ut til å peke mot et søkemotor-programtillegg. + Lenken ser ikke ut til å peke mot et søkemotor-programtillegg. - Select search plugins - Velg søke-programtillegg + Velg søke-programtillegg - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Beklager, '%1' søke-programtillegg installasjon mislyktes. + Beklager, '%1' søke-programtillegg installasjon mislyktes. - - - - - Search plugin install - Søke-programtillegg installering + Søke-programtillegg installering - - - Yes - Ja + Ja - - - - No - Nei + Nei - qBittorrent search plugin - qBittorrent søke-programtillegg + qBittorrent søke-programtillegg - - - - Search plugin update - Søke-programtillegg oppdatering + Søke-programtillegg oppdatering - - Sorry, update server is temporarily unavailable. - Beklager, oppdateringstjener er midlertidig utilgjengelig. + Beklager, oppdateringstjener er midlertidig utilgjengelig. - All your plugins are already up to date. - Alle dine programtillegg er allerede oppdatert. + Alle dine programtillegg er allerede oppdatert. - All selected plugins were uninstalled successfully - Alle valgte programtillegg ble vellykket avinstallert + Alle valgte programtillegg ble vellykket avinstallert - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Noen programtillegg kunne ikke avinstalleres, siden de er inkludert i qBittorrent. Kun de du har lagt til selv kan avinstalleres. + Noen programtillegg kunne ikke avinstalleres, siden de er inkludert i qBittorrent. Kun de du har lagt til selv kan avinstalleres. Disse programtilleggene ble deaktivert. - Invalid link - Ugyldig lenke + Ugyldig lenke - - New search engine plugin URL - Ny søkemotor-programtilleggs nettadresse + Ny søkemotor-programtilleggs nettadresse - - URL: - Nettadresse: + Nettadresse: @@ -8031,169 +8368,169 @@ Disse programtilleggene ble deaktivert. options_imp - - + + Choose export directory Velg eksporteringskatalog - - - - + + + + Choose a save directory Velg en lagringskatalog - + Add directory to scan Legg til katalog som skal gjennomsøkes - + Supported parameters (case sensitive): Støttede parametre (forskjell på små og store bokstaver): - + %N: Torrent name %N: Torrentnavn - + %L: Label %L: Etikett - + %F: Content path (same as root path for multifile torrent) %F: Innholdsti (samme som rotsti for flerfilstorrent) - + %R: Root path (first torrent subdirectory path) %R: Rotsti (første torrent underkatalogsti) - + %D: Save path %D: Lagringssti - + %C: Number of files %C: Antall filer - + %Z: Torrent size (bytes) %Z: Torrentstørrelse (byte) - + %T: Current tracker %T: Nåværende sporer - + %I: Info hash %I: Informativ verifiseringsnøkkel - + Folder is already being watched. Mappe er allerede overvåket. - + Folder does not exist. Mappe eksisterer ikke. - + Folder is not readable. Mappe er ikke lesbar. - + Failure Svikt - + Failed to add Scan Folder '%1': %2 Tillegging av gjennomsøkingsmappe mislyktes '%1': %2 - - + + Filters Filter - - + + Choose an IP filter file Velg en IP filter fil - + SSL Certificate SSL Sertifikat - + SSL Key SSL Nøkkel - + Parsing error Analyseringsfeil - + Failed to parse the provided IP filter Analysering av det oppgitte IP filteret mislyktes - + Successfully refreshed Oppdatert vellykket - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Det oppgitte IP filteret ble vellykket analysert: %1 regler ble lagt til. - + Invalid key Ugyldig nøkkel - + This is not a valid SSL key. Dette er ikke en gyldig SSL nøkkel. - + Invalid certificate Ugyldig sertifikat - + This is not a valid SSL certificate. Dette er ikke et gyldig SSL sertifikat. - + The start time and the end time can't be the same. Starttidspunktet og sluttidspunktet kan ikke være det samme. - + Time Error Tidspunktsfeil @@ -8201,24 +8538,20 @@ Disse programtilleggene ble deaktivert. pluginSourceDlg - Plugin source - Programtilleggskilde + Programtilleggskilde - Search plugin source: - Søke-programtillegg kilde: + Søke-programtillegg kilde: - Local file - Lokal fil + Lokal fil - Web link - Nettlenke + Nettlenke @@ -8247,40 +8580,32 @@ Disse programtilleggene ble deaktivert. search_engine - - Search - Søk + Søk - Status: - Status: + Status: - Stopped - Stoppet + Stoppet - Download - Last ned + Last ned - Go to description page - Gå til beskrivelsesside + Gå til beskrivelsesside - Copy description page URL - Kopier beskrivelsesside-nettadresse + Kopier beskrivelsesside-nettadresse - Search engines... - Søkemotorer... + Søkemotorer... diff --git a/src/lang/qbittorrent_nl.ts b/src/lang/qbittorrent_nl.ts index 0406172d6..425124f37 100644 --- a/src/lang/qbittorrent_nl.ts +++ b/src/lang/qbittorrent_nl.ts @@ -127,7 +127,7 @@ Set as default label - + Instellen als standaardlabel @@ -175,172 +175,172 @@ Niet downloaden - - + + I/O Error I/O-fout - + The torrent file does not exist. Het torrentbestand bestaat niet. - + Invalid torrent Ongeldige torrent - + Failed to load the torrent: %1 Laden van torrent mislukt: %1 - - + + Already in download list Reeds in downloadlijst - + Free disk space: %1 Vrije schijfruimte: %1 - + Not Available This comment is unavailable Niet beschikbaar - + Not Available This date is unavailable Niet beschikbaar - + Not available Niet beschikbaar - + Invalid magnet link Ongeldige magneetlink - + Torrent is already in download list. Trackers were merged. Torrent staat reeds in downloadlijst. Trackers werden samengevoegd. - - + + Cannot add torrent Kan torrent niet toevoegen - + Cannot add this torrent. Perhaps it is already in adding state. Kan deze torrent niet toevoegen. Misschien wordt hij reeds toegevoegd. - + This magnet link was not recognized Deze magneetlink werd niet herkend - + Magnet link is already in download list. Trackers were merged. Magneetlink staat al in downloadlijst. Trackers werden samengevoegd. - + Cannot add this torrent. Perhaps it is already in adding. Kan deze torrent niet toevoegen. Misschien wordt hij reeds toegevoegd. - + Magnet link Magneetlink - + Retrieving metadata... Metadata ophalen... - + Not Available This size is unavailable. Niet beschikbaar - - - + + + Choose save path Opslagpad kiezen - + Rename the file Bestandsnaam wijzigen - + New name: Nieuwe naam: - - + + The file could not be renamed De bestandsnaam kon niet gewijzigd worden - + This file name contains forbidden characters, please choose a different one. Deze bestandsnaam bevat verboden tekens, gelieve een andere te kiezen. - - + + This name is already in use in this folder. Please use a different name. Deze naam bestaat al in deze map. Gelieve een andere naam te gebruiken. - + The folder could not be renamed De mapnaam kon niet gewijzigd worden - + Rename... Naam wijzigen... - + Priority Prioriteit - + Invalid metadata Ongeldige metadata - + Parsing metadata... Metadata verwerken... - + Metadata retrieval complete Metadata ophalen voltooid - + Download Error Downloadfout @@ -431,10 +431,6 @@ Resolve peer host names Hostnamen van peers oplossen - - Maximum number of half-open connections [0: Disabled] - Maximaal aantal halfopen verbindingen [0 Uitgeschakeld] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maximaal aantal halfopen verbindingen [0: ongelimiteerd] @@ -661,205 +657,205 @@ &Exporteren... - + Matches articles based on episode filter. Komt overeen met artikels gebaseerd op afleveringsfilter. - + Example: Voorbeeld: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match zal overeenkomen met aflevering 2, 5, 8 tot 15, 30 en verdere van seizoen 1 - + Episode filter rules: Afleveringsfilter-regels: - + Season number is a mandatory non-zero value Seizoensnummer is een verplichte "geen nul"-waarde - + Episode number is a mandatory non-zero value Afleveringsnummer is een verplichte "geen nul"-waarde - + Filter must end with semicolon Filter moet eindigen met een puntkomma - + Three range types for episodes are supported: Er worden drie bereiktypes voor afleveringen ondersteund: - + Single number: <b>1x25;</b> matches episode 25 of season one Enkel cijfer: <b>1x25;</b> komt overeen met aflevering 25 van seizoen 1 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normaal bereik: <b>1x25-40;</b> komt overeen met aflevering 25 tot 40 van seizoen 1 - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Oneindig bereik: <b>1x25-;</b> komt overeen met aflevering 25 en verder van seizoen 1 - + Last Match: %1 days ago Laatste overeenkomst: %1 dagen geleden - + Last Match: Unknown Laatste overeenkomst: onbekend - + New rule name Naam van nieuwe regel - + Please type the name of the new download rule. Typ de naam van de nieuwe downloadregel. - - + + Rule name conflict Regelnaam-conflict - - + + A rule with this name already exists, please choose another name. Een regel met deze naam bestaat reeds, kies een andere naam. - + Are you sure you want to remove the download rule named '%1'? Weet u zeker dat u de downloadregel met naam '%1' wilt verwijderen? - + Are you sure you want to remove the selected download rules? Bent u zeker dat u de geselecteerde downloadregels wilt verwijderen? - + Rule deletion confirmation Bevestiging verwijderen regel - + Destination directory Doelmap - + Invalid action Ongeldige handeling - + The list is empty, there is nothing to export. De lijst is leeg, er is niets om te exporteren. - + Where would you like to save the list? Waar wilt u de lijst opslaan? - + Rules list (*.rssrules) Regelllijst (*.rssrules) - + I/O Error I/O-fout - + Failed to create the destination file Doelbestand aanmaken mislukt - + Please point to the RSS download rules file Gelieve te verwijzen naar het bestand met RSS-downloadregels - + Rules list Lijst van regels - + Import Error Importeerfout - + Failed to import the selected rules file Importeren van geselecteerd regelbestand mislukt - + Add new rule... Nieuwe regel toevoegen... - + Delete rule Regel verwijderen - + Rename rule... Regel hernoemen... - + Delete selected rules Geselecteerde regels verwijderen - + Rule renaming Regelhernoeming - + Please type the new rule name Typ de naam van de nieuwe regel - + Regex mode: use Perl-like regular expressions Regex-modus: Perl-achtige reguliere expressies gebruiken - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Jokerteken-modus: u kunt gebruik maken van<ul><li>? om één enkel teken voor te stellen</li><li>* om nul of meerdere tekens voor te stellen<li><li>Witruimtes tellen als AND-operatoren<li><lu> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Jokerteken-modus: u kunt gebruik maken van <ul><li>? om één enkel teken voor te stellen</li><li>* om nul of meerdere tekens voor te stellen<li><li>| wordt gebruikt als OR-operator<li><lu> @@ -952,65 +948,57 @@ '%1' heeft de maximum ingestelde verhouding bereikt. Pauzeren... - Error: Could not create torrent export directory: '%1' - Fout: kon map voor exporteren van torrent niet aanmaken: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Fout: kon torrent '%1' niet exporteren; misschien heeft hij nog geen metadata. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Systeem-netwerkstatus gewijzigd in %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Netwerkconfiguratie van %1 is gewijzigd, sessie-koppeling vernieuwen - + Unable to decode '%1' torrent file. Kon torrentbestand '%1' niet decoderen. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Recursieve download van bestand '%1' in torrent '%2' - + Couldn't save '%1.torrent' Kon '%1.torrent' niet opslaan - + because %1 is disabled. this peer was blocked because uTP is disabled. omdat %1 uitgeschakeld is. - + because %1 is disabled. this peer was blocked because TCP is disabled. omdat %1 uitgeschakeld is. - + URL seed lookup failed for URL: '%1', message: %2 URL-seed raadpleging mislukt voor url: '%1', bericht: '%2' @@ -1027,178 +1015,164 @@ '%1' werd verwijderd van de overdrachtlijst. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Bezig met downloaden van '%1', even geduld... - Torrent Export: torrent is invalid, skipping... - Torrent exporteren: torrent is ongeldig, overslaan... - - - + DHT support [ON] DHT-ondersteuning [AAN] - + DHT support [OFF]. Reason: %1 DHT-ondersteuning [UIT]. Reden: %1 - + DHT support [OFF] DHT-ondersteuning [UIT] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent probeert te luisteren op om het even welke interface-poort: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2 - - - + The network interface defined is invalid: %1 De opgegeven netwerkinterface is ongeldig: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent probeert te luisteren op interface %1 poort: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorent vond geen lokaal %1 adres om op te luisteren - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2. {1.?} + qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2. - + Tracker '%1' was added to torrent '%2' Tracker '%1' werd toegevoegd aan torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' werd verwijderd uit torrent '%2' - + URL seed '%1' was added to torrent '%2' URL-seed '%1' werd toegevoegd aan torrent '%2' - + URL seed '%1' was removed from torrent '%2' URL-seed '%1' werd verwijderd uit torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Kon torrent '%1' niet hervatten. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verwerken van opgegeven IP-filter gelukt: er werden %1 regels toegepast. - + Error: Failed to parse the provided IP filter. Fout: verwerken van de opgegeven IP-filter mislukt - + Couldn't add torrent. Reason: %1 Kon torrent niet toevoegen. Reden: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' hervat. (snel hervatten) - + '%1' added to download list. 'torrent name' was added to download list. '%1' toegevoegd aan downloadlijst. - + An I/O error occurred, '%1' paused. %2 Er trad een I/O-fout op, '%1' gepauzeerd. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: port mapping mislukt, bericht: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: port mapping succesvol, bericht: %1 - + due to IP filter. this peer was blocked due to ip filter. veroorzaakt door IP-filter. - + due to port filter. this peer was blocked due to port filter. veroorzaakt door poortfilter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. veroorzaakt door i2p mixed mode restricties. - + because it has a low port. this peer was blocked because it has a low port. omdat het een lage poort heeft. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent luistert met succes naar interface %1 poort: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4. {1 ?} {2/%3.?} + qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Externe IP: %1 @@ -1212,12 +1186,12 @@ Torrent '%1' kon niet verplaatst worden. Reden: %2 - + File sizes mismatch for torrent '%1', pausing it. Bestandgroottes komen niet overeen voor torrent '%1', wordt gepauzeerd. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Data voor snel hervatten werd afgewezen voor torrent '%1'. Reden: %2. Opnieuw controleren... @@ -1242,7 +1216,7 @@ Waarde - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Algemene sleutels voor cookies zijn: '%1', '%2'. @@ -1310,12 +1284,12 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. FeedListWidget - + RSS feeds RSS-feeds - + Unread Ongelezen @@ -1412,10 +1386,6 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Only one link per line Slechts één link per regel - - Download local torrent - Lokale torrent downloaden - Download @@ -1589,20 +1559,30 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Save files to location: - Bestanden opslaan in: + Bestanden opslaan in: Label: - Label: + Label: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Gedownload @@ -1615,7 +1595,7 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Upload local torrent - + Lokale torrent uploaden @@ -1973,10 +1953,6 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. &About &Over - - Exit - Afsluiten - &Pause @@ -2007,22 +1983,6 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. E&xit Slu&iten - - Options - Opties - - - Resume - Hervatten - - - Pause - Pauzeren - - - Delete - Verwijderen - Open URL @@ -2040,19 +2000,15 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. - + Show Weergeven - + Check for program updates Op programma-updates controleren - - Lock qBittorrent - qBittorrent vergrendelen - Add Torrent &Link... @@ -2065,215 +2021,221 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. - + Execution Log Uitvoeringslog - + Clear the password Wachtwoord wissen - + Filter torrent list... Torrentlijst filteren... - + &Set Password Wachtwoord in&stellen - + &Clear Password Wachtwoord &wissen - + Transfers Overdrachten - + Torrent file association Torrent-bestandsassociatie - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent is niet het standaardprogramma om torrentbestanden of magneetlinks te openen. Wilt u qBittorrent koppelen met torrentbestanden en magneetlinks? - + Icons Only Alleen pictogrammen - + Text Only Alleen tekst - + Text Alongside Icons Tekst naast pictogrammen - + Text Under Icons Tekst onder pictogrammen - + Follow System Style Systeemstijl volgen - - - + + + UI lock password Wachtwoord UI-vergrendeling - - - + + + Please type the UI lock password: Geef het wachtwoord voor UI-vergrendeling op: - + The password should contain at least 3 characters Het wachtwoord moet minstens 3 tekens bevatten - + Password update Wachtwoord-update - + The UI lock password has been successfully updated Het wachtwoord voor UI-vergrendeling is succesvol bijgewerkt - + Are you sure you want to clear the password? Weet u zeker dat u het wachtwoord wilt wissen? - + Search Zoeken - + Transfers (%1) Overdrachten (%1) - + Error Fout - + Failed to add torrent: %1 Toevoegen van torrent mislukt: %1 - + Download completion Gedownload - + I/O Error i.e: Input/Output Error I/O-fout - + Recursive download confirmation Recursieve donwloadbevestiging - + Yes Ja - + No Nee - + Never Nooit - + Global Upload Speed Limit Algemene uploadsnelheidlimiet - + Global Download Speed Limit Algemene downloadsnelheidslimiet - + &No &Nee - + &Yes &Ja - + &Always Yes &Altijd ja - + Python found in %1 Python teruggevonden in %1 - + Old Python Interpreter Oude Python-interpreter - + qBittorrent Update Available qBittorrent-update beschikbaar - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version De laatste versie van qBittorrent wordt al gebruikt - + Undetermined Python version Niet-bepaalde Pythonversie - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' is klaar met downloaden. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Wilt u qBittorrent koppelen met torrentbestanden en magneetlinks? Reden: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent '%1' bevat torrentbestanden, wilt u verdergaan met hun download? - + Couldn't download file at URL '%1', reason: %2. Kon bestand niet downloaden vanaf URL '%1', reden: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Uw Pythonversie %1 is verouderd. Gelieve bij te werken naar de laatste versie om zoekmachines te laten werken. Minimale vereiste: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Kon uw Pythonversie niet bepalen (%1). Zoekmachine uitgeschakeld. - - + + Missing Python Interpreter Ontbrekende Python-interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python is vereist om de zoekmachine te gebruiken maar dit lijkt niet geïnstalleerd. Wilt u het nu installeren? - + Python is required to use the search engine but it does not seem to be installed. Python is vereist om de zoekmachine te gebruiken maar dit lijkt niet geïnstalleerd. - A new version is available. Update to version %1? - Er is een nieuwe versie beschikbaar. + Er is een nieuwe versie beschikbaar. Bijwerken naar versie %1? - + No updates available. You are already using the latest version. Geen updates beschikbaar. U gebruikt de laatste versie al. - + &Check for Updates &Controleren op updates - + Checking for Updates... Controleren op updates... - + Already checking for program updates in the background Reeds aan het controleren op programma-updates op de achtergrond - + Python found in '%1' Python teruggevonden in '%1' - + Download error Downloadfout - + Python setup could not be downloaded, reason: %1. Please install it manually. Python-installatie kon niet gedownload worden, reden: %1. Gelieve het manueel te installeren. - - + + Invalid password Ongeldig wachtwoord - - + + RSS (%1) RSS (%1) - + URL download error URL-downloadfout - + The password is invalid Het wachtwoord is ongeldig - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Downloadsnelheid: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Uploadsnelheid: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, U: %2] qBittorrent %3 - + Hide Verbergen - + Exiting qBittorrent qBittorrent afsluiten - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Er worden momenteel een aantal bestanden overgedragen. Weet u zeker dat u qBittorrent wilt afsluiten? - + Open Torrent Files Torrentbestanden openen - + Torrent Files Torrentbestanden - + Options were saved successfully. Opties zijn succesvol opgeslagen. @@ -2443,17 +2404,17 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Uw dynamische DNS werd succesvol bijgewerkt. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Dynamische DNS fout: de dienst is tijdelijk niet beschikbaar, er wordt opnieuw geprobeerd binnen 30 minuten. - + Dynamic DNS error: hostname supplied does not exist under specified account. Dynamische DNS fout: opgegeven hostnaam bestaat niet bij de opgegeven account. @@ -2463,32 +2424,32 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Dynamische DNS fout: ongeldige gebruikersnaam/wachtwoord. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Dynamische DNS fout: qBittorrent werd geblacklist door deze dienst, gelieve de bug te rapporteren op http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Dynamische DNS fout: %1 werd teruggegeven door de dienst, gelieve de bug te rapporteren op http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Dynamische DNS fout: uw gebruikersnaam werd geblokkeerd door misbruik. - + Dynamic DNS error: supplied domain name is invalid. Dynamische DNS fout: opgegeven domeinnaam is ongeldig. - + Dynamic DNS error: supplied username is too short. Dynamische DNS fout: opgegeven gebruikersnaam is te kort. - + Dynamic DNS error: supplied password is too short. Dynamische DNS fout: opgegeven wachtwoord is te kort. @@ -2515,154 +2476,161 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP-database geladen. Type: %1. Build-tijd: %2. - + Couldn't load GeoIP database. Reason: %1 Kon GeoIP-database niet laden. Reden: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/B - Asia/Pacific Region - Azië/Stille Oceaan + Azië/Stille Oceaan + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Verenigde Arabische Emiraten - + Afghanistan Afghanistan - + Antigua and Barbuda Antigua en Barbuda - + Anguilla Anguilla - + Albania Albanië - + Armenia Armenië - Netherlands Antilles - Nederlandse Antillen + Nederlandse Antillen - + Angola Angola - + Antarctica Antarctica - + Argentina Argentinië - + American Samoa Amerikaans-Samoa - + Austria Oostenrijk - + Australia Australië - + Aruba Aruba - + Azerbaijan Azerbeidzjan - + Bosnia and Herzegovina Bosnië en Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium België - + Burkina Faso Burkina Faso - + Bulgaria Bulgarije - + Bahrain Bahrein - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Brunei - Bolivia - Bolivia + Bolivia - + Brazil Brazilië - + Bahamas Bahama's - + Bhutan Bhutan - + Bouvet Island Bouvet Island - + Botswana Botswana - + Belarus Wit-Rusland - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Cocoseilanden - + Congo, The Democratic Republic of the Congo-Kinshasa - + Central African Republic Centraal-Afrikaanse Republiek - + Congo Congo - + Switzerland Zwitserland - Cote D'Ivoire - Ivoorkust + Ivoorkust - + Cook Islands Cookeilanden - + Chile Chili - + Cameroon Kameroen - + China China - + Colombia Colombia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Kaapverdië - + + Curacao + + + + Christmas Island Christmaseiland - + Cyprus Cyprus - + Czech Republic Tsjechië - + Germany Duitsland - + Djibouti Djibouti - + Denmark Denemarken - + Dominica Dominica - + Dominican Republic Dominicaanse republiek - + Algeria Algerije - + Ecuador Ecuador - + Estonia Estland - + Egypt Egypte - + Western Sahara Westelijke Sahara - + Eritrea Eritrea - + Spain Spanje - + Ethiopia Ethiopië - + Finland Finland - + Fiji Fiji - + Falkland Islands (Malvinas) Falklandeilanden (Malvinas) - + Micronesia, Federated States of Micronesia - + Faroe Islands Faeröer - + France Frankrijk - France, Metropolitan - Frankrijk, Metropool + Frankrijk, Metropool - + Gabon Gabon - + United Kingdom Verenigd Koninkrijk - + Grenada Grenada - + Georgia Georgië - + French Guiana Frans-Guyana - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenland - + Gambia Gambia - + Guinea Guinee - + Guadeloupe Guadeloupe - + Equatorial Guinea Equatoriaal-Guinea - + Greece Griekenland - + South Georgia and the South Sandwich Islands Zuid-Georgia en de Zuidelijke Sandwicheilanden - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinee-Bissau - + Guyana Guyana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Heard en McDonaldeilanden - + Honduras Honduras - + Croatia Kroatië - + Haiti Haïti - + Hungary Hongarije - + Indonesia Indonesië - + Ireland Ierland - + Israel Israël - + India India - + British Indian Ocean Territory Brits Indische Oceaanterritorium - + Iraq Irak - + Iran, Islamic Republic of Iran - + Iceland Ijsland - + Italy Italië - + Jamaica Jamaica - + Jordan Jordanië - + Japan Japan - + Kenya Kenia - + Kyrgyzstan Kirgizië - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comoren - + Saint Kitts and Nevis Saint Kitts en Nevis - + Korea, Democratic People's Republic of Noord-Korea - + Korea, Republic of Zuid-Korea - + Kuwait Koeweit - + Cayman Islands Kaaimaneilanden - + Kazakhstan Kazachstan - + Lao People's Democratic Republic Laos - + Lebanon Libanon - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litouwen - + Luxembourg Luxemburg - + Latvia Letland - Libyan Arab Jamahiriya - Libië + Libië - + Morocco Marokko - + Monaco Monaco - + Moldova, Republic of Moldavië - + Madagascar Madagaskar - + Marshall Islands Marshalleilanden - Macedonia - Macedonië + Macedonië - + Mali Mali - + Myanmar Myanmar - + Mongolia Mongolië - Macau - Macau + Macau - + Northern Mariana Islands Noordelijke Marianen - + Martinique Martinique - + Mauritania Mauritanië - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldiven - + Malawi Malawi - + Mexico Mexico - + Malaysia Maleisië - + Mozambique Mozambique - + Namibia Namibië - + New Caledonia Nieuw-Caledonië - + Niger Niger - + Norfolk Island Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Nederland - + Norway Noorwegen - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nieuw-Zeeland - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Frans-Polynesië - + Papua New Guinea Papoea-Nieuw-Guinea - + Philippines Filipijnen - + Pakistan Pakistan - + Poland Polen - + Saint Pierre and Miquelon Saint-Pierre en Miquelon - Pitcairn Islands - Pitcairneilanden + Pitcairneilanden - + Puerto Rico Puerto Rico - Palestinian Territory - Palestina + Palestina - + Portugal Portugal - + Palau Palau - + Paraguay Paraguay - + Qatar Qatar - + Reunion Réunion - + Romania Roemenië - + Russian Federation Rusland - + Rwanda Rwanda - + Saudi Arabia Saoedi-Arabië - + Solomon Islands Salomonseilanden - + Seychelles Seychellen - + Sudan Soedan - + Sweden Zweden - + Singapore Singapore - Saint Helena -  Sint-Helena, Ascension en Tristan da Cunha +  Sint-Helena, Ascension en Tristan da Cunha - + Slovenia Slovenië - + Svalbard and Jan Mayen  Spitsbergen en Jan Mayen - + Slovakia Slowakije - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalië - + Suriname Suriname - + Sao Tome and Principe Sao Tomé en Principe - + El Salvador El Salvador - + Syrian Arab Republic Syrië - + Swaziland Swaziland - + Turks and Caicos Islands Turks- en Caicoseilanden - + Chad Tsjaad - + French Southern Territories Franse Zuidelijke en Antarctische Gebieden - + Togo Togo - + Thailand Thailand - + Tajikistan Tadzjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunesië - + Tonga Tonga - + Timor-Leste Oost-Timor - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turkije - + Trinidad and Tobago Trinidad en Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Oekraïne - + Uganda Oeganda - + United States Minor Outlying Islands Kleine Pacifische eilanden van de Verenigde Staten - + United States Verenigde Staten - + Uruguay Uruguay - + Uzbekistan Oezbekistan - + Holy See (Vatican City State) Vaticaanstad - + Saint Vincent and the Grenadines Saint Vincent en de Grenadines - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Britse Maagdeneilanden - + Virgin Islands, U.S. Amerikaanse Maagdeneilanden - Vietnam - Viëtnam + Viëtnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis en Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Servië - + South Africa Zuid-Afrika - + Zambia Zambia - + Montenegro Montenegro - + Zimbabwe Zimbabwe - Anonymous Proxy - Anonieme proxy + Anonieme proxy - Satellite Provider - Satelliet-provider + Satelliet-provider - Other - Andere + Andere - + Aland Islands Åland - + Guernsey Guernsey - + Isle of Man Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - Sint-Maarten + Sint-Maarten - + Could not uncompress GeoIP database file. Kon GeoIP-databasebestand niet uitpakken. - + Couldn't save downloaded GeoIP database file. Kon gedownload GeoIP-databasebestand niet opslaan. - + Successfully updated GeoIP database. GeoIP-database succesvol bijgewerkt. - + Couldn't download GeoIP database file. Reason: %1 Kon GeoIP-database niet downloaden. Reden: %1 @@ -3838,72 +3856,72 @@ Weet u zeker dat u qBittorrent wilt afsluiten? interested(local) and choked(peer) - geïnteresseerd (lokaal) en gestopt (peer) + geïnteresseerd (lokaal) en gestopt (peer) interested(local) and unchoked(peer) - geïnteresseerd (lokaal) en voortgezet (peer) + geïnteresseerd (lokaal) en voortgezet (peer) interested(peer) and choked(local) - geïnteresseerd (peer) en gestopt (lokaal) + geïnteresseerd (peer) en gestopt (lokaal) interested(peer) and unchoked(local) - geïnteresseerd (peer) en voortgezet (lokaal) + geïnteresseerd (peer) en voortgezet (lokaal) optimistic unchoke - optimistisch voortzetten + optimistisch voortzetten peer snubbed - peer gestopt met uploaden + peer gestopt met uploaden incoming connection - inkomende verbinding + inkomende verbinding not interested(local) and unchoked(peer) - niet geïnteresseerd (lokaal) en voortgezet (peer) + niet geïnteresseerd (lokaal) en voortgezet (peer) not interested(peer) and unchoked(local) - niet geïnteresseerd (peer) en voortgezet (lokaal) + niet geïnteresseerd (peer) en voortgezet (lokaal) peer from PEX - peer van PEX + peer van PEX peer from DHT - peer van DHT + peer van DHT encrypted traffic - versleuteld verkeer + versleuteld verkeer encrypted handshake - versleutelde handdruk + versleutelde handdruk peer from LSD - peer van LSD + peer van LSD @@ -3971,123 +3989,73 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Relevantie - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Nieuwe peer toevoegen... - + Copy selected Geselecteerde kopiëren - - + + Ban peer permanently Peer permanent bannen - + Manually adding peer '%1'... Peer '%1' manueel toevoegen... - + The peer '%1' could not be added to this torrent. Peer '%1' kon niet toegevoegd worden aan deze torrent. - + Manually banning peer '%1'... Peer '%1' manueel bannen... - - + + Peer addition Peer toevoegen - + Some peers could not be added. Check the Log for details. Een aantal peers konden niet toegevoegd worden. Controleer het logbestand voor details. - + The peers were added to this torrent. De peers werden toegevoegd aan deze torrent. - + Are you sure you want to ban permanently the selected peers? Bent u zeker dat u de geselecteerde peer permanent wilt bannen? - + &Yes &Ja - + &No &Nee - - interested(local) and choked(peer) - geïnteresseerd (lokaal) en gestopt (peer) - - - interested(local) and unchoked(peer) - geïnteresseerd (lokaal) en voortgezet (peer) - - - interested(peer) and choked(local) - geïnteresseerd (peer) en gestopt (lokaal) - - - interested(peer) and unchoked(local) - geïnteresseerd (peer) en voortgezet (lokaal) - - - optimistic unchoke - optimistisch voortzetten - - - peer snubbed - peer gestopt met uploaden - - - incoming connection - inkomende verbinding - - - not interested(local) and unchoked(peer) - niet geïnteresseerd (lokaal) en voortgezet (peer) - - - not interested(peer) and unchoked(local) - niet geïnteresseerd (peer) en voortgezet (lokaal) - - - peer from PEX - peer van PEX - - - peer from DHT - peer van DHT - - - encrypted traffic - versleuteld verkeer - - - encrypted handshake - versleutelde handdruk - - - peer from LSD - peer van LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Blauw: beschikbare deeltjes + + PluginSelectDlg + + + Search plugins + Zoekplugins + + + + Installed search plugins: + + + + + Name + Naam + + + + Version + Versie + + + + Url + Url + + + + + Enabled + Ingeschakeld + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + U kunt hier nieuwe zoekmachineplugins vinden:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Een nieuwe installeren + + + + Check for updates + Controleren op updates + + + + Close + Sluiten + + + + Uninstall + Deïnstalleren + + + + + + Yes + Ja + + + + + + + No + Nee + + + + Uninstall warning + Deïnstallatie-waarschuwing + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Niet alle plugins konden verwijderd worden omdat ze bij qBittorrent horen. Alleen de door uzelf toegevoegde plugins kunnen worden verwijderd. +Deze plugins zijn uitgeschakeld. + + + + Uninstall success + Deïnstallatie gelukt + + + + All selected plugins were uninstalled successfully + Alle gekozen plugins zijn succesvol verwijderd + + + + + New search engine plugin URL + Nieuwe zoekmachineplugin-url + + + + + URL: + Url: + + + + Invalid link + Ongeldige link + + + + The link doesn't seem to point to a search engine plugin. + De link lijkt niet te wijzen naar een zoekmachine-plugin. + + + + Select search plugins + Zoek-plugins selecteren + + + + qBittorrent search plugin + qBittorrent zoekplugin + + + + + + Search plugin update + Plugin-update zoeken + + + + All your plugins are already up to date. + Uw plugins zijn al up-to-date. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Installatie zoekplugin + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Plugin-bron + + + + Search plugin source: + Zoekplugin-bron: + + + + Local file + Lokaal bestand + + + + Web link + Weblink + + Preferences @@ -4181,89 +4346,89 @@ Weet u zeker dat u qBittorrent wilt afsluiten? .!qB-extensie toevoegen aan onvolledige bestanden - + Copy .torrent files to: .torrentbestanden kopiëren naar: - + Connections Limits Verbindingslimieten - + Proxy Server Proxy-server - + Global Rate Limits Algemene snelheidslimieten - + Apply rate limit to transport overhead Snelheidslimiet toepassen op transport-overhead - + Schedule the use of alternative rate limits Gebruik van alternatieve snelheidslimieten inplannen - + From: from (time1 to time2) Van: - + To: time1 to time2 Aan: - + Enable Local Peer Discovery to find more peers Lokale peer-ontdekking inschakelen om meer peers te vinden - + Encryption mode: Encryptiemodus: - + Prefer encryption Encryptie verkiezen - + Require encryption Encryptie vereisen - + Disable encryption Encryptie uitschakelen - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Meer informatie</a>) - + Maximum active downloads: Maximaal aantal actieve downloads: - + Maximum active uploads: Maximaal aantal actieve uploads: - + Maximum active torrents: Maximaal aantal actieve torrents: @@ -4288,82 +4453,82 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Torrentinhoud en enkele opties weergeven - + Run external program on torrent completion Extern programma uitvoeren bij voltooien van de torrent - + Port used for incoming connections: Poort voor inkomende verbindingen: - + Random Willekeurig - + Global maximum number of connections: Algemeen maximaal aantal verbindingen: - + Maximum number of connections per torrent: Maximaal aantal verbindingen per torrent: - + Maximum number of upload slots per torrent: Maximaal aantal uploadslots per torrent: - - + + Upload: Upload: - - + + Download: Download: - - - - + + + + KiB/s KiB/s - + Remove folder Map verwijderen - + Every day Elke dag - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Peers uitwisselen met compatibele Bittorrent-clients (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Type: @@ -4536,262 +4701,262 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Torrents automatisch toevoegen vanuit: - + Add folder... Map toevoegen - + Copy .torrent files for finished downloads to: Torrentbestanden voor voltooide downloads kopiëren naar: - + Email notification upon download completion Melding via e-mail wanneer download voltooid is - + Destination email: E-mail ontvanger: - + SMTP server: SMTP-server: - + This server requires a secure connection (SSL) Deze server vereist een veilige verbinding (SSL) - + Listening Port Luisterpoort - + Use UPnP / NAT-PMP port forwarding from my router UPnP/NAT-PMP port forwarding van mijn router gebruiken - + Use different port on each startup Bij elke opstart een andere poort gebruiken - + Global maximum number of upload slots: Algemeen maximaal aantal uploadslots: - + Otherwise, the proxy server is only used for tracker connections Anders wordt de proxy server alleen gebruikt voor trackerverbindingen - + Use proxy for peer connections Proxy gebruiken voor peer-verbindingen - + Disable connections not supported by proxies Verbindingen die niet ondersteund worden door proxy's uitschakelen - + Use proxy only for torrents Proxy alleen voor torrents gebruiken - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS-feeds, zoekmachine, software-updates of iets anders dan torrent-overdrachten en gerelateerde handelingen (zoals peer-uitwisselingen) zullen een directe verbinding gebruiken - + Info: The password is saved unencrypted Info: het wachtwoord is onversleuteld opgeslagen - + IP Filtering IP-filtering - + Reload the filter Filter opnieuw laden - + Apply to trackers Toepassen op trackers - + Apply rate limit to peers on LAN Snelheidsbegrenzing toepassen op peers op LAN - + When: Wanneer: - + Weekdays Weekdagen - + Weekends Weekends - + Rate Limits Settings Snelheidsbegrenzingsinstellingen - + Enable µTP protocol µTP-protocol inschakelen - + Apply rate limit to µTP protocol Snelheidsbegrenzing toepassen op µTP-protocol - + Privacy Privacy - + Enable DHT (decentralized network) to find more peers DHT (decentralized network) inschakelen om meer peers te vinden - + Enable Peer Exchange (PeX) to find more peers Peer Exchange (PeX) inschakelen om meer peers te vinden - + Look for peers on your local network Zoeken naar peers in uw lokaal netwerk - + Enable when using a proxy or a VPN connection Inschakelen bij gebruik van een proxy of vpn-verbinding - + Enable anonymous mode Anonieme modus inschakelen - + Do not count slow torrents in these limits Trage torrents niet meerekenen bij deze limieten - + Seed torrents until their ratio reaches Torrents seeden totdat ze een verhouding bereiken van - + then en ze dan - + Pause them pauzeren - + Remove them verwijderen - + Automatically add these trackers to new downloads: Deze trackers automatisch toevoegen aan nieuwe downloads: - + Use UPnP / NAT-PMP to forward the port from my router UPnP/NAT-PMP gebruiken om de poort van mijn router te forwarden - + Use HTTPS instead of HTTP HTTPS in plaats van HTTP gebruiken - + Import SSL Certificate SSL-certificaat importeren - + Import SSL Key SSL-sleutel importeren - + Certificate: Certificaat: - + Alternative Rate Limits Alternatieve snelheidsbegrenzingen - + Key: Sleutel: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informatie over certificaten</a> - + Bypass authentication for localhost Authenticatie overslaan voor localhost - + Update my dynamic domain name Mijn dynamische domeinnaam bijwerken - + Service: Dienst: - + Register Registreren - + Domain name: Domeinnaam: - + (None) (Geen) @@ -4801,61 +4966,61 @@ Weet u zeker dat u qBittorrent wilt afsluiten? BitTorrent - + HTTP HTTP - - + + Port: Poort: - - - + + + Authentication Authenticatie - - - - + + + + Username: Gebruikersnaam: - - - - + + + + Password: Wachtwoord: - + Torrent Queueing Torrents in wachtrij plaatsen - + Share Ratio Limiting Deelverhouding begrenzen - + Enable Web User Interface (Remote control) Web-gebruikersinterface inschakelen (bediening op afstand) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filterpad (.dat, p2p, p2b): @@ -5061,10 +5226,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Comment: Opmerkingen: - - Torrent content: - Torrent-inhoud: - Select All @@ -5587,28 +5748,28 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Onbekende fout - - + + Upgrade Upgraden - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] U heeft bijgewerkt vanaf een oudere versie die dingen op een andere manier opsloeg. U moet migreren naar het nieuwe opslagsysteem. U zult een oudere versie dan v3.3.0 niet meer opnieuw kunnen gebruiken. Doorgaan? [j/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. U heeft bijgewerkt vanaf een oudere versie die dingen op een andere manier opsloeg. U moet migreren naar het nieuwe opslagsysteem. Als u verdergaat, zult u een oudere versie dan v3.3.0 niet meer opnieuw kunnen gebruiken. - + Couldn't migrate torrent with hash: %1 Kon torrent met hash %1 niet migreren - + Couldn't migrate torrent. Invalid fastresume file name: %1 Kon torrent niet migreren. Ongeldige bestandsnaam voor snel hervatten: %1 @@ -5719,17 +5880,17 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. RSSImp - + Stream URL: Stream-url: - + Please type a RSS stream URL Gelieve een RSS-stream-URL in te geven - + This RSS feed is already in the list. Deze RSS-feed staat al in de lijst. @@ -5749,75 +5910,92 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Nieuwe map - + Deletion confirmation Verwijderbevestiging - + Are you sure you want to delete the selected RSS feeds? Weet u zeker dat u de geselecteerde RSS-feeds wilt verwijderen? - + Please choose a new name for this RSS feed Nieuwe naam kiezen voor deze rss-feed - + New feed name: Nieuwe feed-naam: - + Name already in use Naam al in gebruik - + This name is already used by another item, please choose another one. Deze naam is al gebruikt door een ander item, kies een andere naam. - + Date: Datum: - + Author: Auteur: - + Unread Ongelezen - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... + Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Automatisch downloaden van '%1' torrent van '%2' RSS-feed... + Automatisch downloaden van '%1' torrent van '%2' RSS-feed... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Automatisch downloaden van '%1' torrent van '%2' RSS-feed... RssParser - Failed to open downloaded RSS file. - Openen van gedownload rss-bestand mislukt. + Openen van gedownload rss-bestand mislukt. - Invalid RSS feed at '%1'. - Ongeldige rss-ffeed op '%1' + Ongeldige rss-ffeed op '%1' @@ -5843,168 +6021,249 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Maximaal aantal artikels per feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Bladeren... + + + + Choose save path + Opslagpad kiezen + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Bekeken map - - Download here - Hier downloaden + + Save Files to + + + + Download here + Hier downloaden - Download path - Downloadpad + Downloadpad SearchCategories - All categories - Alle categorieën + Alle categorieën - Movies - Films + Films - TV shows - TV-shows + TV-shows - Music - Muziek + Muziek - Games - Spellen + Spellen - Anime - Anime + Anime - Software - Software + Software - Pictures - Afbeeldingen + Afbeeldingen - Books - Boeken + Boeken SearchEngine - - - Search - Zoeken + Zoeken - Please install Python to use the Search Engine. - Installeer Python om de zoekmachine te gebruiken. + Installeer Python om de zoekmachine te gebruiken. - Empty search pattern - Leeg zoekpatroon + Leeg zoekpatroon - Please type a search pattern first - Typ eerst een zoekpatroon + Typ eerst een zoekpatroon - Searching... - Zoeken... + Zoeken... - Stop - Stoppen + Stoppen - - Search Engine - Zoekmachine + Zoekmachine - - Search has finished - Zoeken is klaar + Zoeken is klaar - An error occurred during search... - Er trad een fout op tijdens het zoeken... + Er trad een fout op tijdens het zoeken... - - Search aborted - Zoeken afgebroken + Zoeken afgebroken - All enabled - Alles ingeschakeld + Alles ingeschakeld - All engines - Alle zoekmachines + Alle zoekmachines - - Multiple... - Meerdere... + Meerdere... - - Results <i>(%1)</i>: i.e: Search results - Resultaten <i>(%1)</i>: + Resultaten <i>(%1)</i>: - Search returned no results - Zoeken gaf geen resultaten + Zoeken gaf geen resultaten - Stopped - Gestopt + Gestopt + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Alle categorieën + + + + Movies + Films + + + + TV shows + TV-shows + + + + Music + Muziek + + + + Games + Spellen + + + + Anime + Anime + + + + Software + Software + + + + Pictures + Afbeeldingen + + + + Books + Boeken SearchListDelegate - - + + Unknown Onbekend @@ -6012,35 +6271,160 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. SearchTab - + Name i.e: file name Naam - + Size i.e: file size Grootte - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + Search engine Zoekmachine + + SearchWidget + + + + + + + Search + Zoeken + + + + Status: + Status: + + + + + Stopped + Gestopt + + + + Download + + + + + Go to description page + Naar de beschrijvingspagina gaan + + + + Copy description page URL + Link van beschrijvingspagina kopiëren + + + + Search plugins... + + + + + All enabled + Alles ingeschakeld + + + + All plugins + + + + + + Multiple... + Meerdere... + + + + + + Search Engine + Zoekmachine + + + + Please install Python to use the Search Engine. + Installeer Python om de zoekmachine te gebruiken. + + + + Empty search pattern + Leeg zoekpatroon + + + + Please type a search pattern first + Typ eerst een zoekpatroon + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultaten <i>(%1)</i>: + + + + Searching... + Zoeken... + + + + Stop + Stoppen + + + + + Search has finished + Zoeken is klaar + + + + + Search aborted + Zoeken afgebroken + + + + Search returned no results + Zoeken gaf geen resultaten + + + + Search has failed + + + + + An error occurred during search... + Er trad een fout op tijdens het zoeken... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. TorrentContentModel - + Name Naam - + Size Grootte - + Progress Voortgang - + + Download Priority + + + Priority - Prioriteit + Prioriteit @@ -6854,38 +7242,38 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Waarschuwing (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Kon favicon voor URL '%1' niet decoderen. Proberen om favicon te downloaden in PNG-formaat. - + Couldn't decode favicon for URL '%1'. Kon favicon voor URL '%1' niet decoderen. - + Couldn't download favicon for URL '%1'. Reason: %2 Kon favicon voor URL '%1' niet downloaden. Reden: %2 - + Resume torrents Torrents hervatten - + Pause torrents Torrents pauzeren - + Delete torrents Torrents verwijderen - - + + All (%1) this is for the tracker filter Alles (%1) @@ -7153,17 +7541,17 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. TransferListFiltersWidget - + Status Status - + Labels Labels - + Trackers Trackers @@ -7702,206 +8090,155 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. engineSelect - Search plugins - Zoekplugins + Zoekplugins - Installed search engines: - Geïnstalleerde zoekmachines: + Geïnstalleerde zoekmachines: - Name - Naam + Naam - Version - Versie + Versie - Url - Url + Url - - Enabled - Ingeschakeld + Ingeschakeld - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - U kunt hier nieuwe zoekmachineplugins vinden:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + U kunt hier nieuwe zoekmachineplugins vinden:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Een nieuwe installeren + Een nieuwe installeren - Check for updates - Controleren op updates + Controleren op updates - Close - Sluiten + Sluiten - Uninstall - Deïnstalleren + Deïnstalleren engineSelectDlg - Uninstall warning - Deïnstallatie-waarschuwing + Deïnstallatie-waarschuwing - Uninstall success - Deïnstallatie gelukt + Deïnstallatie gelukt - Invalid plugin - Ongeldige plugin + Ongeldige plugin - The search engine plugin is invalid, please contact the author. - De zoekmachine-plugin is ongeldig. Neem contact op met de auteur. + De zoekmachine-plugin is ongeldig. Neem contact op met de auteur. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Een nieuwere versie van de '%1'-zoekmachineplugin is al geïnstalleerd. + Een nieuwere versie van de '%1'-zoekmachineplugin is al geïnstalleerd. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - De '%1'-zoekmachineplugin kon niet bijgewerkt worden. De oude versie wordt behouden. + De '%1'-zoekmachineplugin kon niet bijgewerkt worden. De oude versie wordt behouden. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - De '%1'-zoekmachineplugin kon niet geïnstalleerd worden. + De '%1'-zoekmachineplugin kon niet geïnstalleerd worden. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - De '%1'-zoekmachineplugin is succesvol bijgewerkt. + De '%1'-zoekmachineplugin is succesvol bijgewerkt. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - De '%1'-zoekmachineplugin is succesvol geïnstalleerd. + De '%1'-zoekmachineplugin is succesvol geïnstalleerd. - The link doesn't seem to point to a search engine plugin. - De link lijkt niet te wijzen naar een zoekmachine-plugin. + De link lijkt niet te wijzen naar een zoekmachine-plugin. - Select search plugins - Zoek-plugins selecteren + Zoek-plugins selecteren - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Sorry, installatie van de '%1'-zoekplugin is mislukt. + Sorry, installatie van de '%1'-zoekplugin is mislukt. - - - - - Search plugin install - Installatie zoekplugin + Installatie zoekplugin - - - Yes - Ja + Ja - - - - No - Nee + Nee - qBittorrent search plugin - qBittorrent zoekplugin + qBittorrent zoekplugin - - - - Search plugin update - Plugin-update zoeken + Plugin-update zoeken - - Sorry, update server is temporarily unavailable. - Sorry, de updateserver is tijdelijk niet bereikbaar. + Sorry, de updateserver is tijdelijk niet bereikbaar. - All your plugins are already up to date. - Uw plugins zijn al up-to-date. + Uw plugins zijn al up-to-date. - All selected plugins were uninstalled successfully - Alle gekozen plugins zijn succesvol verwijderd + Alle gekozen plugins zijn succesvol verwijderd - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Niet alle plugins konden verwijderd worden omdat ze bij qBittorrent horen. Alleen de door uzelf toegevoegde plugins kunnen worden verwijderd. + Niet alle plugins konden verwijderd worden omdat ze bij qBittorrent horen. Alleen de door uzelf toegevoegde plugins kunnen worden verwijderd. Deze plugins zijn uitgeschakeld. - Invalid link - Ongeldige link + Ongeldige link - - New search engine plugin URL - Nieuwe zoekmachineplugin-url + Nieuwe zoekmachineplugin-url - - URL: - Url: + Url: @@ -8031,169 +8368,169 @@ Deze plugins zijn uitgeschakeld. options_imp - - + + Choose export directory Export-map kiezen - - - - + + + + Choose a save directory Opslagmap kiezen - + Add directory to scan Map toevoegen aan scannen - + Supported parameters (case sensitive): Ondersteunde parameters (hoofdlettergevoelig): - + %N: Torrent name %N: naam torrent - + %L: Label %L: label - + %F: Content path (same as root path for multifile torrent) %F: pad naar inhoud (zelfde als root-pad voor torrent met meerdere bestanden) - + %R: Root path (first torrent subdirectory path) %R: root-pad (pad naar eerste submap van torrent) - + %D: Save path %D: opslagpad - + %C: Number of files %C: aantal bestanden - + %Z: Torrent size (bytes) %Z: grootte torrent (bytes) - + %T: Current tracker %T: huidige tracker - + %I: Info hash %I: info-hash - + Folder is already being watched. Map wordt reeds opgevolgd. - + Folder does not exist. Map bestaat niet. - + Folder is not readable. Map kan niet gelezen worden. - + Failure Mislukt - + Failed to add Scan Folder '%1': %2 Toevoegen van scan-map '%1' mislukt: %2 - - + + Filters Filters - - + + Choose an IP filter file IP-filterbestand kiezen - + SSL Certificate SSL-certificaat - + SSL Key SSL-sleutel - + Parsing error Verwerkingsfout - + Failed to parse the provided IP filter Verwerken van opgegeven IP-filter mislukt - + Successfully refreshed Vernieuwen gelukt - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verwerken van opgegeven IP-filter gelukt: er werden %1 regels toegepast. - + Invalid key Ongeldige sleutel - + This is not a valid SSL key. Dit is geen geldige SSL-sleutel. - + Invalid certificate Ongeldig certificaat - + This is not a valid SSL certificate. Dit is geen geldig SSL-certificaat. - + The start time and the end time can't be the same. De starttijd en de eindtijd kan niet hetzelfde zijn. - + Time Error Tijd-fout @@ -8201,24 +8538,20 @@ Deze plugins zijn uitgeschakeld. pluginSourceDlg - Plugin source - Plugin-bron + Plugin-bron - Search plugin source: - Zoekplugin-bron: + Zoekplugin-bron: - Local file - Lokaal bestand + Lokaal bestand - Web link - Weblink + Weblink @@ -8247,40 +8580,32 @@ Deze plugins zijn uitgeschakeld. search_engine - - Search - Zoeken + Zoeken - Status: - Status: + Status: - Stopped - Gestopt + Gestopt - Download - Downloaden + Downloaden - Go to description page - Naar de beschrijvingspagina gaan + Naar de beschrijvingspagina gaan - Copy description page URL - Link van beschrijvingspagina kopiëren + Link van beschrijvingspagina kopiëren - Search engines... - Zoekmachines... + Zoekmachines... diff --git a/src/lang/qbittorrent_pl.ts b/src/lang/qbittorrent_pl.ts index 42896992f..2b9311485 100644 --- a/src/lang/qbittorrent_pl.ts +++ b/src/lang/qbittorrent_pl.ts @@ -127,7 +127,7 @@ Set as default label - + Ustaw jako domyślną etykietę @@ -175,172 +175,172 @@ Nie pobieraj - - + + I/O Error Błąd We/Wy - + The torrent file does not exist. Plik torrent nie istnieje. - + Invalid torrent Nieprawidłowy torrent - + Failed to load the torrent: %1 Nie można wczytać torrenta: %1 - - + + Already in download list Już jest na liście pobierania - + Free disk space: %1 Wolne miejsce na dysku: %1 - + Not Available This comment is unavailable Niedostępne - + Not Available This date is unavailable Niedostępne - + Not available Niedostępne - + Invalid magnet link Nieprawidłowy odnośnik magnet - + Torrent is already in download list. Trackers were merged. Torrent jest już na liście pobierania. Trackery zostały połączone. - - + + Cannot add torrent Nie można dodać pliku torrent - + Cannot add this torrent. Perhaps it is already in adding state. Nie można dodać tego pliku torrent. Możliwe, że jest już w stanie dodawania. - + This magnet link was not recognized Odnośnik magnet nie został rozpoznany - + Magnet link is already in download list. Trackers were merged. Odnośnik magnet jest już na liście pobierania. Trackery zostały połączone. - + Cannot add this torrent. Perhaps it is already in adding. Nie można dodać tego pliku torrent. Możliwe, że jest już dodawany. - + Magnet link Odnośnik magnet - + Retrieving metadata... Pobieranie metadanych... - + Not Available This size is unavailable. Niedostępne - - - + + + Choose save path Wybierz ścieżkę zapisu - + Rename the file Zmień nazwę pliku - + New name: Nowa nazwa: - - + + The file could not be renamed Nie można zmienić nazwy pliku - + This file name contains forbidden characters, please choose a different one. Nazwa pliku zawiera zabronione znaki, proszę wybrać inną nazwę. - - + + This name is already in use in this folder. Please use a different name. Wybrana nazwa jest już używana w tym katalogu. Proszę wybrać inną nazwę. - + The folder could not be renamed Nie można zmienić nazwy katalogu - + Rename... Zmień nazwę... - + Priority Priorytet - + Invalid metadata Nieprawidłowe metadane - + Parsing metadata... Przetwarzanie metadanych... - + Metadata retrieval complete Pobieranie metadanych zakończone - + Download Error Błąd pobierania @@ -431,10 +431,6 @@ Resolve peer host names Odczytuj nazwy hostów partnerów - - Maximum number of half-open connections [0: Disabled] - Limit pół-otwartych połączeń [0: Bez limitu] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maksymalna liczba półotwartych połączeń [0: nieograniczona] @@ -661,205 +657,205 @@ &Eksportuj... - + Matches articles based on episode filter. Dopasowane artykuły na podstawie filtra epizodów. - + Example: Przykład: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match dopasuje 2, 5, 8, poprzez 15, 30 oraz dalsze odcinki pierwszego sezonu - + Episode filter rules: Reguły filra odcinków: - + Season number is a mandatory non-zero value Numer sezonu jest obowiązkową wartością niezerową - + Episode number is a mandatory non-zero value Numer odcinka jest obowiązkową wartością niezerową - + Filter must end with semicolon Filtr musi być zakończony średnikiem - + Three range types for episodes are supported: Obsługiwane są trzy rodzaje zakresu odcinków: - + Single number: <b>1x25;</b> matches episode 25 of season one Liczba pojedyncza: <b>1x25;</b> dopasuje odcinek 25 sezonu pierwszego - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Zwykły zakres: <b>1x25-40;</b> dopasuje odcinki 25 do 40 sezonu pierwszego - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Nieskończony zakres: <b>1x25-;</b> dopasuje odcinki 25 i wzwyż sezonu pierwszego - + Last Match: %1 days ago Ostatni pasujący: %1 dni temu - + Last Match: Unknown Ostatni pasujący: Nieznany - + New rule name Nazwa nowej reguły - + Please type the name of the new download rule. Wprowadź nazwę dla tworzonej reguły. - - + + Rule name conflict Konflikt nazw reguł - - + + A rule with this name already exists, please choose another name. Reguła o wybranej nazwie już istnieje, należy wybrać inną. - + Are you sure you want to remove the download rule named '%1'? Czy na pewno chcesz usunąć regułę pobierania o nazwie %1? - + Are you sure you want to remove the selected download rules? Czy na pewno usunąć wybrane reguły pobierania? - + Rule deletion confirmation Usuwanie reguły - + Destination directory Wybierz katalog docelowy - + Invalid action Nieprawidłowa operacja - + The list is empty, there is nothing to export. Lista jest pusta, nie ma czego eksportować. - + Where would you like to save the list? Wskaż położenie pliku gdzie zostanie wyeksportowana lista - + Rules list (*.rssrules) Lista reguł (*.rssrules) - + I/O Error Błąd We/Wy - + Failed to create the destination file Błąd podczas tworzenia pliku docelowego - + Please point to the RSS download rules file Wskaż położenie pliku reguł do zaimportowania - + Rules list Lista reguł - + Import Error Błąd podczas importowania - + Failed to import the selected rules file Nie udało się zaimportować wybranego pliku reguł - + Add new rule... Dodaj nową... - + Delete rule Usuń - + Rename rule... Zmień nazwę... - + Delete selected rules Usuń wybrane - + Rule renaming Zmiana nazwy - + Please type the new rule name Podaj nową nazwę reguły - + Regex mode: use Perl-like regular expressions Tryb regex: używaj wyrażeń regularnych w stylu Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Tryb wzorca: można użyć <ul><li>? dla dowolnego pojedynczego znaku</li><li>* dla dowolnej ilości znaków</li><li>Białe znaki są traktowane jako operatory AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Tryb wzorca: można użyć <ul><li>? dla dowolnego pojedynczego znaku</li><li>* dla dowolnej ilości znaków</li><li>Białe znaki są traktowane jako operatory OR</li></ul> @@ -952,65 +948,57 @@ %1' osiagnął ustawiony przez ciebie współczynnik udziału. Wstrzymywanie... - Error: Could not create torrent export directory: '%1' - Błąd: Nie można utworzyć katalogu eksportowania pliku torrent: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Błąd: nie można wyeksportować pliku torrent '%1', może jeszcze nie ma metadanych. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Stan sieci systemu zmieniono na %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfiguracja sieci %1 uległa zmianie, odświeżam wiązanie sesji - + Unable to decode '%1' torrent file. Nie można odszyfrować pliku torrent: '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurencyjne pobieranie pliku '%1' osadzonego w pliku torrent '%2' - + Couldn't save '%1.torrent' Nie można zapisać '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. ponieważ %1 jest wyłączone. - + because %1 is disabled. this peer was blocked because TCP is disabled. ponieważ %1 jest wyłączone. - + URL seed lookup failed for URL: '%1', message: %2 Błąd wyszukiwania URL partnera dla adresu '%1', komunikat: %2 @@ -1027,178 +1015,164 @@ '%1' usunięto z listy transferów. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Pobieranie '%1', proszę czekać... - Torrent Export: torrent is invalid, skipping... - Eksportowanie torrenta: Plik torrent jest nieprawidłowy, pomijanie... - - - + DHT support [ON] Wsparcie DHT [WŁ]. - + DHT support [OFF]. Reason: %1 Wsparcie DHT [WYŁ]. Powód: %1 - + DHT support [OFF] Wsparcie DHT [WYŁ] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent próbuje nasłuchiwać dowolnego portu interfejsu: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2 - - - + The network interface defined is invalid: %1 Podany interfejs sieciowy jest nieprawidłowy: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent próbuje nasłuchiwać interfejsu %1 port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nie znalazł żadnego %1 lokalnego adresu, na którym można nasłuchiwać - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2. {1.?} + qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2. - + Tracker '%1' was added to torrent '%2' Tracker '%1' został dodany do torrenta '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' został usunięty z torrenta '%2' - + URL seed '%1' was added to torrent '%2' URL seeda '%1' został dodany do torrenta '%2' - + URL seed '%1' was removed from torrent '%2' URL seeda '%1' został usunięty z torrenta '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nie można wznowić torrenta: '%1' - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Pomyślnie przetworzono podany filtr IP: zastosowano %1 reguł. - + Error: Failed to parse the provided IP filter. Błąd: Nie udało się przetworzyć podanego filtra IP. - + Couldn't add torrent. Reason: %1 Nie można dodać torrenta. Powód: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' wznowiony. (szybkie wznawianie) - + '%1' added to download list. 'torrent name' was added to download list. '%1' dodano do listy pobierania. - + An I/O error occurred, '%1' paused. %2 Wystąpił błąd We/Wy, '%1' wstrzymany. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Błąd mapowania portu, komunikat %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Udane mapowanie portu, komunikat %1 - + due to IP filter. this peer was blocked due to ip filter. z powodu filtru IP. - + due to port filter. this peer was blocked due to port filter. z powodu filtru portu. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. z powodu ograniczeń trybu mieszanego i2p. - + because it has a low port. this peer was blocked because it has a low port. ponieważ ma niski port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent skutecznie nasłuchuje interfejs sieciowy %1 port: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4. {1 ?} {2/%3.?} + qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Zewnętrzne IP: %1 @@ -1212,12 +1186,12 @@ Nie można przenieść: '%1'. Powód: %2 - + File sizes mismatch for torrent '%1', pausing it. Błędny rozmiar pliku z torrenta '%1', wstrzymuję pobieranie. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Szybkie wznowienie pobierania zostało odrzucone dla torrenta '%1'. Powód: %2. Ponowne sprawdzanie... @@ -1242,7 +1216,7 @@ Wartość - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Zwykle klucze dla ciasteczek mają format: '%1', '%2'. @@ -1310,12 +1284,12 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. FeedListWidget - + RSS feeds Kanały RSS - + Unread Nieprzeczytane @@ -1412,10 +1386,6 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.Only one link per line Można podać tylko jeden adres www w jednej linii - - Download local torrent - Pobierz pliki torrent z dysku twardego - Download @@ -1589,20 +1559,30 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. Save files to location: - Domyślny katalog zapisywanych plików: + Zapisz pliki w lokalizacji: Label: - Etykieta: + Etykieta: Cookie: + Ciasteczko: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Pobrany @@ -1615,7 +1595,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. Upload local torrent - + Wyślij lokalny plik torrent @@ -1973,10 +1953,6 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.&About &O programie - - Exit - Zakończ - &Pause @@ -2007,22 +1983,6 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.E&xit Zak&ończ - - Options - Opcje - - - Resume - Wznów - - - Pause - Wstrzymaj - - - Delete - Usuń - Open URL @@ -2040,19 +2000,15 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. - + Show Pokaż - + Check for program updates Sprawdź aktualizacje programu - - Lock qBittorrent - Zablokuj qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. - + Execution Log Dziennik programu - + Clear the password Wyczyść hasło - + Filter torrent list... Filtruj listę torrentów... - + &Set Password &Ustaw hasło... - + &Clear Password Wyczyść ha&sło - + Transfers Transfery - + Torrent file association Powiązanie z plikami torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent nie jest domyślnym programem do obsługi plików torrent i odnośników Magnet. Czy powiązać qBittorrent z plikami torrent i linkami Magnet? - + Icons Only Tylko ikony - + Text Only Tylko tekst - + Text Alongside Icons Tekst obok ikon - + Text Under Icons Tekst pod ikonami - + Follow System Style Dopasuj do stylu systemu - - - + + + UI lock password Hasło blokady interfejsu - - - + + + Please type the UI lock password: Proszę podać hasło blokady interfejsu: - + The password should contain at least 3 characters Hasło powinno zawierać przynajmniej 3 znaki - + Password update Aktualizacja hasła - + The UI lock password has been successfully updated Pomyślnie zaktualizowano hasło blokady interfejsu - + Are you sure you want to clear the password? Czy jesteś pewien, że chcesz wyczyścić hasło? - + Search Szukaj - + Transfers (%1) Transfery (%1) - + Error Błąd - + Failed to add torrent: %1 Nie można dodać torrenta: %1 - + Download completion Zakończono pobieranie - + I/O Error i.e: Input/Output Error Błąd We/Wy - + Recursive download confirmation Potwierdzenie pobierania rekurencyjnego - + Yes Tak - + No Nie - + Never Nigdy - + Global Upload Speed Limit Ogólny limit wysyłania - + Global Download Speed Limit Ogólny limit pobierania - + &No &Nie - + &Yes &Tak - + &Always Yes &Zawsze tak - + Python found in %1 Python odnaleziony w %1 - + Old Python Interpreter Stary interpreter Pythona - + qBittorrent Update Available Dostępna aktualizacja qBittorrenta - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Korzystasz już z najnowszej wersji qBittorrenta - + Undetermined Python version Nieokreślona wersja Pythona - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' został pobrany. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Czy powiązać qBittorrent z plikami torrent i linkami Magnet? Powód: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent '%1' zawiera pliki torrent, czy chcesz rozpocząć ich pobieranie? - + Couldn't download file at URL '%1', reason: %2. Nie można pobrać pliku z URL: '%1', powód: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Twoja wersja Pythona %1 jest przestarzała. Proszę uaktualnić ją do najnowszej wersji, aby wyszukiwarki mogły działać. Minimalny wymóg: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Nie można ustalić twojej wersji Pythona (%1). Wyłączono wyszukiwarki. - - + + Missing Python Interpreter Nie znaleziono interpretera Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python jest wymagany do używania wyszukiwarki, ale wygląda na to, że nie jest zainstalowany. Czy chcesz go teraz zainstalować? - + Python is required to use the search engine but it does not seem to be installed. Python jest wymagany do używania wyszukiwarki, ale wygląda na to, że nie jest zainstalowany. - A new version is available. Update to version %1? - Dostępna jest nowa wersja. + Dostępna jest nowa wersja. Czy zaktualizować do wersji %1? - + No updates available. You are already using the latest version. Nie ma dostępnych aktualizacji. Korzystasz już z najnowszej wersji. - + &Check for Updates S&prawdź aktualizacje - + Checking for Updates... Sprawdzanie aktualizacji... - + Already checking for program updates in the background Trwa sprawdzanie aktualizacji w tle - + Python found in '%1' Python odnaleziony w '%1' - + Download error Błąd pobierania - + Python setup could not be downloaded, reason: %1. Please install it manually. Nie można pobrać instalatora Python z powodu %1 . Należy zainstalować go ręcznie. - - + + Invalid password Nieprawidłowe hasło - - + + RSS (%1) RSS (%1) - + URL download error Błąd pobierania adresu URL - + The password is invalid Podane hasło jest nieprawidłowe - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Pobieranie: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Wysyłanie: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [P: %1, W: %2] qBittorrent %3 - + Hide Ukryj - + Exiting qBittorrent Zamykanie qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Aktualnie trwa pobieranie plików. Czy na pewno zamknąć qBittorrent? - + Open Torrent Files Otwórz pliki torrent - + Torrent Files Pliki .torrent - + Options were saved successfully. Ustawienia pomyślnie zapisane. @@ -2443,17 +2404,17 @@ Czy na pewno zamknąć qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Pomyślnie zaktualizowano twój dynamiczny DNS. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Błąd dynamicznego DNS: Usługa tymczasowo niedostępna, ponowienie za 30 minut. - + Dynamic DNS error: hostname supplied does not exist under specified account. Błąd dynamicznego DNS: Wskazane konto nie zawiera podanej nazwy hosta. @@ -2463,32 +2424,32 @@ Czy na pewno zamknąć qBittorrent? Błąd dynamicznego DNS: Nieprawidłowa nazwa użytkownika i/lub hasło. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Błąd dynamicznego DNS: Usługa dodała program qBittorrent do czarnej listy, proszę zgłosić błąd na stronie http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Błąd dynamicznego DNS: Usługa zwróciła: %1, proszę zgłosić błąd na stronie http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Błąd dynamicznego DNS: Z powodu nadużycia nazwa użytkownika została zablokowana. - + Dynamic DNS error: supplied domain name is invalid. Błąd dynamicznego DNS: Podana nazwa domeny jest nieprawidłowa. - + Dynamic DNS error: supplied username is too short. Błąd dynamicznego DNS: Podana nazwa użytkownika jest zbyt krótka. - + Dynamic DNS error: supplied password is too short. Błąd dynamicznego DNS: Podane hasło jest zbyt krótkie. @@ -2515,154 +2476,161 @@ Czy na pewno zamknąć qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Załadowano bazę danych GeoIP. Typ: %1. Czas budowy: %2. - + Couldn't load GeoIP database. Reason: %1 Nie można załadować bazy danych GeoIP. Powód: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Nie dotyczy - Asia/Pacific Region - Azja/Region Pacyfiku + Azja/Region Pacyfiku + + + Europe + Europa - Europe - Europa - - - Andorra Andora - + United Arab Emirates Zjednoczone Emiraty Arabskie - + Afghanistan Afganistan - + Antigua and Barbuda Antigua i Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antyle Holenderskie + Antyle Holenderskie - + Angola Angola - + Antarctica Antarktyda - + Argentina Argentyna - + American Samoa Samoa Amerykańskie - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbejdżan - + Bosnia and Herzegovina Bośnia i Hercegowina - + Barbados Barbados - + Bangladesh Bangladesz - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bułgaria - + Bahrain Bahrajn - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Czy na pewno zamknąć qBittorrent? Brunei - Bolivia - Boliwia + Boliwia - + Brazil Brazylia - + Bahamas Bahamy - + Bhutan Bhutan - + Bouvet Island Wyspa Bouveta - + Botswana Botswana - + Belarus Białoruś - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Wyspy Kokosowe (Keelinga) - + Congo, The Democratic Republic of the Demokratyczna Republika Konga - + Central African Republic Republika Środkowoafrykańska - + Congo Kongo - + Switzerland Szwajcaria - Cote D'Ivoire - Wybrzeże Kości Słoniowej + Wybrzeże Kości Słoniowej - + Cook Islands Wyspy Cooka - + Chile Chile - + Cameroon Kamerun - + China Chiny - + Colombia Kolumbia - + Costa Rica Kostaryka - + Cuba Kuba - + Cape Verde Republika Zielonego Przylądka - + + Curacao + + + + Christmas Island Wyspa Bożego Narodzenia - + Cyprus Cypr - + Czech Republic Czechy - + Germany Niemcy - + Djibouti Dżibuti - + Denmark Dania - + Dominica Dominika - + Dominican Republic Dominikana - + Algeria Algieria - + Ecuador Ekwador - + Estonia Estonia - + Egypt Egipt - + Western Sahara Sahara Zachodnia - + Eritrea Erytrea - + Spain Hiszpania - + Ethiopia Etiopia - + Finland Finlandia - + Fiji Fidżi - + Falkland Islands (Malvinas) Falklandy (Malwiny) - + Micronesia, Federated States of Mikronezja - + Faroe Islands Wyspy Owcze - + France Francja - France, Metropolitan - Francja metropolitarna + Francja metropolitarna - + Gabon Gabon - + United Kingdom Wielka Brytania - + Grenada Grenada - + Georgia Gruzja - + French Guiana Gujana Francuska - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Grenlandia - + Gambia Gambia - + Guinea Gwinea - + Guadeloupe Gwadelupa - + Equatorial Guinea Gwinea Równikowa - + Greece Grecja - + South Georgia and the South Sandwich Islands Georgia Południowa i Sandwich Południowy - + Guatemala Gwatemala - + Guam Guam - + Guinea-Bissau Gwinea Bissau - + Guyana Gujana - + Hong Kong Hongkong - + Heard Island and McDonald Islands Wyspy Heard i McDonalda - + Honduras Honduras - + Croatia Chorwacja - + Haiti Haiti - + Hungary Węgry - + Indonesia Indonezja - + Ireland Irlandia - + Israel Izrael - + India Indie - + British Indian Ocean Territory Brytyjskie Terytorium Oceanu Indyjskiego - + Iraq Irak - + Iran, Islamic Republic of Iran - + Iceland Islandia - + Italy Włochy - + Jamaica Jamajka - + Jordan Jordania - + Japan Japonia - + Kenya Kenia - + Kyrgyzstan Kirgistan - + Cambodia Kambodża - + Kiribati Kiribati - + Comoros Komory - + Saint Kitts and Nevis Saint Kitts i Nevis - + Korea, Democratic People's Republic of Korea Północna - + Korea, Republic of Korea Południowa - + Kuwait Kuwejt - + Cayman Islands Kajmany - + Kazakhstan Kazachstan - + Lao People's Democratic Republic Laos - + Lebanon Liban - + Saint Lucia Saint Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Litwa - + Luxembourg Luksemburg - + Latvia Łotwa - Libyan Arab Jamahiriya - Libia + Libia - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Mołdawia - + Madagascar Madagaskar - + Marshall Islands Wyspy Marshalla - Macedonia - Macedonia + Macedonia - + Mali Mali - + Myanmar Mjanma - + Mongolia Mongolia - Macau - Macau + Macau - + Northern Mariana Islands Mariany Północne - + Martinique Martynika - + Mauritania Mauretania - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Malediwy - + Malawi Malawi - + Mexico Meksyk - + Malaysia Malezja - + Mozambique Mozambik - + Namibia Namibia - + New Caledonia Nowa Kaledonia - + Niger Niger - + Norfolk Island Norfolk - + Nigeria Nigeria - + Nicaragua Nikaragua - + Netherlands Holandia - + Norway Norwegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nowa Zelandia - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Polinezja Francuska - + Papua New Guinea Papua-Nowa Gwinea - + Philippines Filipiny - + Pakistan Pakistan - + Poland Polska - + Saint Pierre and Miquelon Saint-Pierre i Miquelon - Pitcairn Islands - Pitcairn + Pitcairn - + Puerto Rico Portoryko - Palestinian Territory - Palestyna + Palestyna - + Portugal Portugalia - + Palau Palau - + Paraguay Paragwaj - + Qatar Katar - + Reunion Reunion - + Romania Rumunia - + Russian Federation Rosja - + Rwanda Rwanda - + Saudi Arabia Arabia Saudyjska - + Solomon Islands Wyspy Salomona - + Seychelles Seszele - + Sudan Sudan - + Sweden Szwecja - + Singapore Singapur - Saint Helena - Wyspa Świętej Heleny + Wyspa Świętej Heleny - + Slovenia Słowenia - + Svalbard and Jan Mayen Svalbard i Jan Mayen - + Slovakia Słowacja - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe Wyspy Świętego Tomasza i Książęca - + El Salvador Salwador - + Syrian Arab Republic Syria - + Swaziland Suazi - + Turks and Caicos Islands Turks i Caicos - + Chad Czad - + French Southern Territories Francuskie Terytoria Południowe i Antarktyczne - + Togo Togo - + Thailand Tajlandia - + Tajikistan Tadżykistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunezja - + Tonga Tonga - + Timor-Leste Timor Wschodni - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turcja - + Trinidad and Tobago Trynidad i Tobago - + Tuvalu Tuvalu - + Taiwan Tajwan - + Tanzania, United Republic of Tanzania - + Ukraine Ukraina - + Uganda Uganda - + United States Minor Outlying Islands Dalekie Wyspy Mniejsze Stanów Zjednoczonych - + United States Stany Zjednoczone - + Uruguay Urugwaj - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Stolica Apostolska (Watykan) - + Saint Vincent and the Grenadines Saint Vincent i Grenadyny - Venezuela - Wenezuela + Wenezuela - + Virgin Islands, British Brytyjskie Wyspy Dziewicze - + Virgin Islands, U.S. Wyspy Dziewicze Stanów Zjednoczonych - Vietnam - Wietnam + Wietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis i Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Majotta - + Serbia Serbia - + South Africa Republika Południowej Afryki - + Zambia Zambia - + Montenegro Czarnogóra - + Zimbabwe Zimbabwe - Anonymous Proxy - Anonimowe proxy + Anonimowe proxy - Satellite Provider - Dostawca satelitarny + Dostawca satelitarny - Other - Inne + Inne - + Aland Islands Wyspy Alandzkie - + Guernsey Guernsey - + Isle of Man Wyspa Man - + Jersey Jersey - + Saint Barthelemy Saint-Barthélemy - Saint Martin - Saint-Martin + Saint-Martin - + Could not uncompress GeoIP database file. Nie mozna rozpakować pliku bazy danych GeoIP. - + Couldn't save downloaded GeoIP database file. Nie można zapisać pobranego pliku bazy danych GeoIP. - + Successfully updated GeoIP database. Pomyślnie uaktualniono bazę danych GeoIP. - + Couldn't download GeoIP database file. Reason: %1 Nie można pobrać pliku bazy danych GeoIP. Powód: %1 @@ -3838,72 +3856,72 @@ Czy na pewno zamknąć qBittorrent? interested(local) and choked(peer) - zainteresowany(lokalny) i stłumiony(partner) + zainteresowany(lokalny) i stłumiony(partner) interested(local) and unchoked(peer) - zainteresowany(lokalny) i niestłumiony(partner) + zainteresowany(lokalny) i niestłumiony(partner) interested(peer) and choked(local) - zainteresowany(partner) i stłumiony(lokalny) + zainteresowany(partner) i stłumiony(lokalny) interested(peer) and unchoked(local) - zainteresowany(partner) i niestłumiony(lokalny) + zainteresowany(partner) i niestłumiony(lokalny) optimistic unchoke - niestłumienie optymistyczne + niestłumienie optymistyczne peer snubbed - ignorowany partner + ignorowany partner incoming connection - nadchodzące połączenie + nadchodzące połączenie not interested(local) and unchoked(peer) - niezainteresowany(lokalny) i niestłumiony(partner) + niezainteresowany(lokalny) i niestłumiony(partner) not interested(peer) and unchoked(local) - niezainteresowany(partner) i niestłumiony(lokalny) + niezainteresowany(partner) i niestłumiony(lokalny) peer from PEX - peer z PEX + partner z PEX peer from DHT - peer z DHT + partner z DHT encrypted traffic - zaszyfrowany ruch + zaszyfrowany ruch encrypted handshake - zaszyfrowane połączenie + zaszyfrowane połączenie peer from LSD - peer z LSD + partner z LSD @@ -3971,123 +3989,73 @@ Czy na pewno zamknąć qBittorrent? Trafność - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Dodaj partnera... - + Copy selected Kopiuj wybrane - - + + Ban peer permanently Blokuj parnera na stałe - + Manually adding peer '%1'... Ręczne dodawanie partnera '%1'... - + The peer '%1' could not be added to this torrent. Partner '%1' nie może zostać dodany do tego torrenta. - + Manually banning peer '%1'... Ręczne blokowanie partnera '%1'... - - + + Peer addition Dodawanie partnera - + Some peers could not be added. Check the Log for details. Niektórzy partnerzy nie mogą zostać dodani. Sprawdź szczegóły w Dzienniku. - + The peers were added to this torrent. Partnerzy zostali dodani do tego torrenta. - + Are you sure you want to ban permanently the selected peers? Czy na pewno zablokować na stałe wybranych partnerów? - + &Yes &Tak - + &No &Nie - - interested(local) and choked(peer) - zainteresowany(lokalny) i stłumiony(partner) - - - interested(local) and unchoked(peer) - zainteresowany(lokalny) i niestłumiony(partner) - - - interested(peer) and choked(local) - zainteresowany(partner) i stłumiony(lokalny) - - - interested(peer) and unchoked(local) - zainteresowany(partner) i niestłumiony(lokalny) - - - optimistic unchoke - niestłumienie optymistyczne - - - peer snubbed - ignorowany partner - - - incoming connection - nadchodzące połączenie - - - not interested(local) and unchoked(peer) - niezainteresowany(lokalny) i niestłumiony(partner) - - - not interested(peer) and unchoked(local) - niezainteresowany(partner) i niestłumiony(lokalny) - - - peer from PEX - peer z PEX - - - peer from DHT - peer z DHT - - - encrypted traffic - zaszyfrowany ruch - - - encrypted handshake - zaszyfrowane połączenie - - - peer from LSD - peer z LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Czy na pewno zamknąć qBittorrent? Niebieski: Dostępne części + + PluginSelectDlg + + + Search plugins + Wtyczki wyszukiwania + + + + Installed search plugins: + + + + + Name + Nazwa + + + + Version + Wersja + + + + Url + URL + + + + + Enabled + Włączone + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Tutaj możesz pobrać nowe wtyczki wyszukiwania: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Zainstaluj nową + + + + Check for updates + Sprawdź aktualizację + + + + Close + Zamknij + + + + Uninstall + Odinstaluj + + + + + + Yes + Tak + + + + + + + No + Nie + + + + Uninstall warning + Ostrzeżenie deinstalacji + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Niektóre wtyczki nie mogą zostać usunięte, ponieważ są częścią qBittorenta. Tylko te, które dodałeś możesz usunąć. +Tamte wtyczki były wyłączone. + + + + Uninstall success + Deinstalacja zakończona + + + + All selected plugins were uninstalled successfully + Wszystkie wybrane wtyczki zostały zainstalowane + + + + + New search engine plugin URL + URL nowej wtyczki wyszukiwania + + + + + URL: + URL: + + + + Invalid link + Nieprawidłowy odnośnik + + + + The link doesn't seem to point to a search engine plugin. + Odnośnik nie wydaje się wskazywać na wtyczkę wyszukiwania. + + + + Select search plugins + Wybierz wtyczkę wyszukiwania + + + + qBittorrent search plugin + Wtyczka wyszukiwania qBittorrent + + + + + + Search plugin update + Aktualizacja wtyczki wyszukiwania + + + + All your plugins are already up to date. + Wszystkie twoje wtyczki są aktualne. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalacja wtyczki wyszukiwania + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Źródło wtyczki + + + + Search plugin source: + Źródło wtyczki wyszukiwania: + + + + Local file + Plik lokalny + + + + Web link + Adres strony + + Preferences @@ -4181,89 +4346,89 @@ Czy na pewno zamknąć qBittorrent? Dodaj rozszerzenie .!qB do niekompletnych plików - + Copy .torrent files to: Kopiuj pliki .torrent do: - + Connections Limits Limit połączeń - + Proxy Server Serwer proxy - + Global Rate Limits Ogólne limity prędkości - + Apply rate limit to transport overhead Stosuj limity prędkości do transferów z narzutem - + Schedule the use of alternative rate limits Harmonogram użycia alternatywnych limitów prędkości - + From: from (time1 to time2) Od: - + To: time1 to time2 Do: - + Enable Local Peer Discovery to find more peers Włącz wykrywanie partnerów w sieci lokalnej (LPD) - + Encryption mode: Tryb szyfrowania: - + Prefer encryption Preferuj szyfrowanie - + Require encryption Wymagaj szyfrowania - + Disable encryption Wyłącz szyfrowanie - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Więcej informacji</a>) - + Maximum active downloads: Maksymalna liczba aktywnych pobierań: - + Maximum active uploads: Maksymalna liczba aktywnych wysyłań: - + Maximum active torrents: Maksymalna liczba aktywnych torrentów: @@ -4288,82 +4453,82 @@ Czy na pewno zamknąć qBittorrent? Pokaż zawartość torrenta i kilka opcji - + Run external program on torrent completion Uruchom zewnętrzny program po ukończeniu pobierania - + Port used for incoming connections: Port dla połączeń przychodzących: - + Random Losowy - + Global maximum number of connections: Maksymalna liczba połączeń: - + Maximum number of connections per torrent: Maksymalna liczba połączeń na torrent: - + Maximum number of upload slots per torrent: Maksymalna liczba slotów wysyłania na torrent: - - + + Upload: Wysyłanie: - - + + Download: Pobieranie: - - - - + + + + KiB/s KiB/s - + Remove folder Usuń katalog - + Every day codziennie - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Wymiana partnerów pomiędzy kompatybilnymi klientami sieci Bittorrent (µTorrent, Vuze, ...) - + Host: Host: - + SOCKS4 SOCKS4 - + Type: Typ: @@ -4536,262 +4701,262 @@ Czy na pewno zamknąć qBittorrent? Automatyczne pobieranie plików torrent z katalogu: - + Add folder... Dodaj katalog... - + Copy .torrent files for finished downloads to: Kopiuj pliki .torrent zakończonych pobierań do: - + Email notification upon download completion Wyślij e-mail po ukończeniu pobierania - + Destination email: Adres e-mail: - + SMTP server: Serwer SMTP: - + This server requires a secure connection (SSL) Ten serwer wymaga bezpiecznego połączenia (SSL) - + Listening Port Port nasłuchu - + Use UPnP / NAT-PMP port forwarding from my router Używaj UPnP / NAT-PMP do przekierowania portów na routerze - + Use different port on each startup Używaj innego portu przy każdym uruchomieniu - + Global maximum number of upload slots: Maksymalna liczba slotów wysyłania: - + Otherwise, the proxy server is only used for tracker connections W przeciwnym razie serwer proxy będzie używany tylko do połączeń z trackerem - + Use proxy for peer connections Używaj proxy do połączeń z partnerami - + Disable connections not supported by proxies Wyłącz połączenia nieobsługiwane przez proxy. - + Use proxy only for torrents Używaj proxy tylko dla torrentów - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Kanały RSS, wyszukiwarki, aktualizacje oprogramowania albo cokolwiek innego niż transfery torrentów oraz powiązane operacje (np. wymiana partnerów) będą używać połączeń bezpośrednich - + Info: The password is saved unencrypted Informacja: Hasło jest zapisane jako niezaszyfrowane - + IP Filtering Filtrowanie IP - + Reload the filter Przeładuj filtr - + Apply to trackers Zastosuj do trackerów - + Apply rate limit to peers on LAN Stosuj limity prędkości do partnerów w LAN - + When: kiedy: - + Weekdays Dni robocze - + Weekends Weekendy - + Rate Limits Settings Ustawienia limitów prędkości - + Enable µTP protocol Włącz protokół µTP - + Apply rate limit to µTP protocol Stosuj limity prędkości do protokołu µTP - + Privacy Ochrona prywatności - + Enable DHT (decentralized network) to find more peers Włącz sieć DHT (sieć rozproszona) w celu odnajdywania partnerów - + Enable Peer Exchange (PeX) to find more peers Włącz wymianę partnerów (PeX) - + Look for peers on your local network Wyszukiwanie partnerów w sieci lokalnej - + Enable when using a proxy or a VPN connection Włącz podczas używania proxy lub połączenia VPN. - + Enable anonymous mode Włącz tryb anonimowy - + Do not count slow torrents in these limits Nie wliczaj wolnych torrentów do tych limitów - + Seed torrents until their ratio reaches Wysyłaj do czasu aż współczynnik udziału osiągnie - + then następnie - + Pause them Wstrzymaj - + Remove them Usuń - + Automatically add these trackers to new downloads: Automatycznie dodaj te trackery do nowych pobierań: - + Use UPnP / NAT-PMP to forward the port from my router Używaj UPnP / NAT-PMP do przekierowania portów na routerze - + Use HTTPS instead of HTTP Używaj HTTPS zamiast HTTP - + Import SSL Certificate Importuj certyfikat SSL - + Import SSL Key Importuj klucz SSL - + Certificate: Certyfikat: - + Alternative Rate Limits Alternatywne limity prędkości - + Key: Klucz: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informacja na temat certyfikatów</a> - + Bypass authentication for localhost Pomiń uwierzytelnianie dla lokalnego hosta - + Update my dynamic domain name Aktualizuj nazwę domeny dynamicznej - + Service: Usługa: - + Register Zarejestruj - + Domain name: Nazwa domeny: - + (None) (Żaden) @@ -4801,61 +4966,61 @@ Czy na pewno zamknąć qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Uwierzytelnianie - - - - + + + + Username: Nazwa użytkownika: - - - - + + + + Password: Hasło: - + Torrent Queueing Kolejkowanie torrentów - + Share Ratio Limiting Ograniczenie współczynnika udziału - + Enable Web User Interface (Remote control) Włącz interfejs www (Zdalne zarządzanie) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Ścieżka do pliku filtra (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Czy na pewno zamknąć qBittorrent? Comment: Komentarz: - - Torrent content: - Zawartość torrenta: - Select All @@ -5587,28 +5748,28 @@ W przyszłości powiadomienie nie będzie wyświetlane. Nieznany błąd - - + + Upgrade Zaktualizuj - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Zaktualizowałeś starszą wersję, która zapisywała inaczej. Musisz przeprowadzić migrację do nowego systemu zapisywania. Wtedy nie będziesz już mógł używać wersji starszej niż v3.3.0. Kontynuować? [t/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Zaktualizowałeś starszą wersję, która zapisywała inaczej. Musisz przeprowadzić migrację do nowego systemu zapisywania. Wtedy nie będziesz już mógł używać wersji starszej niż v3.3.0. - + Couldn't migrate torrent with hash: %1 Nie udało się przenieść torrenta z hashem: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nie udało się przenieść torrenta. Nieprawidłowa nazwa pliku szybkiego wznawiania: %1 @@ -5719,17 +5880,17 @@ W przyszłości powiadomienie nie będzie wyświetlane. RSSImp - + Stream URL: Adres URL dla nowego kanału RSS: - + Please type a RSS stream URL Proszę wpisać adres URL strumienia RSS - + This RSS feed is already in the list. Ten kanał RSS już jest na liście. @@ -5749,75 +5910,92 @@ W przyszłości powiadomienie nie będzie wyświetlane. Nowy katalog - + Deletion confirmation Potwierdzenia usuwania - + Are you sure you want to delete the selected RSS feeds? Czy na pewno chcesz usunąć wybrane kanały RSS? - + Please choose a new name for this RSS feed Należy podać nową nazwę dla tego kanału RSS - + New feed name: Nowa nazwa kanału RSS: - + Name already in use Podana nazwa już istnieje - + This name is already used by another item, please choose another one. Podana nazwa już istnieje, należy wybrać inną. - + Date: Data: - + Author: Autor: - + Unread Nieprzeczytane - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... + Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... + Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... RssParser - Failed to open downloaded RSS file. - Nie udało się otworzyć pobranego pliku RSS. + Nie udało się otworzyć pobranego pliku RSS. - Invalid RSS feed at '%1'. - Nieprawidłowy kanał RSS w '%1'. + Nieprawidłowy kanał RSS w '%1'. @@ -5843,168 +6021,249 @@ W przyszłości powiadomienie nie będzie wyświetlane. Maksymalna liczba wiadomości na kanał: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Przeglądaj... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Obserwowany katalog - - Download here - Pobierz tutaj + + Save Files to + + + + Download here + Pobierz tutaj - Download path - Ścieżka pobierania + Ścieżka pobierania SearchCategories - All categories - Wszystko + Wszystko - Movies - Filmy + Filmy - TV shows - Seriale TV + Seriale TV - Music - Muzyka + Muzyka - Games - Gry + Gry - Anime - Anime + Anime - Software - Programy + Programy - Pictures - Obrazki + Obrazki - Books - Książki + Książki SearchEngine - - - Search - Szukaj + Szukaj - Please install Python to use the Search Engine. - Proszę zainstalować Pythona, aby móc używać wyszukiwarek. + Proszę zainstalować Pythona, aby móc używać wyszukiwarek. - Empty search pattern - Pusty wzorzec wyszukiwania + Pusty wzorzec wyszukiwania - Please type a search pattern first - Proszę podać wzorzec wyszukiwania + Proszę podać wzorzec wyszukiwania - Searching... - Wyszukiwanie... + Wyszukiwanie... - Stop - Zatrzymaj + Zatrzymaj - - Search Engine - Wyszukiwarka + Wyszukiwarka - - Search has finished - Wyszukiwanie zakończone + Wyszukiwanie zakończone - An error occurred during search... - Wystąpił błąd podczas wyszukiwania... + Wystąpił błąd podczas wyszukiwania... - - Search aborted - Wyszukiwanie przerwane + Wyszukiwanie przerwane - All enabled - Wszystkie włączone + Wszystkie włączone - All engines - Wszystkie silniki + Wszystkie silniki - - Multiple... - Wielokrotne... + Wielokrotne... - - Results <i>(%1)</i>: i.e: Search results - Wyniki <i>(%1)</i>: + Wyniki <i>(%1)</i>: - Search returned no results - Nic nie znaleziono + Nic nie znaleziono - Stopped - Zatrzymany + Zatrzymany + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Wszystko + + + + Movies + Filmy + + + + TV shows + Seriale TV + + + + Music + Muzyka + + + + Games + Gry + + + + Anime + Anime + + + + Software + Programy + + + + Pictures + Obrazki + + + + Books + Książki SearchListDelegate - - + + Unknown Nieznany @@ -6012,35 +6271,160 @@ W przyszłości powiadomienie nie będzie wyświetlane. SearchTab - + Name i.e: file name Nazwa - + Size i.e: file size Rozmiar - + Seeders i.e: Number of full sources Pełnych - + Leechers i.e: Number of partial sources Częściowych - + Search engine Wyszukiwarka + + SearchWidget + + + + + + + Search + Szukaj + + + + Status: + Status: + + + + + Stopped + Zatrzymany + + + + Download + Pobierz + + + + Go to description page + Otwórz stronę z opisem + + + + Copy description page URL + Kopiuj adres URL strony opisu + + + + Search plugins... + + + + + All enabled + Wszystkie włączone + + + + All plugins + + + + + + Multiple... + Wielokrotne... + + + + + + Search Engine + Wyszukiwarka + + + + Please install Python to use the Search Engine. + Proszę zainstalować Pythona, aby móc używać wyszukiwarek. + + + + Empty search pattern + Pusty wzorzec wyszukiwania + + + + Please type a search pattern first + Proszę podać wzorzec wyszukiwania + + + + + Results <i>(%1)</i>: + i.e: Search results + Wyniki <i>(%1)</i>: + + + + Searching... + Wyszukiwanie... + + + + Stop + Zatrzymaj + + + + + Search has finished + Wyszukiwanie zakończone + + + + + Search aborted + Wyszukiwanie przerwane + + + + Search returned no results + Nic nie znaleziono + + + + Search has failed + + + + + An error occurred during search... + Wystąpił błąd podczas wyszukiwania... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ W przyszłości powiadomienie nie będzie wyświetlane. TorrentContentModel - + Name Nazwa - + Size Rozmiar - + Progress Postęp - + + Download Priority + + + Priority - Priorytet + Priorytet @@ -6854,38 +7242,38 @@ W przyszłości powiadomienie nie będzie wyświetlane. Z ostrzeżeniem (&1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Nie można odzszyfrować ikony ulubionych z adresu URL '%1'. Próbuję pobrać ikonę ulubionych w formacie PNG. - + Couldn't decode favicon for URL '%1'. Nie można odszyfrować ikony ulubionych z adresu URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Nie można pobrać ikony ulubionych z adresu URL '%1'. Powód: %2 - + Resume torrents Wznów torrenty - + Pause torrents Wstrzymaj torrenty - + Delete torrents Usuń torrenty - - + + All (%1) this is for the tracker filter Wszystkie (%1) @@ -7153,17 +7541,17 @@ W przyszłości powiadomienie nie będzie wyświetlane. TransferListFiltersWidget - + Status Status - + Labels Etykiety - + Trackers Trackery @@ -7702,206 +8090,155 @@ W przyszłości powiadomienie nie będzie wyświetlane. engineSelect - Search plugins - Wtyczki wyszukiwania + Wtyczki wyszukiwania - Installed search engines: - Zainstalowane wyszukiwarki: + Zainstalowane wyszukiwarki: - Name - Nazwa + Nazwa - Version - Wersja + Wersja - Url - URL + URL - - Enabled - Włączone + Włączone - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Tutaj możesz pobrać nowe wtyczki wyszukiwania: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Tutaj możesz pobrać nowe wtyczki wyszukiwania: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Zainstaluj nową + Zainstaluj nową - Check for updates - Sprawdź aktualizację + Sprawdź aktualizację - Close - Zamknij + Zamknij - Uninstall - Odinstaluj + Odinstaluj engineSelectDlg - Uninstall warning - Ostrzeżenie deinstalacji + Ostrzeżenie deinstalacji - Uninstall success - Deinstalacja zakończona + Deinstalacja zakończona - Invalid plugin - Nieprawidłowa wtyczka + Nieprawidłowa wtyczka - The search engine plugin is invalid, please contact the author. - Wtyczka wyszukiwarki jest nieprawidłowa, proszę skontaktować się z autorem. + Wtyczka wyszukiwarki jest nieprawidłowa, proszę skontaktować się z autorem. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Najnowsza wersja wtyczki wyszukiwania '%1' jest już zainstalowana. + Najnowsza wersja wtyczki wyszukiwania '%1' jest już zainstalowana. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Nie można zaktualizować wtyczki wyszukiwania '%1', pozostaje stara wersja. + Nie można zaktualizować wtyczki wyszukiwania '%1', pozostaje stara wersja. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Wtyczka wyszukiwania '%1' nie może być zainstalowana. + Wtyczka wyszukiwania '%1' nie może być zainstalowana. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Pomyślnie zaktualizowano wtyczkę wyszukiwania '%1'. + Pomyślnie zaktualizowano wtyczkę wyszukiwania '%1'. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Pomyślnie zainstalowano wtyczkę wyszukiwania '%1'. + Pomyślnie zainstalowano wtyczkę wyszukiwania '%1'. - The link doesn't seem to point to a search engine plugin. - Odnośnik nie wydaje się wskazywać na wtyczkę wyszukiwania. + Odnośnik nie wydaje się wskazywać na wtyczkę wyszukiwania. - Select search plugins - Wybierz wtyczkę wyszukiwania + Wybierz wtyczkę wyszukiwania - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Przepraszam, niepowodzenie instalacji wtyczki wyszukiwania '%1'. + Przepraszam, niepowodzenie instalacji wtyczki wyszukiwania '%1'. - - - - - Search plugin install - Instalacja wtyczki wyszukiwania + Instalacja wtyczki wyszukiwania - - - Yes - Tak + Tak - - - - No - Nie + Nie - qBittorrent search plugin - Wtyczka wyszukiwania qBittorrent + Wtyczka wyszukiwania qBittorrent - - - - Search plugin update - Aktualizacja wtyczki wyszukiwania + Aktualizacja wtyczki wyszukiwania - - Sorry, update server is temporarily unavailable. - Sorry, czasowo niedostępny serwer aktualizacji. + Sorry, czasowo niedostępny serwer aktualizacji. - All your plugins are already up to date. - Wszystkie twoje wtyczki są aktualne. + Wszystkie twoje wtyczki są aktualne. - All selected plugins were uninstalled successfully - Wszystkie wybrane wtyczki zostały zainstalowane + Wszystkie wybrane wtyczki zostały zainstalowane - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Niektóre wtyczki nie mogą zostać usunięte, ponieważ są częścią qBittorenta. Tylko te, które dodałeś możesz usunąć. + Niektóre wtyczki nie mogą zostać usunięte, ponieważ są częścią qBittorenta. Tylko te, które dodałeś możesz usunąć. Tamte wtyczki były wyłączone. - Invalid link - Nieprawidłowy odnośnik + Nieprawidłowy odnośnik - - New search engine plugin URL - URL nowej wtyczki wyszukiwania + URL nowej wtyczki wyszukiwania - - URL: - URL: + URL: @@ -8031,169 +8368,169 @@ Tamte wtyczki były wyłączone. options_imp - - + + Choose export directory Wybierz katalog eksportu - - - - + + + + Choose a save directory Wybierz katalog docelowy - + Add directory to scan Dodaj katalog do przeszukiwania - + Supported parameters (case sensitive): Obsługiwane parametry (z uwzględnieniem wielkości liter): - + %N: Torrent name %N: Nazwa torrenta - + %L: Label %L: Etykieta - + %F: Content path (same as root path for multifile torrent) %F: Ścieżka zawartości (taka sama jak ścieżka root dla wieloplikowych torrentów) - + %R: Root path (first torrent subdirectory path) %R: Ścieżka root (pierwsza ścieżka podkatalogu torrenta) - + %D: Save path %D: Ścieżka zapisu - + %C: Number of files %C: Liczba plików - + %Z: Torrent size (bytes) %Z: Rozmiar torrenta (w bajtach) - + %T: Current tracker %T: Bieżący tracker - + %I: Info hash %I: Info hash: - + Folder is already being watched. Katalog jest już obserwowany. - + Folder does not exist. Katalog nie istnieje. - + Folder is not readable. Nie można czytać katalogu. - + Failure Błąd - + Failed to add Scan Folder '%1': %2 Błąd podczas dodawania katalogu do obserwowanych '%1': %2 - - + + Filters Filtry - - + + Choose an IP filter file Wybierz plik filtra IP - + SSL Certificate Certyfikat SSL - + SSL Key Klucz SSL - + Parsing error Błąd przetwarzania - + Failed to parse the provided IP filter Nie udało się przetworzyć podanego filtra IP - + Successfully refreshed Pomyślnie odświeżony - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Pomyślnie przetworzono podany filtr IP: zastosowano %1 reguł. - + Invalid key Niepoprawny klucz - + This is not a valid SSL key. To nie jest poprawny klucz SSL. - + Invalid certificate Niepoprawny certyfikat - + This is not a valid SSL certificate. To nie jest poprawny certyfikat SSL. - + The start time and the end time can't be the same. Czas uruchomienia nie może byś taki sam jak czas zakończenia. - + Time Error Błąd ustawień harmonogramu @@ -8201,24 +8538,20 @@ Tamte wtyczki były wyłączone. pluginSourceDlg - Plugin source - Źródło wtyczki + Źródło wtyczki - Search plugin source: - Źródło wtyczki wyszukiwania: + Źródło wtyczki wyszukiwania: - Local file - Plik lokalny + Plik lokalny - Web link - Adres strony + Adres strony @@ -8247,40 +8580,32 @@ Tamte wtyczki były wyłączone. search_engine - - Search - Szukaj + Szukaj - Status: - Status: + Status: - Stopped - Zatrzymany + Zatrzymany - Download - Pobierz + Pobierz - Go to description page - Otwórz stronę z opisem + Otwórz stronę z opisem - Copy description page URL - Kopiuj adres URL strony opisu + Kopiuj adres URL strony opisu - Search engines... - Wtyczki wyszukiwania... + Wtyczki wyszukiwania... diff --git a/src/lang/qbittorrent_pt.ts b/src/lang/qbittorrent_pt.ts index 8533c0dd0..3361c9e6f 100644 --- a/src/lang/qbittorrent_pt.ts +++ b/src/lang/qbittorrent_pt.ts @@ -127,7 +127,7 @@ Set as default label - + Definir como etiqueta padrão @@ -175,172 +175,172 @@ Não transferir - - + + I/O Error Erro I/O - + The torrent file does not exist. O ficheiro torrent não existe. - + Invalid torrent Torrent inválido - + Failed to load the torrent: %1 Falha ao carregar o torrent: %1 - - + + Already in download list Já existe na lista de transferências - + Free disk space: %1 Espaço livre: %1 - + Not Available This comment is unavailable Não disponível - + Not Available This date is unavailable Não disponível - + Not available Não disponível - + Invalid magnet link Ligação magnet inválida - + Torrent is already in download list. Trackers were merged. O torrent já existe na lista de transferências. Os trackers serão unidos. - - + + Cannot add torrent Torrent não adicionado - + Cannot add this torrent. Perhaps it is already in adding state. Não foi possível adicionar o torrent. Talvez já esteja na lista de adições. - + This magnet link was not recognized Esta ligação magnet não foi reconhecida - + Magnet link is already in download list. Trackers were merged. A ligação magnet já existe na lista de transferências. Os trackers serão unidos. - + Cannot add this torrent. Perhaps it is already in adding. Não foi possível adicionar o torrent. Talvez já esteja na lista de adições. - + Magnet link Ligação magnet - + Retrieving metadata... Obtenção de meta-dados... - + Not Available This size is unavailable. Não disponível - - - + + + Choose save path Escolha o caminho - + Rename the file Mudar nome do ficheiro - + New name: Novo nome: - - + + The file could not be renamed O nome do ficheiro não foi alterado - + This file name contains forbidden characters, please choose a different one. Este nome contém caracteres proibidos. Por favor escolha um nome diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome já está em uso nessa pasta. Por favor escolha um nome diferente. - + The folder could not be renamed O nome da pasta não foi alterado - + Rename... Mudar nome... - + Priority Prioridade - + Invalid metadata Meta-dados inválidos - + Parsing metadata... Análise de metadados... - + Metadata retrieval complete Obtenção de metadados terminada - + Download Error Erro ao transferir @@ -431,10 +431,6 @@ Resolve peer host names Resolver nomes dos servidores de peers - - Maximum number of half-open connections [0: Disabled] - Número máximo de ligações semi-abertas [0: inativo] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Número máximo de ligações semi-abertas [0: ilimitado] @@ -661,205 +657,205 @@ &Exportar... - + Matches articles based on episode filter. Correspondência de artigos tendo por base o filtro de episódios. - + Example: Exemplo: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match irá corresponder aos episódios 2, 5, 8 até 15, 30 e subsequentes da temporada um - + Episode filter rules: Regras para filtro de episódios: - + Season number is a mandatory non-zero value O número de temporada tem que ser um valor positivo - + Episode number is a mandatory non-zero value O número de episódio tem que ser positivo - + Filter must end with semicolon O filtro deve terminar com ponto e vírgula - + Three range types for episodes are supported: São suportados três tipos de intervalos para episódios: - + Single number: <b>1x25;</b> matches episode 25 of season one Um número: <b>1x25;</b> corresponde ao episódio 25 da temporada um - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Intervalo normal: <b>1x25-40;</b> corresponde aos episódios 25 a 40 da temporada um - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Intervalo infinito: <b>1x25-;</b> corresponde aos episódios 25 e superiores da temporada um - + Last Match: %1 days ago Última ocorrência: %1 dias atrás - + Last Match: Unknown Última ocorrência: desconhecida - + New rule name Nome da nova regra - + Please type the name of the new download rule. Por favor digite o nome da nova regra. - - + + Rule name conflict Conflito no nome da regra - - + + A rule with this name already exists, please choose another name. Já existe uma regra com este nome. Por favor escolha outro nome. - + Are you sure you want to remove the download rule named '%1'? Tem a certeza de que deseja remover a regra com o nome '%1'? - + Are you sure you want to remove the selected download rules? Tem a certeza que quer remover as regras selecionadas? - + Rule deletion confirmation Confirmação de eliminação de regra - + Destination directory Diretório de destino - + Invalid action Ação inválida - + The list is empty, there is nothing to export. A lista está vazia e não há itens para exportar. - + Where would you like to save the list? Em que local gostaria de guardar a lista? - + Rules list (*.rssrules) Lista de regras (*.rssrules) - + I/O Error Erro I/O - + Failed to create the destination file Ocorreu um erro ao criar o ficheiro de destino - + Please point to the RSS download rules file Por favor indique o ficheiro de regras RSS - + Rules list Lista de regras - + Import Error Erro de importação - + Failed to import the selected rules file Ocorreu um erro ao importar o ficheiro de regras - + Add new rule... Adicionar regra... - + Delete rule Eliminar regra - + Rename rule... Mudar nome da regra... - + Delete selected rules Eliminar regras selecionadas - + Rule renaming Mudar nome da regra - + Please type the new rule name Por favor indique o novo nome da regra - + Regex mode: use Perl-like regular expressions Modo regex: utilizar expressões regulares Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Modo wildcard: pode usar<ul><li>? para fazer coincidir com um carácter</li><li>* para fazer coincidir com 0 ou mais de quaisquer caracteres.</li><li>Os espaços vazios contam como operador AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Modo wildcard: pode usar<ul><li>? para fazer coincidir com um carácter</li><li>* para fazer coincidir com 0 ou mais de quaisquer caracteres.</li><li>| é utilizado como operador OR</li></ul> @@ -952,65 +948,57 @@ '%1' atingiu a taxa máxima definida. Em pausa... - Error: Could not create torrent export directory: '%1' - Erro: não foi possível criar o diretório de exportação: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Erro: não foi possível exportar o torrent '%1', possivelmente ainda não possui metadados. - - - + System network status changed to %1 e.g: System network status changed to ONLINE O estado da rede do sistema foi alterado para %1 - + ONLINE Online - + OFFLINE Offline - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuração da rede %1 foi alterada. A atualizar a sessão. - + Unable to decode '%1' torrent file. Não foi possível descodificar o torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Transferência recursiva do ficheiro '%1', incorporado no torrent %2 - + Couldn't save '%1.torrent' Não foi possível guardar '1%.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. porque '%1' está inativo. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque '%1' está inativo. - + URL seed lookup failed for URL: '%1', message: %2 A procura do URL falhou para o URL: %1. Mensagem: %2 @@ -1027,178 +1015,164 @@ "%1" foi removido da lista de transferências. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... A receber "%1". Por favor aguarde... - Torrent Export: torrent is invalid, skipping... - Exportação torrent: o torrent é inválido e será ignorado. - - - + DHT support [ON] Suporte DHT [ON] - + DHT support [OFF]. Reason: %1 Suporte DHT [OFF]. Motivo: %1 - + DHT support [OFF] Suporte DHT [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 O qBitorrent está a tentar receber de uma porta: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2 - - - + The network interface defined is invalid: %1 A interface de rede definida não é válida: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 O qBitorrent está a tentar receber na interface %1, porta: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on O qBittorrent não encontrou o endereço local %1 para a receção - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2. {1.?} + O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2 - + Tracker '%1' was added to torrent '%2' O tracker '%1' foi adicionado ao torrent '%2' - + Tracker '%1' was deleted from torrent '%2' O tracker '%1' foi eliminado do torrent '%2' - + URL seed '%1' was added to torrent '%2' O URL seed '%1' foi adicionado ao torrent '%2' - + URL seed '%1' was removed from torrent '%2' O URL seed '%1' foi removido do torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Não foi possível retomar o torrent %1 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro de IP processado com sucesso: %1 regras aplicadas. - + Error: Failed to parse the provided IP filter. Erro: falha ao processar o filtro de IP. - + Couldn't add torrent. Reason: %1 Torrent não adicionado: '%1'. Motivo: %2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) "%1" foi retomado. (retoma rápida) - + '%1' added to download list. 'torrent name' was added to download list. "%1" foi adicionado à lista de transferências. - + An I/O error occurred, '%1' paused. %2 Erro I/O, %1 foi colocado em pausa. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: falha no mapeamento da porta. Mensagem: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: portas mapeadas com sucesso. Mensagem: %1 - + due to IP filter. this peer was blocked due to ip filter. por um filtro IP. - + due to port filter. this peer was blocked due to port filter. por um filtro de porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. pelas restrições de modo i2p. - + because it has a low port. this peer was blocked because it has a low port. porque tem uma porta baixa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 O qBittorrent está a receber da interface %1, porta: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - O qBittorrent não conseguiu receber da interface %1, porta: %2/%3. Motivo: %4. {1 ?} {2/%3.?} + O qBittorrent não conseguiu receber da porta %2/%3 da interface %1. Motivo: %4 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - O qBittorrent não conseguiu receber da interface %1, porta: %2/%3. Motivo: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP externo: %1 @@ -1212,12 +1186,12 @@ Não foi possível mover o torrent: '%1'. Motivo: %2 - + File sizes mismatch for torrent '%1', pausing it. Disparidade de tamanhos para o torrent %1, que foi colocado em pausa. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Recusa ao continuar a transferência do torrent %1. Motivo: %2. A verificar novamente... @@ -1242,7 +1216,7 @@ Valor - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. As chaves comuns de cookies são: %1, %2. @@ -1310,12 +1284,12 @@ Pode obter estas informações nas preferências do seu navegador web. FeedListWidget - + RSS feeds Fontes RSS - + Unread Não lidas @@ -1412,10 +1386,6 @@ Pode obter estas informações nas preferências do seu navegador web.Only one link per line Só uma ligação por linha - - Download local torrent - Transferir torrent local - Download @@ -1589,20 +1559,30 @@ Pode obter estas informações nas preferências do seu navegador web. Save files to location: - Guardar ficheiros em: + Gravar ficheiros em: Label: - Etiqueta: + Etiqueta: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Transferido @@ -1615,7 +1595,7 @@ Pode obter estas informações nas preferências do seu navegador web. Upload local torrent - + Enviar torrent local @@ -1973,10 +1953,6 @@ Pode obter estas informações nas preferências do seu navegador web.&About &Sobre - - Exit - Sair - &Pause @@ -2007,22 +1983,6 @@ Pode obter estas informações nas preferências do seu navegador web.E&xit Sa&ir - - Options - Opções - - - Resume - Retomar - - - Pause - Pausa - - - Delete - Eliminar - Open URL @@ -2040,19 +2000,15 @@ Pode obter estas informações nas preferências do seu navegador web. - + Show Mostrar - + Check for program updates Procurar atualizações da aplicação - - Lock qBittorrent - Bloquear qBittorrent - Add Torrent &Link... @@ -2065,214 +2021,220 @@ Pode obter estas informações nas preferências do seu navegador web. - + Execution Log Registo de execução - + Clear the password Limpar palavra-passe - + Filter torrent list... Filtrar lista de torrents... - + &Set Password Definir palavra-pa&sse - + &Clear Password &Limpar palavra-passe - + Transfers Transferências - + Torrent file association Associação de ficheiros torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? O qBittorrent não é a aplicação pré-definida para ficheiros torrent e ligações magnet. Gostaria de associar o qBittorrent a este tipo de ficheiros e ligações? - + Icons Only Apenas ícones - + Text Only Apenas texto - + Text Alongside Icons Texto ao lado dos ícones - + Text Under Icons Texto abaixo dos ícones - + Follow System Style Utilizar estilo do sistema - - - + + + UI lock password Palavra-passe da interface - - - + + + Please type the UI lock password: Por favor indique a palavra-passe: - + The password should contain at least 3 characters A palavra-passe tem que ter, no mínimo, 3 caracteres - + Password update Atualizar palavra-passe - + The UI lock password has been successfully updated A palavra-passe da interface foi atualizada com sucesso - + Are you sure you want to clear the password? Tem a certeza que pretende limpar a palavra-passe? - + Search Pesquisa - + Transfers (%1) Transferências (%1) - + Error Erro - + Failed to add torrent: %1 Falha ao adicionar o torrent: %1 - + Download completion Transferência terminada - + I/O Error i.e: Input/Output Error Erro I/O - + Recursive download confirmation Confirmação de transferência recursiva - + Yes Sim - + No Não - + Never Nunca - + Global Upload Speed Limit Limite global de velocidade para envio - + Global Download Speed Limit Limite global de velocidade para receção - + &No &Não - + &Yes &Sim - + &Always Yes Se&mpre - + Python found in %1 Python encontrado em %1 - + Old Python Interpreter Processador Python desatualizado - + qBittorrent Update Available Atualização disponível - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Você já está a utiliar a versão mais recente - + Undetermined Python version Versão Python indeterminada - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. %1 foi transferido. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2281,160 +2243,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Motivo: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? O torrent %1 contém ficheiros torrent. Continuar com a sua transferência? - + Couldn't download file at URL '%1', reason: %2. Não foi possível transferir o ficheiro do URL: %1. Motivo: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. A sua versão Python (%1) está desatualizada. Atualize para a versão mais recente se quiser que os motores de pesquisa funcionem. Versões mínimas: 2.7.0/3.3.0 - + Couldn't determine your Python version (%1). Search engine disabled. Não foi possível determinar a sua versão Python (%1). O motor de pesquisa foi desativado. - - + + Missing Python Interpreter Interpretador Python inexistente - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Requer Python para utilizar o motor de pesquisa, mas parece que não há uma versão instalada. Gostaria de instalar agora? - + Python is required to use the search engine but it does not seem to be installed. Requer Python para utilizar o motor de pesquisa, mas parece que não há uma versão instalada. - A new version is available. Update to version %1? - Está disponível uma nova versão. + Está disponível uma nova versão. Atualizar para a versão %1? - + No updates available. You are already using the latest version. Não existem atualizações. Você já tem a versão mais recente. - + &Check for Updates Pro&curar atualizações - + Checking for Updates... A procurar atualizações... - + Already checking for program updates in the background O programa já está à procura de atualizações - + Python found in '%1' Python encontrado em '%1' - + Download error Erro ao transferir - + Python setup could not be downloaded, reason: %1. Please install it manually. A instalação Python não foi transferida. Motivo: %1. Por favor instale manualmente. - - + + Invalid password Palavra-passe inválida - - + + RSS (%1) RSS (%1) - + URL download error Erro ao transferir do URL - + The password is invalid A palavra-passe é inválida - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Velocidade de receção: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Velocidade de envio: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [R: %1, E: %2] qBittorrent %3 - + Hide Ocultar - + Exiting qBittorrent A sair do qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Ainda estão a ser transferidos alguns ficheiros. Tem a certeza que deseja sair? - + Open Torrent Files Abrir ficheiros torrent - + Torrent Files Ficheiros torrent - + Options were saved successfully. As opções foram guardadas com sucesso. @@ -2442,17 +2403,17 @@ Tem a certeza que deseja sair? Net::DNSUpdater - + Your dynamic DNS was successfully updated. O seu DNS dinâmico foi atualizado com sucesso. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Erro de DNS dinâmico: o serviço está indisponível. Nova tentativa dentro de 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Erro de DNS dinâmico: o nome do servidor não existe na conta especificada. @@ -2462,32 +2423,32 @@ Tem a certeza que deseja sair? Erro de DNS dinâmico: utilizador e/ou senha inválido(a). - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: o qBittorrent está na lista negra deste serviço. Reporte este erro em http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: o serviço devolveu %1. Reporte este erro em http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Erro de DNS dinâmico: o seu nome de utilizador foi bloqueado por abusos. - + Dynamic DNS error: supplied domain name is invalid. Erro de DNS dinâmico: o domínio não é válido. - + Dynamic DNS error: supplied username is too short. Erro de DNS dinâmico: nome de utilizador muito curto. - + Dynamic DNS error: supplied password is too short. Erro de DNS dinâmico: palavra-passe muito curta. @@ -2514,154 +2475,161 @@ Tem a certeza que deseja sair? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Base de dados GeoIP carregada. Tipo: %1, compilada em: %2 - + Couldn't load GeoIP database. Reason: %1 Base de dados GeoIP não carregada. Motivo: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/D - Asia/Pacific Region - Região asiática/pacífica + Região asiática/pacífica + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emirados Árabes Unidos - + Afghanistan Afeganistão - + Antigua and Barbuda Antígua e Barbados - + Anguilla Anguilla - + Albania Albânia - + Armenia Arménia - Netherlands Antilles - Antilhas holandesas + Antilhas holandesas - + Angola Angola - + Antarctica Antártica - + Argentina Argentina - + American Samoa Samoa Americana - + Austria Áustria - + Australia Austrália - + Aruba Aruba - + Azerbaijan Azerbeijão - + Bosnia and Herzegovina Bósnia e Herzegovina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Bélgica - + Burkina Faso Burkina Faso - + Bulgaria Bulgária - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2676,1137 +2644,1187 @@ Tem a certeza que deseja sair? Brunei Darussalam - Bolivia - Bolívia + Bolívia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Butão - + Bouvet Island Ilha Bouvet - + Botswana Botswana - + Belarus Bielorrusia - + Belize Belize - + Canada Canadá - + Cocos (Keeling) Islands Ilhas Coco (Keeling) - + Congo, The Democratic Republic of the República Democrática do Congo - + Central African Republic República Africana Central - + Congo Congo - + Switzerland Suíca - Cote D'Ivoire - Costa do Marfim + Costa do Marfim - + Cook Islands Ilhas Cook - + Chile Chile - + Cameroon Camarões - + China China - + Colombia Colômbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + + Curacao + + + + Christmas Island Ilhas Natal - + Cyprus Chipre - + Czech Republic República Checa - + Germany Alemanha - + Djibouti Djibouti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Argélia - + Ecuador Equador - + Estonia Estónia - + Egypt Egipto - + Western Sahara Sahara Ocidental - + Eritrea Eritreia - + Spain Espanha - + Ethiopia Etiópia - + Finland Finlândia - + Fiji Ilhas Fiji - + Falkland Islands (Malvinas) Ilhas Falkland (Malvinas) - + Micronesia, Federated States of Estado Federal da Micronésia - + Faroe Islands Ilhas Faroé - + France França - France, Metropolitan - Metropolitana Francesa + Metropolitana Francesa - + Gabon Gabão - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Geórgia - + French Guiana Guiana Francesa - + Ghana Gana - + Gibraltar Gibraltar - + Greenland Gronelandia - + Gambia Gâmbia - + Guinea Guiné - + Guadeloupe Guadalupe - + Equatorial Guinea Guiné Equatorial - + Greece Grécia - + South Georgia and the South Sandwich Islands Georgia do Sul e Ilhas South Sandwich - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guiné Bissau - + Guyana Guiana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Ilha Heard e Ilhas McDonald - + Honduras Honduras - + Croatia Croácia - + Haiti Haiti - + Hungary Hungria - + Indonesia Indonésia - + Ireland Irlanda - + Israel Israel - + India Índia - + British Indian Ocean Territory Território oceânico da Índia britânica - + Iraq Iraque - + Iran, Islamic Republic of República Islâmica do Irão - + Iceland Islândia - + Italy Itália - + Jamaica Jamaica - + Jordan Jordânia - + Japan Japão - + Kenya Quénia - + Kyrgyzstan Quirguistão - + Cambodia Cambodja - + Kiribati Kiribati - + Comoros Comoros - + Saint Kitts and Nevis Saint Kitts e Nevis - + Korea, Democratic People's Republic of República Democrática da Coreia - + Korea, Republic of República da Coreia - + Kuwait Kuwait - + Cayman Islands Ilhas Caimão - + Kazakhstan Cazaquistão - + Lao People's Democratic Republic República Democrática de Laos - + Lebanon Líbano - + Saint Lucia Santa Luzia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libéria - + Lesotho Lesoto - + Lithuania Lituânia - + Luxembourg Luxemburgo - + Latvia Letónia - Libyan Arab Jamahiriya - Líbia + Líbia - + Morocco Marrocos - + Monaco Mónaco - + Moldova, Republic of República da Moldávia - + Madagascar Madagáscar - + Marshall Islands Ilhas Marshall - Macedonia - Macedónia + Macedónia - + Mali Mali - + Myanmar Birmânia - + Mongolia Mongólia - Macau - Macau + Macau - + Northern Mariana Islands Ilhas Marianas do Norte - + Martinique Martinica - + Mauritania Mauritânia - + Montserrat Monserrate - + Malta Malta - + Mauritius Mauritânia - + Maldives Maldivas - + Malawi Malaui - + Mexico México - + Malaysia Malásia - + Mozambique Moçambique - + Namibia Namíbia - + New Caledonia Nova Caledónia - + Niger Níger - + Norfolk Island Ilhas Norfolk - + Nigeria Nigéria - + Nicaragua Nicarágua - + Netherlands Holanda - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nova Zelândia - + Oman Omã - + Panama Panamá - + Peru Peru - + French Polynesia Polinésia Francesa - + Papua New Guinea Papua Nova Guiné - + Philippines Filipinas - + Pakistan Paquistão - + Poland Polónia - + Saint Pierre and Miquelon Saint Pierre e Miquelon - Pitcairn Islands - Ilhas Pitcairn + Ilhas Pitcairn - + Puerto Rico Porto Rico - Palestinian Territory - Território Palestiniano + Território Palestiniano - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunião - + Romania Roménia - + Russian Federation Federação Russa - + Rwanda Ruanda - + Saudi Arabia Arábia Saudita - + Solomon Islands Ilhas Salomão - + Seychelles Ilhas Sicheles - + Sudan Sudão - + Sweden Suécia - + Singapore Singapura - Saint Helena - Santa Helena + Santa Helena - + Slovenia Eslovénia - + Svalbard and Jan Mayen Svalbard e Jan Mayen - + Slovakia Eslováquia - + Sierra Leone Serra Leoa - + San Marino São Marino - + Senegal Senegal - + Somalia Somália - + Suriname Suriname - + Sao Tome and Principe São Tomé e Príncipe - + El Salvador El Salvador - + Syrian Arab Republic República Árabe da Síria - + Swaziland Suazilândia - + Turks and Caicos Islands Ilhas Turks e Caicos - + Chad Chade - + French Southern Territories Território francês do sul - + Togo Togo - + Thailand Tailandia - + Tajikistan Tajiquistão - + Tokelau Tokelau - + Turkmenistan Turqemenistão - + Tunisia Tunísia - + Tonga Tonga - + Timor-Leste Timor Leste - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turquia - + Trinidad and Tobago Trinidade e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of República da tanzânia - + Ukraine Ucrânia - + Uganda Uganda - + United States Minor Outlying Islands Ilhas remotas menores dos Estados Unidos da América - + United States Estados Unidos da América - + Uruguay Uruguai - + Uzbekistan Uzbequistão - + Holy See (Vatican City State) Santa Sé (Estado do Vaticano) - + Saint Vincent and the Grenadines São Vicente e Granadinas - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Ilhas Virgens Britânicas - + Virgin Islands, U.S. Ilhas Virgens Americanas - Vietnam - Vietname + Vietname - + Vanuatu Vanuatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Iemen - + Mayotte Maiorete - + Serbia Sérvia - + South Africa África do Sul - + Zambia Zâmbia - + Montenegro Montenegro - + Zimbabwe Zimbábue - Anonymous Proxy - Proxy anónimo + Proxy anónimo - Satellite Provider - Serviço de satélite + Serviço de satélite - Other - Outro + Outro - + Aland Islands Ilhas Aland - + Guernsey Guernsey - + Isle of Man Ilha de Man - + Jersey Jersey - + Saint Barthelemy São Bartolomeu - Saint Martin - São Martim + São Martim - + Could not uncompress GeoIP database file. Não foi possível descomprimir a base de dados GeoIP. - + Couldn't save downloaded GeoIP database file. Não foi possível guardar a base de dados GeoIP descarregada. - + Successfully updated GeoIP database. Base de dados GeoIP atualizada com sucesso. - + Couldn't download GeoIP database file. Reason: %1 Base de dados GeoIP não descarregada. Motivo: %1 @@ -3837,72 +3855,72 @@ Tem a certeza que deseja sair? interested(local) and choked(peer) - interessado(local) e choked(peer) + interessado(local) e choked(peer) interested(local) and unchoked(peer) - interessado(local) e unchoked(peer) + interessado(local) e unchoked(peer) interested(peer) and choked(local) - interessado (peer) e choked (local) + interessado(peer) e choked(local) interested(peer) and unchoked(local) - interessado (peer) e unchoked (local) + interessado(peer) e unchoked(local) optimistic unchoke - unchoke otimista + unchoke otimista peer snubbed - peer snubbed + peer snubbed incoming connection - ligação recebida + ligação recebida not interested(local) and unchoked(peer) - não interessado(local) e unchoked(peer) + não interessado(local) e unchoked(peer) not interested(peer) and unchoked(local) - não interessado(peer) e unchoked(local) + não interessado(peer) e unchoked(local) peer from PEX - peer de PEX + peer de PEX peer from DHT - peer de DHT + peer de DHT encrypted traffic - comunicação cifrada + comunicação cifrada encrypted handshake - negociação cifrada + negociação cifrada peer from LSD - peer de LSD + peer de LSD @@ -3970,123 +3988,73 @@ Tem a certeza que deseja sair? Importância - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Adicionar novo peer... - + Copy selected Copiar seleção - - + + Ban peer permanently Banir peer permanentemente - + Manually adding peer '%1'... Adição manual do peer '%1'... - + The peer '%1' could not be added to this torrent. Não foi possível adicionar o peer '%1' a este torrent. - + Manually banning peer '%1'... A banir manualmente o peer '%1'... - - + + Peer addition Adição de peer - + Some peers could not be added. Check the Log for details. Não foi possível adicionar algusn peers. Analise o registe para mais detalhes. - + The peers were added to this torrent. Os peers foram adicionados a este torrent. - + Are you sure you want to ban permanently the selected peers? Tem a certeza que quer banir permanentemente os peers selecionados? - + &Yes &Sim - + &No &Não - - interested(local) and choked(peer) - interessado(local) e choked(peer) - - - interested(local) and unchoked(peer) - interessado(local) e unchoked(peer) - - - interested(peer) and choked(local) - interessado (peer) e choked (local) - - - interested(peer) and unchoked(local) - interessado (peer) e unchoked (local) - - - optimistic unchoke - unchoke otimista - - - peer snubbed - peer snubbed - - - incoming connection - ligação recebida - - - not interested(local) and unchoked(peer) - não interessado(local) e unchoked(peer) - - - not interested(peer) and unchoked(local) - não interessado(peer) e unchoked(local) - - - peer from PEX - peer de PEX - - - peer from DHT - peer de DHT - - - encrypted traffic - comunicação cifrada - - - encrypted handshake - negociação cifrada - - - peer from LSD - peer de LSD - PeersAdditionDlg @@ -4124,6 +4092,204 @@ Tem a certeza que deseja sair? Azul: peças disponíveis + + PluginSelectDlg + + + Search plugins + 'Plugins' de pesquisa + + + + Installed search plugins: + + + + + Name + Nome + + + + Version + Versão + + + + Url + Url + + + + + Enabled + Ativo + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pode obter mais motores de pesquisa em: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instalar um novo + + + + Check for updates + Procurar atualizações + + + + Close + Fechar + + + + Uninstall + Desinstalar + + + + + + Yes + Sim + + + + + + + No + Não + + + + Uninstall warning + Aviso de desinstalação + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Alguns 'plugins' não podem ser desinstalados por serem parte integrante do qBittorrent. +Apenas os plugins instalados pelo utilizador podem ser removidos. +Esses plugins foram desativados. + + + + Uninstall success + Desinstalado com sucesso + + + + All selected plugins were uninstalled successfully + Todos os 'plugins' selecionados foram removidos + + + + + New search engine plugin URL + URL do novo 'plugin' de pesquisa + + + + + URL: + URL: + + + + Invalid link + Ligação inválida + + + + The link doesn't seem to point to a search engine plugin. + Esta ligação não indica um 'plugin' de pesquisa. + + + + Select search plugins + Escolha os 'plugins' de pesquisa + + + + qBittorrent search plugin + 'Plugin' de pesquisa do qBittorrent + + + + + + Search plugin update + Atualização de 'plugins' + + + + All your plugins are already up to date. + Todos os 'plugins' estão atualizados. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalação de 'plugin' + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Fonte do 'plugin' + + + + Search plugin source: + Fonte do 'plugin' de pesquisa: + + + + Local file + Ficheiro local + + + + Web link + Ligação web + + Preferences @@ -4180,89 +4346,89 @@ Tem a certeza que deseja sair? Adicionar .!qB aos ficheiros incompletos - + Copy .torrent files to: Copiar ficheiros torrent para: - + Connections Limits Limites das ligações - + Proxy Server Servidor proxy - + Global Rate Limits Limites globais - + Apply rate limit to transport overhead Aplicar limites para transporte "overhead" - + Schedule the use of alternative rate limits Agendar utilização das taxas limite alternativas - + From: from (time1 to time2) De: - + To: time1 to time2 Para: - + Enable Local Peer Discovery to find more peers Ativar Local Peer Discovery para encontrar mais peers - + Encryption mode: Modo de codificação: - + Prefer encryption Preferir codificação - + Require encryption Requer codificação - + Disable encryption Desativar codificação - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mais informações</a>) - + Maximum active downloads: Máximo de transferências ativas: - + Maximum active uploads: Máximo de envios ativos: - + Maximum active torrents: Máximo de torrents ativos: @@ -4287,82 +4453,82 @@ Tem a certeza que deseja sair? Mostrar conteúdo do torrent e algumas opções - + Run external program on torrent completion Executar uma aplicação externa ao terminar a transferência - + Port used for incoming connections: Porta utilizada para ligações recebidas: - + Random Aleatória - + Global maximum number of connections: Número máximo de ligações globais: - + Maximum number of connections per torrent: Número máximo de ligações por torrent: - + Maximum number of upload slots per torrent: Número máximo de envios por torrent: - - + + Upload: Envio: - - + + Download: Receção: - - - - + + + + KiB/s KB/s - + Remove folder Remover pasta - + Every day Todos os dias - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Trocar peers com clientes Bittorrent compatíveis (µTorrent, Vuze, ...) - + Host: Servidor: - + SOCKS4 SOCKS4 - + Type: Tipo: @@ -4441,7 +4607,7 @@ Tem a certeza que deseja sair? User Interface Language: - Idioma da interface do programa: + Idioma da interface do utilizador: @@ -4535,262 +4701,262 @@ Tem a certeza que deseja sair? Adicionar automaticamente torrents de: - + Add folder... Adicionar pasta... - + Copy .torrent files for finished downloads to: Copiar ficheiros torrent das transferências para: - + Email notification upon download completion Enviar notificação por correio eletrónico ao terminar a transferência - + Destination email: Endereço eletrónico: - + SMTP server: Servidor SMTP: - + This server requires a secure connection (SSL) Este servidor requer uma ligação segura (SSL) - + Listening Port Porta de receção - + Use UPnP / NAT-PMP port forwarding from my router Utilizar reencaminhamento de portas UPnP/NAT-PMP do meu router - + Use different port on each startup Utilizar porta distinta em cada arranque - + Global maximum number of upload slots: Número máximo de portas de envio: - + Otherwise, the proxy server is only used for tracker connections Se não o fizer, o servidor proxy só será utilizado para as ligações aos trackers - + Use proxy for peer connections Utilizar proxy para ligações aos peers - + Disable connections not supported by proxies Desativar ligações não suportadas pelos proxies - + Use proxy only for torrents Apenas utilizar proxy para torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection As fontes RSS, o mecanismo de pesquisa, as atualizações ou qualquer outra coisa não relacionada com torrents (ex. troca de peers) utilizaão uma ligação direta. - + Info: The password is saved unencrypted Info: a palavra-passe é guardada sem encriptação - + IP Filtering Filtro de IP - + Reload the filter Recarregar filtro - + Apply to trackers Aplicar aos trackers - + Apply rate limit to peers on LAN Aplicar taxa limite aos peers das ligações LAN - + When: Quando: - + Weekdays Dias da semana - + Weekends Fins de semana - + Rate Limits Settings Definições de limitação de taxas - + Enable µTP protocol Ativar protocolo µTP - + Apply rate limit to µTP protocol Aplicar taxa limite às ligações µTP - + Privacy Privacidade - + Enable DHT (decentralized network) to find more peers Ativar DHT (rede descentralizada) para encontrar mais peers - + Enable Peer Exchange (PeX) to find more peers Ativar Peer Exchange (PeX) para encontrar mais peers - + Look for peers on your local network Procurar peers na rede local - + Enable when using a proxy or a VPN connection Ativar ao utilizar uma ligação proxy ou VPN - + Enable anonymous mode Ativar modo anónimo - + Do not count slow torrents in these limits Não considerar torrents lentos nestes limites - + Seed torrents until their ratio reaches Partilhar torrents até que a taxa seja - + then e depois - + Pause them Parar - + Remove them Remover - + Automatically add these trackers to new downloads: Adicionar estes trackers às novas transferências: - + Use UPnP / NAT-PMP to forward the port from my router Utilizar reencaminhamento de portas UPnP/NAT-PMP do meu router - + Use HTTPS instead of HTTP Utilizar HTTPS em vez de HTTP - + Import SSL Certificate Importar certificado SSL - + Import SSL Key Importar chave SSL - + Certificate: Certificado: - + Alternative Rate Limits Taxa limite alternativa - + Key: Chave: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informações sobre certificados</a> - + Bypass authentication for localhost Desativar autenticação para localhost - + Update my dynamic domain name Atualizar o nome de domínio dinâmico - + Service: Serviço: - + Register Registo - + Domain name: Nome do domínio: - + (None) (Nenhum) @@ -4800,61 +4966,61 @@ Tem a certeza que deseja sair? BitTorrent - + HTTP HTTP - - + + Port: Porta: - - - + + + Authentication Autenticação - - - - + + + + Username: Utilizador: - - - - + + + + Password: Palavra-passe: - + Torrent Queueing Fila de torrents - + Share Ratio Limiting Limite de partilhas - + Enable Web User Interface (Remote control) Ativar interface web (controle remoto) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filtrar caminho (.dat, .p2p, .p2b): @@ -5060,10 +5226,6 @@ Tem a certeza que deseja sair? Comment: Comentário: - - Torrent content: - Conteúdo do torrent: - Select All @@ -5586,28 +5748,28 @@ Esta será a única vez que recebe este aviso. Erro desconhecido - - + + Upgrade Atualizar - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Você atualizou o programa a partir de uma versão que guardava os dados de forma diferente. Tem que ser feita a migração para o novo sistema. Já não será possível utilizar a versão 3.3.0. Continuar? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Você atualizou o programa a partir de uma versão que guardava os dados de forma diferente. Tem que ser feita a migração para o novo sistema. Se continuar, já não será possível utilizar a versão 3.3.0. - + Couldn't migrate torrent with hash: %1 Não foi possível migrar o torrent com o hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Não foi possível migrar o torrent. Nome de ficheiro inválido: %1 @@ -5718,17 +5880,17 @@ Esta será a única vez que recebe este aviso. RSSImp - + Stream URL: URL: - + Please type a RSS stream URL Por favor indique o URL da emissão RSS - + This RSS feed is already in the list. Esta fonte RSS já está na lista. @@ -5748,75 +5910,92 @@ Esta será a única vez que recebe este aviso. Nova pasta - + Deletion confirmation Confirmação de eliminação - + Are you sure you want to delete the selected RSS feeds? Tem a certeza de que deseja eliminar as fontes RSS selecionadas? - + Please choose a new name for this RSS feed Por favor escolha um novo nome para esta fonte RSS - + New feed name: Novo nome da fonte: - + Name already in use O nome já é utilizado - + This name is already used by another item, please choose another one. Este nome já está a ser utilizado por um item. Por favor escolha outro. - + Date: Data: - + Author: Autor: - + Unread Não lida - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - A transferência automática de %1 da fonte RSS %2 falhou porque não possui um torrent ou ligação magnet. + A transferência automática de %1 da fonte RSS %2 falhou porque não possui um torrent ou ligação magnet. - + Automatically downloading '%1' torrent from '%2' RSS feed... - A receber automaticamente o torrent '%1' da fonte RSS %2... + A receber automaticamente o torrent '%1' da fonte RSS %2... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + A transferência automática de %1 da fonte RSS %2 falhou porque não possui um torrent ou ligação magnet. + + + Automatically downloading '%1' torrent from '%2' RSS feed... + A receber automaticamente o torrent '%1' da fonte RSS %2... RssParser - Failed to open downloaded RSS file. - Ocorreu um erro ao transferir o ficheiro RSS. + Ocorreu um erro ao transferir o ficheiro RSS. - Invalid RSS feed at '%1'. - Fonte RSS inválida em '%1'. + Fonte RSS inválida em '%1'. @@ -5842,168 +6021,249 @@ Esta será a única vez que recebe este aviso. Número máximo de artigos por fonte: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Procurar... + + + + Choose save path + Escolha o caminho + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Pasta monitorizada - - Download here - Transferir aqui + + Save Files to + + + + Download here + Transferir aqui - Download path - Caminho da transferência + Caminho da transferência SearchCategories - All categories - Todas as categorias + Todas as categorias - Movies - Filmes + Filmes - TV shows - Programas de TV + Programas de TV - Music - Música + Música - Games - Jogos + Jogos - Anime - Desenhos animados + Desenhos animados - Software - Programas + Programas - Pictures - Imagens + Imagens - Books - Livros + Livros SearchEngine - - - Search - Pesquisa + Pesquisa - Please install Python to use the Search Engine. - Instale uma versão Python para utilizar o motor de pesquisa. + Instale uma versão Python para utilizar o motor de pesquisa. - Empty search pattern - Padrão de pesquisa vazio + Padrão de pesquisa vazio - Please type a search pattern first - Por favor indique o padrão de pesquisa + Por favor indique o padrão de pesquisa - Searching... - A pesquisar... + A pesquisar... - Stop - Parar + Parar - - Search Engine - Motor de pesquisa + Motor de pesquisa - - Search has finished - A pesquisa terminou + A pesquisa terminou - An error occurred during search... - Ocorreu um erro durante a pesquisa... + Ocorreu um erro durante a pesquisa... - - Search aborted - Pesquisa cancelada + Pesquisa cancelada - All enabled - Tudo ativo + Tudo ativo - All engines - Todos os motores + Todos os motores - - Multiple... - Vários... + Vários... - - Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: + Resultados <i>(%1)</i>: - Search returned no results - A pesquisa não devolveu resultados + A pesquisa não devolveu resultados - Stopped - Parado + Parado + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Todas as categorias + + + + Movies + Filmes + + + + TV shows + Programas de TV + + + + Music + Música + + + + Games + Jogos + + + + Anime + Desenhos animados + + + + Software + Programas + + + + Pictures + Imagens + + + + Books + Livros SearchListDelegate - - + + Unknown Desconhecido @@ -6011,35 +6271,160 @@ Esta será a única vez que recebe este aviso. SearchTab - + Name i.e: file name Nome - + Size i.e: file size Tamanho - + Seeders i.e: Number of full sources Seeders - + Leechers i.e: Number of partial sources Leechers - + Search engine Motor de pesquisa + + SearchWidget + + + + + + + Search + Pesquisa + + + + Status: + Estado: + + + + + Stopped + Parado + + + + Download + + + + + Go to description page + Ir para a página de descrição + + + + Copy description page URL + Copiar URL da página de descrição + + + + Search plugins... + + + + + All enabled + Tudo ativo + + + + All plugins + + + + + + Multiple... + Vários... + + + + + + Search Engine + Motor de pesquisa + + + + Please install Python to use the Search Engine. + Instale uma versão Python para utilizar o motor de pesquisa. + + + + Empty search pattern + Padrão de pesquisa vazio + + + + Please type a search pattern first + Por favor indique o padrão de pesquisa + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultados <i>(%1)</i>: + + + + Searching... + A pesquisar... + + + + Stop + Parar + + + + + Search has finished + A pesquisa terminou + + + + + Search aborted + Pesquisa cancelada + + + + Search returned no results + A pesquisa não devolveu resultados + + + + Search has failed + + + + + An error occurred during search... + Ocorreu um erro durante a pesquisa... + + ShutdownConfirmDlg @@ -6484,24 +6869,28 @@ Esta será a única vez que recebe este aviso. TorrentContentModel - + Name Nome - + Size Tamanho - + Progress Evolução - + + Download Priority + + + Priority - Prioridade + Prioridade @@ -6853,38 +7242,38 @@ Esta será a única vez que recebe este aviso. Aviso (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Não foi possível descodificar a imagem para '%1'. Tente transferir a imagem no formato PNG. - + Couldn't decode favicon for URL '%1'. Não foi possível descodificar a imagem para '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Não foi possível descodificar a imagem para '%1'. Motivo: %2 - + Resume torrents Retomar torrents - + Pause torrents Parar torrents - + Delete torrents Eliminar torrents - - + + All (%1) this is for the tracker filter Tudo (%1) @@ -7152,17 +7541,17 @@ Esta será a única vez que recebe este aviso. TransferListFiltersWidget - + Status Estado - + Labels Etiquetas - + Trackers Trackers @@ -7701,207 +8090,156 @@ Esta será a única vez que recebe este aviso. engineSelect - Search plugins - 'Plugins' de pesquisa + 'Plugins' de pesquisa - Installed search engines: - Plugins instalados: + Plugins instalados: - Name - Nome + Nome - Version - Versão + Versão - Url - Url + Url - - Enabled - Ativo + Ativo - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pode obter mais motores de pesquisa em: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pode obter mais motores de pesquisa em: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instalar um novo + Instalar um novo - Check for updates - Procurar atualizações + Procurar atualizações - Close - Fechar + Fechar - Uninstall - Desinstalar + Desinstalar engineSelectDlg - Uninstall warning - Aviso de desinstalação + Aviso de desinstalação - Uninstall success - Desinstalado com sucesso + Desinstalado com sucesso - Invalid plugin - 'Plugin' inválido + 'Plugin' inválido - The search engine plugin is invalid, please contact the author. - O mecanismo de pesquisa é inválido. Por favor, contacte o seu autor. + O mecanismo de pesquisa é inválido. Por favor, contacte o seu autor. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Já está instalada uma versão mais recente do mecanismo de pesquisa %1. + Já está instalada uma versão mais recente do mecanismo de pesquisa %1. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - O mecanismo de pesquisa %1 não foi atualizado e a versão atual foi mantida. + O mecanismo de pesquisa %1 não foi atualizado e a versão atual foi mantida. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - O mecanismo de pesquisa %1 não foi instalado. + O mecanismo de pesquisa %1 não foi instalado. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - O mecanismo de pesquisa %1 foi atualizado. + O mecanismo de pesquisa %1 foi atualizado. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - O mecanismo de pesquisa %1 foi instalado com sucesso. + O mecanismo de pesquisa %1 foi instalado com sucesso. - The link doesn't seem to point to a search engine plugin. - Esta ligação não indica um 'plugin' de pesquisa. + Esta ligação não indica um 'plugin' de pesquisa. - Select search plugins - Escolha os 'plugins' de pesquisa + Escolha os 'plugins' de pesquisa - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Ocorreu um erro ao instalar o 'plugin' de pesquisa %1. + Ocorreu um erro ao instalar o 'plugin' de pesquisa %1. - - - - - Search plugin install - Instalação de 'plugin' + Instalação de 'plugin' - - - Yes - Sim + Sim - - - - No - Não + Não - qBittorrent search plugin - 'Plugin' de pesquisa do qBittorrent + 'Plugin' de pesquisa do qBittorrent - - - - Search plugin update - Atualização de 'plugins' + Atualização de 'plugins' - - Sorry, update server is temporarily unavailable. - Parece que o servidor de atualizações não está disponível. + Parece que o servidor de atualizações não está disponível. - All your plugins are already up to date. - Todos os 'plugins' estão atualizados. + Todos os 'plugins' estão atualizados. - All selected plugins were uninstalled successfully - Todos os 'plugins' selecionados foram removidos + Todos os 'plugins' selecionados foram removidos - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alguns 'plugins' não podem ser desinstalados por serem parte integrante do qBittorrent. + Alguns 'plugins' não podem ser desinstalados por serem parte integrante do qBittorrent. Apenas os plugins instalados pelo utilizador podem ser removidos. Esses plugins foram desativados. - Invalid link - Ligação inválida + Ligação inválida - - New search engine plugin URL - URL do novo 'plugin' de pesquisa + URL do novo 'plugin' de pesquisa - - URL: - URL: + URL: @@ -8031,169 +8369,169 @@ Esses plugins foram desativados. options_imp - - + + Choose export directory Escolha o diretório de exportação - - - - + + + + Choose a save directory Escolha o diretório de gravação - + Add directory to scan Adicionar diretório a analisar - + Supported parameters (case sensitive): Parâmetros suportados (diferencia maiúscula/minúscula): - + %N: Torrent name %N: Nome do torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: caminho do conteúdo (igual ao caminho raiz para torrentes em vários ficheiros) - + %R: Root path (first torrent subdirectory path) %R: camino raiz (caminho do subdiretório de 1.º torrent) - + %D: Save path %D: Caminho de gravação - + %C: Number of files %C: Número de ficheiros - + %Z: Torrent size (bytes) %Z: Tamanho do torrent (bytes) - + %T: Current tracker %T: Tracker atual - + %I: Info hash %I: Info hash - + Folder is already being watched. A pasta já está a ser monitorizada. - + Folder does not exist. A pasta não existe. - + Folder is not readable. A pasta não pode ser lida. - + Failure Falha - + Failed to add Scan Folder '%1': %2 Ocorreu um erro ao adicionar a pasta %1: %2 - - + + Filters Filtros - - + + Choose an IP filter file Escolha o ficheiro de filtro IP - + SSL Certificate Certificado SSL - + SSL Key Chave SSL - + Parsing error Erro de processamento - + Failed to parse the provided IP filter Ocorreu um erro ao processar o filtro IP indicado - + Successfully refreshed Atualizado com sucesso - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number O filtro de IPs foi processado: %1 regras aplicadas. - + Invalid key Chave inválida - + This is not a valid SSL key. Esta não é uma chave SSL válida. - + Invalid certificate Certificado inválido - + This is not a valid SSL certificate. Este não é um certificado SSL válido. - + The start time and the end time can't be the same. A hora inicial e a hora final não podem ser iguais. - + Time Error Erro @@ -8201,24 +8539,20 @@ Esses plugins foram desativados. pluginSourceDlg - Plugin source - Fonte do 'plugin' + Fonte do 'plugin' - Search plugin source: - Fonte do 'plugin' de pesquisa: + Fonte do 'plugin' de pesquisa: - Local file - Ficheiro local + Ficheiro local - Web link - Ligação web + Ligação web @@ -8247,40 +8581,32 @@ Esses plugins foram desativados. search_engine - - Search - Pesquisa + Pesquisa - Status: - Estado: + Estado: - Stopped - Parado + Parado - Download - Transferência + Transferência - Go to description page - Ir para a página de descrição + Ir para a página de descrição - Copy description page URL - Copiar URL da página de descrição + Copiar URL da página de descrição - Search engines... - Motores de pesquisa... + Motores de pesquisa... diff --git a/src/lang/qbittorrent_pt_BR.ts b/src/lang/qbittorrent_pt_BR.ts index 97089dfc1..be7c49974 100644 --- a/src/lang/qbittorrent_pt_BR.ts +++ b/src/lang/qbittorrent_pt_BR.ts @@ -127,7 +127,7 @@ Set as default label - + Configurar como etiqueta padrão @@ -175,172 +175,172 @@ Não baixar - - + + I/O Error Erro de entrada e saída - + The torrent file does not exist. O arquivo torrent não existe. - + Invalid torrent Torrent inválido - + Failed to load the torrent: %1 Falha ao carregar o torrent: %1 - - + + Already in download list Já está na lista de download - + Free disk space: %1 Espaço livre em disco: %1 - + Not Available This comment is unavailable Não Disponível - + Not Available This date is unavailable Não Disponível - + Not available Não disponível - + Invalid magnet link Link magnético inválido - + Torrent is already in download list. Trackers were merged. Torrent já está na lista de download. Trackers foram fundidos. - - + + Cannot add torrent Não foi possível adicionar torrente - + Cannot add this torrent. Perhaps it is already in adding state. Não foi possível adicionar este torrent. Talvez ele já esteja sendo adicionado. - + This magnet link was not recognized Este link magnético não foi reconhecido - + Magnet link is already in download list. Trackers were merged. Este magnet já está na lista de downloads. Os trackers foram adicionados. - + Cannot add this torrent. Perhaps it is already in adding. Não foi possível adicionar este torrent. Talvez ele já esteja sendo adicionado. - + Magnet link Link magnético - + Retrieving metadata... Capturando informações... - + Not Available This size is unavailable. Não Disponível - - - + + + Choose save path Escolha o caminho de salvamento - + Rename the file Renomeie o arquivo - + New name: Novo nome: - - + + The file could not be renamed O arquivo não pôde ser renomeado - + This file name contains forbidden characters, please choose a different one. Este nome contém caracteres proibidos, por favor escolha um diferente. - - + + This name is already in use in this folder. Please use a different name. Este nome já está em uso nessa pasta. Por favor escolha um diferente. - + The folder could not be renamed Esta pasta não pode ser renomeada - + Rename... Renomear... - + Priority Prioridade - + Invalid metadata Metadados inválido - + Parsing metadata... Analisando metadados... - + Metadata retrieval complete Captura de metadados completa - + Download Error Erro no download @@ -431,10 +431,6 @@ Resolve peer host names Determinar nomes dos pares - - Maximum number of half-open connections [0: Disabled] - Número máximo de conexões semiabertas [0: Desabilitado] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Número máximo de conexões semiabertas [0: Ilimitado] @@ -661,205 +657,205 @@ &Exportar... - + Matches articles based on episode filter. Iguala artigos baseado no filtro de episódios. - + Example: Exemplo: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match resultará nos episódios 2, 5, 8 a 15 e 30 em diante da temporada um - + Episode filter rules: Regras do filtro de episódios: - + Season number is a mandatory non-zero value Número da temporada é um valor obrigatório diferente de zero - + Episode number is a mandatory non-zero value Número do episódio é um valor obrigatório diferente de zero - + Filter must end with semicolon O filtro deve terminar com ponto e vírgula - + Three range types for episodes are supported: Três tipos de intervalo para episódios são suportados: - + Single number: <b>1x25;</b> matches episode 25 of season one Número único: <b>1x25;</b> combina com o episódio 25 da temporada um - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Intervalo normal: <b>1x25-40;</b> combina com os episódios 25 a 40 da temporada um - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Intervalo infinito: <b>1x25-;</b> combina com os episódios 25 em diante da temporada um - + Last Match: %1 days ago Última Correspondência: %1 dias atrás - + Last Match: Unknown Última Correspondência: Desconhecida - + New rule name Nome da nova regra - + Please type the name of the new download rule. Por favor digite o nome da nova regra de download. - - + + Rule name conflict Conflito no nome da regra - - + + A rule with this name already exists, please choose another name. Uma regra com o mesmo nome existe, por favor escolha outro. - + Are you sure you want to remove the download rule named '%1'? Quer mesmo remover a regra de download de nome %1? - + Are you sure you want to remove the selected download rules? Quer mesmo remover as regras de download selecionadas? - + Rule deletion confirmation Confirmação de exclusão de regra - + Destination directory Diretório de destino - + Invalid action Ação inválida - + The list is empty, there is nothing to export. A lista está vazia, não há nada para exportar. - + Where would you like to save the list? Onde gostaria de salvar a lista? - + Rules list (*.rssrules) Lista de regras (*.rssrules) - + I/O Error Erro de I/O - + Failed to create the destination file Falha ao criar o arquivo de destino - + Please point to the RSS download rules file Por favor aponte para o arquivo de regras de download RSS - + Rules list Lista de regras - + Import Error Erro de importação - + Failed to import the selected rules file Falha ao importar o arquivo de regras selecionado - + Add new rule... Adicionar nova regra... - + Delete rule Deletar regra - + Rename rule... Renomear regra... - + Delete selected rules Deletar regras selecionadas - + Rule renaming Renomeando regra - + Please type the new rule name Por favor digite o novo nome da regra - + Regex mode: use Perl-like regular expressions Modo Regex: Usar expressões regulares estilo Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Modo coringa: você pode usar<ul><li>? para atingir um caracter</li><li>* para atingir zero ou mais de vários caracteres</li><li>Espaços vazios contam como operador AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Modo coringa: você pode usar<ul><li>? para atingir um caracter</li><li>* para atingir zero ou mais de vários caracteres</li><li>| é usado como como operador OR</li></ul> @@ -952,65 +948,57 @@ '%1' alcançou a proporção máxima definida. Pausando... - Error: Could not create torrent export directory: '%1' - Erro: Não foi possível criar o diretório para exportar o torrent: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Erro: Não foi possível exportar o torrent '%1'. Talvez ele ainda não contenha metadados. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Estado de rede do sistema alterado para %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuração de rede de %1 foi alterada, atualizando ligação da sessão - + Unable to decode '%1' torrent file. Impossível decodificar o arquivo torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Download recursivo do arquivo '%1' embutido no torrent '%2' - + Couldn't save '%1.torrent' Não foi possível salvar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. pois %1 está desabilitado. - + because %1 is disabled. this peer was blocked because TCP is disabled. pois %1 está desabilitado. - + URL seed lookup failed for URL: '%1', message: %2 Falha na procura de seeds falhou para url: '%1', mensagem: %2 @@ -1027,178 +1015,164 @@ '%1' foi removido da lista de transferência. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Baixando '%1'. Por favor, aguarde. - Torrent Export: torrent is invalid, skipping... - Exportação de torrent: o torrent é inválido, pulando... - - - + DHT support [ON] Suporte a DHT [LIGADO] - + DHT support [OFF]. Reason: %1 Suporte a DHT [DESLIGADO]. Motivo: %1 - + DHT support [OFF] Suporte a DHT [DESLIGADO] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tentando escutar em qualquer porta de interface: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - O qBittorrent falhou ao escutar em qualquer porta da interface: %1. Razão: %2 - - - + The network interface defined is invalid: %1 A interface de rede definida é inválida: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 O qBittorrent está tentando escutar na porta da interface %1: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on O qBittorrent não encontrou um endereço local %1 no qual escutar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - O qBittorrent falhou ao escutar em qualquer porta da interface: %1. Razão: %2. {1.?} + O qBittorrent não conseguiu escutar em qualquer porta de interface: % 1. Motivo: %2. - + Tracker '%1' was added to torrent '%2' O tracker '%1' foi adicionado ao torrent '%2' - + Tracker '%1' was deleted from torrent '%2' O tracker '%1' foi excluído do torrent '%2' - + URL seed '%1' was added to torrent '%2' O seed da URL '%1' foi adicionado ao torrent '%2' - + URL seed '%1' was removed from torrent '%2' O seed da URL '%1' foi removido do torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Não foi possível resumir o torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro de IP fornecido analisado com sucesso: %1 regras foram aplicadas. - + Error: Failed to parse the provided IP filter. Erro: Falha ao analisar o filtro de IP fornecido. - + Couldn't add torrent. Reason: %1 Não foi possível adicionar o torrent. Motivo: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' resumido. (resumir rápido) - + '%1' added to download list. 'torrent name' was added to download list. '%1' adicionado à lista de downloads. - + An I/O error occurred, '%1' paused. %2 Ocorreu um erro de E/S, '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Falha no mapeamento de porta, mensagem: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapeamento de porta bem sucedido, mensagem: %1 - + due to IP filter. this peer was blocked due to ip filter. devido ao filtro de IP. - + due to port filter. this peer was blocked due to port filter. devido ao filtro de porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. devido às restrições de modo misto i2p. - + because it has a low port. this peer was blocked because it has a low port. pois ele tem uma porta baixa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 O qBittorrent está escutando com sucesso na porta da interface %1: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - O qBittorrent falhou ao escutar na porta da interface %1: %2/%3. Motivo: %4. {1 ?} {2/%3.?} + O qBittorrent falhou ao escutar na interface %1 porta: %2/%3. Motivo: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - O qBittorrent falhou ao escutar na porta da interface %1: %2/%3. Motivo: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP externo: %1 @@ -1212,12 +1186,12 @@ Não foi possível mover torrent: '% 1'. Motivo:% 2 - + File sizes mismatch for torrent '%1', pausing it. O tamanho do arquivo para o torrent '%1' está incorreto. Pausando. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Resumo rápido rejeitado para o torrent '%1'. Motivo: %2. Verificando novamente... @@ -1242,7 +1216,7 @@ Valor - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Chaves comuns para cookies são: '%1', '%2'. @@ -1310,12 +1284,12 @@ Você deve buscar essa informação nas preferências do seu navegador. FeedListWidget - + RSS feeds RSS feeds - + Unread Não lido @@ -1412,10 +1386,6 @@ Você deve buscar essa informação nas preferências do seu navegador.Only one link per line Somente um link por linha - - Download local torrent - Baixar torrent local - Download @@ -1589,20 +1559,30 @@ Você deve buscar essa informação nas preferências do seu navegador. Save files to location: - Salvar arquivos na pasta: + Salvar arquivos no diretório: Label: - Etiqueta: + Etiqueta: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Baixado @@ -1615,7 +1595,7 @@ Você deve buscar essa informação nas preferências do seu navegador. Upload local torrent - + Fazer upload de torrent local @@ -1973,10 +1953,6 @@ Você deve buscar essa informação nas preferências do seu navegador.&About &Sobre - - Exit - Sair - &Pause @@ -2007,22 +1983,6 @@ Você deve buscar essa informação nas preferências do seu navegador.E&xit &Sair - - Options - Opções - - - Resume - Retomar - - - Pause - Pausar - - - Delete - Remover - Open URL @@ -2040,19 +2000,15 @@ Você deve buscar essa informação nas preferências do seu navegador. - + Show Mostrar - + Check for program updates Verificar atualizações do programa - - Lock qBittorrent - Travar o qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Você deve buscar essa informação nas preferências do seu navegador. - + Execution Log Execução Log - + Clear the password Limpar a senha - + Filter torrent list... Filtrar lista de torrents... - + &Set Password Definir &Senha - + &Clear Password &Limpar Senha - + Transfers Transferências - + Torrent file association Associação de arquivo torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent não é sua aplicação padrão para arquivos torrent e links magnéticos. Gostaria de associar o qBittorrent para arquivos torrent e links magnéticos? - + Icons Only Apenas ícones - + Text Only Apenas texto - + Text Alongside Icons Texto ao lado dos ícones - + Text Under Icons Texto embaixo dos ícones - + Follow System Style Seguir estilo do sistema - - - + + + UI lock password Senha de travamento da UI - - - + + + Please type the UI lock password: Por favor digite sua senha UI: - + The password should contain at least 3 characters A senha deve conter ao menos 3 caracteres - + Password update Atualiza senha - + The UI lock password has been successfully updated A senha de travamento da UI foi atualizada com sucesso - + Are you sure you want to clear the password? Tem certeza que você deseja limpar a senha? - + Search Busca - + Transfers (%1) Transferências (%1) - + Error Erro - + Failed to add torrent: %1 Falha ao adicionar o torrent: %1 - + Download completion Completação de download - + I/O Error i.e: Input/Output Error Erro de I/O - + Recursive download confirmation Confirmação de download recursivo - + Yes Sim - + No Não - + Never Nunca - + Global Upload Speed Limit Velocidade limite global de upload - + Global Download Speed Limit Velocidade limite global de download - + &No &Não - + &Yes &Sim - + &Always Yes Se&mpre Sim - + Python found in %1 Python encontrado em %1 - + Old Python Interpreter Interpretador antigo do Python - + qBittorrent Update Available Atualização disponível para o qBittorent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Você está usando a versão mais recente. do qBittorrent - + Undetermined Python version Versão indeterminada do Python - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' terminou de ser baixado. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Gostaria de associar o qBittorrent para arquivos torrent e links magnéticos? - + The torrent '%1' contains torrent files, do you want to proceed with their download? O torrent '%1' contém arquivos torrent. Deseja prosseguir com este download? - + Couldn't download file at URL '%1', reason: %2. Não foi possível baixar arquivo na URL '%1', motivo: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Sua versão %1 do Python está desatualizada. Por favor, atualize para a última versão para a pesquisa funcionar. Requisito mínimo: 2.7.0 / 3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Não foi possível determinar a sua versão do Python (%1). Pesquisa desativada. - - + + Missing Python Interpreter Faltando interpretador Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? O Python é requerido para você poder usar a busca, mas ele parece não estar instalado. Gostaria de instalar agora? - + Python is required to use the search engine but it does not seem to be installed. O Python é requerido para usar a pesquisa, mas parece não estar instalado. - A new version is available. Update to version %1? - Uma nova versão está disponível. + Uma nova versão está disponível. Atualizar para a versão %1? - + No updates available. You are already using the latest version. Nenhuma atualização disponível. Você já está usando a versão mais recente. - + &Check for Updates &Verificar Atualizações - + Checking for Updates... Verificando Atualizações... - + Already checking for program updates in the background Busca por atualizações do programa já está em execução em segundo plano - + Python found in '%1' Python encontrado em '%1' - + Download error Erro no download - + Python setup could not be downloaded, reason: %1. Please install it manually. A instalação do Python não pôde ser baixada, razão: %1. Por favor instale manualmente. - - + + Invalid password Senha inválida - - + + RSS (%1) RSS (%1) - + URL download error Erro no download da URL. - + The password is invalid A senha está inválida - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Velocidade de download: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Velocidade de upload: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1, U: %2] qBittorrent %3 - + Hide Esconder - + Exiting qBittorrent Saindo do qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Muitos arquivos estão atualmente sendo transferidos. Quer mesmo sair do qBittorrent? - + Open Torrent Files Abrir Arquivos Torrent - + Torrent Files Arquivos Torrent - + Options were saved successfully. Opções foram salvas com sucesso. @@ -2443,17 +2404,17 @@ Quer mesmo sair do qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Seu DNS dinâmico foi atualizado com sucesso. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Erro de DNS dinâmico: O serviço está temporariamente inacessível, nova tentativa em 30 minutos. - + Dynamic DNS error: hostname supplied does not exist under specified account. Erro de DNS dinâmico: o hostname fornecido não existe na conta especificada. @@ -2463,32 +2424,32 @@ Quer mesmo sair do qBittorrent? Erro de DNS dinâmico: Usuário/Senha inválido. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: O qBittorrent está na lista negra deste serviço. Por favor, envie este bug para http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Erro de DNS dinâmico: %1 foi retornado pelo serviço. Por favor, envie este bug para http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Erro de DNS dinâmico: Seu usuário foi bloqueado por motivo de abuso. - + Dynamic DNS error: supplied domain name is invalid. Erro de DNS dinâmico: O domínio é inválido. - + Dynamic DNS error: supplied username is too short. Erro de DNS dinâmico: Usuário informado é muito pequeno. - + Dynamic DNS error: supplied password is too short. Erro de DNS dinâmico: A senha é muito pequena. @@ -2515,154 +2476,161 @@ Quer mesmo sair do qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Banco de dados GeoIP carregado. Tipo: %1. Data de criação: %2. - + Couldn't load GeoIP database. Reason: %1 Não foi possível carregar o banco de dados GeoIP. Motivo: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/A - Asia/Pacific Region - Região Ásia/Pacífico + Região Ásia/Pacífico + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emirados Árabes Unidos - + Afghanistan Afeganistão - + Antigua and Barbuda Antígua e Barbuda - + Anguilla Anguilla - + Albania Albânia - + Armenia Armênia - Netherlands Antilles - Antilhas Holandesas + Antilhas Holandesas - + Angola Angola - + Antarctica Antártica - + Argentina Argentina - + American Samoa Samoa Americana - + Austria Áustria - + Australia Austrália - + Aruba Aruba - + Azerbaijan Azerbaidjão - + Bosnia and Herzegovina Bósnia-Herzegóvina - + Barbados Barbados - + Bangladesh Bangladesh - + Belgium Bélgica - + Burkina Faso Burkina Fasso - + Bulgaria Bulgária - + Bahrain Barein - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Quer mesmo sair do qBittorrent? Brunei - Bolivia - Bolívia + Bolívia - + Brazil Brasil - + Bahamas Bahamas - + Bhutan Butão - + Bouvet Island Ilha Bouvet - + Botswana Botsuana - + Belarus Belarus - + Belize Belize - + Canada Canadá - + Cocos (Keeling) Islands Ilhas Cocos (Keeling) - + Congo, The Democratic Republic of the Congo, República Democrática do - + Central African Republic República Centro-Africana - + Congo Congo - + Switzerland Suíça - Cote D'Ivoire - Costa do Marfim + Costa do Marfim - + Cook Islands Ilhas Cook - + Chile Chile - + Cameroon Camarões - + China China - + Colombia Colômbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Cabo Verde - + + Curacao + + + + Christmas Island Ilha Christmas - + Cyprus Chipre - + Czech Republic República Tcheca - + Germany Alemanha - + Djibouti Djibuti - + Denmark Dinamarca - + Dominica Dominica - + Dominican Republic República Dominicana - + Algeria Algéria - + Ecuador Equador - + Estonia Estônia - + Egypt Egito - + Western Sahara Saara Ocidental - + Eritrea Eritréia - + Spain Espanha - + Ethiopia Etiópia - + Finland Finlândia - + Fiji Fiji - + Falkland Islands (Malvinas) Ilhas Falkland (Malvinas) - + Micronesia, Federated States of Micronésia, Estados Federados da - + Faroe Islands Ilhas Feroe - + France França - France, Metropolitan - França Metropolitana + França Metropolitana - + Gabon Gabão - + United Kingdom Reino Unido - + Grenada Granada - + Georgia Geórgia - + French Guiana Guiana Francesa - + Ghana Gana - + Gibraltar Gibraltar - + Greenland Groenlândia - + Gambia Gâmbia - + Guinea Guiné - + Guadeloupe Guadalupe - + Equatorial Guinea Guiné-Equatorial - + Greece Grécia - + South Georgia and the South Sandwich Islands Ilhas Geórgia do Sul e Sandwich do Sul - + Guatemala Guatemala - + Guam Guão - + Guinea-Bissau Guiné-Bissau - + Guyana Guiana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Ilha Heard e Ilhas McDonald - + Honduras Honduras - + Croatia Croácia - + Haiti Haiti - + Hungary Hungria - + Indonesia Indonésia - + Ireland Irlanda - + Israel Israel - + India Índia - + British Indian Ocean Territory Território Britânico do Oceano Índico - + Iraq Iraque - + Iran, Islamic Republic of Irã, República Islâmica do - + Iceland Islândia - + Italy Itália - + Jamaica Jamaica - + Jordan Jordânia - + Japan Japão - + Kenya Quênia - + Kyrgyzstan Quirguistão - + Cambodia Camboja - + Kiribati Kiribati - + Comoros Comores - + Saint Kitts and Nevis São Cristóvão e Nevis - + Korea, Democratic People's Republic of Coréia do Norte - + Korea, Republic of Coréia do Sul - + Kuwait Kuweit - + Cayman Islands Ilhas Cayman - + Kazakhstan Cazaquistão - + Lao People's Democratic Republic Laos - + Lebanon Líbano - + Saint Lucia Santa Lúcia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Libéria - + Lesotho Lesoto - + Lithuania Lituânia - + Luxembourg Luxemburgo - + Latvia Letônia - Libyan Arab Jamahiriya - Líbia + Líbia - + Morocco Marrocos - + Monaco Mônaco - + Moldova, Republic of Moldávia, República da - + Madagascar Madagáscar - + Marshall Islands Ilhas Marshall - Macedonia - Macedônia + Macedônia - + Mali Mali - + Myanmar Mianmar - + Mongolia Mongólia - Macau - Macau + Macau - + Northern Mariana Islands Ilhas Marianas Setentrionais - + Martinique Martinica - + Mauritania Mauritânia - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurício - + Maldives Maldivas - + Malawi Malauí - + Mexico México - + Malaysia Malásia - + Mozambique Moçambique - + Namibia Namíbia - + New Caledonia Nova Caledônia - + Niger Níger - + Norfolk Island Ilha Norfolk - + Nigeria Nigéria - + Nicaragua Nicarágua - + Netherlands Holanda - + Norway Noruega - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Nova Zelândia - + Oman Omã - + Panama Panamá - + Peru Peru - + French Polynesia Polinésia Francesa - + Papua New Guinea Papua Nova Guiné - + Philippines Filipinas - + Pakistan Paquistão - + Poland Polônia - + Saint Pierre and Miquelon São Pedro e Miquelão - Pitcairn Islands - Ilhas Pitcairn + Ilhas Pitcairn - + Puerto Rico Porto Rico - Palestinian Territory - Palestina, Estado da + Palestina, Estado da - + Portugal Portugal - + Palau Palau - + Paraguay Paraguai - + Qatar Catar - + Reunion Ilha Reunião - + Romania Romênia - + Russian Federation Federação Russa - + Rwanda Ruanda - + Saudi Arabia Arábia Saudita - + Solomon Islands Ilhas Salomão - + Seychelles Seicheles - + Sudan Sudão - + Sweden Suécia - + Singapore Singapura - Saint Helena - Ilha Santa Helena + Ilha Santa Helena - + Slovenia Eslovênia - + Svalbard and Jan Mayen Svalbard e Jan Mayen - + Slovakia Eslováquia - + Sierra Leone Serra Leoa - + San Marino San Marino - + Senegal Senegal - + Somalia Somália - + Suriname Suriname - + Sao Tome and Principe São Tomé e Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Síria, República Árabe da - + Swaziland Suazilândia - + Turks and Caicos Islands Ilhas Turks e Caicos - + Chad Chade - + French Southern Territories Terras Austrais e Antárticas Francesas - + Togo Togo - + Thailand Tailândia - + Tajikistan Tadjiquistão - + Tokelau Toquelau - + Turkmenistan Turcomenistão - + Tunisia Tunísia - + Tonga Tonga - + Timor-Leste Timor Leste - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turquia - + Trinidad and Tobago Trinidad e Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzânia, República Unida da - + Ukraine Ucrânia - + Uganda Uganda - + United States Minor Outlying Islands Ilhas Menores Distantes dos Estados Unidos - + United States Estados Unidos - + Uruguay Uruguai - + Uzbekistan Uzbequistão - + Holy See (Vatican City State) Santa Sé (Cidade-Estado do Vaticano) - + Saint Vincent and the Grenadines São Vicente e Granadinas - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Ilhas Virgens Britânicas - + Virgin Islands, U.S. Ilhas Virgens Americanas - Vietnam - Vietnã + Vietnã - + Vanuatu Vanuatu - + Wallis and Futuna Wallis e Futuna - + Samoa Samoa - + Yemen Iêmen - + Mayotte Mayotte - + Serbia Sérvia - + South Africa África do Sul - + Zambia Zâmbia - + Montenegro Montenegro - + Zimbabwe Zimbábue - Anonymous Proxy - Proxy anônimo + Proxy anônimo - Satellite Provider - Provedor de satélite + Provedor de satélite - Other - Outro + Outro - + Aland Islands Ilhas Aland - + Guernsey Guernsey - + Isle of Man Ilha de Man - + Jersey Jersey - + Saint Barthelemy São Bartolomeu, Coletividade de - Saint Martin - Ilha de São Martinho + Ilha de São Martinho - + Could not uncompress GeoIP database file. Não foi possível descompactar o banco de dados GeoIP. - + Couldn't save downloaded GeoIP database file. Não foi possível salvar o banco de dados GeoIP baixado. - + Successfully updated GeoIP database. Banco de dados GeoIP atualizado com sucesso. - + Couldn't download GeoIP database file. Reason: %1 Não foi possível baixar o banco de dados GeoIP. Motivo: %1 @@ -3838,72 +3856,72 @@ Quer mesmo sair do qBittorrent? interested(local) and choked(peer) - interested(local) e choked(peer) + interessados​​(local) e paralisar(peer) interested(local) and unchoked(peer) - interested(local) e unchoked(peer) + interessados(local) e paralisados(peer) interested(peer) and choked(local) - interested(peer) e choked(local) + interessados(peer) e paralisados(local) interested(peer) and unchoked(local) - interested(peer) e unchoked(local) + nteressado (peer) e unchoked (local) optimistic unchoke - optimistic unchoke + unchoke otimista peer snubbed - peer snubbed + peer esnobado incoming connection - conexão entrante + conexão de entrada not interested(local) and unchoked(peer) - not interested(local) e unchoked(peer) + não está interessado (local) e unchoked (peer) not interested(peer) and unchoked(local) - not interested(peer) e unchoked(local) + não está interessado (peer) e unchoked (local) peer from PEX - peer via PEX + peer de PEX peer from DHT - peer via DHT + peer de DHT encrypted traffic - tráfego criptografado + tráfego criptografado encrypted handshake - handshake criptografado + handshake criptografado peer from LSD - peer via LSD + peer de LSD @@ -3971,123 +3989,73 @@ Quer mesmo sair do qBittorrent? Relevância - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Adicionar um novo peer... - + Copy selected Copiar selecionado - - + + Ban peer permanently Banir fonte permanentemente - + Manually adding peer '%1'... Adicionando manualmente peer %1... - + The peer '%1' could not be added to this torrent. O peer '%1' não pôde ser adicionado a este torrent. - + Manually banning peer '%1'... Banindo manualmente peer '%1'... - - + + Peer addition Adição de fonte - + Some peers could not be added. Check the Log for details. Alguns peers não puderam ser adicionados. Veja o Log para detalhes. - + The peers were added to this torrent. Peers adicionados a este torrent. - + Are you sure you want to ban permanently the selected peers? Deseja mesmo banir permanentemente a fonte selecionada? - + &Yes &Sim - + &No &Não - - interested(local) and choked(peer) - interested(local) e choked(peer) - - - interested(local) and unchoked(peer) - interested(local) e unchoked(peer) - - - interested(peer) and choked(local) - interested(peer) e choked(local) - - - interested(peer) and unchoked(local) - interested(peer) e unchoked(local) - - - optimistic unchoke - optimistic unchoke - - - peer snubbed - peer snubbed - - - incoming connection - conexão entrante - - - not interested(local) and unchoked(peer) - not interested(local) e unchoked(peer) - - - not interested(peer) and unchoked(local) - not interested(peer) e unchoked(local) - - - peer from PEX - peer via PEX - - - peer from DHT - peer via DHT - - - encrypted traffic - tráfego criptografado - - - encrypted handshake - handshake criptografado - - - peer from LSD - peer via LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Quer mesmo sair do qBittorrent? Azul: Pedaços disponíveis + + PluginSelectDlg + + + Search plugins + Plugins de busca + + + + Installed search plugins: + + + + + Name + Nome + + + + Version + Versão + + + + Url + Url + + + + + Enabled + Habilitado + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Você pode pegar novos mecanismos de busca aqui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instalar um novo + + + + Check for updates + Verificar atualizações + + + + Close + Fechar + + + + Uninstall + Desinstalar + + + + + + Yes + Sim + + + + + + + No + Não + + + + Uninstall warning + Aviso de desinstalação + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Alguns plugins não puderam ser desinstalados pois estão incluídos no qBittorrent. Somente aqueles que você instalou podem ser desinstalados. +Estes plugins foram desabilitados. + + + + Uninstall success + Desinstalado com sucesso + + + + All selected plugins were uninstalled successfully + Plugins selecionados desinstalados com sucesso + + + + + New search engine plugin URL + Url de novo plugin de busca + + + + + URL: + Url: + + + + Invalid link + Link inválido + + + + The link doesn't seem to point to a search engine plugin. + Esse link não parece estar apontando para um plugin de motor de busca. + + + + Select search plugins + Selecionar plugins de busca + + + + qBittorrent search plugin + Plugins de busca qBittorrent + + + + + + Search plugin update + Atualização de plugin de busca + + + + All your plugins are already up to date. + Todos os plugins já estão atuais. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalação de plugin de busca + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Fonte do plugin + + + + Search plugin source: + Busca de plugin de busca: + + + + Local file + Arquivo local + + + + Web link + Link da net + + Preferences @@ -4181,89 +4346,89 @@ Quer mesmo sair do qBittorrent? Adicionar extensão .!qB para arquivos incompletos - + Copy .torrent files to: Copiar arquivos .torrent para: - + Connections Limits Limites de Conexão - + Proxy Server Servidor Proxy - + Global Rate Limits Limite Global - + Apply rate limit to transport overhead Aplicar taxa limite para o transporte fora da cabeça - + Schedule the use of alternative rate limits Agende para usar taxas limite alternativas - + From: from (time1 to time2) De: - + To: time1 to time2 Até: - + Enable Local Peer Discovery to find more peers Habilitar Local Peer Discovery para encontrar mais peers - + Encryption mode: Modo de encriptação: - + Prefer encryption Encriptação escolhida - + Require encryption Encriptação requerida - + Disable encryption Desabilitar encriptação - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mais informações</a>) - + Maximum active downloads: Máximo de downloads ativos: - + Maximum active uploads: Máximo de uploads ativos: - + Maximum active torrents: Máximo de torrents ativos: @@ -4288,82 +4453,82 @@ Quer mesmo sair do qBittorrent? Mostrar conteúdo torrent e mais opções - + Run external program on torrent completion Rodar um programa externo quando completar o torrent - + Port used for incoming connections: Porta usada para conexões de entrada: - + Random Aleatório - + Global maximum number of connections: Número máximo global de conexões: - + Maximum number of connections per torrent: Número máximo de conexões por torrent: - + Maximum number of upload slots per torrent: Número máximo de slots de upload por torrent: - - + + Upload: Upload: - - + + Download: Download: - - - - + + + + KiB/s KiB/s - + Remove folder Remover pasta - + Every day Todo dia - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Trocar peers com clientes compatíveis com qBittorrent (µTorrent, Vuze, ...) - + Host: Servidor: - + SOCKS4 SOCKS4 - + Type: Tipo: @@ -4536,262 +4701,262 @@ Quer mesmo sair do qBittorrent? Adicionar automaticamente torrents de: - + Add folder... Adicionar pasta... - + Copy .torrent files for finished downloads to: Copiar arquivos .torrent finalizados para: - + Email notification upon download completion Notificação por email quando completar o download - + Destination email: Email de destino: - + SMTP server: Servidor SMTP: - + This server requires a secure connection (SSL) Este servidor espera por uma conexão segura (SSL) - + Listening Port Escutando Porta - + Use UPnP / NAT-PMP port forwarding from my router User UPnP / NAT-PMP redirecionamento de porta do meu roteador - + Use different port on each startup Usar portas diferentes no mesmo programa rodando - + Global maximum number of upload slots: Número global de slots de upload: - + Otherwise, the proxy server is only used for tracker connections Então, o servidor proxy é somente usado para conexões de tracker - + Use proxy for peer connections Usar proxy para conexões de peer - + Disable connections not supported by proxies Desabilitar conexões não é suportado por proxies - + Use proxy only for torrents Usar proxy somente para torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Fontes RSS, mecanismo de busca, atualizações de software ou qualquer outra coisa que não sejam transferências de torrent e operações relacionadas (tais como intercâmbio de peer) usarão conexão direta - + Info: The password is saved unencrypted Info: A senha é guardada sem criptografia - + IP Filtering Filtro de IP - + Reload the filter Recarregar o filtro - + Apply to trackers Aplicar aos trackers - + Apply rate limit to peers on LAN Aplicar limite de proporção a peers na LAN - + When: Quando: - + Weekdays Dias de semana - + Weekends Finais de semana - + Rate Limits Settings Configurações de Limites de Taxa - + Enable µTP protocol Ativar protocolo µTP - + Apply rate limit to µTP protocol Aplicar limite de taxa para protocolo µTP - + Privacy Privacidade - + Enable DHT (decentralized network) to find more peers Habilitar DHT (rede decentralizada) para encontrar mais peers - + Enable Peer Exchange (PeX) to find more peers Habilitar Peer Exchange (PeX) para encontrar mais peers - + Look for peers on your local network Buscar por peers na rede local - + Enable when using a proxy or a VPN connection Habilite quando estiver usando um proxy ou uma conexão VPN - + Enable anonymous mode Habilitar modo anônimo - + Do not count slow torrents in these limits Não contar torrents lentos nesses limites - + Seed torrents until their ratio reaches Compartilhar torrents até que sua taxa de compartilhamento atinja - + then então - + Pause them Pause - + Remove them Remove - + Automatically add these trackers to new downloads: Automaticamente adicionar estes trackers para novos downloads: - + Use UPnP / NAT-PMP to forward the port from my router Use UPnP / NAT-PMP para redirecionar a porta do meu roteador - + Use HTTPS instead of HTTP Usar HTTPS ao invez de HTTP - + Import SSL Certificate Importar certificado SSL - + Import SSL Key Importar chave SSL - + Certificate: Certificado: - + Alternative Rate Limits Limites de Taxa Alternativos - + Key: Chave: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informações sobre certificados</a> - + Bypass authentication for localhost Desvio de autenticação para localhost - + Update my dynamic domain name Atualize meu nome de domínio dinâmico - + Service: Serviço: - + Register Registro - + Domain name: Nome de domínio: - + (None) (Nenhum) @@ -4801,61 +4966,61 @@ Quer mesmo sair do qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Porta: - - - + + + Authentication Autenticação - - - - + + + + Username: Nome de usuário: - - - - + + + + Password: Senha: - + Torrent Queueing Torrents na espera - + Share Ratio Limiting Taxa limite de compartilhamento - + Enable Web User Interface (Remote control) Habilitar interface de usuário de rede (Controle Remoto) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Caminho do filtro (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Quer mesmo sair do qBittorrent? Comment: Comentário: - - Torrent content: - Conteúdo do torrent: - Select All @@ -5587,28 +5748,28 @@ Não serão exibidos mais avisos. Erro desconhecido - - + + Upgrade Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Você atualizou a partir de uma versão mais antiga que salvou as coisas de forma diferente. Você deve migrar para o novo sistema de salvamento. Você não será capaz de usar uma versão mais antiga que a v3.3.0 novamente. Continuar? [S/N] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Você atualizou a partir de uma versão mais antiga que salvou as coisas de forma diferente. Você deve migrar para o novo sistema de salvamento. Se você continuar, não será capaz de usar uma versão mais antiga que a v3.3.0 novamente. - + Couldn't migrate torrent with hash: %1 Não foi possível migrar o torrent com hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Não foi possível migrar o torrent. Nome inválido do arquivo de resumo rápido: %1 @@ -5719,17 +5880,17 @@ Não serão exibidos mais avisos. RSSImp - + Stream URL: Stream URL: - + Please type a RSS stream URL Por favor, digite uma URL de stream RSS - + This RSS feed is already in the list. Esta fonte RSS já está na lista. @@ -5749,75 +5910,92 @@ Não serão exibidos mais avisos. Nova pasta - + Deletion confirmation Confirmação de exclusão - + Are you sure you want to delete the selected RSS feeds? Tem certeza de que deseja excluir as fontes RSS selecionadas? - + Please choose a new name for this RSS feed Por favor escolha um novo nome para este feed RSS - + New feed name: Novo nome do feed: - + Name already in use Novo já está em uso - + This name is already used by another item, please choose another one. Este nome já está sendo usado por outro ítem, por favor escolha outro. - + Date: Data: - + Author: Autor: - + Unread Não lido - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - O download automático de '%1' da fonte RSS '%2' falhou pois ele não contém um torrent ou um link magnet... + O download automático de '%1' da fonte RSS '%2' falhou pois ele não contém um torrent ou um link magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Baixando automaticamente o torrent '%1' da fonte RSS '%2'... + Baixando automaticamente o torrent '%1' da fonte RSS '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + O download automático de '%1' da fonte RSS '%2' falhou pois ele não contém um torrent ou um link magnet... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Baixando automaticamente o torrent '%1' da fonte RSS '%2'... RssParser - Failed to open downloaded RSS file. - Falha ao abrir arquivo RSS baixado + Falha ao abrir arquivo RSS baixado - Invalid RSS feed at '%1'. - Fonte RSS inválida em '%1'. + Fonte RSS inválida em '%1'. @@ -5843,168 +6021,249 @@ Não serão exibidos mais avisos. Número máximo de artigos por feed: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Pesquisar... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Pasta visualizada - - Download here - Baixar aqui + + Save Files to + + + + Download here + Baixar aqui - Download path - Caminho para download + Caminho para download SearchCategories - All categories - Todas categorias + Todas categorias - Movies - Filmes + Filmes - TV shows - Shows de TV + Shows de TV - Music - Música + Música - Games - Jogos + Jogos - Anime - Anime + Anime - Software - Programa + Programa - Pictures - Imagens + Imagens - Books - Livros + Livros SearchEngine - - - Search - Busca + Busca - Please install Python to use the Search Engine. - Por favor, instale o Python para usar a pesquisa. + Por favor, instale o Python para usar a pesquisa. - Empty search pattern - Padrão de busca vazio + Padrão de busca vazio - Please type a search pattern first - Por favor digite um padrão de busca primeiro + Por favor digite um padrão de busca primeiro - Searching... - Buscando... + Buscando... - Stop - Parar + Parar - - Search Engine - Mecanismo de Busca + Mecanismo de Busca - - Search has finished - Busca finalizada + Busca finalizada - An error occurred during search... - Um erro ocorreu durante a busca... + Um erro ocorreu durante a busca... - - Search aborted - Busca abortada + Busca abortada - All enabled - Todos habilitados + Todos habilitados - All engines - Todos os mecanismos + Todos os mecanismos - - Multiple... - Múltiplo... + Múltiplo... - - Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: + Resultados <i>(%1)</i>: - Search returned no results - A busca não retornou resultados + A busca não retornou resultados - Stopped - Parado + Parado + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Todas categorias + + + + Movies + Filmes + + + + TV shows + Shows de TV + + + + Music + Música + + + + Games + Jogos + + + + Anime + Anime + + + + Software + Programa + + + + Pictures + Imagens + + + + Books + Livros SearchListDelegate - - + + Unknown Desconhecido @@ -6012,35 +6271,160 @@ Não serão exibidos mais avisos. SearchTab - + Name i.e: file name Nome - + Size i.e: file size Tamanho - + Seeders i.e: Number of full sources Compartilhadores completos - + Leechers i.e: Number of partial sources Compartilhadores parciais - + Search engine Mecanismo de busca + + SearchWidget + + + + + + + Search + Busca + + + + Status: + Estado: + + + + + Stopped + Parado + + + + Download + + + + + Go to description page + Ir para a página de descrição + + + + Copy description page URL + Copiar URL da página de descrição + + + + Search plugins... + + + + + All enabled + Todos habilitados + + + + All plugins + + + + + + Multiple... + Múltiplo... + + + + + + Search Engine + Mecanismo de Busca + + + + Please install Python to use the Search Engine. + Por favor, instale o Python para usar a pesquisa. + + + + Empty search pattern + Padrão de busca vazio + + + + Please type a search pattern first + Por favor digite um padrão de busca primeiro + + + + + Results <i>(%1)</i>: + i.e: Search results + Resultados <i>(%1)</i>: + + + + Searching... + Buscando... + + + + Stop + Parar + + + + + Search has finished + Busca finalizada + + + + + Search aborted + Busca abortada + + + + Search returned no results + A busca não retornou resultados + + + + Search has failed + + + + + An error occurred during search... + Um erro ocorreu durante a busca... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ Não serão exibidos mais avisos. TorrentContentModel - + Name Nome - + Size Tamanho - + Progress Progresso - + + Download Priority + + + Priority - Prioridade + Prioridade @@ -6854,38 +7242,38 @@ Não serão exibidos mais avisos. Aviso (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Não foi possível decodificar o favicon da URL '%1'. Tente baixar o favicon no formato PNG. - + Couldn't decode favicon for URL '%1'. Não foi possível decodificar o favicon da URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Não foi possível baixar o favicon da URL '%1'. Motivo: %2 - + Resume torrents Retomar torrents - + Pause torrents Pausar torrents - + Delete torrents Apagar Torrents - - + + All (%1) this is for the tracker filter Todos (%1) @@ -7153,17 +7541,17 @@ Não serão exibidos mais avisos. TransferListFiltersWidget - + Status Estado - + Labels Etiquetas - + Trackers Trackers @@ -7702,206 +8090,155 @@ Não serão exibidos mais avisos. engineSelect - Search plugins - Plugins de busca + Plugins de busca - Installed search engines: - Plugins de busca instalados: + Plugins de busca instalados: - Name - Nome + Nome - Version - Versão + Versão - Url - Url + Url - - Enabled - Habilitado + Habilitado - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Você pode pegar novos mecanismos de busca aqui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Você pode pegar novos mecanismos de busca aqui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instalar um novo + Instalar um novo - Check for updates - Verificar atualizações + Verificar atualizações - Close - Fechar + Fechar - Uninstall - Desinstalar + Desinstalar engineSelectDlg - Uninstall warning - Aviso de desinstalação + Aviso de desinstalação - Uninstall success - Desinstalado com sucesso + Desinstalado com sucesso - Invalid plugin - Plugin inválido + Plugin inválido - The search engine plugin is invalid, please contact the author. - O plugin do mecanismo de busca é inválido; por favor, contate o autor. + O plugin do mecanismo de busca é inválido; por favor, contate o autor. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Uma versão mais recente do plugin de mecanismo de busca '%1' já está instalado. + Uma versão mais recente do plugin de mecanismo de busca '%1' já está instalado. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - O plugin de mecanismo de busca '%1' não pôde ser atualizado. Mantendo a versão antiga. + O plugin de mecanismo de busca '%1' não pôde ser atualizado. Mantendo a versão antiga. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - O plugin de mecanismo de busca '%1' não pôde ser instalado. + O plugin de mecanismo de busca '%1' não pôde ser instalado. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Plugin de mecanismo de busca '%1' atualizado com sucesso. + Plugin de mecanismo de busca '%1' atualizado com sucesso. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Plugin de mecanismo de busca '%1' instalado com sucesso. + Plugin de mecanismo de busca '%1' instalado com sucesso. - The link doesn't seem to point to a search engine plugin. - Esse link não parece estar apontando para um plugin de motor de busca. + Esse link não parece estar apontando para um plugin de motor de busca. - Select search plugins - Selecionar plugins de busca + Selecionar plugins de busca - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Desculpe, mas a instalação do plugin de mecanismo de busca '%1' falhou. + Desculpe, mas a instalação do plugin de mecanismo de busca '%1' falhou. - - - - - Search plugin install - Instalação de plugin de busca + Instalação de plugin de busca - - - Yes - Sim + Sim - - - - No - Não + Não - qBittorrent search plugin - Plugins de busca qBittorrent + Plugins de busca qBittorrent - - - - Search plugin update - Atualização de plugin de busca + Atualização de plugin de busca - - Sorry, update server is temporarily unavailable. - Desculpe, servidor de atualizações está temporariamente indisponível. + Desculpe, servidor de atualizações está temporariamente indisponível. - All your plugins are already up to date. - Todos os plugins já estão atuais. + Todos os plugins já estão atuais. - All selected plugins were uninstalled successfully - Plugins selecionados desinstalados com sucesso + Plugins selecionados desinstalados com sucesso - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alguns plugins não puderam ser desinstalados pois estão incluídos no qBittorrent. Somente aqueles que você instalou podem ser desinstalados. + Alguns plugins não puderam ser desinstalados pois estão incluídos no qBittorrent. Somente aqueles que você instalou podem ser desinstalados. Estes plugins foram desabilitados. - Invalid link - Link inválido + Link inválido - - New search engine plugin URL - Url de novo plugin de busca + Url de novo plugin de busca - - URL: - Url: + Url: @@ -8031,169 +8368,169 @@ Estes plugins foram desabilitados. options_imp - - + + Choose export directory Escolha diretório de exportação - - - - + + + + Choose a save directory Selecione um diretório de salvamento - + Add directory to scan Adicione diretório para escanear - + Supported parameters (case sensitive): Parâmetros suportados (diferencia maiúsculas de minúsculas) - + %N: Torrent name %N: Nome do torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: Caminho de conteúdo (mesmo do caminho raiz para torrent multi arquivo) - + %R: Root path (first torrent subdirectory path) %R: Caminho raiz (caminho da subpasta do primeiro torrent) - + %D: Save path %D: Caminho para salvar - + %C: Number of files %C: Número de arquivos - + %Z: Torrent size (bytes) %Z: Tamanho do torrent (bytes) - + %T: Current tracker %T: Tracker atual - + %I: Info hash %I: Informação de hash - + Folder is already being watched. Pasta já está sendo monitorada. - + Folder does not exist. Essa pasta não existe. - + Folder is not readable. A pasta não tem suporte a leitura. - + Failure Falhou - + Failed to add Scan Folder '%1': %2 Falhou para adicionar pasta a ser escaneada '%1': %2 - - + + Filters Filtros - - + + Choose an IP filter file Escolha um arquivo de filtro de IP - + SSL Certificate Certificado SSL - + SSL Key Chave SSL - + Parsing error Análise de Erro - + Failed to parse the provided IP filter Falha ao analisar o filtro de IP enviado - + Successfully refreshed Atualizado com sucesso - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro passado com sucesso para o ip informado: %1 regras aplicadas. - + Invalid key Chave inválida - + This is not a valid SSL key. Esta não é uma chave SSL válida. - + Invalid certificate Certificado inválido - + This is not a valid SSL certificate. Este não é um certificado SSL válido. - + The start time and the end time can't be the same. O tempo de início e de fim não podem ser iguais. - + Time Error Erro de tempo @@ -8201,24 +8538,20 @@ Estes plugins foram desabilitados. pluginSourceDlg - Plugin source - Fonte do plugin + Fonte do plugin - Search plugin source: - Busca de plugin de busca: + Busca de plugin de busca: - Local file - Arquivo local + Arquivo local - Web link - Link da net + Link da net @@ -8247,40 +8580,32 @@ Estes plugins foram desabilitados. search_engine - - Search - Busca + Busca - Status: - Estado: + Estado: - Stopped - Parado + Parado - Download - Download + Download - Go to description page - Ir para a página de descrição + Ir para a página de descrição - Copy description page URL - Copiar URL da página de descrição + Copiar URL da página de descrição - Search engines... - Máquinas de busca... + Máquinas de busca... diff --git a/src/lang/qbittorrent_ro.ts b/src/lang/qbittorrent_ro.ts index e1ed8395b..a022b69ae 100644 --- a/src/lang/qbittorrent_ro.ts +++ b/src/lang/qbittorrent_ro.ts @@ -97,7 +97,7 @@ Set as default save path - Configurează drept cale de salvare implicită + Stabilește drept cale de salvare implicită @@ -127,7 +127,7 @@ Set as default label - + Stabilește ca etichetă implicită @@ -175,172 +175,172 @@ Nu descărca - - + + I/O Error Eroare Intrare/Ieșire - + The torrent file does not exist. Fișierul torrent nu există. - + Invalid torrent Torrent nevalid - + Failed to load the torrent: %1 A eșuat încărcarea torrentului: %1 - - + + Already in download list Este deja în lista de descărcări - + Free disk space: %1 Spațiu liber pe disc: %1 - + Not Available This comment is unavailable Nu este disponibil - + Not Available This date is unavailable Nu este disponibil - + Not available Nu este disponibil - + Invalid magnet link Legătură magnet nevalidă - + Torrent is already in download list. Trackers were merged. - Torrentul este deja în lista de descărcări. Urmăritoarele au fost combinate. + Torrentul este deja în lista de descărcări. Tracker-ele au fost combinate. - - + + Cannot add torrent Nu se poate adăuga torrentul - + Cannot add this torrent. Perhaps it is already in adding state. Acest torrent nu poate fi adăugat. Probabil este deja într-o stare de adăugare. - + This magnet link was not recognized Această legătură magnet nu a fost recunoscută - + Magnet link is already in download list. Trackers were merged. - Legătura magnet este deja în lista de descărcări. Urmăritoarele au fost combinate. + Legătura magnet este deja în lista de descărcări. Tracker-ele au fost combinate. - + Cannot add this torrent. Perhaps it is already in adding. Acest torrent nu poate fi adăugat. Probabil este deja într-o stare de adăugare. - + Magnet link Legătură magnet - + Retrieving metadata... Se obțin metadatele... - + Not Available This size is unavailable. Nu este disponibil - - - + + + Choose save path Alegeți calea de salvare - + Rename the file Redenumire fișier - + New name: Nume nou: - - + + The file could not be renamed Fișierul nu a putut fi redenumit - + This file name contains forbidden characters, please choose a different one. Numele fișierului conține caractere interzise, alegeți un nume diferit. - - + + This name is already in use in this folder. Please use a different name. Acest nume este deja utilizat în dosar. Utilizați un nume diferit. - + The folder could not be renamed Dosarul nu a putut fi redenumit - + Rename... Redenumire... - + Priority Prioritate - + Invalid metadata Metadate nevalide - + Parsing metadata... Se analizează metadatele... - + Metadata retrieval complete Metadatele au fost obținute - + Download Error Eroare descărcare @@ -431,10 +431,6 @@ Resolve peer host names Rezolvă numele de gazdă ale partenerilor - - Maximum number of half-open connections [0: Disabled] - Număr maxim de conexiuni semi-deschise [0: Dezactivat] - Strict super seeding @@ -458,12 +454,12 @@ Exchange trackers with other peers - Schimbă urmăritoare cu alți parteneri + Schimbă trackere cu alți parteneri Always announce to all trackers - Anunță întotdeauna toate urmăritoarele + Anunță întotdeauna tuturor tracker-elor @@ -475,17 +471,17 @@ Save resume data interval How often the fastresume file is saved. - Salvare interval reluare date + Interval salvare date de reluare Maximum number of half-open connections [0: Unlimited] - + Număr maxim de conexiuni semi-deschise [0: Nelimitate] IP Address to report to trackers (requires restart) - Adresa IP de raportat urmăritoarelor (necesită repornire) + Adresa IP de raportat tracker-elor (necesită restartare) @@ -495,12 +491,12 @@ Enable embedded tracker - Activează urmăritorul încorporat + Activează tracker-ul încorporat Embedded tracker port - Port urmăritor încorporat + Port tracker încorporat @@ -661,205 +657,205 @@ &Exportare... - + Matches articles based on episode filter. Articole care se potrivesc bazate pe filtrul episod. - + Example: Exemple: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match va potrivi 2, 5, 8 din 15, 30 și episoadele ulterioare al sezonului unu - + Episode filter rules: Reguli filtru episod: - + Season number is a mandatory non-zero value Numărul sezonului este obligatoriu nu o valoare zero - + Episode number is a mandatory non-zero value Numărul episodului este obligatoriu nu o valoare zero - + Filter must end with semicolon Filtrul trebuie să se termine cu punct și virgulă - + Three range types for episodes are supported: Sunt suportate trei tipuri de gamă pentru episoade: - + Single number: <b>1x25;</b> matches episode 25 of season one Un singur număr: <b>1x25;</b> se potrivește cu episodul 25 al sezonului unu - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Gamă normală: <b>1x25-40;</b> se potrivește cu episoadele de la 25 la 40 ale sezonului unu - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Gamă infinită: <b>1x25-;</b> se potrivește cu episoadele 25 și următoarele pentru sezonul unu - + Last Match: %1 days ago Ultima potrivire: acum %1 zile - + Last Match: Unknown Ultima potrivire: necunoscută - + New rule name Nume regulă nouă - + Please type the name of the new download rule. Introduceți numele noii reguli de descărcare. - - + + Rule name conflict Conflict nume regulă - - + + A rule with this name already exists, please choose another name. O regulă cu acest nume există deja, alegeți alt nume. - + Are you sure you want to remove the download rule named '%1'? Sigur doriți să eliminați regula de descărcare numită „%1”? - + Are you sure you want to remove the selected download rules? Sigur doriți să eliminați regulile de descărcare selectate? - + Rule deletion confirmation Confirmare ștergere regulă - + Destination directory Director destinație - + Invalid action Acțiune nevalidă - + The list is empty, there is nothing to export. Lista este goală, nu este nimic de exportat. - + Where would you like to save the list? Unde doriți să salvați lista? - + Rules list (*.rssrules) Listă reguli (*.rssrules) - + I/O Error Eroare Intrare/Ieșire - + Failed to create the destination file A eșuat crearea fișierului destinație - + Please point to the RSS download rules file Indicați locația fișierului cu regulile de descărcare RSS - + Rules list Listă reguli - + Import Error Eroare importare - + Failed to import the selected rules file A eșuat importarea fișierului de reguli selectat - + Add new rule... Adăugare regulă nouă... - + Delete rule Șterge regula - + Rename rule... Redenumire regulă... - + Delete selected rules Șterge regulile selectate - + Rule renaming Redenumire regulă - + Please type the new rule name Introduceți noul nume al regulii - + Regex mode: use Perl-like regular expressions Mod regex: utilizează expresii regulare similare Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Mod metacaracter: puteți utiliza<ul><li>? pentru a potrivi oricare caracter</li><li>* pentru a potrivi zero sau mai multe caractere</li><li>Spațiile albe se socotesc ca și operatori ȘI</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Mod metacaracter: puteți utiliza<ul><li>? pentru a potrivi oricare caracter</li><li>* pentru a potrivi zero mai multe caractere</li><li>| este utilizat ca și operator SAU</li></ul> @@ -929,17 +925,17 @@ Embedded Tracker [ON] - Urmăritor încorporat [PORNIT] + Tracker încorporat [PORNIT] Failed to start the embedded tracker! - A eșuat pornirea urmăritorului încorporat! + A eșuat pornirea tracker-ului încorporat! Embedded Tracker [OFF] - Urmăritor încorporat [OPRIT] + Tracker încorporat [OPRIT] @@ -952,65 +948,57 @@ „%1” a atins raportul de partajare maxim pe care l-ați definit. Se suspendă... - Error: Could not create torrent export directory: '%1' - Eroare: Nu s-a putut crea dosarul de export torrent: „%1” - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Eroare: nu s-a putut exporta torrentul „%1”, poate nu are încă metadate. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Starea rețelei sistemului s-a schimbat la %1 - + ONLINE CONECTAT - + OFFLINE DECONECTAT - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Configurația rețelei %1 a fost schimbată, se reîmprospătează asocierea sesiunii - + Unable to decode '%1' torrent file. Nu s-a putut decoda fișierul torrent „%1”. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descărcare recursivă a fișierului „%1” încorporat în torrentul „%2” - + Couldn't save '%1.torrent' Nu s-a putut salva „%1.torrent” - + because %1 is disabled. this peer was blocked because uTP is disabled. fiindcă %1 este dezactivat. - + because %1 is disabled. this peer was blocked because TCP is disabled. fiindcă %1 este dezactivat. - + URL seed lookup failed for URL: '%1', message: %2 Rezolvarea adresei sursei a eșuat pentru URL-ul: „%1”, mesaj: %2 @@ -1027,178 +1015,164 @@ „%1” a fost eliminat din lista de transferuri. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Se descarcă „%1”, așteptați... - Torrent Export: torrent is invalid, skipping... - Exportare torrent: torrentul nu este valid, se omite... - - - + DHT support [ON] Suport DHT [PORNIT] - + DHT support [OFF]. Reason: %1 Suport DHT [OPRIT]. Motivul: %1 - + DHT support [OFF] Suport DHT [OPRIT] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent încearcă să asculte pe oricare port de interfață: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBitorrent nu a putut asculta pe niciun port al interfeței %1. Motiv: %2 - - - + The network interface defined is invalid: %1 Interfața de rețea definită nu este validă: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent încearcă să asculte pe interfața %1 portul: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nu a găsit o adresă locală %1 pe care să asculte - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBitorrent nu a putut asculta pe niciun port al interfeței %1. Motiv: %2. {1.?} + qBittorrent nu a putut asculta pe niciun port al interfeței: %1. Motivul: %2. - + Tracker '%1' was added to torrent '%2' - Urmăritorul „%1” a fost adăugat torrentului „%2” + Tracker-ul „%1” a fost adăugat torrentului „%2” - + Tracker '%1' was deleted from torrent '%2' - Urmăritorul „%1” a fost șters de la torrentul „%2” + Tracker-ul „%1” a fost șters de la torrentul „%2” - + URL seed '%1' was added to torrent '%2' Sursa URL „%1” a fost adăugată torrentului „%2” - + URL seed '%1' was removed from torrent '%2' Sursa URL „%1” a fost ștearsă de la torrentul „%2” - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nu se poate relua descărcarea torrent: „%1” - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number S-a analizat cu succes filtrul IP furnizat: %1 reguli au fost aplicate. - + Error: Failed to parse the provided IP filter. Eroare: Eșec în analiza filtrului IP furnizat. - + Couldn't add torrent. Reason: %1 Nu s-a putut adăuga torrentul. Motivul: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) „%1” reluat. (reluare rapidă) - + '%1' added to download list. 'torrent name' was added to download list. „%1” a fost adăugat în lista de descărcare. - + An I/O error occurred, '%1' paused. %2 A apărut o eroare de Intrare/Ieșire, „%1” suspendat. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Eșec în maparea portului, mesaj: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Maparea portului încheiată cu succes, mesaj: %1 - + due to IP filter. this peer was blocked due to ip filter. datorită filtrării IP. - + due to port filter. this peer was blocked due to port filter. datorită filtrării portului. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. datorită restricțiilor modului mixt i2p. - + because it has a low port. this peer was blocked because it has a low port. fiindcă are un port mic. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent ascultă cu succes pe interfața %1 portul: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent a eșuat în ascultarea interfeței %1 portul: %2/%3. Motivul: %4. {1 ?} {2/%3.?} + qBittorrent nu a putut asculta pe interfața %1 portul: %2/%3. Motivul: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent a eșuat în ascultarea interfeței %1 portul: %2/%3. Motivul: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 IP extern: %1 @@ -1212,12 +1186,12 @@ Nu s-a putut muta torrentul: „%1”. Motivul: %2 - + File sizes mismatch for torrent '%1', pausing it. Nepotrivire dimensiuni fișiere pentru torrentul „%1”, se suspendă. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Datele pentru reluare rapidă au fost respinse pentru torrentul „%1”. Motivul %2. Se verifică din nou... @@ -1242,7 +1216,7 @@ Valoare - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Chei uzuale pentru cookie sunt: „%1”, „%2”. @@ -1255,7 +1229,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - Sunteți sigur că doriți să ștergeți „%1” din lista de transferuri? + Sigur doriți să ștergeți „%1” din lista de transferuri? @@ -1310,12 +1284,12 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr FeedListWidget - + RSS feeds Fluxuri RSS - + Unread Necitite @@ -1412,10 +1386,6 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Only one link per line Doar unul pe linie - - Download local torrent - Descarcă torrent local - Download @@ -1544,7 +1514,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Upload Torrents - Încărcare torrente + Încarcă torrentele @@ -1589,20 +1559,30 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Save files to location: - Salvează fișierele în: + Salvează fișierele în locația: Label: - Etichetă: + Etichetă: Cookie: + Fișier cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Descărcat @@ -1615,7 +1595,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Upload local torrent - + Încărcare torrent local @@ -1716,7 +1696,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Remove unused labels - Înlătură etichetele neutilizate + Elimină etichetele neutilizate @@ -1825,22 +1805,22 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Set Upload Limit... - Definire limită de încărcare... + Stabilire limită de încărcare... Set Download Limit... - Definire limită de descărcare... + Stabilire limită de descărcare... Set Global Download Limit... - Definire limită de descărcare globală... + Stabilire limită de descărcare globală... Set Global Upload Limit... - Definire limită de încărcare globală... + Stabilire limită de încărcare globală... @@ -1866,7 +1846,7 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Alternative Speed Limits - Limite alternative de viteză + Limite de viteză alternative @@ -1973,10 +1953,6 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr &About &Despre - - Exit - Închide programul - &Pause @@ -2007,22 +1983,6 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr E&xit Î&nchide programul - - Options - Opțiuni - - - Resume - Reluare - - - Pause - Suspendă - - - Delete - Șterge - Open URL @@ -2040,19 +2000,15 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr - + Show Arată - + Check for program updates Verifică pentru actualizări program - - Lock qBittorrent - Blocare qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr - + Execution Log Jurnal de execuție - + Clear the password Eliminare parolă - + Filter torrent list... - Filtrare listă torrente... + Filtrare listă de torrente... - + &Set Password - &Alegere parolă + &Stabilire parolă - + &Clear Password &Elimină parola - + Transfers Transferuri - + Torrent file association Asociere fișiere torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent nu este aplicația implicită pentru deschiderea fișierelor torrent sau a legăturilor magnet. Doriți să asociați qBittorrent cu fișierele torrent și legăturile magnet? - + Icons Only Doar pictograme - + Text Only Doar Text - + Text Alongside Icons Text alături de pictograme - + Text Under Icons Text sub pictograme - + Follow System Style Utilizează stilul sistemului - - - + + + UI lock password Parolă de blocare interfață - - - + + + Please type the UI lock password: Introduceți parola pentru blocarea interfeței: - + The password should contain at least 3 characters Parola ar trebui să aibă cel puțin 3 caractere - + Password update Actualizare parolă - + The UI lock password has been successfully updated Parola pentru blocarea interfeței a fost actualizată cu succes - + Are you sure you want to clear the password? Sigur doriți să eliminați parola? - + Search Caută - + Transfers (%1) Transferuri (%1) - + Error Eroare - + Failed to add torrent: %1 Eșec la adăugarea torrentului: %1 - + Download completion Descărcare finalizată - + I/O Error i.e: Input/Output Error Eroare Intrare/Ieșire - + Recursive download confirmation Confirmare descărcare recursivă - + Yes Da - + No Nu - + Never Niciodată - + Global Upload Speed Limit Limită viteză de încărcare globală - + Global Download Speed Limit Limită viteză de descărare globală - + &No &Nu - + &Yes &Da - + &Always Yes &Întotdeauna Da - + Python found in %1 Python găsit în %1 - + Old Python Interpreter Interpretor Python vechi - + qBittorrent Update Available Este disponibilă o actualizare pentru qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Folosiți deja ultima versiune qBittorrent - + Undetermined Python version Versiune Python nedeterminată - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. „%1” s-a descărcat. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Doriți să asociați qBittorrent cu fișierele torrent și legăturile magnet?< Motivul: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torentul „%1” conține fișiere torrent, doriți să continuați descărcarea lor? - + Couldn't download file at URL '%1', reason: %2. Nu s-a putut descărca fișierul la URL-ul: „%1”, motivul: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Versiunea dumneavoastră de Python %1 este învechită. Actualizați la ultima versiune pentru ca motoarele de căutare să funcționeze. Cerințe minime: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Nu s-a putut determina versiunea Python (%1). Motoarele de căutare au fost dezactivate. - - + + Missing Python Interpreter Interpretorul Python lipsește - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Python este necesar pentru a putea folosi motorul de căutare, dar nu pare a fi instalat. Doriți să îl instalați acum? - + Python is required to use the search engine but it does not seem to be installed. Python este necesar pentru a putea folosi motorul de căutare, dar nu pare a fi instalat. - A new version is available. Update to version %1? - Este disponibilă o nouă versiune. -Actualizați la versiunea %1? + Este disponibilă o nouă versiune. +Doriți să treceți la versiunea %1? - + No updates available. You are already using the latest version. Nu sunt disponibile actualizări. Utilizați deja ultima versiune. - + &Check for Updates &Verifică dacă sunt actualizări - + Checking for Updates... Se verifică dacă sunt actualizări... - + Already checking for program updates in the background Se caută deja actualizări de program în fundal - + Python found in '%1' Python găsit în „%1” - + Download error Eroare la descărcare - + Python setup could not be downloaded, reason: %1. Please install it manually. Programul de instalare Python nu a putut fi descărcat, motivul: %1. Instalați-l manual. - - + + Invalid password Parolă nevalidă - - + + RSS (%1) RSS (%1) - + URL download error Eroarea la descărcarea URL - + The password is invalid Parola nu este validă - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Viteză descărcare: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Viteză încărcare: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [D: %1/s, Î: %2/s] qBittorrent %3 - + Hide Ascunde - + Exiting qBittorrent Închidere qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Unele fișiere sunt în curs de transfer. Sigur doriți să închideți qBittorrent? - + Open Torrent Files Deschide fișiere torrent - + Torrent Files Fișiere torrent - + Options were saved successfully. Opțiunile au fost salvate cu succes. @@ -2443,17 +2404,17 @@ Sigur doriți să închideți qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. DNS-ul dinamic a fost actualizat cu succes. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Eroare DNS dinamic: Serviciul este temporar indisponibil, va fi reâncercat în 30 de minute. - + Dynamic DNS error: hostname supplied does not exist under specified account. Eroare DNS dinamic: numele gazdă furnizat nu există în contul specificat. @@ -2463,32 +2424,32 @@ Sigur doriți să închideți qBittorrent? Eroare DNS dinamic: Parolă/nume utilizator nevalid(ă). - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Eroare DNS dinamic: qBittorrent a fost interzis de serviciu; raportați problema la http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - Eroare DNS dinamic: valoarea %1 a fost returnată de către serviciu, raportați problema la http://bugs.qbittorrent.org. + Eroare DNS dinamic: valoarea %1 a fost întoarsă de către serviciu, raportați problema la http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Eroare DNS dinamic: Numele dumneavoastră de utilizator a fost blocat datorită abuzului. - + Dynamic DNS error: supplied domain name is invalid. Eroare DNS dinamic: numele de domeniu furnizat este nevalid. - + Dynamic DNS error: supplied username is too short. Eroare DNS dinamic: numele de utilizator furnizat este prea scurt. - + Dynamic DNS error: supplied password is too short. Eroare DNS dinamic: parola furnizată este prea scurtă. @@ -2515,154 +2476,161 @@ Sigur doriți să închideți qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Baza de date GeoIP încărcată. Tipul: %1. Data construirii: %2. - + Couldn't load GeoIP database. Reason: %1 Nu s-a putut încărca baza de date GeoIP. Motivul: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Indisponibil - Asia/Pacific Region - Regiunea Asia-Pacific + Regiunea Asia-Pacific + + + Europe + Europa - Europe - Europa - - - Andorra Andorra - + United Arab Emirates Emiratele Arabe Unite - + Afghanistan Afganistan - + Antigua and Barbuda Antigua și Barbuda - + Anguilla Anguilla - + Albania Albania - + Armenia Armenia - Netherlands Antilles - Antilele Olandeze + Antilele Olandeze - + Angola Angola - + Antarctica Antarctica - + Argentina Argentina - + American Samoa Samoa Americană - + Austria Austria - + Australia Australia - + Aruba Aruba - + Azerbaijan Azerbaidjan - + Bosnia and Herzegovina Bosnia și Herțegovina - + Barbados Barbados - + Bangladesh Bangladeș - + Belgium Belgia - + Burkina Faso Burkina Faso - + Bulgaria Bulgaria - + Bahrain Bahrain - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ Sigur doriți să închideți qBittorrent? Brunei - Bolivia - Bolivia + Bolivia - + Brazil Brazilia - + Bahamas Bahamas - + Bhutan Bhutan - + Bouvet Island Insula Bouvet - + Botswana Botswana - + Belarus Belarus - + Belize Belize - + Canada Canada - + Cocos (Keeling) Islands Insulele Cocos (Keeling) - + Congo, The Democratic Republic of the Congo, Republica Democrată - + Central African Republic Republica Central Africană - + Congo Congo - + Switzerland Elveția - Cote D'Ivoire - Coasta de Fildeș + Coasta de Fildeș - + Cook Islands Insulele Cook - + Chile Chile - + Cameroon Camerun - + China China - + Colombia Columbia - + Costa Rica Costa Rica - + Cuba Cuba - + Cape Verde Insulele Capului Verde - + + Curacao + + + + Christmas Island Insula Crăciunului - + Cyprus Cipru - + Czech Republic Cehia - + Germany Germania - + Djibouti Djibouti - + Denmark Danemarca - + Dominica Dominica - + Dominican Republic Republica Dominicană - + Algeria Algeria - + Ecuador Ecuador - + Estonia Estonia - + Egypt Egipt - + Western Sahara Sahara de vest - + Eritrea Eritreea - + Spain Spania - + Ethiopia Etiopia - + Finland Finlanda - + Fiji Fiji - + Falkland Islands (Malvinas) Insulele Falkland (Malvine) - + Micronesia, Federated States of Statele Federale ale Micronesiei - + Faroe Islands Insulele Feroe - + France Franța - France, Metropolitan - Franța, Metropolitană + Franța, Metropolitană - + Gabon Gabon - + United Kingdom Regatul Unit - + Grenada Grenada - + Georgia Georgia - + French Guiana Guiana Franceză - + Ghana Ghana - + Gibraltar Gibraltar - + Greenland Groenlanda - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadalupe - + Equatorial Guinea Guineea Ecuatorială - + Greece Grecia - + South Georgia and the South Sandwich Islands Georgia de Sud și Insulele Sandwich de Sud - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guineea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Insula Heard și Insulele McDonald - + Honduras Honduras - + Croatia Croația - + Haiti Haiti - + Hungary Ungaria - + Indonesia Indonezia - + Ireland Irlanda - + Israel Israel - + India India - + British Indian Ocean Territory Teritoriul Oceanului Indian Britanic - + Iraq Irac - + Iran, Islamic Republic of Iran - + Iceland Islanda - + Italy Italia - + Jamaica Jamaica - + Jordan Iordania - + Japan Japonia - + Kenya Kenya - + Kyrgyzstan Kârgâzstan - + Cambodia Cambogia - + Kiribati Kiribati - + Comoros Insulele Comore - + Saint Kitts and Nevis Sfântul Cristofor și Nevis - + Korea, Democratic People's Republic of Republica Populară Democrată Coreeană - + Korea, Republic of Republica Coreea - + Kuwait Kuweit - + Cayman Islands Insulele Cayman - + Kazakhstan Kazahstan - + Lao People's Democratic Republic Republica Populară Democrată Laos - + Lebanon Liban - + Saint Lucia Sfânta Lucia - + Liechtenstein Liechtenstein - + Sri Lanka Sri Lanka - + Liberia Liberia - + Lesotho Lesotho - + Lithuania Lituania - + Luxembourg Luxemburg - + Latvia Letonia - Libyan Arab Jamahiriya - Libia + Libia - + Morocco Maroc - + Monaco Monaco - + Moldova, Republic of Republica Moldova - + Madagascar Madagascar - + Marshall Islands Insulele Marshall - Macedonia - Macedonia + Macedonia - + Mali Mali - + Myanmar Birmania - + Mongolia Mongolia - Macau - Macau + Macau - + Northern Mariana Islands Comunitatea Insulelor Mariane de Nord - + Martinique Martinica - + Mauritania Mauritania - + Montserrat Montserrat - + Malta Malta - + Mauritius Republica Mauritius - + Maldives Insulele Maldive - + Malawi Republica Malawi - + Mexico Mexic - + Malaysia Malaezia - + Mozambique Mozambic - + Namibia Namibia - + New Caledonia Noua Caledonie - + Niger Nigeria - + Norfolk Island Insula Norfolk - + Nigeria Nigeria - + Nicaragua Nicaragua - + Netherlands Olanda - + Norway Norvegia - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Noua Zeelandă - + Oman Oman - + Panama Panama - + Peru Peru - + French Polynesia Polinezia Franceză - + Papua New Guinea Papua Noua Guinee - + Philippines Filipine - + Pakistan Pakistan - + Poland Polonia - + Saint Pierre and Miquelon Saint Pierre și Miquelon - Pitcairn Islands - Insulele Pitcairn + Insulele Pitcairn - + Puerto Rico Puerto Rico - Palestinian Territory - Palestina + Palestina - + Portugal Portugalia - + Palau Palau - + Paraguay Paraguai - + Qatar Qatar - + Reunion Reunion - + Romania România - + Russian Federation Federația Rusă - + Rwanda Ruanda - + Saudi Arabia Arabia Saudită - + Solomon Islands Insulele Solomon - + Seychelles Seișele - + Sudan Sudan - + Sweden Suedia - + Singapore Singapore - Saint Helena - Sfânta Elena + Sfânta Elena - + Slovenia Slovenia - + Svalbard and Jan Mayen Svalbard și Jan Mayen - + Slovakia Slovacia - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somalia - + Suriname Surinam - + Sao Tome and Principe São Tomé și Príncipe - + El Salvador El Salvador - + Syrian Arab Republic Siria - + Swaziland Elveția - + Turks and Caicos Islands Insulele Turks și Caicos - + Chad Republica Ciad - + French Southern Territories Teritoriile Sudice Franceze - + Togo Togo - + Thailand Tailanda - + Tajikistan Tadjikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisia - + Tonga Tonga - + Timor-Leste Timor-Leste - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turcia - + Trinidad and Tobago Trinidad și Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzania - + Ukraine Ucraina - + Uganda Uganda - + United States Minor Outlying Islands Insulele Minore Îndepartate ale Statelor Unite - + United States Statele Unite - + Uruguay Uruguai - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Vatican - + Saint Vincent and the Grenadines Sfântul Vicențiu și Grenadinele - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Insulele Virgine Britanice - + Virgin Islands, U.S. Insulele Virgine Americane - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis și Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Serbia - + South Africa Africa de Sud - + Zambia Zambia - + Montenegro Muntenegru - + Zimbabwe ZImbabwe - Anonymous Proxy - Proxy anonim + Proxy anonim - Satellite Provider - Furnizor satelit + Furnizor satelit - Other - Altele + Altele - + Aland Islands Insulele Åland - + Guernsey Guernsey - + Isle of Man Insula Man - + Jersey Insula Jersey - + Saint Barthelemy Sfântul Bartolomeu - Saint Martin - Sfântul Martin + Sfântul Martin - + Could not uncompress GeoIP database file. Nu s-a putut decomprima fișierul cu baza de date GeoIP. - + Couldn't save downloaded GeoIP database file. Nu s-a putut salva fișierul descărcat cu baza de date GeoIP. - + Successfully updated GeoIP database. Baza de date GeoIP a fost actualizată cu succes. - + Couldn't download GeoIP database file. Reason: %1 Nu s-a putut descărca fișierul cu baza de date GeoIP. Motivul: %1 @@ -3838,72 +3856,72 @@ Sigur doriți să închideți qBittorrent? interested(local) and choked(peer) - interesat(local) și sufocat(partener) + interesat(local) și copleșit(partener) interested(local) and unchoked(peer) - interesat(local) și nesufocat(partener) + interesat(local) și decopleșit(partener) interested(peer) and choked(local) - interesat(partener) și sufocat(local) + interesat(partener) și copleșit(local) interested(peer) and unchoked(local) - interesat(partener) și nesufocat(local) + interesat(partener) și decopleșit(local) optimistic unchoke - desufocare optimistă + decopleșire optimistă peer snubbed - partener ignorat + partener ignorat incoming connection - conexiune de intrare + conexiune de intrare not interested(local) and unchoked(peer) - neinteresat(local) și nesufocat(partener) + neinteresat(local) și decopleșit(partener) not interested(peer) and unchoked(local) - neinteresat(partener) și nesufocat(local) + neinteresat(partener) și decopleșit(local) peer from PEX - partener prin PEX + partener din PEX peer from DHT - partener prin DHT + partener din DHT encrypted traffic - trafic criptat + trafic criptat encrypted handshake - inițializare criptată + inițializare criptată peer from LSD - partener prin LSD + partener din LSD @@ -3971,123 +3989,73 @@ Sigur doriți să închideți qBittorrent? Relevanță - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Adăugare un partener nou... - + Copy selected Copiază selecția - - + + Ban peer permanently Blochează permanent partenerul - + Manually adding peer '%1'... Se adaugă manual partenerul „%1”... - + The peer '%1' could not be added to this torrent. Partenerul „%1” nu a putut fi adăugat la acest torrent. - + Manually banning peer '%1'... Se blochează manual partenerul „%1”... - - + + Peer addition Adăugare partener - + Some peers could not be added. Check the Log for details. Unii parteneri nu au putut fi adăugați. Verificați jurnalul pentru detalii. - + The peers were added to this torrent. Partenerii au fost adăugați la acest torrent. - + Are you sure you want to ban permanently the selected peers? Sigur doriți să blocați permanent partenerii selectați? - + &Yes &Da - + &No &Nu - - interested(local) and choked(peer) - interesat(local) și sufocat(partener) - - - interested(local) and unchoked(peer) - interesat(local) și nesufocat(partener) - - - interested(peer) and choked(local) - interesat(partener) și sufocat(local) - - - interested(peer) and unchoked(local) - interesat(partener) și nesufocat(local) - - - optimistic unchoke - desufocare optimistă - - - peer snubbed - partener ignorat - - - incoming connection - conexiune de intrare - - - not interested(local) and unchoked(peer) - neinteresat(local) și nesufocat(partener) - - - not interested(peer) and unchoked(local) - neinteresat(partener) și nesufocat(local) - - - peer from PEX - partener prin PEX - - - peer from DHT - partener prin DHT - - - encrypted traffic - trafic criptat - - - encrypted handshake - inițializare criptată - - - peer from LSD - partener prin LSD - PeersAdditionDlg @@ -4125,6 +4093,204 @@ Sigur doriți să închideți qBittorrent? Albastru: Bucăți disponibile + + PluginSelectDlg + + + Search plugins + Extensii de căutare + + + + Installed search plugins: + + + + + Name + Nume + + + + Version + Versiune + + + + Url + URL + + + + + Enabled + Activat + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Puteți să obțineți noi extensii pentru motoare de căutare aici: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Instalează unul nou + + + + Check for updates + Caută actualizări + + + + Close + Închide + + + + Uninstall + Dezinstalează + + + + + + Yes + Da + + + + + + + No + Nu + + + + Uninstall warning + Atenționare la dezinstalare + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Unele extensii nu au putut fi dezinstalate deoarece vin incluse în qBittorrent. +Doar cele pe care le-ați adăugat manual pot fi dezinstalate. +Cu toate acestea, acele extensii au fost dezactivate. + + + + Uninstall success + Dezinstalare cu succes + + + + All selected plugins were uninstalled successfully + Toate extensiile selectate au fost dezinstalate cu succes + + + + + New search engine plugin URL + URL nou pentru extensia motor de căutare + + + + + URL: + URL: + + + + Invalid link + Legătură nevalidă + + + + The link doesn't seem to point to a search engine plugin. + Legătura nu pare a indica spre o extensie motor de căutare. + + + + Select search plugins + Alegeți extensiile de căutare + + + + qBittorrent search plugin + Extensie de căutare qBittorrent + + + + + + Search plugin update + Actualizare extensie de căutare + + + + All your plugins are already up to date. + Toate extensiile sunt deja actualizate. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Instalare extensie de căutare + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Sursă extensie + + + + Search plugin source: + Sursă extensie de căutare: + + + + Local file + Fișier local + + + + Web link + Legătură Web + + Preferences @@ -4181,89 +4347,89 @@ Sigur doriți să închideți qBittorrent? Adaugă extensia .!qB fișierelor incomplete - + Copy .torrent files to: Copiază fișierele .torrent în: - + Connections Limits Limite conexiune - + Proxy Server Server proxy - + Global Rate Limits Limite de viteză globale - + Apply rate limit to transport overhead Aplică limitarea ratei suprasarcinii transportului - + Schedule the use of alternative rate limits - Planifică utilizarea limitelor alternative viteză + Planifică utilizarea limitelor de viteză alternative - + From: from (time1 to time2) De la: - + To: time1 to time2 Până la: - + Enable Local Peer Discovery to find more peers Activează descoperirea partenerilor locali pentru a găsi mai mulți parteneri - + Encryption mode: Mod criptare: - + Prefer encryption Preferă criptarea - + Require encryption Necesită criptarea - + Disable encryption Dezactivează criptarea - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mai multe informații</a>) - + Maximum active downloads: Numărul maxim de descărcări active: - + Maximum active uploads: Număr maxim de încărcări active: - + Maximum active torrents: Număr maxim de torrente active: @@ -4288,82 +4454,82 @@ Sigur doriți să închideți qBittorrent? Afișează conținutul torrentului și câteva opțiuni - + Run external program on torrent completion Rulează un program extern la încheierea descărcării torrentului - + Port used for incoming connections: Portul utilizat pentru conexiunile de intrare: - + Random Aleator - + Global maximum number of connections: Număr maxim global de conexiuni: - + Maximum number of connections per torrent: Numărul maxim de conexiuni per torrent: - + Maximum number of upload slots per torrent: Număr maxim de sloturi de încărcare per torrent: - - + + Upload: Încărcare: - - + + Download: Descărcare: - - - - + + + + KiB/s KiO/s - + Remove folder Elimină dosarul - + Every day Zilnic - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Schimbă parteneri cu clienții Bittorrent compatibili (µTorrent, Vuze, ...) - + Host: Gazdă: - + SOCKS4 SOCKS4 - + Type: Tip: @@ -4536,262 +4702,262 @@ Sigur doriți să închideți qBittorrent? Adaugă automat torrente din: - + Add folder... Adăugare dosar... - + Copy .torrent files for finished downloads to: Copiază fișierele .torrent pentru descărcările încheiate în: - + Email notification upon download completion Trimite notificări prin poșta electronică la finalizarea descărcării - + Destination email: Email destinație: - + SMTP server: Server SMTP: - + This server requires a secure connection (SSL) Acest server necesită o conexiune securizată (SSL) - + Listening Port Port ascultat - + Use UPnP / NAT-PMP port forwarding from my router Utilizează înaintare port UPnP / NAT-PMP de la routerul meu - + Use different port on each startup Utilizează port diferit la fiecare pornire - + Global maximum number of upload slots: Număr maxim global de sloturi de încărcare: - + Otherwise, the proxy server is only used for tracker connections - Altfel, serverul proxy este utilizat doar pentru conexiuni urmăritor + Altfel, serverul proxy este utilizat doar pentru conexiuni la tracker - + Use proxy for peer connections Utilizează proxy pentru conexiuni la parteneri - + Disable connections not supported by proxies Dezactivează conexiunile care nu sunt suportate de proxy-uri - + Use proxy only for torrents Utilizează proxy doar pentru torrente - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Fluxurile RSS, motoarele de căutare, actualizările de software sau orice altceva în afară de transferuri de torrente și operațiuni conexe (precum schimbul de parteneri) vor utiliza o conexiune directă - + Info: The password is saved unencrypted Informare: Parola este salvată necriptat - + IP Filtering Filtrare IP - + Reload the filter Reîncarcă filtrul - + Apply to trackers - Aplică urmăritoarelor + Aplică tracker-elor - + Apply rate limit to peers on LAN Aplică limitarea ratei partenerilor din rețeaua locală - + When: Când: - + Weekdays Zile lucrătoare - + Weekends Zile libere - + Rate Limits Settings Configurări limitare rată - + Enable µTP protocol Activează protocolul µTP - + Apply rate limit to µTP protocol Aplică limitarea ratei protocolului µTP - + Privacy Confidențialitate - + Enable DHT (decentralized network) to find more peers Activează rețeaua descentralizată (DHT) pentru a găsi mai mulți parteneri - + Enable Peer Exchange (PeX) to find more peers Activează schimbul de parteneri (PeX) pentru a găsi mai mulți parteneri - + Look for peers on your local network Caută parteneri în rețeaua locală - + Enable when using a proxy or a VPN connection Activează când este utilizată o conexiune VPN sau proxy - + Enable anonymous mode Activează modul anonim - + Do not count slow torrents in these limits Nu socoti torrentele lente în aceste limite - + Seed torrents until their ratio reaches - Contribuie torrentele până când raportul de partajare atinge + Contribuie torrentele până când raportul lor de partajare atinge - + then apoi - + Pause them Suspendă-le - + Remove them Elimină-le - + Automatically add these trackers to new downloads: - Adăugare automată a acestor urmăritoare la descărcările noi: + Adăugă automat aceste trackere noilor descărcări: - + Use UPnP / NAT-PMP to forward the port from my router Utilizează UPnP / NAT-PMP pentru a înainta portul din routerul meu - + Use HTTPS instead of HTTP Utilizează HTTPS în loc de HTTP - + Import SSL Certificate Importare certificat SSL - + Import SSL Key Importare cheie SSL - + Certificate: Certificat: - + Alternative Rate Limits - Limite rată alternative + Limite de rată alternative - + Key: Cheie: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informații despre certificate</a> - + Bypass authentication for localhost Ocolește autentificarea pentru gazda locală - + Update my dynamic domain name Actualizează numele meu de domeniu dinamic - + Service: Serviciu: - + Register Înregistrează - + Domain name: Nume de domeniu: - + (None) (Niciunul) @@ -4801,61 +4967,61 @@ Sigur doriți să închideți qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Autentificare - - - - + + + + Username: Nume utilizator: - - - - + + + + Password: Parolă: - + Torrent Queueing Coadă torrente - + Share Ratio Limiting Limitare raport partajare - + Enable Web User Interface (Remote control) Activează interfața Web (control la distanță) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Cale filtru (.dat, .p2p, .p2b): @@ -4950,7 +5116,7 @@ Sigur doriți să închideți qBittorrent? Trackers - Urmăritoare + Trackere @@ -4999,7 +5165,7 @@ Sigur doriți să închideți qBittorrent? Time Active: Time (duration) the torrent is active (not paused) - Timp Activ: + Timp activ: @@ -5019,12 +5185,12 @@ Sigur doriți să închideți qBittorrent? Download Speed: - Viteză descărcare: + Viteză de descărcare: Upload Speed: - Viteză încărcare: + Viteză de încărcare: @@ -5039,7 +5205,7 @@ Sigur doriți să închideți qBittorrent? Upload Limit: - Limită încărcare: + Limită de încărcare: @@ -5061,10 +5227,6 @@ Sigur doriți să închideți qBittorrent? Comment: Comentariu: - - Torrent content: - Conținut torrent: - Select All @@ -5088,7 +5250,7 @@ Sigur doriți să închideți qBittorrent? Share Ratio: - Raport partajare: + Raport de partajare: @@ -5138,7 +5300,7 @@ Sigur doriți să închideți qBittorrent? Save Path: - Cale salvare: + Cale de salvare: @@ -5185,7 +5347,7 @@ Sigur doriți să închideți qBittorrent? %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - %1 (%2 total) + %1 (%2 în total) @@ -5237,7 +5399,7 @@ Sigur doriți să închideți qBittorrent? Rename the file - Redenumește fișierul + Redenumire fișier @@ -5483,7 +5645,7 @@ Nu vor fi emise alte notificări. The operation was canceled - Operația a fost anulată + Operația a fost abandonată @@ -5586,28 +5748,28 @@ Nu vor fi emise alte notificări. Eroare necunoscută - - + + Upgrade Actualizează - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Ați actualizat de la o versiune mai veche ce a salvat setările în mod diferit. Trebuie să migrați setările la noul sistem de salvare. Nu veți mai putea folosi o versiune mai veche de v3.3.0 altă dată. Continuați? [d/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Ați actualizat de la o versiune mai veche ce a salvat setările în mod diferit. Trebuie să migrați setările la noul sistem de salvare. Dacă alegeți să continuați nu veți mai putea folosi o versiune mai veche de v3.3.0 altă dată. - + Couldn't migrate torrent with hash: %1 Nu s-a reușit migrarea torrentului cu indexul: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nu s-a reușit migrarea torrentului. Nume fișier nevalid: %1 @@ -5718,17 +5880,17 @@ Nu vor fi emise alte notificări. RSSImp - + Stream URL: URL flux: - + Please type a RSS stream URL Introduceți un URL pentru fluxul RSS - + This RSS feed is already in the list. Acest flux RSS este deja în listă. @@ -5748,75 +5910,92 @@ Nu vor fi emise alte notificări. Dosar nou - + Deletion confirmation Confirmare ștergere - + Are you sure you want to delete the selected RSS feeds? - Sunteți sigur că doriți să ștergeți fluxurile RSS selectate? + Sigur doriți să ștergeți fluxurile RSS selectate? - + Please choose a new name for this RSS feed Alegeți un nume nou pentru acest flux RSS - + New feed name: Nume flux nou: - + Name already in use Numele este deja utilizat - + This name is already used by another item, please choose another one. Numele este deja folosit de un alt element, alegeți alt nume. - + Date: Dată: - + Author: Autor: - + Unread Necitite - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Descărcare automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... + Descărcare automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Descărcare automată a %1 torrent de la %2 fluxuri RSS... + Descărcare automată a %1 torrent de la %2 fluxuri RSS... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Descărcare automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Descărcare automată a %1 torrent de la %2 fluxuri RSS... RssParser - Failed to open downloaded RSS file. - A eșuat deschiderea fișierului RSS descărcat. + A eșuat deschiderea fișierului RSS descărcat. - Invalid RSS feed at '%1'. - Flux RSS nevalid la „%1”. + Flux RSS nevalid la „%1”. @@ -5842,204 +6021,410 @@ Nu vor fi emise alte notificări. Numărul maxim de articole pe flux: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Răsfoire... + + + + Choose save path + Alegeți calea de salvare + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Dosar urmărit - - Download here - Descarcă aici + + Save Files to + + + + Download here + Descarcă aici - Download path - Cale descărcare + Cale descărcare SearchCategories - All categories - Toate categoriile + Toate categoriile - Movies - Filme artistice + Filme artistice - TV shows - Filme seriale + Filme seriale - Music - Muzică + Muzică - Games - Jocuri + Jocuri - Anime - Animații + Animații - Software - Aplicații + Aplicații - Pictures - Imagini + Imagini - Books - Cărți + Cărți SearchEngine - - - Search - Căutare + Caută - Please install Python to use the Search Engine. - Instalați Python pentru a putea utiliza Motorul de Căutare. + Instalați Python pentru a putea utiliza Motorul de Căutare. - Empty search pattern - Model de căutare gol + Model de căutare gol - Please type a search pattern first - Introduceți un model de căutare mai întâi + Introduceți un model de căutare mai întâi - Searching... - Se caută... + Se caută... - Stop - Oprire + Oprește - - Search Engine - Motor de căutare + Motor de căutare - - Search has finished - Căutarea s-a finalizat + Căutarea s-a finalizat - An error occurred during search... - A apărut o eroare în timpul căutării... + A apărut o eroare în timpul căutării... - - Search aborted - Căutare abandonată + Căutarea a fost abandonată - All enabled - Toate activate + Toate activate - All engines - Toate motoarele + Toate motoarele - - Multiple... - Multiple... + Multiple... - - Results <i>(%1)</i>: i.e: Search results - Rezultate <i>(%1)</i>: + Rezultate <i>(%1)</i>: - Search returned no results - Căutarea nu a returnat rezultate + Căutarea nu a întors niciun rezultat - Stopped - Oprit + Oprită + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Toate categoriile + + + + Movies + Filme artistice + + + + TV shows + Filme seriale + + + + Music + Muzică + + + + Games + Jocuri + + + + Anime + Animații + + + + Software + Aplicații + + + + Pictures + Imagini + + + + Books + Cărți SearchListDelegate - - + + Unknown - Necunoscut + Necunoscută SearchTab - + Name i.e: file name Nume - + Size i.e: file size Dimensiune - + Seeders i.e: Number of full sources Surse - + Leechers i.e: Number of partial sources - Surse parțiale + Descărcători - + Search engine Motor de căutare + + SearchWidget + + + + + + + Search + + + + + Status: + Stare: + + + + + Stopped + + + + + Download + Descarcă + + + + Go to description page + Mergi la pagina cu descrierea + + + + Copy description page URL + Copiază URL-ul paginii cu descrierea + + + + Search plugins... + + + + + All enabled + Toate activate + + + + All plugins + + + + + + Multiple... + Multiple... + + + + + + Search Engine + Motor de căutare + + + + Please install Python to use the Search Engine. + Instalați Python pentru a putea utiliza Motorul de Căutare. + + + + Empty search pattern + Model de căutare gol + + + + Please type a search pattern first + Introduceți un model de căutare mai întâi + + + + + Results <i>(%1)</i>: + i.e: Search results + Rezultate <i>(%1)</i>: + + + + Searching... + Se caută... + + + + Stop + Oprește + + + + + Search has finished + Căutarea s-a finalizat + + + + + Search aborted + Căutarea a fost abandonată + + + + Search returned no results + Căutarea nu a întors niciun rezultat + + + + Search has failed + + + + + An error occurred during search... + A apărut o eroare în timpul căutării... + + ShutdownConfirmDlg @@ -6136,12 +6521,12 @@ Nu vor fi emise alte notificări. Tracker Upload - Încărcare urmăritor + Încărcare tracker Tracker Download - Descărcare urmăritor + Descărcare tracker @@ -6219,12 +6604,12 @@ Nu vor fi emise alte notificări. Tracker Upload - Încărcare urmăritor + Încărcare tracker Tracker Download - Descărcare urmăritor + Descărcare tracker @@ -6484,24 +6869,28 @@ Nu vor fi emise alte notificări. TorrentContentModel - + Name Nume - + Size Dimensiune - + Progress Progres - + + Download Priority + + + Priority - Prioritate + Prioritate @@ -6519,7 +6908,7 @@ Nu vor fi emise alte notificări. No input path set - Nu s-a configurat calea de intrare + Nicio cale de intrare stabilită @@ -6717,7 +7106,7 @@ Nu vor fi emise alte notificări. Tracker - Urmăritor + Tracker @@ -6747,7 +7136,7 @@ Nu vor fi emise alte notificări. Session Download Amount of data downloaded since program open (e.g. in MB) - Descărcat sesiune + Descărcat în sesiune @@ -6815,7 +7204,7 @@ Nu vor fi emise alte notificări. Trackerless (0) - Fără urmăritor (0) + Fără tracker (0) @@ -6831,7 +7220,7 @@ Nu vor fi emise alte notificări. Trackerless (%1) - Fără urmăritor (%1) + Fără tracker (%1) @@ -6853,38 +7242,38 @@ Nu vor fi emise alte notificări. Cu avertismente (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Nu s-a putut decodifica favicon-ul pentru URL-ul „%1”. Se încearcă descărcarea lui în formatul PNG. - + Couldn't decode favicon for URL '%1'. Nu s-a putut decodifica favicon-ul pentru URL-ul „%1”. - + Couldn't download favicon for URL '%1'. Reason: %2 Nu s-a putut descărca favicon-ul pentru URL-ul „%1”. Motivul: %2 - + Resume torrents Reia torrentele - + Pause torrents Suspendă torrentele - + Delete torrents Șterge torrentele - - + + All (%1) this is for the tracker filter Toate (%1) @@ -6946,58 +7335,58 @@ Nu vor fi emise alte notificări. Tracker URL: - URL urmăritor: + URL tracker: Tracker editing - Editare urmăritor + Editare tracker Tracker editing failed - Editarea urmăritorului a eșuat + Editarea tracker-ului a eșuat The tracker URL entered is invalid. - URL-ul urmăritorului introdus nu este valid. + URL-ul tracker-ului este nevalid. The tracker URL already exists. - URL-ul urmăritorului există deja. + URL-ul tracker-ului există deja. Add a new tracker... - Adăugare urmăritor nou... + Adaugă un nou tracker... Copy tracker URL - Copiază URL-ul urmăritorului + Copiază URL-ul tracker-ului Edit selected tracker URL - Editează URL-ul urmăritorului selectat + Editează URL-ul tracker-ului selectat Force reannounce to selected trackers - Forțează reanunțarea urmăritoarelor selectate + Forțează reanunțarea tracker-elor selectate Force reannounce to all trackers - Forțează reanunțarea tuturor urmăritoarelor + Forțează reanunțarea tuturor tracker-elor Remove tracker - Elimină urmăritorul + Elimină tracker @@ -7005,12 +7394,12 @@ Nu vor fi emise alte notificări. Trackers addition dialog - Dialog adăugare urmăritoare + Dialog adăugare trackere List of trackers to add (one per line): - Listă urmăritoare de adăugat (unul pe linie): + Listă trackere de adăugat (unul pe linie): @@ -7035,7 +7424,7 @@ Nu vor fi emise alte notificări. No additional trackers were found. - Niciun urmăritor adițional găsit. + Niciun tracker adițional găsit. @@ -7045,7 +7434,7 @@ Nu vor fi emise alte notificări. The trackers list could not be downloaded, reason: %1 - Lista de urmăritoare nu a putut fi descărcată, motivul: %1 + Lista de trackere nu a putut fi descărcată, motivul: %1 @@ -7152,19 +7541,19 @@ Nu vor fi emise alte notificări. TransferListFiltersWidget - + Status Stare - + Labels Etichete - + Trackers - Urmăritoare + Trackere @@ -7310,7 +7699,7 @@ Nu vor fi emise alte notificări. Set location... - Configurare locație... + Stabilire locație... @@ -7362,7 +7751,7 @@ Nu vor fi emise alte notificări. Reset Reset label - Resetare + Restabilește @@ -7375,7 +7764,7 @@ Nu vor fi emise alte notificări. Use global ratio limit - Utilizează limitarea globală a ratei + Utilizează limita globală a raportului @@ -7387,12 +7776,12 @@ Nu vor fi emise alte notificări. Set no ratio limit - Configurare fără limitare rată + Stabilește nicio limită a raportului Set ratio limit to - Configurare limitare raport la + Stabilește limita raportului la @@ -7446,7 +7835,7 @@ Nu vor fi emise alte notificări. Add Peers - Adaugă parteneri + Adăugare parteneri @@ -7465,12 +7854,12 @@ Nu vor fi emise alte notificări. Tracker authentication - Autentificare urmăritor + Autentificare tracker Tracker: - Urmăritor: + Tracker: @@ -7551,7 +7940,7 @@ Nu vor fi emise alte notificări. Tracker URLs: - URL-uri urmăritor: + URL-uri Tracker: @@ -7567,7 +7956,7 @@ Nu vor fi emise alte notificări. You can separate tracker tiers / groups with an empty line. A tracker tier is a group of trackers, consisting of a main tracker and its mirrors. - Puteți separa nivelurile/grupurile de urmăritoare cu o linie goală. + Puteți separa niveluri/grupuri de trackere cu o linie goală. @@ -7701,207 +8090,156 @@ Nu vor fi emise alte notificări. engineSelect - Search plugins - Extensii de căutare + Extensii de căutare - Installed search engines: - Motoare de căutare instalate: + Motoare de căutare instalate: - Name - Nume + Nume - Version - Versiune + Versiune - Url - URL + URL - - Enabled - Activat + Activat - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Puteți să obțineți noi extensii pentru motoare de căutare aici: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Puteți să obțineți noi extensii pentru motoare de căutare aici: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Instalează unul nou + Instalează unul nou - Check for updates - Caută actualizări + Caută actualizări - Close - Închide + Închide - Uninstall - Dezinstalează + Dezinstalează engineSelectDlg - Uninstall warning - Atenționare la dezinstalare + Atenționare la dezinstalare - Uninstall success - Dezinstalare cu succes + Dezinstalare cu succes - Invalid plugin - Modul nevalid + Modul nevalid - The search engine plugin is invalid, please contact the author. - Modulul motorului de căutare nu este valid, încercați să contactați autorul. + Modulul motorului de căutare nu este valid, încercați să contactați autorul. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - O versiune mai recentă a extensiei motor de căutare „%1” este deja instalată. + O versiune mai recentă a extensiei motor de căutare „%1” este deja instalată. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Extensia motor de căutare „%1” nu a putut fi actualizată, se păstrează versiunea anterioară. + Extensia motor de căutare „%1” nu a putut fi actualizată, se păstrează versiunea anterioară. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Extensia motor de căutare „%1” nu a putut fi instalată. + Extensia motor de căutare „%1” nu a putut fi instalată. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Extensia motor de căutare „%1” a fost actualizată cu succes. + Extensia motor de căutare „%1” a fost actualizată cu succes. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Extensia motor de căutare „%1” a fost instalată cu succes. + Extensia motor de căutare „%1” a fost instalată cu succes. - The link doesn't seem to point to a search engine plugin. - Legătura nu pare a indica spre o extensie motor de căutare. + Legătura nu pare a indica spre o extensie motor de căutare. - Select search plugins - Alegeți extensiile de căutare + Alegeți extensiile de căutare - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Instalarea extensiei de căutare „%1” a eșuat. + Instalarea extensiei de căutare „%1” a eșuat. - - - - - Search plugin install - Instalare extensie de căutare + Instalare extensie de căutare - - - Yes - Da + Da - - - - No - Nu + Nu - qBittorrent search plugin - Extensie de căutare qBittorrent + Extensie de căutare qBittorrent - - - - Search plugin update - Actualizare extensie de căutare + Actualizare extensie de căutare - - Sorry, update server is temporarily unavailable. - Ne pare rău, serverul de actualizări este temporar indisponibil. + Ne pare rău, serverul de actualizări este temporar indisponibil. - All your plugins are already up to date. - Toate extensiile sunt deja actualizate. + Toate extensiile sunt deja actualizate. - All selected plugins were uninstalled successfully - Toate extensiile selectate au fost dezinstalate cu succes + Toate extensiile selectate au fost dezinstalate cu succes - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Unele extensii nu au putut fi dezinstalate deoarece vin incluse în qBittorrent. + Unele extensii nu au putut fi dezinstalate deoarece vin incluse în qBittorrent. Doar cele pe care le-ați adăugat manual pot fi dezinstalate. Cu toate acestea, acele extensii au fost dezactivate. - Invalid link - Legătură nevalidă + Legătură nevalidă - - New search engine plugin URL - URL nou pentru extensia motor de căutare + URL nou pentru extensia motor de căutare - - URL: - URL: + URL: @@ -8031,169 +8369,169 @@ Cu toate acestea, acele extensii au fost dezactivate. options_imp - - + + Choose export directory Alegeți un director pentru export - - - - + + + + Choose a save directory Alegeți un director pentru salvare - + Add directory to scan Adăugați director de scanat - + Supported parameters (case sensitive): Parametrii suportați (sensibil la majuscule): - + %N: Torrent name %N: Nume torrent - + %L: Label %L: Etichetă - + %F: Content path (same as root path for multifile torrent) %F: Cale conținut (aceeași cu calea rădăcină pentru torrent cu mai multe fișiere) - + %R: Root path (first torrent subdirectory path) %R: Cale rădăcină (cale subdirector a primului torrent) - + %D: Save path - %D: Cale salvare + %D: Cale de salvare - + %C: Number of files %C: Număr de fișiere - + %Z: Torrent size (bytes) %Z: Dimensiune torrent (octeți) - + %T: Current tracker - %T: Urmăritor curent + %T: Tracker curent - + %I: Info hash %I: Informații indexare - + Folder is already being watched. Dosarul este deja sub supraveghere. - + Folder does not exist. Dosarul nu există. - + Folder is not readable. Dosarul nu poate fi citit. - + Failure Eșec - + Failed to add Scan Folder '%1': %2 Eșec la adăugarea dosarului scanat „%1”: %2 - - + + Filters Filtre - - + + Choose an IP filter file Alegeți un fișier de filtru IP - + SSL Certificate Certificat SSL - + SSL Key Cheie SSL - + Parsing error Eroare analizare - + Failed to parse the provided IP filter A eșuat analiza filtrului IP furnizat - + Successfully refreshed Reîmprospătat cu succes - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number S-a analizat cu succes filtrul IP furnizat: %1 reguli au fost aplicate. - + Invalid key Cheie nevalidă - + This is not a valid SSL key. Aceasta nu este o cheie SSL validă. - + Invalid certificate Certificat nevalid - + This is not a valid SSL certificate. Acesta nu este un certificat SSL valid. - + The start time and the end time can't be the same. Timpul de pornire și timpul de încheiere nu pot fi același. - + Time Error Eroare timp @@ -8201,24 +8539,20 @@ Cu toate acestea, acele extensii au fost dezactivate. pluginSourceDlg - Plugin source - Sursă extensie + Sursă extensie - Search plugin source: - Sursă extensie de căutare: + Sursă extensie de căutare: - Local file - Fișier local + Fișier local - Web link - Legătură Web + Legătură Web @@ -8226,7 +8560,7 @@ Cu toate acestea, acele extensii au fost dezactivate. Preview selection - Previzualizează selecția + Previzualizeazare selecție @@ -8236,51 +8570,43 @@ Cu toate acestea, acele extensii au fost dezactivate. Preview - Previzualizare + Previzualizează Cancel - Anulare + Renunță search_engine - - Search - Caută + Căutare - Status: - Stare: + Stare: - Stopped - Oprit + Oprit - Download - Descarcă + Descarcă - Go to description page - Mergi la pagina cu descrierea + Mergi la pagina cu descrierea - Copy description page URL - Copiază URL-ul paginii cu descrierea + Copiază URL-ul paginii cu descrierea - Search engines... - Motoare de căutare... + Motoare de căutare... diff --git a/src/lang/qbittorrent_ru.ts b/src/lang/qbittorrent_ru.ts index 6c518a823..bbc2e305a 100644 --- a/src/lang/qbittorrent_ru.ts +++ b/src/lang/qbittorrent_ru.ts @@ -127,7 +127,7 @@ Set as default label - + Установить как метку по умолчанию @@ -167,7 +167,7 @@ Maximum - Высший + Максимальный @@ -175,172 +175,172 @@ Не загружать - - + + I/O Error Ошибка ввода/вывода - + The torrent file does not exist. Торрент-файл не существует. - + Invalid torrent Некорректный торрент - + Failed to load the torrent: %1 Не удалось загрузить торрент: %1 - - + + Already in download list Уже присутствует в списке загрузок - + Free disk space: %1 Свободно на диске: %1 - + Not Available This comment is unavailable Недоступно - + Not Available This date is unavailable Недоступно - + Not available Недоступно - + Invalid magnet link Некорректная magnet-ссылка - + Torrent is already in download list. Trackers were merged. Торрент уже присутствует в списке загрузок. Трекеры были объединены. - - + + Cannot add torrent Нельзя добавить торрент - + Cannot add this torrent. Perhaps it is already in adding state. Нельзя добавить этот торрент. Возможно, он уже в состоянии добавления. - + This magnet link was not recognized Magnet-ссылка не распознана - + Magnet link is already in download list. Trackers were merged. Magnet-ссылка уже присутствует в списке загрузок. Трекеры были объединены. - + Cannot add this torrent. Perhaps it is already in adding. Нельзя добавить этот торрент. Возможно, он уже добавляется. - + Magnet link Magnet-ссылка - + Retrieving metadata... Получение метаданных… - + Not Available This size is unavailable. Недоступно - - - + + + Choose save path Выберите путь сохранения - + Rename the file Переименовать файл - + New name: Новое имя: - - + + The file could not be renamed Файл не может быть переименован - + This file name contains forbidden characters, please choose a different one. Имя файла содержит недопустимые символы. Пожалуйста, выберите другое. - - + + This name is already in use in this folder. Please use a different name. Файл с таким именем уже существует в этой папке. Пожалуйста, задайте другое. - + The folder could not be renamed Папка не может быть переименована - + Rename... Переименовать… - + Priority Приоритет - + Invalid metadata Некорректные метаданные - + Parsing metadata... Анализ метаданных… - + Metadata retrieval complete Получение метаданных завершено - + Download Error Ошибка загрузки @@ -350,7 +350,7 @@ Disk write cache size - Кеш для записи на диск + Кэш для записи на диск @@ -360,12 +360,12 @@ Outgoing ports (Min) [0: Disabled] - Исходящие порты (Мин) [0: Отключено] + Исходящие порты (минимум) [0: Отключено] Outgoing ports (Max) [0: Disabled] - Исходящие порты (Макс) [0: Отключено] + Исходящие порты (максимум) [0: Отключено] @@ -408,7 +408,7 @@ Disk cache expiry interval - Интервал очистки дискового кеша + Интервал очистки дискового кэша @@ -431,10 +431,6 @@ Resolve peer host names Определять имя хоста пира - - Maximum number of half-open connections [0: Disabled] - Макс. кол-во полуоткрытых соединений [0: Откл.] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Макс. кол-во полуоткрытых соединений [0: Неограниченно] @@ -529,7 +525,7 @@ To control qBittorrent, access the Web UI at http://localhost:%1 - Для управления qBittorrent откройте веб-интерфейс: http://localhost:%1 + Войдите в веб-интерфейс для управления qBittorrent: http://localhost:%1 @@ -539,12 +535,12 @@ The Web UI administrator password is still the default one: %1 - Пароль администратора веб-интерфейса всё ещё стандартный: %1 + Пароль администратора веб-интерфейса все еще стандартный: %1 This is a security risk, please consider changing your password from program preferences. - Это не безопасно, пожалуйста, измените ваш пароль в настройках программы. + Это небезопасно, пожалуйста, измените Ваш пароль в настройках программы. @@ -587,22 +583,22 @@ Must Contain: - Должно содержать + Должно содержать: Must Not Contain: - Не должно содержать + Не должно содержать: Episode Filter: - Фильтр эпизодов + Фильтр эпизодов: Assign Label: - Присвоить метку + Присвоить метку: @@ -648,7 +644,7 @@ Matching RSS Articles - Подходящие RSS заголовки + Подходящие RSS-заголовки @@ -661,205 +657,205 @@ &Экспорт... - + Matches articles based on episode filter. - Указывает на статьи, основанные на фильтре эпизодов + Указывает на статьи, основанные на фильтре эпизодов. - + Example: Пример: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match указывает на 2, 5, 8-15, 30 и следующие эпизоды первого сезона - + Episode filter rules: Правила фильтрации эпизодов: - + Season number is a mandatory non-zero value Номер сезона должен иметь ненулевое значение - + Episode number is a mandatory non-zero value Номер эпизода должен быть ненулевым - + Filter must end with semicolon Фильтр должен заканчиваться точкой с запятой - + Three range types for episodes are supported: Поддерживается три типа диапазонов для эпизодов: - + Single number: <b>1x25;</b> matches episode 25 of season one Одиночный номер: <b>1x25;</b> означает 25-й эпизод первого сезона - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Обычный диапазон: <b>1x25-40;</b> указывает на эпизоды с 25-го по 40-й первого сезона - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Бесконечный диапазон: <b>1x25-;</b> указывает на эпизоды с 25-го и выше первого сезона - + Last Match: %1 days ago Последнее совпадение: %1 дней назад - + Last Match: Unknown Последнее совпадение: неизвестно - + New rule name Новое правило - + Please type the name of the new download rule. Введите имя нового правила загрузки. - - + + Rule name conflict Конфликт имени правила - - + + A rule with this name already exists, please choose another name. Правило с таким именем уже существует. Пожалуйста, выберите другое. - + Are you sure you want to remove the download rule named '%1'? Вы уверены, что хотите удалить правило загрузки '%1'? - + Are you sure you want to remove the selected download rules? Вы уверены, что хотите удалить выбранные правила загрузки? - + Rule deletion confirmation Подтверждение удаления правила - + Destination directory Папка назначения - + Invalid action Неверное действие - + The list is empty, there is nothing to export. Список пуст, экспортировать нечего. - + Where would you like to save the list? - Куда вы хотите сохранить список? + Куда Вы хотите сохранить список? - + Rules list (*.rssrules) Списки правил (*.rssrules) - + I/O Error Ошибка ввода/вывода - + Failed to create the destination file Не удалось создать целевой файл - + Please point to the RSS download rules file Укажите файл с правилами загрузки RSS - + Rules list Список правил - + Import Error Ошибка импорта - + Failed to import the selected rules file Ошибка импортирования выбранного файла правил - + Add new rule... Добавить правило… - + Delete rule Удалить правило - + Rename rule... Переименовать правило… - + Delete selected rules Удалить выбранные правила - + Rule renaming Переименование правила - + Please type the new rule name Введите новое имя правила - + Regex mode: use Perl-like regular expressions Режим Regex: использовать регулярные выражения в стиле Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Режим Wildcard: можно использовать<ul><li>? для замещения любого одного символа</li><li>* для замещения нуля и более любых символов</li><li>Пробелы действуют как операторы AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Режим Wildcard: можно использовать<ul><li>? для замещения любого одного символа</li><li>* для замещения нуля и более любых символов</li><li>| используется как оператор OR</li></ul> @@ -944,73 +940,65 @@ '%1' reached the maximum ratio you set. Removing... - '%1' достиг установленного вами максимального коэффициента. Удаление… + '%1' достиг установленного Вами максимального коэффициента. Удаление… '%1' reached the maximum ratio you set. Pausing... - '%1' достиг установленного вами максимального коэффициента. Приостановка… + '%1' достиг установленного Вами максимального коэффициента. Приостановка… - Error: Could not create torrent export directory: '%1' - Ошибка: Невозможно создать директорию экспорта торрента: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Ошибка: не удалось экспортировать торрент '%1', возможно, он пока не содержит метаданных. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Системный сетевой статус сменился на %1 - + ONLINE В СЕТИ - + OFFLINE НЕ В СЕТИ - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Настройки сети %1 изменились, обновление привязки сеанса - + Unable to decode '%1' torrent file. Не удалось декодировать торрент-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Рекурсивная загрузка файла '%1' встроена в торрент '%2' - + Couldn't save '%1.torrent' Не удалось сохранить '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. потому что %1 отключен. - + because %1 is disabled. this peer was blocked because TCP is disabled. - because %1 is disabled. + потому что %1 отключен. - + URL seed lookup failed for URL: '%1', message: %2 Поиск адреса раздающего не удался: '%1', сообщение: '%2' @@ -1018,187 +1006,173 @@ '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - '%1' был удалён из списка торрентов и с жёсткого диска. + '%1' был удален из списка торрентов и с жесткого диска. '%1' was removed from transfer list. 'xxx.avi' was removed... - '%1' был удалён из списка торрентов. + '%1' был удален из списка торрентов. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Загружается '%1', подождите… - Torrent Export: torrent is invalid, skipping... - Экспорт торрента: торрент недоступен, пропуск… - - - + DHT support [ON] Поддержка DHT [Вкл] - + DHT support [OFF]. Reason: %1 Поддержка DHT [Выкл]. Причина: %1 - + DHT support [OFF] Поддержка DHT [Выкл] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 пытаемся использовать порт %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - попытка использования порта %1 провалилась. Причина: %2 - - - + The network interface defined is invalid: %1 Указанный сетевой интерфейс недоступен: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 пытаемся использовать порт %2 на интерфейсе %1 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - Адрес %1 не найден. Прослушивание недоступно для данного адреса. + Адрес %1 не найден. Прослушивание недоступно для данного адреса - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - попытка использования порта %1 провалилась. Причина: %2. {1.?} + попытка использования порта %1 провалилась. Причина: %2. - + Tracker '%1' was added to torrent '%2' Трекер '%1' добавлен в торрент '%2' - + Tracker '%1' was deleted from torrent '%2' - Трекер '%1' удалён из торрента '%2' + Трекер '%1' удален из торрента '%2' - + URL seed '%1' was added to torrent '%2' Адрес источника '%1' добавлен в торрент '%2' - + URL seed '%1' was removed from torrent '%2' - Адрес источника '%1' удалён из торрента '%2' + Адрес источника '%1' удален из торрента '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Неудалось возобновить торрент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Указанный фильтр IP был успешно разобран: %1 правил применено. - + Error: Failed to parse the provided IP filter. Ошибка: невозможно разобрать фильтр IP. - + Couldn't add torrent. Reason: %1 Не удалось добавить торрент. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - %1 возобновлен. (быстрое возобновление) + %1 возобновлен (быстрое возобновление) - + '%1' added to download list. 'torrent name' was added to download list. '%1' добавлен в список загрузок. - + An I/O error occurred, '%1' paused. %2 Ошибка ввода/вывода, '%1' приостановлен. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 Распределение портов UPnP/NAT-PMP не удалось с сообщением: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 Распределение портов UPnP/NAT-PMP прошло успешно: %1 - + due to IP filter. this peer was blocked due to ip filter. в соответствии с IP-фильтром. - + due to port filter. this peer was blocked due to port filter. в соответствии с фильтром портов. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. согласно ограничениями смешанного режима i2p. - + because it has a low port. this peer was blocked because it has a low port. так как они имеют низкий порт. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 порт %2/%3 на интерфейсе %1 успешно занят - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4. {1 ?} {2/%3.?} + попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Внешний IP: %1 @@ -1212,12 +1186,12 @@ Не удалось переместить торрент: '%1'. Причина: %2 - + File sizes mismatch for torrent '%1', pausing it. Несовпадение размеров файлов для торрента '%1', приостановка. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Быстрое восстановление данных для торрента '%1' было отклонено. Причина: %2. Повтор проверки… @@ -1242,11 +1216,11 @@ Значение - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Частые ключи для cookies - это '%1' и '%2'. -Вам следует получить эту информацию в настройках вашего веб-браузера. +Вам следует получить эту информацию в настройках Вашего веб-браузера. @@ -1274,7 +1248,7 @@ You should get this information from your Web browser preferences. Green: Partial pieces - Зелёный: Отдельные части + Зеленый: Отдельные части @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds - RSS каналы + RSS-каналы - + Unread Непрочитанные @@ -1400,7 +1374,7 @@ You should get this information from your Web browser preferences. Help - Помощь + Справка @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line Только одна ссылка в строке - - Download local torrent - Загрузить локальный торрент - Download @@ -1429,17 +1399,17 @@ You should get this information from your Web browser preferences. Global download rate limit must be greater than 0 or disabled. - Общее ограничение соотношения скачивания должно быть больше 0 или отключено. + Общее ограничение соотношения загрузки должно быть больше 0 или отключено. Alternative upload rate limit must be greater than 0 or disabled. - Иное ограничение соотношения раздачи должно быть больше 0 или отключено. + Другое ограничение соотношения раздачи должно быть больше 0 или отключено. Alternative download rate limit must be greater than 0 or disabled. - Иное ограничение соотношения скачивания должно быть больше 0 или отключено. + Другое ограничение соотношения загрузки должно быть больше 0 или отключено. @@ -1494,12 +1464,12 @@ You should get this information from your Web browser preferences. Unable to log in, qBittorrent is probably unreachable. - Невозможно войти, возможно qBittorrent недоступен + Невозможно войти, возможно, qBittorrent недоступен. Invalid Username or Password. - Неверное имя пользователя или пароль + Неверное имя пользователя или пароль. @@ -1509,7 +1479,7 @@ You should get this information from your Web browser preferences. Login - Логин + Войти @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - Путь сохранения по умолчанию: + Путь сохранения по умолчанию: Label: - Метка: + Метка: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Загружен @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + Загрузить локальный торрент @@ -1795,7 +1775,7 @@ You should get this information from your Web browser preferences. &Help - &Помощь + &Справка @@ -1866,7 +1846,7 @@ You should get this information from your Web browser preferences. Alternative Speed Limits - Иные ограничения скорости + Другие ограничения скорости @@ -1891,12 +1871,12 @@ You should get this information from your Web browser preferences. &RSS Reader - &RSS менеджер + &RSS-менеджер Search &Engine - Поисковый движок + &Поисковик @@ -1916,7 +1896,7 @@ You should get this information from your Web browser preferences. Do&nate! - Пожертвовать! + &Пожертвовать! @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About &О qBittorrent - - Exit - Выход - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit &Выход - - Options - Настройки - - - Resume - Возобновить - - - Pause - Приостановить - - - Delete - Удалить - Open URL @@ -2040,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show Показать - + Check for program updates Проверить наличие обновлений - - Lock qBittorrent - Заблокировать qBittorrent - Add Torrent &Link... @@ -2061,219 +2017,225 @@ You should get this information from your Web browser preferences. If you like qBittorrent, please donate! - Если вам нравится qBittorrent, пожалуйста, пожертвуйте! + Если Вам нравится qBittorrent, пожалуйста, пожертвуйте! - + Execution Log - Лог выполнения + Журнал выполнения - + Clear the password Удалить пароль - + Filter torrent list... Фильтр списка торрентов… - + &Set Password &Установить пароль - + &Clear Password &Удалить пароль - + Transfers Передачи - + Torrent file association Ассоциации торрент-файлов - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent сейчас не является приложением по умолчанию для открытия торрент-файлов или magnet-ссылок. -Хотите ли вы открывать торрент-файлы и magnet-ссылки с помощью qBittorrent? +Хотите ли Вы открывать торрент-файлы и magnet-ссылки с помощью qBittorrent? - + Icons Only Только значки - + Text Only Только текст - + Text Alongside Icons Текст рядом со значками - + Text Under Icons Текст под значками - + Follow System Style Использовать стиль ОС - - - + + + UI lock password Пароль блокировки интерфейса - - - + + + Please type the UI lock password: Пожалуйста, введите пароль блокировки интерфейса: - + The password should contain at least 3 characters Пароль должен содержать минимум 3 символа - + Password update Обновить пароль - + The UI lock password has been successfully updated Пароль блокировки интерфейса был успешно обновлен - + Are you sure you want to clear the password? Вы уверены, что хотите удалить пароль? - + Search Поиск - + Transfers (%1) Передачи (%1) - + Error Ошибка - + Failed to add torrent: %1 Не удалось добавить торрент: %1 - + Download completion Завершение загрузок - + I/O Error i.e: Input/Output Error Ошибка ввода/вывода - + Recursive download confirmation Подтверждение рекурсивной загрузки - + Yes Да - + No Нет - + Never Никогда - + Global Upload Speed Limit Общее ограничение скорости отдачи - + Global Download Speed Limit Общее ограничение скорости загрузки - + &No &Нет - + &Yes &Да - + &Always Yes &Всегда да - + Python found in %1 Python найден в %1 - + Old Python Interpreter Старый интерпретатор Python - + qBittorrent Update Available - Доступно обновление qBittorrent + Обновление qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Используется последняя версия qBittorrent - + Undetermined Python version Версия Python не определена - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Загрузка '%1' завершена. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Причина: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? - Торрент '%1' содержит торрент-файлы, хотите ли вы приступить к их загрузке? + Торрент '%1' содержит торрент-файлы, хотите ли Вы приступить к их загрузке? - + Couldn't download file at URL '%1', reason: %2. Не удалось загрузить файл по ссылке: '%1', причина: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - Ваша версия Python %1 устарела. Пожалуйста, обновитесь до последней версии для использования поисковых движков. Требуются как минимум 2.7.0 или 3.3.0. + Ваша версия Python %1 устарела. Пожалуйста, обновитесь до последней версии для использования поисковиков. Требуется как минимум версия 2.7.0 или 3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - Не удалось определить вашу версию Python (%1). Поисковый движок выключен. + Не удалось определить Вашу версию Python (%1). Поисковик выключен. - - + + Missing Python Interpreter Отсутствует интерпретатор Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - Для использования поискового движка требуется Python, но, видимо, он не установлен. + Для использования поисковика требуется Python, но, видимо, он не установлен. Хотите установить его сейчас? - + Python is required to use the search engine but it does not seem to be installed. - Для использования поискового движка требуется Python, но он, видимо, не установлен. + Для использования поисковика требуется Python, но он, видимо, не установлен. - A new version is available. Update to version %1? - Доступна новая версия. + Доступна новая версия. Обновиться до версии %1? - + No updates available. You are already using the latest version. Обновлений нет. -У вас уже установлена последняя версия. +У Вас уже установлена последняя версия. - + &Check for Updates &Проверить обновления - + Checking for Updates... - Проверка обновление… + Проверка обновлений… - + Already checking for program updates in the background Проверка обновлений уже выполняется - + Python found in '%1' Python найден в '%1' - + Download error Ошибка при загрузке - + Python setup could not be downloaded, reason: %1. Please install it manually. Установщик Python не может быть загружен по причине: %1. Пожалуйста, установите его вручную. - - + + Invalid password Неверный пароль - - + + RSS (%1) RSS (%1) - + URL download error Ошибка при загрузке ссылки - + The password is invalid Неверный пароль - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Загрузка: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Отдача: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [З: %1, О: %2] qBittorrent %3 - + Hide Скрыть - + Exiting qBittorrent Завершение работы qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Некоторые передачи сейчас активны. Вы уверены, что хотите выйти из qBittorrent? - + Open Torrent Files Открыть торрент-файлы - + Torrent Files Торрент-файлы - + Options were saved successfully. Настройки были успешно сохранены. @@ -2443,19 +2404,19 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - Ваш динамический DNS был успешно обновлён. + Ваш динамический DNS был успешно обновлен. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Ошибка динамического DNS: служба временно недоступна. Повтор попытки соединения через 30 минут. - + Dynamic DNS error: hostname supplied does not exist under specified account. - Ошибка динамического DNS: предоставленное имя хоста не существует в указанной учётной записи. + Ошибка динамического DNS: предоставленное имя хоста не существует в указанной учетной записи. @@ -2463,32 +2424,32 @@ Are you sure you want to quit qBittorrent? Ошибка динамического DNS: неверный логин или пароль. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - Ошибка динамического DNS: qBittorrent внесён службой в чёрный список. Пожалуйста, сообщите об ошибке на http://bugs.qbittorrent.org. + Ошибка динамического DNS: qBittorrent внесен службой в черный список. Пожалуйста, сообщите об ошибке на http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Ошибка динамического DNS: служба вернула %1. Пожалуйста, сообщите об ошибке на http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - Ошибка динамического DNS: ваш аккаунт был заблокирован из-за злоупотребления. + Ошибка динамического DNS: Ваш аккаунт был заблокирован из-за злоупотребления. - + Dynamic DNS error: supplied domain name is invalid. Ошибка динамического DNS: предоставленное доменное имя неверное. - + Dynamic DNS error: supplied username is too short. Ошибка динамического DNS: предоставленное имя пользователя слишком короткое. - + Dynamic DNS error: supplied password is too short. Ошибка динамического DNS: предоставленный пароль слишком короткий. @@ -2515,154 +2476,161 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. База данных GeoIP загружена. Тип: %1. Время построения: %2. - + Couldn't load GeoIP database. Reason: %1 Не удалось загрузить базу данных GeoIP. Причина: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Н/Д - Asia/Pacific Region - Азиатско-Тихоокеанский регион + Азиатско-Тихоокеанский регион + + + Europe + Европа - Europe - Европа - - - Andorra Андорра - + United Arab Emirates Объединенные Арабские Эмираты - + Afghanistan Афганистан - + Antigua and Barbuda Антигуа и Барбуда - + Anguilla Ангилья - + Albania Албания - + Armenia Армения - Netherlands Antilles - Нидерландские Антильские острова + Нидерландские Антильские острова - + Angola Ангола - + Antarctica Антарктида - + Argentina Аргентина - + American Samoa Американское Самоа - + Austria Австрия - + Australia Австралия - + Aruba Аруба - + Azerbaijan Азербайджан - + Bosnia and Herzegovina Босния и Герцеговина - + Barbados Барбадос - + Bangladesh Бангладеш - + Belgium Бельгия - + Burkina Faso Буркина-Фасо - + Bulgaria Болгария - + Bahrain Бахрейн - + Burundi Бурунди - + Benin Бенин @@ -2674,1140 +2642,1190 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam - Бруней-Даруссалам + Бруней - Bolivia - Боливия + Боливия - + Brazil Бразилия - + Bahamas Багамские Острова - + Bhutan Бутан - + Bouvet Island Остров Буве - + Botswana Ботсвана - + Belarus Беларусь - + Belize Белиз - + Canada Канада - + Cocos (Keeling) Islands Кокосовые острова - + Congo, The Democratic Republic of the Демократическая Республика Конго - + Central African Republic Центральноафриканская Республика - + Congo Республика Конго - + Switzerland Швейцария - Cote D'Ivoire - Кот-д'Ивуар + Кот-д'Ивуар - + Cook Islands Острова Кука - + Chile Чили - + Cameroon Камерун - + China Китай - + Colombia Колумбия - + Costa Rica Коста-Рика - + Cuba Куба - + Cape Verde Кабо-Верде - + + Curacao + + + + Christmas Island Остров Рождества - + Cyprus Кипр - + Czech Republic Чехия - + Germany Германия - + Djibouti Джибути - + Denmark Дания - + Dominica Доминика - + Dominican Republic Доминиканская Республика - + Algeria Алжир - + Ecuador Эквадор - + Estonia Эстония - + Egypt Египет - + Western Sahara Западная Сахара - + Eritrea Эритрея - + Spain Испания - + Ethiopia Эфиопия - + Finland Финляндия - + Fiji Фиджи - + Falkland Islands (Malvinas) Фолклендские острова - + Micronesia, Federated States of Федеративные Штаты Микронезии - + Faroe Islands Фарерские острова - + France Франция - France, Metropolitan - Метрополия Франции + Метрополия Франции - + Gabon Габон - + United Kingdom Великобритания - + Grenada Гренада - + Georgia Грузия - + French Guiana Французская Гвиана - + Ghana Гана - + Gibraltar Гибралтар - + Greenland Гренландия - + Gambia Гамбия - + Guinea Гвинея - + Guadeloupe Гваделупа - + Equatorial Guinea Экваториальная Гвинея - + Greece Греция - + South Georgia and the South Sandwich Islands Южная Георгия и Южные Сандвичевы Острова - + Guatemala Гватемала - + Guam Гуам - + Guinea-Bissau Гвинея-Бисау - + Guyana Гайана - + Hong Kong Гонконг - + Heard Island and McDonald Islands Остров Херд и острова Макдональд - + Honduras Гондурас - + Croatia Хорватия - + Haiti Гаити - + Hungary Венгрия - + Indonesia Индонезия - + Ireland Ирландия - + Israel Израиль - + India Индия - + British Indian Ocean Territory Британская территория в Индийском океане - + Iraq Ирак - + Iran, Islamic Republic of Иран - + Iceland Исландия - + Italy Италия - + Jamaica Ямайка - + Jordan Иордания - + Japan Япония - + Kenya Кения - + Kyrgyzstan Киргизия - + Cambodia Камбоджа - + Kiribati Кирибати - + Comoros Коморы - + Saint Kitts and Nevis Сент-Китс и Невис - + Korea, Democratic People's Republic of Корейская Народно-Демократическая Республика - + Korea, Republic of Республика Корея - + Kuwait Кувейт - + Cayman Islands Острова Кайман - + Kazakhstan Казахстан - + Lao People's Democratic Republic Лаос - + Lebanon Ливан - + Saint Lucia Сент-Люсия - + Liechtenstein Лихтенштейн - + Sri Lanka Шри-Ланка - + Liberia Либерия - + Lesotho Лесото - + Lithuania Литва - + Luxembourg Люксембург - + Latvia Латвия - Libyan Arab Jamahiriya - Ливия + Ливия - + Morocco Марокко - + Monaco Монако - + Moldova, Republic of Молдавия - + Madagascar Мадагаскар - + Marshall Islands Маршалловы Острова - Macedonia - Македония + Македония - + Mali Мали - + Myanmar Мьянма - + Mongolia Монголия - Macau - Макао + Макао - + Northern Mariana Islands Северные Марианские острова - + Martinique Мартиника - + Mauritania Мавритания - + Montserrat Монтсеррат - + Malta Мальта - + Mauritius Маврикий - + Maldives Мальдивы - + Malawi Малави - + Mexico Мексика - + Malaysia Малайзия - + Mozambique Мозамбик - + Namibia Намибия - + New Caledonia Новая Каледония - + Niger Нигер - + Norfolk Island - Норфолк + Остров Норфолк - + Nigeria Нигерия - + Nicaragua Никарагуа - + Netherlands Нидерланды - + Norway Норвегия - + Nepal Непал - + Nauru Науру - + Niue Ниуэ - + New Zealand Новая Зеландия - + Oman Оман - + Panama Панама - + Peru Перу - + French Polynesia Французская Полинезия - + Papua New Guinea Папуа — Новая Гвинея - + Philippines Филиппины - + Pakistan Пакистан - + Poland Польша - + Saint Pierre and Miquelon Сен-Пьер и Микелон - Pitcairn Islands - Острова Питкэрн + Острова Питкэрн - + Puerto Rico Пуэрто-Рико - Palestinian Territory - Палестина + Палестина - + Portugal Португалия - + Palau Палау - + Paraguay Парагвай - + Qatar Катар - + Reunion Реюньон - + Romania Румыния - + Russian Federation Российская Федерация - + Rwanda Руанда - + Saudi Arabia Саудовская Аравия - + Solomon Islands Соломоновы Острова - + Seychelles Сейшельские Острова - + Sudan Судан - + Sweden Швеция - + Singapore Сингапур - Saint Helena - Остров Святой Елены + Остров Святой Елены - + Slovenia Словения - + Svalbard and Jan Mayen Шпицберген и Ян-Майен - + Slovakia Словакия - + Sierra Leone Сьерра-Леоне - + San Marino Сан-Марино - + Senegal Сенегал - + Somalia Сомали - + Suriname Суринам - + Sao Tome and Principe Сан-Томе и Принсипи - + El Salvador Сальвадор - + Syrian Arab Republic Сирия - + Swaziland Свазиленд - + Turks and Caicos Islands Теркс и Кайкос - + Chad Чад - + French Southern Territories Французские Южные и Антарктические территории - + Togo Того - + Thailand Thailand - + Tajikistan Таджикистан - + Tokelau Токелау - + Turkmenistan Туркмения - + Tunisia Тунис - + Tonga Тонга - + Timor-Leste Восточный Тимор - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Турция - + Trinidad and Tobago Тринидад и Тобаго - + Tuvalu Тувалу - + Taiwan Тайвань - + Tanzania, United Republic of Танзания - + Ukraine Украина - + Uganda Уганда - + United States Minor Outlying Islands Внешние малые острова США - + United States - Соединённые Штаты Америки + Соединенные Штаты Америки - + Uruguay Уругвай - + Uzbekistan Узбекистан - + Holy See (Vatican City State) Ватикан - + Saint Vincent and the Grenadines Сент-Винсент и Гренадины - Venezuela - Венесуэла + Венесуэла - + Virgin Islands, British Британские Виргинские острова - + Virgin Islands, U.S. - Виргинские Острова + Виргинские Острова, США - Vietnam - Вьетнам + Вьетнам - + Vanuatu Вануату - + Wallis and Futuna Уоллис и Футуна - + Samoa Самоа - + Yemen Йемен - + Mayotte Майотта - + Serbia Сербия - + South Africa Южно-Африканская Республика - + Zambia Замбия - + Montenegro Черногория - + Zimbabwe Зимбабве - Anonymous Proxy - Анонимный прокси + Анонимный прокси - Satellite Provider - Спутниковый провайдер + Спутниковый провайдер - Other - Другое + Другое - + Aland Islands Аландские острова - + Guernsey Гернси - + Isle of Man Остров Мэн - + Jersey Джерси - + Saint Barthelemy Сен-Бартелеми - Saint Martin - Сен-Мартен + Сен-Мартен - + Could not uncompress GeoIP database file. Не удалось распаковать файл базы данных GeoIP. - + Couldn't save downloaded GeoIP database file. Не удалось сохранить загруженный файл базы данных GeoIP. - + Successfully updated GeoIP database. База данных GeoIP успешно обновлена. - + Couldn't download GeoIP database file. Reason: %1 Не удалось загрузить файл базы данных GeoIP. Причина: %1 @@ -3838,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - заинтересованный (клиент) и блокированный (пир) + заинтересованный (клиент) и блокированный (пир) interested(local) and unchoked(peer) - заинтересованный (клиент) и разблокированный (пир) + заинтересованный (клиент) и разблокированный (пир) interested(peer) and choked(local) - заинтересованный (пир) и блокированный (клиент) + заинтересованный (пир) и блокированный (клиент) interested(peer) and unchoked(local) - заинтересованный (пир) и разблокированный (клиент) + заинтересованный (пир) и разблокированный (клиент) optimistic unchoke - оптимистичная разблокировка + оптимистичная разблокировка peer snubbed - застопоренный пир + застопоренный пир incoming connection - входящее соединение + входящее соединение not interested(local) and unchoked(peer) - незаинтересованный (клиент) и разблокированный (пир) + незаинтересованный (клиент) и разблокированный (пир) not interested(peer) and unchoked(local) - незаинтересованный (пир) и разблокированный (клиент) + незаинтересованный (пир) и разблокированный (клиент) peer from PEX - пир из PEX + пир из PEX peer from DHT - пир из DHT + пир из DHT encrypted traffic - шифрованное соединение + шифрованное соединение encrypted handshake - шифрованное "рукопожатие" + шифрованное рукопожатие peer from LSD - пир из LSD + пир из LSD @@ -3971,130 +3989,80 @@ Are you sure you want to quit qBittorrent? Релевантность - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Добавить нового пира… - + Copy selected Копировать выделенное - - + + Ban peer permanently Заблокировать пира навсегда - + Manually adding peer '%1'... Ручное добавление пира '%1'… - + The peer '%1' could not be added to this torrent. Пир '%1' не может быть добавлен к этому торренту. - + Manually banning peer '%1'... Ручкая блокировка пира '%1'... - - + + Peer addition Добавление пира - + Some peers could not be added. Check the Log for details. - Некоторые пиры не могут быть добавлены. Смотрите лог для деталей. + Некоторые пиры не могут быть добавлены. Смотрите журнал для получения подробной информации. - + The peers were added to this torrent. Пиры были добавлен к этому торренту. - + Are you sure you want to ban permanently the selected peers? Вы уверены, что хотите навсегда заблокировать выделенных пиров? - + &Yes &Да - + &No &Нет - - interested(local) and choked(peer) - заинтересованный (клиент) и блокированный (пир) - - - interested(local) and unchoked(peer) - заинтересованный (клиент) и разблокированный (пир) - - - interested(peer) and choked(local) - заинтересованный (пир) и блокированный (клиент) - - - interested(peer) and unchoked(local) - заинтересованный (пир) и разблокированный (клиент) - - - optimistic unchoke - оптимистичная разблокировка - - - peer snubbed - застопоренный пир - - - incoming connection - входящее соединение - - - not interested(local) and unchoked(peer) - незаинтересованный (клиент) и разблокированный (пир) - - - not interested(peer) and unchoked(local) - незаинтересованный (пир) и разблокированный (клиент) - - - peer from PEX - пир из PEX - - - peer from DHT - пир из DHT - - - encrypted traffic - шифрованное соединение - - - encrypted handshake - шифрованное "рукопожатие" - - - peer from LSD - пир из LSD - PeersAdditionDlg No peer entered - Пир не введён. + Пир не введен @@ -4104,7 +4072,7 @@ Are you sure you want to quit qBittorrent? Invalid peer - Некорректный пир. + Некорректный пир @@ -4125,6 +4093,203 @@ Are you sure you want to quit qBittorrent? Синий: Части доступны + + PluginSelectDlg + + + Search plugins + Поисковики + + + + Installed search plugins: + + + + + Name + Имя + + + + Version + Версия + + + + Url + Ссылка + + + + + Enabled + Включено + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Вы можете загрузить новые поисковики с <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Установить новый + + + + Check for updates + Проверить обновления + + + + Close + Закрыть + + + + Uninstall + Удалить + + + + + + Yes + Да + + + + + + + No + Нет + + + + Uninstall warning + Удаление не выполнено + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Некоторые поисковики не могут быть удалены, так как включены в qBittorrent. Удалены могут быть лишь те, что Вы установили сами. +Эти поисковики были отключены. + + + + Uninstall success + Успешно удалено + + + + All selected plugins were uninstalled successfully + Все выбранные поисковики были успешно удалены + + + + + New search engine plugin URL + Адрес нового поисковика + + + + + URL: + Адрес: + + + + Invalid link + Некорректная ссылка + + + + The link doesn't seem to point to a search engine plugin. + Ссылка не указывает на поисковик. + + + + Select search plugins + Выбрать поисковик + + + + qBittorrent search plugin + Поисковик qBittorrent + + + + + + Search plugin update + Обновление поисковика + + + + All your plugins are already up to date. + Все Ваши поисковики имеют последние версии. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Установка поисковика + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Исходный код плагина + + + + Search plugin source: + Исходный код поисковика: + + + + Local file + Локальный файл + + + + Web link + Ссылка + + Preferences @@ -4178,92 +4343,92 @@ Are you sure you want to quit qBittorrent? Append .!qB extension to incomplete files - Добавить расширение .!qB к незавершённым файлам + Добавить расширение .!qB к незавершенным файлам - + Copy .torrent files to: - Скопировать .torrent файл в: + Скопировать торрент-файл в: - + Connections Limits Ограничения соединений - + Proxy Server Прокси-сервер - + Global Rate Limits Общие ограничения скорости - + Apply rate limit to transport overhead Применять ограничения скорости к служебному трафику - + Schedule the use of alternative rate limits - Запланировать использование иныхограничений скорости + Запланировать использование других ограничений скорости - + From: from (time1 to time2) Из: - + To: time1 to time2 В: - + Enable Local Peer Discovery to find more peers Включить обнаружение локальных пиров, чтобы найти больше пиров - + Encryption mode: Режим шифрования: - + Prefer encryption Предпочитать шифрование - + Require encryption Требовать шифрование - + Disable encryption Отключить шифрование - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Подробнее</a>) - + Maximum active downloads: Максимальное число активных загрузок: - + Maximum active uploads: Максимальное число активных раздач: - + Maximum active torrents: Максимальное число активных торрентов: @@ -4288,82 +4453,82 @@ Are you sure you want to quit qBittorrent? Отображать содержимое торрента и дополнительные настройки - + Run external program on torrent completion Запустить внешнюю программу по окончании загрузки торрента - + Port used for incoming connections: Порт для входящих соединений: - + Random Случайный - + Global maximum number of connections: Общее ограничение числа соединений: - + Maximum number of connections per torrent: Максимальное число соединений на торрент: - + Maximum number of upload slots per torrent: Максимальное число слотов отдачи на торрент: - - + + Upload: Отдача: - - + + Download: Загрузка: - - - - + + + + KiB/s КБ/с - + Remove folder Удалить папку - + Every day Каждый день - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Обмен пирами с совместимыми клиентами BitTorrent (µTorrent, Vuze, …) - + Host: Хост: - + SOCKS4 SOCKS4 - + Type: Тип: @@ -4391,7 +4556,7 @@ Are you sure you want to quit qBittorrent? Completed torrents: - Завершённые торренты: + Завершенные торренты: @@ -4401,12 +4566,12 @@ Are you sure you want to quit qBittorrent? Show splash screen on start up - Показать заставку при загрузке + Показать заставку при запуске Start qBittorrent minimized - Запускать qBittorrent свёрнутым + Запускать qBittorrent свернутым @@ -4432,7 +4597,7 @@ Are you sure you want to quit qBittorrent? Monochrome (Dark theme) - Монохромная (тёмная тема) + Монохромная (темная тема) @@ -4477,7 +4642,7 @@ Are you sure you want to quit qBittorrent? Use qBittorrent for .torrent files - Использовать qBittorrent для .torrent файлов + Использовать qBittorrent для торрент-файлов @@ -4508,7 +4673,7 @@ Are you sure you want to quit qBittorrent? Hard Disk - Жёсткий диск + Жесткий диск @@ -4528,7 +4693,7 @@ Are you sure you want to quit qBittorrent? Keep incomplete torrents in: - Хранить незавершённые торренты в: + Хранить незавершенные торренты в: @@ -4536,262 +4701,262 @@ Are you sure you want to quit qBittorrent? Автоматически добавлять торренты из: - + Add folder... Добавить папку… - + Copy .torrent files for finished downloads to: - Копировать .torrent файлы завершённых загрузок в: + Копировать торрент-файлы завершенных загрузок в: - + Email notification upon download completion Сообщать об окончании загрузки по e-mail - + Destination email: E-mail получателя: - + SMTP server: SMTP сервер: - + This server requires a secure connection (SSL) - Этот сервер требует защищённого соединения (SSL) + Этот сервер требует защищенного соединения (SSL) - + Listening Port Прослушиваемый порт - + Use UPnP / NAT-PMP port forwarding from my router Использовать UPnP / NAT-PMP моего маршрутизатора - + Use different port on each startup Использовать случайный порт при запуске - + Global maximum number of upload slots: Общее ограничение слотов отдачи: - + Otherwise, the proxy server is only used for tracker connections Иначе прокси-сервер используется только для соединения с трекерами - + Use proxy for peer connections Использовать прокси для соединения с пирами - + Disable connections not supported by proxies Не использовать протоколы, неподдерживаемые прокси-сервером - + Use proxy only for torrents Использовать прокси только для торрентов - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - RSS подписки, поисковые движки, программные обновления и прочее, что не относится к передаче торрентов (например, обмен пирами), будет использовать прямое соединение. + RSS-подписки, поисковики, программные обновления и прочее, что не относится к передаче торрентов (например, обмен пирами), будет использовать прямое соединение - + Info: The password is saved unencrypted Примечание: пароль хранится в незашифрованном виде - + IP Filtering Фильтрация по IP - + Reload the filter Перезагрузить фильтр - + Apply to trackers Применить к трекерам - + Apply rate limit to peers on LAN Применять ограничение скорости к локальным пирам - + When: Когда: - + Weekdays Будни - + Weekends Выходные - + Rate Limits Settings - Настройки ограчения скорости + Настройки ограничения скорости - + Enable µTP protocol Задействовать протокол µTP - + Apply rate limit to µTP protocol Применять ограничение скорости к протоколу µTP - + Privacy Приватность - + Enable DHT (decentralized network) to find more peers Включить DHT (децентрализованную сеть), чтобы найти больше пиров - + Enable Peer Exchange (PeX) to find more peers Включить обмен пирами (PeX), чтобы найти больше пиров - + Look for peers on your local network - Искать пиров в вашей локальной сети + Искать пиров в Вашей локальной сети - + Enable when using a proxy or a VPN connection Рекомендуется использовать при подключении через прокси или VPN - + Enable anonymous mode Включить анонимный режим - + Do not count slow torrents in these limits Не учитывать количество медленных торрентов в этих ограничениях - + Seed torrents until their ratio reaches Раздавать торренты, пока их коэффициент не достигнет - + then затем - + Pause them Приостановить - + Remove them Удалить - + Automatically add these trackers to new downloads: - Автоматически добавлять данные трекеры к новым загрузкам: + Автоматически добавлять эти трекеры к новым загрузкам: - + Use UPnP / NAT-PMP to forward the port from my router Использовать UPnP / NAT-PMP для перенаправления портов через мой маршрутизатор - + Use HTTPS instead of HTTP Использовать HTTPS вместо HTTP - + Import SSL Certificate Импортировать сертификат SSL - + Import SSL Key Импортировать ключ SSL - + Certificate: Сертификат: - + Alternative Rate Limits - Иные ограничения скорости + Другие ограничения скорости - + Key: Ключ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Информация о сертификатах</a> - + Bypass authentication for localhost Пропускать аутентификацию для localhost - + Update my dynamic domain name - Обновлять мой динамический DNS + Обновлять мое доменное имя - + Service: Служба: - + Register Регистрация - + Domain name: Доменное имя: - + (None) (нет) @@ -4801,68 +4966,68 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Порт: - - - + + + Authentication Аутентификация - - - - + + + + Username: Имя пользователя: - - - - + + + + Password: Пароль: - + Torrent Queueing Очередность торрентов - + Share Ratio Limiting Ограничение коэффициента раздачи - + Enable Web User Interface (Remote control) - Включить веб-интерфейс (удалённое управление) + Включить веб-интерфейс (удаленное управление) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Путь к фильтрам (.dat, .p2p, .p2b): Detected unclean program exit. Using fallback file to restore settings. - Обнаружено некорректное завешение программы. Производится попытка восстановить настройки из резервной копии. + Обнаружено некорректное завершение программы. Производится попытка восстановления настроек из резервной копии. @@ -4937,7 +5102,7 @@ Are you sure you want to quit qBittorrent? Maximum Maximum (priority) - Высший + Максимальный @@ -5061,10 +5226,6 @@ Are you sure you want to quit qBittorrent? Comment: Комментарий: - - Torrent content: - Содержимое торрента: - Select All @@ -5093,7 +5254,7 @@ Are you sure you want to quit qBittorrent? Reannounce In: - След. анонс: + Следующий анонс: @@ -5103,7 +5264,7 @@ Are you sure you want to quit qBittorrent? Total Size: - Общий объем: + Общий размер: @@ -5123,7 +5284,7 @@ Are you sure you want to quit qBittorrent? Completed On: - Завершён: + Завершен: @@ -5143,7 +5304,7 @@ Are you sure you want to quit qBittorrent? Maximum - Высший + Максимальный @@ -5172,13 +5333,13 @@ Are you sure you want to quit qBittorrent? %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - %1 (раздаётся в течении %2) + %1 (раздается в течение %2) %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - %1 (%2 макс) + %1 (%2 макс.) @@ -5217,12 +5378,12 @@ Are you sure you want to quit qBittorrent? New Web seed - Новый Web-сид + Новый веб-сид Remove Web seed - Удалить Web-сид + Удалить веб-сид @@ -5296,7 +5457,7 @@ Are you sure you want to quit qBittorrent? Web seed editing - Редактирование Web-сида + Редактирование веб-сида @@ -5326,7 +5487,7 @@ Are you sure you want to quit qBittorrent? I/O Error: Could not create temporary file. - Ошибка ввода-вывода: Невозможно создать временный файл + Ошибка ввода-вывода: невозможно создать временный файл. @@ -5338,7 +5499,7 @@ Are you sure you want to quit qBittorrent? %1 must be the single command line parameter. - % 1 должен быть единственным параметром командной строки. + %1 должен быть единственным параметром командной строки. @@ -5358,7 +5519,7 @@ Are you sure you want to quit qBittorrent? Options: - Настройки + Настройки: @@ -5378,7 +5539,7 @@ Are you sure you want to quit qBittorrent? Disable splash screen - Отключить заставку при загрузке + Отключить заставку при запуске @@ -5393,12 +5554,12 @@ Are you sure you want to quit qBittorrent? Help - Помощь + Справка Run application with -h option to read about command line parameters. - Запустите программу с параметром -h, чтобы получить справку по параметрам командной строки + Запустите программу с параметром -h, чтобы получить справку по параметрам командной строки. @@ -5421,14 +5582,14 @@ Are you sure you want to quit qBittorrent? qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility. No further notices will be issued. - qBittorrent — это программа для обмена файлами. При запуске торрента информация, связанная с ним, становится доступна другим пользователям посредством раздачи. Вы несёте персональную ответственность за всю информацию, которой делитесь с другими пользователями. + qBittorrent — это программа для обмена файлами. При запуске торрента информация, связанная с ним, становится доступна другим пользователям посредством раздачи. Вы несете персональную ответственность за всю информацию, которой делитесь с другими пользователями. -Никаких дальнейших уведомлений выводится не будет. +Никаких дальнейших уведомлений выводиться не будет. Press %1 key to accept and continue... - Нажмите %1 чтобы принять и продолжить… + Нажмите %1, чтобы принять и продолжить… @@ -5504,7 +5665,7 @@ No further notices will be issued. The remote server refused the connection - Удалённый сервер отклонил соединение + Удаленный сервер отклонил соединение @@ -5549,7 +5710,7 @@ No further notices will be issued. The remote server requires authentication to serve the content but the credentials provided were not accepted - Удалённый сервер требует аутентификации для отдачи данных, но указанные учетные данные не были приняты + Удаленный сервер требует аутентификации для отдачи данных, но указанные учетные данные не были приняты @@ -5587,28 +5748,28 @@ No further notices will be issued. Неизвестная ошибка - - + + Upgrade Обновить - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем вы не сможете использовать версии старше v3.3.0. Продолжить? [у/n] + Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем Вы не сможете использовать версии ранее 3.3.0. Продолжить? [у/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем вы не сможете использовать версии старше v3.3.0. + Вы обновились со старой версии, которая сохраняла настройки иначе. Вы должны перейти на новую систему сохранения. В дальнейшем Вы не сможете использовать версии ранее 3.3.0. - + Couldn't migrate torrent with hash: %1 Не удалось перенести торрент с хешем: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Не удалось перенести торрент. Неверное имя файла "быстрого возобновления": %1 @@ -5650,7 +5811,7 @@ No further notices will be issued. Torrents: (double-click to download) - Торренты: (двойной клик для загрузки) + Торренты: (двойной щелчок для загрузки) @@ -5713,25 +5874,25 @@ No further notices will be issued. Refresh RSS streams - Обновить RSS потоки + Обновить RSS-потоки RSSImp - + Stream URL: Адрес потока: - + Please type a RSS stream URL - Введите адрес RSS потока + Введите адрес RSS-потока - + This RSS feed is already in the list. - Этот RSS канал уже в списке. + Этот RSS-канал уже в списке. @@ -5749,75 +5910,92 @@ No further notices will be issued. Новая папка - + Deletion confirmation Подтверждение удаления - + Are you sure you want to delete the selected RSS feeds? Вы уверены, что хотите удалить выбранную подписку RSS? - + Please choose a new name for this RSS feed - Укажите новое имя для этого RSS канала + Укажите новое имя для этого RSS-канала - + New feed name: Новое имя канала: - + Name already in use Имя уже используется - + This name is already used by another item, please choose another one. Это имя уже используется. Выберите, пожалуйста, другое. - + Date: Дата: - + Author: Автор: - + Unread Непрочитанные - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Автоматическая загрузка '%1' из RSS канала '%2' не удалась, потому что он не содержит торрента или магнет-ссылки... + Автоматическая загрузка '%1' из RSS-канала '%2' не удалась, потому что он не содержит торрента или магнет-ссылки... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Автоматическая загрузка торрента '%1' с RSS канала '%2'... + Автоматическая загрузка торрента '%1' с RSS-канала '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Автоматическая загрузка '%1' из RSS-канала '%2' не удалась, потому что он не содержит торрента или магнет-ссылки... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Автоматическая загрузка торрента '%1' с RSS-канала '%2'... RssParser - Failed to open downloaded RSS file. - Ошибка при открытии загруженного RSS файла. + Ошибка при открытии загруженного RSS-файла. - Invalid RSS feed at '%1'. - Некорректный RSS канал '%1'. + Некорректный RSS-канал '%1'. @@ -5825,12 +6003,12 @@ No further notices will be issued. RSS Reader Settings - Настройки читалки RSS + Настройки RSS-менеджера RSS feeds refresh interval: - Интервал обновления RSS каналов: + Интервал обновления RSS-каналов: @@ -5843,168 +6021,249 @@ No further notices will be issued. Максимальное число статей на канал: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Обзор… + + + + Choose save path + Выберите путь сохранения + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Отслеживаемые папки - - Download here - Загружать сюда + + Save Files to + + + + Download here + Загружать сюда - Download path - Папка загрузки + Папка загрузки SearchCategories - All categories - Все категории + Все категории - Movies - Фильмы + Фильмы - TV shows - ТВ-шоу + ТВ-шоу - Music - Музыка + Музыка - Games - Игры + Игры - Anime - Аниме + Аниме - Software - Программы + Программы - Pictures - Изображения + Изображения - Books - Книги + Книги SearchEngine - - - Search - Поиск + Поиск - Please install Python to use the Search Engine. - Пожалуйста установите Python для использования поискового движка. + Пожалуйста установите Python для использования поисковика. - Empty search pattern - Очистить шаблон поиска + Очистить шаблон поиска - Please type a search pattern first - Пожалуйста, задайте сначала шаблон поиска + Пожалуйста, задайте сначала шаблон поиска - Searching... - Поиск… + Поиск… - Stop - Стоп + Стоп - - Search Engine - Поисковик + Поисковик - - Search has finished - Поиск завершен + Поиск завершен - An error occurred during search... - Во время поиска произошла ошибка… + Во время поиска произошла ошибка… - - Search aborted - Поиск прерван + Поиск прерван - All enabled - Все работающие + Все работающие - All engines - Все движки + Все поисковики - - Multiple... - Множественный… + Множественный… - - Results <i>(%1)</i>: i.e: Search results - Результаты <i>(%1)</i>: + Результаты <i>(%1)</i>: - Search returned no results - Поиск не дал результатов + Поиск не дал результатов - Stopped - Остановлено + Остановлено + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Все категории + + + + Movies + Фильмы + + + + TV shows + ТВ-шоу + + + + Music + Музыка + + + + Games + Игры + + + + Anime + Аниме + + + + Software + Программы + + + + Pictures + Изображения + + + + Books + Книги SearchListDelegate - - + + Unknown Неизвестно @@ -6012,35 +6271,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Имя - + Size i.e: file size Размер - + Seeders i.e: Number of full sources Сиды - + Leechers i.e: Number of partial sources Пиры - + Search engine Поисковик + + SearchWidget + + + + + + + Search + Поиск + + + + Status: + Состояние: + + + + + Stopped + Остановлено + + + + Download + Загрузить + + + + Go to description page + Перейти на страницу описания + + + + Copy description page URL + Скопировать адрес страницы описания + + + + Search plugins... + + + + + All enabled + Все работающие + + + + All plugins + + + + + + Multiple... + Множественный… + + + + + + Search Engine + Поисковик + + + + Please install Python to use the Search Engine. + Пожалуйста установите Python для использования поисковика. + + + + Empty search pattern + Очистить шаблон поиска + + + + Please type a search pattern first + Пожалуйста, задайте сначала шаблон поиска + + + + + Results <i>(%1)</i>: + i.e: Search results + Результаты <i>(%1)</i>: + + + + Searching... + Поиск… + + + + Stop + Стоп + + + + + Search has finished + Поиск завершен + + + + + Search aborted + Поиск прерван + + + + Search returned no results + Поиск не дал результатов + + + + Search has failed + + + + + An error occurred during search... + Во время поиска произошла ошибка… + + ShutdownConfirmDlg @@ -6066,22 +6450,22 @@ No further notices will be issued. qBittorrent will now exit unless you cancel within the next %1 seconds. - qBittorrent закроется, если вы не отмените это в течение следующих %1 секунд... + qBittorrent закроется, если Вы не отмените это в течение следующих %1 секунд. The computer will now be switched off unless you cancel within the next %1 seconds. - Сейчас компьютер будет отключён, если вы не отмените это в течение следующих %1 секунд... + Сейчас компьютер будет отключен, если Вы не отмените это в течение следующих %1 секунд. The computer will now go to sleep mode unless you cancel within the next %1 seconds. - Сейчас компьютер перейдёт в ждущий режим, если вы не отмените это в течение следующих %1 секунд... + Сейчас компьютер перейдет в ждущий режим, если Вы не отмените это в течение следующих %1 секунд. The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - Сейчас компьютер перейдёт в спящий режим, если вы не отмените это в течение следующих %1 секунд... + Сейчас компьютер перейдет в спящий режим, если Вы не отмените это в течение следующих %1 секунд. @@ -6268,12 +6652,12 @@ No further notices will be issued. Cache statistics - Кеш + Кэш Read cache Hits: - Попаданий в кеш чтения: + Попаданий в кэш чтения: @@ -6293,7 +6677,7 @@ No further notices will be issued. Write cache overload: - Перегрузка кеша записи: + Перегрузка кэша записи: @@ -6303,12 +6687,12 @@ No further notices will be issued. Read cache overload: - Перегрузка кеша чтения: + Перегрузка кэша чтения: Total queued size: - Размер очереди: + Общий размер очереди: @@ -6365,7 +6749,7 @@ No further notices will be issued. Click to switch to alternative speed limits - Нажмите для включения иных ограничений скорости + Нажмите для включения других ограничений скорости @@ -6485,24 +6869,28 @@ No further notices will be issued. TorrentContentModel - + Name Имя - + Size Размер - + Progress Прогресс - + + Download Priority + + + Priority - Приоритет + Приоритет @@ -6530,12 +6918,12 @@ No further notices will be issued. Select destination torrent file - Выберите торрент-файл назначения + Выберите имя и путь сохранения Torrent Files (*.torrent) - Торрент файлы (*.torrent) + Торрент-файлы (*.torrent) @@ -6571,12 +6959,12 @@ No further notices will be issued. This assistant will help you share with qBittorrent a torrent that you have already downloaded. - Здесь можно настроить раздачу торрента, который вы уже загрузили. + Здесь можно настроить раздачу торрента, который Вы уже загрузили. Torrent file to import: - Имя файла торрента для импорта: + Импортируемый торрент-файл: @@ -6601,7 +6989,7 @@ No further notices will be issued. Torrent file to import - Торрент-файл для импорта + Импортируемый торрент-файл @@ -6713,7 +7101,7 @@ No further notices will be issued. Completed On Torrent was completed on 01/01/2010 08:00 - Завершён + Завершен @@ -6854,38 +7242,38 @@ No further notices will be issued. Предупреждения (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Не удалось декодировать favicon для адреса '%1'. Попытка загрузить favicon в формате PNG. - + Couldn't decode favicon for URL '%1'. Не удалось декодировать favicon для адреса '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Не удалось загрузить favicon для адреса '%1'. Причина: %2 - + Resume torrents Возобновить - + Pause torrents Приостановить - + Delete torrents Удалить - - + + All (%1) this is for the tracker filter Все (%1) @@ -7083,7 +7471,7 @@ No further notices will be issued. Seeding Torrent is complete and in upload-only mode - Раздаётся + Раздается @@ -7101,7 +7489,7 @@ No further notices will be issued. [F] Seeding used when the torrent is forced started. You probably shouldn't translate the F. - [F] Раздаётся + [F] Раздается @@ -7124,7 +7512,7 @@ No further notices will be issued. Completed - Завершён + Завершен @@ -7141,7 +7529,7 @@ No further notices will be issued. %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - %1 (раздавался в течении %1) + %1 (раздавался в течение %2) @@ -7153,17 +7541,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Статус - + Labels Метки - + Trackers Трекеры @@ -7173,7 +7561,7 @@ No further notices will be issued. Column visibility - Отображение колонок + Отображение столбцов @@ -7406,7 +7794,7 @@ No further notices will be issued. Web UI Error - Unable to bind Web UI to port %1 - Ошибка веб-интерфейса - невозможно занять порт %1 + Ошибка веб-интерфейса — невозможно занять порт %1 @@ -7414,7 +7802,7 @@ No further notices will be issued. An advanced BitTorrent client programmed in <nobr>C++</nobr>, based on Qt toolkit and libtorrent-rasterbar. - Продвинутый BitTorrent клиент, написанный на <nobr>C++</nobr>. Использует фреймворк Qt и библиотеку libtorrent-rasterbar. + Продвинутый BitTorrent-клиент, написанный на <nobr>C++</nobr>. Использует фреймворк Qt и библиотеку libtorrent-rasterbar. @@ -7557,7 +7945,7 @@ No further notices will be issued. Web seeds urls: - Адрес веб-сида: + Адреса веб-сидов: @@ -7573,7 +7961,7 @@ No further notices will be issued. Piece size: - Размер кусочка: + Размер части: @@ -7638,7 +8026,7 @@ No further notices will be issued. Private (won't be distributed on DHT network if enabled) - Закрытый (не будет раздаваться через безтрекерную сеть DHT при включении) + Закрытый (не будет раздаваться через бестрекерную сеть DHT при включении) @@ -7671,7 +8059,7 @@ No further notices will be issued. One per line (HTTP links, Magnet links and info-hashes are supported) - Одна ссылка на строку (поддерживаются ссылки HTTP, magnet-ссылки и info-хеши) + Одна ссылка на строку (поддерживаются HTTP-ссылки, magnet-ссылки и info-хеши) @@ -7702,206 +8090,155 @@ No further notices will be issued. engineSelect - Search plugins - Дополнения поиска + Поисковики - Installed search engines: - Установленные плагины поиска: + Установленные поисковики: - Name - Имя + Имя - Version - Версия + Версия - Url - Ссылка + Ссылка - - Enabled - Включено + Включено - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Вы можете скачать новые дополнения поиска здесь: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Вы можете загрузить новые поисковики с <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Установить новый + Установить новый - Check for updates - Проверить обновления + Проверить обновления - Close - Закрыть + Закрыть - Uninstall - Удалить + Удалить engineSelectDlg - Uninstall warning - Удаление не выполнено + Удаление не выполнено - Uninstall success - Успешно удалено + Успешно удалено - Invalid plugin - Недопустимое дополнение + Недопустимый поисковик - The search engine plugin is invalid, please contact the author. - Данное поисковое дополнение не работает, пожалуйста, свяжитесь с его автором. + Этот поисковик не работает, пожалуйста, свяжитесь с его автором. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Последняя версия поискового движка '%1' уже установлена. + Уже установлена последняя версия поисковика '%1'. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Плагин поискового движка '%1' не может быть обновлен, остаётся старая версия. + Поисковик '%1' не может быть обновлен, остается старая версия. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Плагин поискового движка '%1' не может быть установлен. + Поисковик '%1' не может быть установлен. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Плагин поискового движка '%1' был успешно обновлен. + Поисковик '%1' успешно обновлен. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Плагин поискового движка '%1' был успешно установлен. + Поисковик '%1' успешно установлен. - The link doesn't seem to point to a search engine plugin. - Ссылка не указывает на дополнение поиска. + Ссылка не указывает на поисковик. - Select search plugins - Выбрать дополнения поиска + Выбрать поисковик - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Извините, установка поискового плагина '%1' не удалась. + Извините, установка поисковика '%1' не удалась. - - - - - Search plugin install - Установка дополнения поиска + Установка поисковика - - - Yes - Да + Да - - - - No - Нет + Нет - qBittorrent search plugin - Дополнение поиска qBittorrent + Поисковик qBittorrent - - - - Search plugin update - Обновление дополнений поиска + Обновление поисковика - - Sorry, update server is temporarily unavailable. - Извините, сервер обновлений временно недоступен. + Извините, сервер обновлений временно недоступен. - All your plugins are already up to date. - Все ваши дополнения имеют последние версии. + Все Ваши поисковики имеют последние версии. - All selected plugins were uninstalled successfully - Все выбранные дополнения были успешно удалены + Все выбранные поисковики были успешно удалены - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Некоторые дополнения не могут быть удалены, так как включены в qBittorrent. Удалены могут быть лишь те, что вы установили сами. -Данные дополнения были отключены. + Некоторые поисковики не могут быть удалены, так как включены в qBittorrent. Удалены могут быть лишь те, что Вы установили сами. +Эти поисковики были отключены. - Invalid link - Некорректная ссылка + Некорректная ссылка - - New search engine plugin URL - Адрес нового дополнения поиска + Адрес нового поисковика - - URL: - Адрес: + Адрес: @@ -7954,7 +8291,7 @@ Those plugins were disabled. TiB tebibytes (1024 gibibytes) - Тб + ТБ @@ -7999,7 +8336,7 @@ Those plugins were disabled. < 1m < 1 minute - < 1м + < 1 мин @@ -8031,169 +8368,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Выберите папку для экспорта - - - - + + + + Choose a save directory Выберите путь сохранения - + Add directory to scan Добавить папку для сканирования - + Supported parameters (case sensitive): Поддерживаемые параметры (с учетом регистра): - + %N: Torrent name %N: Имя торрента - + %L: Label %L: Метка - + %F: Content path (same as root path for multifile torrent) %F: Папка содержимого (та же, что и корневая папка для множественных торрентов) - + %R: Root path (first torrent subdirectory path) %R: Корневая папка (главный путь для подкаталога торрента) - + %D: Save path %D: Путь сохранения - + %C: Number of files %C: Количество файлов - + %Z: Torrent size (bytes) %Z: Размер торрента (в байтах) - + %T: Current tracker %T: Текущий трекер - + %I: Info hash %I: Хеш - + Folder is already being watched. Папка уже отслеживается. - + Folder does not exist. Папка не существует. - + Folder is not readable. Папка недоступна для чтения. - + Failure Ошибка - + Failed to add Scan Folder '%1': %2 Не удалось добавить папку для сканирования '%1': %2 - - + + Filters Фильтры - - + + Choose an IP filter file Укажите файл IP-фильтра - + SSL Certificate Сертификат SSL - + SSL Key Ключ SSL - + Parsing error Ошибка разбора - + Failed to parse the provided IP filter - Невозможно разобрать данный IP фильтр + Невозможно разобрать данный IP-фильтр - + Successfully refreshed - Успешно обновлён + Успешно обновлен - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Указанный IP-фильтр был успешно проанализирован. Применено %1 правил. - + Invalid key Недействительный ключ - + This is not a valid SSL key. - Это недействительный SSL ключ. + Это недействительный ключ SSL. - + Invalid certificate Недействительный сертификат - + This is not a valid SSL certificate. - Это недействительный SSL сертификат. + Это недействительный сертификат SSL. - + The start time and the end time can't be the same. Время начала и завершения не могут быть одинаковыми. - + Time Error Ошибка времени @@ -8201,24 +8538,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Исходный код дополнения + Исходный код плагина - Search plugin source: - Исходный код дополнения поиска: + Исходный код поисковика: - Local file - Локальный файл + Локальный файл - Web link - Ссылка + Ссылка @@ -8247,40 +8580,32 @@ Those plugins were disabled. search_engine - - Search - Поиск + Поиск - Status: - Состояние: + Состояние: - Stopped - Остановлено + Остановлено - Download - Загрузить + Загрузить - Go to description page - Перейти на страницу описания + Перейти на страницу описания - Copy description page URL - Скопировать адрес страницы описания + Скопировать адрес страницы описания - Search engines... - Поисковики… + Поисковики… diff --git a/src/lang/qbittorrent_sk.ts b/src/lang/qbittorrent_sk.ts index bd099b862..b95ea3454 100644 --- a/src/lang/qbittorrent_sk.ts +++ b/src/lang/qbittorrent_sk.ts @@ -127,7 +127,7 @@ Set as default label - + Nastaviť ako predvolené označenie @@ -175,172 +175,172 @@ Nesťahovať - - + + I/O Error V/V chyba - + The torrent file does not exist. Súbor .torrent zatiaľ neexistuje. - + Invalid torrent Neplatný torrent - + Failed to load the torrent: %1 Nepodarilo sa načítať torrent: %1 - - + + Already in download list Už sa nachádza v zozname sťahovaných - + Free disk space: %1 Voľné miesto na disku: %1 - + Not Available This comment is unavailable Nedostupný - + Not Available This date is unavailable Nedostupný - + Not available Nedostupný - + Invalid magnet link Neplatný odkaz Magnet - + Torrent is already in download list. Trackers were merged. Torrent sa už nachádza v zozname sťahovaných. Trackery boli zlúčené. - - + + Cannot add torrent Nepodarilo sa pridať torrent - + Cannot add this torrent. Perhaps it is already in adding state. Nepodarilo sa pridať torrent. Pravdepodobne už je v zozname pridávaných. - + This magnet link was not recognized Tento odkaz Magnet nebol rozpoznaný - + Magnet link is already in download list. Trackers were merged. Odkaz Magnet sa už nachádza v zozname sťahovaných. Trackery boli zlúčené. - + Cannot add this torrent. Perhaps it is already in adding. Nepodarilo sa pridať torrent. Pravdepodobne už je v zozname pridávaných. - + Magnet link Odkaz Magnet - + Retrieving metadata... Získavajú sa metadáta... - + Not Available This size is unavailable. Nedostupný - - - + + + Choose save path Zvoľte cieľový adresár - + Rename the file Premenovať súbor - + New name: Nový názov: - - + + The file could not be renamed Nebolo možné premenovať súbor - + This file name contains forbidden characters, please choose a different one. Tento názov súboru obsahuje nepovolené znaky. Prosím, zvoľte iný názov. - - + + This name is already in use in this folder. Please use a different name. Tento názov sa v tomto adresári už používa. Prosím, zvoľte iný názov. - + The folder could not be renamed Nebolo možné premenovať priečinok - + Rename... Premenovať... - + Priority Priorita - + Invalid metadata Neplatné metadáta - + Parsing metadata... Spracovávajú sa metadáta... - + Metadata retrieval complete Získavanie metadát dokončené - + Download Error Chyba pri sťahovaní @@ -431,10 +431,6 @@ Resolve peer host names Prekladať názvy počítačov rovesníkov - - Maximum number of half-open connections [0: Disabled] - Maximálny počet polootvorených spojení [0: vypnuté] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maximálny počet polootvorených spojení [0: neobmedzený] @@ -661,205 +657,205 @@ &Exportovať... - + Matches articles based on episode filter. Nájde články podľa filtra epizód. - + Example: Príklad: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match nájde epizódy 2, 5, 8 až 15, 30 a všetky nasledujúce z prvej sezóny - + Episode filter rules: Pravidlá pre filtrovanie epizód: - + Season number is a mandatory non-zero value Číslo sezóny je povinná, nenulová hodnota - + Episode number is a mandatory non-zero value Číslo epizódy je povinná, nenulová hodnota - + Filter must end with semicolon Filter musí končiť bodkočiarkou - + Three range types for episodes are supported: Tri druhy rozsahov pre epizódy sú podporované: - + Single number: <b>1x25;</b> matches episode 25 of season one Jedno číslo: <b>1x25;</b> zodpovedá epizóde 25 prvej sezóny - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normálny rozsah: <b>1x25-40;</b> zodpovedá epizódam 25 až 40 prvej sezóny - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Neohraničený rozsah: <b>1x25-;</b> zodpovedá epizóde 25 a všetkým nasledujúcim z prvej sezóny - + Last Match: %1 days ago Naposledy nájdené: pred %1 dňami - + Last Match: Unknown Naposledy nájdené: neznáme - + New rule name Nový názov pravidla - + Please type the name of the new download rule. Prosím, napíšte nový názov pre tonto pravidlo sťahovania. - - + + Rule name conflict Konflikt v názvoch pravidel - - + + A rule with this name already exists, please choose another name. Pravidlo s týmto názvom už existuje. Prosím, zvoľte iný názov. - + Are you sure you want to remove the download rule named '%1'? Ste si istý, že chcete odstrániť pravidlo sťahovania s názvom '%1'? - + Are you sure you want to remove the selected download rules? Ste si istý, že chcete odstrániť vybrané pravidlá sťahovania? - + Rule deletion confirmation Potvrdenie zmazania pravidla - + Destination directory Cieľový adresár - + Invalid action Neplatná operácia - + The list is empty, there is nothing to export. Zoznam je prázdny, niet čo exportovať. - + Where would you like to save the list? Kam chcete uložiť tento súbor? - + Rules list (*.rssrules) Zoznam pravidiel (*.rssrules) - + I/O Error V/V Chyba - + Failed to create the destination file Nepodarilo sa vytvoriť cieľový súbor - + Please point to the RSS download rules file Prosím, vyberte súbor s pravidlami sťahovania RSS - + Rules list Zoznam pravidiel - + Import Error Chyba importu - + Failed to import the selected rules file Nepodarilo sa importovať vybraný súbor pravidiel - + Add new rule... Pridať nové pravidlo... - + Delete rule Zmazať pravidlo - + Rename rule... Premenovať pravidlo... - + Delete selected rules Zmazať vybrané pravidlá - + Rule renaming Premenovanie pravidiel - + Please type the new rule name Prosím, napíšte názov nového pravidla - + Regex mode: use Perl-like regular expressions Režim regulárnych výrazov: používať štýl Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Režim zástupných znakov: <ul><li>? zodpovedá ľubovoľnému jednotlivému znaku</li><li>* zodpovedá nula alebo viac ľubovoľným znakom</li><li>Netlačiteľné znaky sa počítajú ako operátory AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Režim zástupných znakov: <ul><li>? zodpovedá ľubovoľnému jednotlivému znaku</li><li>* zodpovedá nula alebo viac ľubovoľným znakom</li><li>| sa používa ako operátor OR</li></ul> @@ -952,65 +948,57 @@ '%1' dosiahol nastavený maximálny pomer zdieľania. Pozastavujem... - Error: Could not create torrent export directory: '%1' - Chyba: Nepodarilo sa vytvoriť adresár pre exportovanie torrentov: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Chyba: nepodarilo sa exportovať torrent '%1', zrejme ešte nemá metadáta. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Stav siete systému sa zmenil na %1 - + ONLINE pripojený - + OFFLINE nepripojený - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfigurácia siete %1 sa zmenila, obnovuje sa väzba relácie - + Unable to decode '%1' torrent file. Nepodarilo sa dekódovať torrentový súbor '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurzívne sťahovanie súboru '%1' vnoreného v torrente '%2' - + Couldn't save '%1.torrent' Nepodarilo sa uložiť '%1.torrent'. - + because %1 is disabled. this peer was blocked because uTP is disabled. pretože %1 je zakázané. - + because %1 is disabled. this peer was blocked because TCP is disabled. pretože %1 je zakázané. - + URL seed lookup failed for URL: '%1', message: %2 Vyhľadanie URL seedu zlyhalo pre URL: '%1', správa: %2 @@ -1027,178 +1015,164 @@ „%1“ bol odstránený zo zoznamu sťahovaných. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Prebieha sťahovanie „%1“, čakajte prosím... - Torrent Export: torrent is invalid, skipping... - Export torrentov: torrent nie je platný, preskakujem... - - - + DHT support [ON] Podpora DHT [zapnutá] - + DHT support [OFF]. Reason: %1 Podpora DHT [vypnutá]. Dôvod: %1 - + DHT support [OFF] Podpora DHT [vypnutá] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sa pokúša počúvať na všetkých rozhraniach na porte: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrentu sa nepodarilo počúvať nažiadnom porte rozhrania: %1. Dôvod: %2 - - - + The network interface defined is invalid: %1 Definované sieťové rozhranie je neplatné: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sa pokúša počúvať na rozhraní %1 na porte: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nenašiel lokálnu adresu %1, na ktorej by mohol počúvať - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrentu sa nepodarilo počúvať nažiadnom porte rozhrania: %1. Dôvod: %2. {1.?} + qBittorrentu sa nepodarilo počúvať na žiadnom porte rozhrania: %1. Dôvod: %2. - + Tracker '%1' was added to torrent '%2' Tracker „%1“ bol pridaný do torrentu „%2“ - + Tracker '%1' was deleted from torrent '%2' Tracker „%1“ bol vymazaný z torrentu „%2“ - + URL seed '%1' was added to torrent '%2' URL seed „%1“ bolo pridané do torrentu „%2“ - + URL seed '%1' was removed from torrent '%2' URL seed „%1“ bolo vymazané z torrentu „%2“ - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nepodarilo sa obnoviť torrent „%1“. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Zadaný filter IP bol úspešne spracovaný: %1 pravidiel bolo použitých. - + Error: Failed to parse the provided IP filter. Chyba: Nepodarilo sa spracovať zadaný filter IP. - + Couldn't add torrent. Reason: %1 Nepodarilo sa pridať torrent. Dôvod: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) „%1“ bol obnovený. (rýchle obnovenie) - + '%1' added to download list. 'torrent name' was added to download list. „%1“ bol pridaný do zoznamu na sťahovanie. - + An I/O error occurred, '%1' paused. %2 Vyskytla sa V/V chyba, „%1“ je pozastavené. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Zlyhanie mapovania portov, správa: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapovanie portov úspešné, správa: %1 - + due to IP filter. this peer was blocked due to ip filter. v dôsledku filtra IP. - + due to port filter. this peer was blocked due to port filter. v dôsledku filtra portov. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. v dôsledku i2p reštrikcií zmiešaného módu. - + because it has a low port. this peer was blocked because it has a low port. pretože má nízky port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent úspešne počúva na rozhraní %1 na porte: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4. {1 ?} {2/%3.?} + qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Externá IP: %1 @@ -1212,12 +1186,12 @@ Nepodarilo sa presunúť torrent: „%1“.. Dôvod: %2 - + File sizes mismatch for torrent '%1', pausing it. Veľkosti súborov sa líšia pre torrent '%1', pozastavuje sa. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Rýchle obnovenie torrentu '%'1 bolo zamietnuté. Dôvod: %2. Prebieha opätovná kontrola... @@ -1242,7 +1216,7 @@ Hodnota - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Bežné kľúče cookies sú : "%1“, "%2“. @@ -1310,13 +1284,13 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača FeedListWidget - + RSS feeds RSS kanály - + Unread Neprečítané @@ -1413,10 +1387,6 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Only one link per line Iba jeden odkaz na riadok - - Download local torrent - Stiahnuť lokálny torrent - Download @@ -1590,20 +1560,30 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Save files to location: - Ukladať súbory do priečinka: + Uložiť súbory do priečinka: Label: - Označenie: + Označenie: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Stiahnuté @@ -1616,7 +1596,7 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Upload local torrent - + Nahrať lokálny torrent @@ -1974,10 +1954,6 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača &About O &aplikácii - - Exit - Ukončiť - &Pause @@ -2008,22 +1984,6 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača E&xit U&končiť - - Options - Možnosti - - - Resume - Pokračovať - - - Pause - Pozastaviť - - - Delete - Zmazať - Open URL @@ -2041,19 +2001,15 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača - + Show Zobraziť - + Check for program updates Skontrolovať aktualizácie programu - - Lock qBittorrent - Zamknúť qBittorrent - Add Torrent &Link... @@ -2066,215 +2022,221 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača - + Execution Log Záznam spustení - + Clear the password Vyčistiť heslo - + Filter torrent list... Filtruj zoznam torrentu... - + &Set Password &Nastaviť heslo - + &Clear Password &Vymazať heslo - + Transfers Prenosy - + Torrent file association Asociácia typu súboru .torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent nie je predvolená aplikácia na otváranie súborov torrent a odkazov Magnet. Chcete asociovať qBittorrent so súbormi torrent a odkazmi Magnet? - + Icons Only Iba ikony - + Text Only Iba text - + Text Alongside Icons Text vedľa ikôn - + Text Under Icons Text pod ikonami - + Follow System Style Používať systémové štýly - - - + + + UI lock password Heslo na zamknutie používateľského rozhrania - - - + + + Please type the UI lock password: Prosím, napíšte heslo na zamknutie používateľského rozhrania: - + The password should contain at least 3 characters Heslo by malo obsahovať aspoň 3 znaky - + Password update Aktualizovať heslo - + The UI lock password has been successfully updated Heslo na zamknutie používateľského rozhrania bolo úspešne aktualizované - + Are you sure you want to clear the password? Ste si istý, že chcete vyčistiť heslo? - + Search Vyhľadávanie - + Transfers (%1) Prenosy (%1) - + Error Chyba - + Failed to add torrent: %1 Nepodarilo sa pridať torrent: %1 - + Download completion Dokončenie sťahovnia - + I/O Error i.e: Input/Output Error V/V Chyba - + Recursive download confirmation Potvrdenie rekurzívneho sťahovania - + Yes Áno - + No Nie - + Never Nikdy - + Global Upload Speed Limit Globálne rýchlostné obmedzenie nahrávania - + Global Download Speed Limit Globálne rýchlostné obmedzenie sťahovania - + &No &Nie - + &Yes &Áno - + &Always Yes &Vždy áno - + Python found in %1 Python bol nájdený v %1 - + Old Python Interpreter Starý interpreter Pythonu - + qBittorrent Update Available Aktualizácia qBittorentu je dostupná - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Používate najnovšiu verziu qBittorrentu - + Undetermined Python version Nezistená verziu Pythonu - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' bol stiahnutý. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2283,160 +2245,159 @@ Chcete asociovať qBittorrent so súbormi torrent a odkazmi Magnet? - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent '%1' obsahuje ďalšie torrentové súbory. Chcete stiahnuť aj tie? - + Couldn't download file at URL '%1', reason: %2. Nepodarilo sa stiahnuť súbor z URL: '%1', dôvod: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Vaša verzia Pythonu %1 je zastaraná. Pre správne fungovanie vyhľadávačov je treba ju aktualizuvať na novšiu verziu. Minimálne požiadavky: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Nepodarilo sa zistiť vašu verziu Pythonu (%1). Vyhľadávače boli vypnuté. - - + + Missing Python Interpreter Chýbajúci interpreter Pythonu - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Na použitie vyhľadávačov je potrebný Python, ten však nie je nainštalovaný. Chcete ho inštalovať teraz? - + Python is required to use the search engine but it does not seem to be installed. Na použitie vyhľadávačov je potrebný Python, zdá sa však, že nie je nainštalovaný. - A new version is available. Update to version %1? - Nová verzia je dostupná. + Nová verzia je dostupná. Prajete si aktualizovať na verziu %1? - + No updates available. You are already using the latest version. Žiadne aktualizácie nie sú dostupné. Používate najnovšiu verziu. - + &Check for Updates &Skontrolovať aktualizácie - + Checking for Updates... Overujem aktualizácie... - + Already checking for program updates in the background Kontrola aktualizácií programu už prebieha na pozadí - + Python found in '%1' Python bol nájdený v '%1' - + Download error Chyba pri sťahovaní - + Python setup could not be downloaded, reason: %1. Please install it manually. Nebolo možné stiahnuť inštalačný program Pythonu. Dôvod: %1 Prosím, nainštalujte ho ručne. - - + + Invalid password Neplatné heslo - - + + RSS (%1) RSS (%1) - + URL download error Chyba sťahovania z URL - + The password is invalid Heslo nie je platné - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Rýchlosť sťahovania: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Rýchlosť nahrávania: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [S: %1, N: %2] qBittorrent %3 - + Hide Skryť - + Exiting qBittorrent Ukončuje sa qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Niektoré súbory sa práve prenášajú. Ste si istý, že chcete ukončiť Bittorrent? - + Open Torrent Files Otvoriť torrent súbory - + Torrent Files Torrent súbory - + Options were saved successfully. Nastavenia boli úspešne uložené. @@ -2444,17 +2405,17 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Váš dynamický DNS záznam bol úspešne aktualizovaný. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Chyba dynamického DNS: Služba je dočasne nedostupná, pokus sa zopakuje o 30 minút. - + Dynamic DNS error: hostname supplied does not exist under specified account. Chyba dynamického DNS: Zadaný názov hostiteľa v uvedenom účte neexistuje. @@ -2464,32 +2425,32 @@ Ste si istý, že chcete ukončiť Bittorrent? Chyba dynamického DNS: Neplatné používateľské meno alebo heslo. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamického DNS: qBittorrent bol zaradený na čiernu listinu služby, nahláste prosím túto chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Chyba dynamického DNS: Služba vrátila %1, nahláste prosím túto chybu na http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Chyba dynamického DNS: Vaše používateľské meno bolo zablokované z dôvodu zneužitia. - + Dynamic DNS error: supplied domain name is invalid. Chyba dynamického DNS: Zadaný názov domény nie je platný. - + Dynamic DNS error: supplied username is too short. Chyba dynamického DNS: Zadané používateľské meno je príliš krátke. - + Dynamic DNS error: supplied password is too short. Chyba dynamického DNS: Zadané heslo je príliš krátke. @@ -2516,154 +2477,161 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP databáza bola načítaná. Typ: %1. Doba vytvárania: %2. - + Couldn't load GeoIP database. Reason: %1 Nepodarilo sa načítať GeoIP databázu. Dôvod: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Neuvedené - Asia/Pacific Region - Ázia/Tichomorie + Ázia/Tichomorie + + + Europe + Európa - Europe - Európa - - - Andorra Andora - + United Arab Emirates Spojené arabské emiráty - + Afghanistan Afganistan - + Antigua and Barbuda Antigua and Barbuda - + Anguilla Anguilla - + Albania Albánsko - + Armenia Arménsko - Netherlands Antilles - Holandské Antily + Holandské Antily - + Angola Angola - + Antarctica Antarktída - + Argentina Argentína - + American Samoa Americká Samoa - + Austria Rakúsko - + Australia Austrália - + Aruba Aruba - + Azerbaijan Azerbajdžan - + Bosnia and Herzegovina Bosna a Hercegovina - + Barbados Barbados - + Bangladesh Bangladéš - + Belgium Belgicko - + Burkina Faso Burkina Faso - + Bulgaria Bulharsko - + Bahrain Bahrajn - + Burundi Burundi - + Benin Benin @@ -2678,1137 +2646,1187 @@ Ste si istý, že chcete ukončiť Bittorrent? Brunej - Bolivia - Bolívia + Bolívia - + Brazil Brazília - + Bahamas Bahamy - + Bhutan Bhután - + Bouvet Island Bouvetov ostrov - + Botswana Botswana - + Belarus Bielorusko - + Belize Belize - + Canada Kanada - + Cocos (Keeling) Islands Kokosové ostrovy - + Congo, The Democratic Republic of the Konžská demokratická republika - + Central African Republic Stredoafrická republika - + Congo Kongo - + Switzerland Švajčiarsko - Cote D'Ivoire - Pobrežie slonoviny + Pobrežie slonoviny - + Cook Islands Cookove ostrovy - + Chile Čile - + Cameroon Kamerun - + China Čína - + Colombia Kolumbia - + Costa Rica Kostarika - + Cuba Kuba - + Cape Verde Kapverdy - + + Curacao + + + + Christmas Island Vianočný ostrov - + Cyprus Cyprus - + Czech Republic Česká republika - + Germany Nemecko - + Djibouti Džibutsko - + Denmark Dánsko - + Dominica Dominika - + Dominican Republic Dominikánska republika - + Algeria Alžírsko - + Ecuador Ekvádor - + Estonia Estónsko - + Egypt Egypt - + Western Sahara Západná Sahara - + Eritrea Eritrea - + Spain Španielsko - + Ethiopia Etiópia - + Finland Fínsko - + Fiji Fidži - + Falkland Islands (Malvinas) Falklandské ostrovy (Malvíny) - + Micronesia, Federated States of Mikronézia - + Faroe Islands Faerské ostrovy - + France Francúzsko - France, Metropolitan - Metropolitné Francúzsko + Metropolitné Francúzsko - + Gabon Gabon - + United Kingdom Spojené kráľovstvo - + Grenada Grenada - + Georgia Gruznsko - + French Guiana Francúzska Guyana - + Ghana Ghana - + Gibraltar Gibraltár - + Greenland Grónsko - + Gambia Gambia - + Guinea Guinea - + Guadeloupe Guadeloupe - + Equatorial Guinea Rovníková Guinea - + Greece Grécko - + South Georgia and the South Sandwich Islands Južná Georgia a Južné Sandwichove ostrovy - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Guinea-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heardov ostrov a McDonaldove ostrovy - + Honduras Honduras - + Croatia Chorvátsko - + Haiti Haiti - + Hungary Maďarsko - + Indonesia Indonézia - + Ireland Írsko - + Israel Izreal - + India India - + British Indian Ocean Territory Britské indickooceánske územie - + Iraq Irak - + Iran, Islamic Republic of Irán - + Iceland Island - + Italy Taliansko - + Jamaica Jamajka - + Jordan Jordánsko - + Japan Japonsko - + Kenya Keňa - + Kyrgyzstan Kyrgyzsko - + Cambodia Kambodža - + Kiribati Kiribati - + Comoros Komory - + Saint Kitts and Nevis Svätý Krištof a Nevis - + Korea, Democratic People's Republic of Kórejská ľudovodemokratická republika - + Korea, Republic of Kórejská republika - + Kuwait Kuvajt - + Cayman Islands Kajmanie ostrovy - + Kazakhstan Kazachstan - + Lao People's Democratic Republic Laos - + Lebanon Libanon - + Saint Lucia Svätá Lucia - + Liechtenstein Lichtenštajnsko - + Sri Lanka Srí Lanka - + Liberia Libéria - + Lesotho Lesoto - + Lithuania Litva - + Luxembourg Luxembursko - + Latvia Lotyšsko - Libyan Arab Jamahiriya - Líbya + Líbya - + Morocco Maroko - + Monaco Monako - + Moldova, Republic of Moldavsko - + Madagascar Madagaskar - + Marshall Islands Marshallove ostrovy - Macedonia - Macedónsko + Macedónsko - + Mali Mali - + Myanmar Mjanmarsko - + Mongolia Mongolsko - Macau - Macau + Macau - + Northern Mariana Islands Severné Mariány - + Martinique Martinik - + Mauritania Mauritánia - + Montserrat Montserrat - + Malta Malta - + Mauritius Maurícius - + Maldives Maledivy - + Malawi Malawi - + Mexico Mexico - + Malaysia Malajzia - + Mozambique Mozambik - + Namibia Namíbia - + New Caledonia Nová Kaledónia - + Niger Niger - + Norfolk Island Ostrov Norfolk - + Nigeria Nigéria - + Nicaragua Nikaragua - + Netherlands Holandsko - + Norway Nórsko - + Nepal Nepál - + Nauru Nauru - + Niue Niue - + New Zealand Nový Zéland - + Oman Omán - + Panama Panama - + Peru Peru - + French Polynesia Francúzska Polynézia - + Papua New Guinea Papua-Nová Guinea - + Philippines Filipíny - + Pakistan Pakistan - + Poland Poľsko - + Saint Pierre and Miquelon Saint Pierre a Miquelon - Pitcairn Islands - Pitcairnove ostrovy + Pitcairnove ostrovy - + Puerto Rico Portoriko - Palestinian Territory - Palestínske okupované územia + Palestínske okupované územia - + Portugal Portugalsko - + Palau Palau - + Paraguay Paraguaj - + Qatar Katar - + Reunion Réunion - + Romania Rumunsko - + Russian Federation Rusko - + Rwanda Rwanda - + Saudi Arabia Saudská Arábia - + Solomon Islands Šalamúnove ostrovy - + Seychelles Seychely - + Sudan Sudán - + Sweden Švédsko - + Singapore Singapur - Saint Helena - Svätá Helena + Svätá Helena - + Slovenia Slovinsko - + Svalbard and Jan Mayen Svalbard a Jan Mayen - + Slovakia Slovensko - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somálsko - + Suriname Surinam - + Sao Tome and Principe Svätý Tomáš a Princov ostrov - + El Salvador Salvádor - + Syrian Arab Republic Sýria - + Swaziland Svazijsko - + Turks and Caicos Islands Turks a Caicos - + Chad Čad - + French Southern Territories Francúzske južné a antarktické územia - + Togo Togo - + Thailand Thajsko - + Tajikistan Tadžikistan - + Tokelau Tokelau - + Turkmenistan Turkmenistan - + Tunisia Tunisko - + Tonga Tonga - + Timor-Leste Východný Timor - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Turecko - + Trinidad and Tobago Trinidad a Tobago - + Tuvalu Tuvalu - + Taiwan Taiwan - + Tanzania, United Republic of Tanzánia - + Ukraine Ukrajina - + Uganda Uganda - + United States Minor Outlying Islands Menšie odľahlé ostrovy USA - + United States Spojené štáty - + Uruguay Uruguaj - + Uzbekistan Uzbekistan - + Holy See (Vatican City State) Vatikán - + Saint Vincent and the Grenadines Svätý Vincent a Grenadíny - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Panenské ostrovy, Britské - + Virgin Islands, U.S. Panenské ostrovy, U.S.A - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis a Futuna - + Samoa Samoa - + Yemen Jemen - + Mayotte Mayotte - + Serbia Srbsko - + South Africa Južná Afrika - + Zambia Zambia - + Montenegro Čierna Hora - + Zimbabwe Zimbabwe - Anonymous Proxy - Anonymný proxy + Anonymný proxy - Satellite Provider - Satelitný poskytovateľ + Satelitný poskytovateľ - Other - Iné + Iné - + Aland Islands Alandské ostrovy - + Guernsey Guernsey - + Isle of Man Ostrov Man - + Jersey Jersey - + Saint Barthelemy Svätý Bartolomej - Saint Martin - Svätý Martin + Svätý Martin - + Could not uncompress GeoIP database file. Nepodarilo sa rozbaliť súbor s GeoIP databázou. - + Couldn't save downloaded GeoIP database file. Nepodarilo sa uložiť stiahnutý súbor s GeoIP databázou. - + Successfully updated GeoIP database. GeoIP databáza bola úspešne aktualizovaná. - + Couldn't download GeoIP database file. Reason: %1 Nepodarilo sa stiahnuť súbor s GeoIP databázou. Dôvod: %1 @@ -3839,72 +3857,72 @@ Ste si istý, že chcete ukončiť Bittorrent? interested(local) and choked(peer) - interesovaný(lokálny) a obmedzený(rovesník) + interesovaný(lokálny) a blokovaný(rovesník) interested(local) and unchoked(peer) - interesovaný(lokálny) a neobmedzený(rovesník) + interesovaný(lokálny) a neblokovaný(rovesník) interested(peer) and choked(local) - interesovaný(rovesník) a obmedzený(lokálny) + interesovaný(rovesník) a blokovaný(lokálny) interested(peer) and unchoked(local) - interesovaný(rovesník) a neobmedzený(lokálny) + interesovaný(rovesník) a neblokovaný(lokálny) optimistic unchoke - optimistické zrušenie obmedzenia + optimisticky neblokovaní peer snubbed - rovesník neposiela + rovesník neposiela incoming connection - prichádzajúce spojenie + prichádzajúce spojenie not interested(local) and unchoked(peer) - neinteresovaný(lokálny) a neobmedzený(rovesník) + neinteresovaný(lokálny) a neblokovaný(rovesník) not interested(peer) and unchoked(local) - neinteresovaný(rovesník) a neobmedzený(lokálny) + neinteresovaný(rovesník) a neblokovaný(lokálny) peer from PEX - rovesník z PEX + rovesník z PEX peer from DHT - rovesník z DHT + rovesník z DHT encrypted traffic - šifrovaný prenos + šifrovaný prenos encrypted handshake - šifrovaný handshake + šifrovaný handshake peer from LSD - rovesník z LSD + rovesník z LSD @@ -3972,123 +3990,73 @@ Ste si istý, že chcete ukončiť Bittorrent? Dôležitosť: - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Pridať nového rovesníka... - + Copy selected Kopírovať označené - - + + Ban peer permanently Zablokovať rovesníka na stálo - + Manually adding peer '%1'... Manuálne pridaný rovesník '%1'... - + The peer '%1' could not be added to this torrent. Rovesníka '%1' nebolo možné pridať k tomuto torrentu. - + Manually banning peer '%1'... Manuálne zablokovaný rovesník '%1'... - - + + Peer addition Pridanie rovesníka - + Some peers could not be added. Check the Log for details. Niektorých rovesníkov nebolo možné pridať. Pozrite prosím žurnál pre detaily. - + The peers were added to this torrent. Rovesníci boli pridaní k tomuto torrentu. - + Are you sure you want to ban permanently the selected peers? Ste si istý, že chcete zmazať natrvalo zablokovať vybraného rovesníka? - + &Yes Án&o - + &No &Nie - - interested(local) and choked(peer) - interesovaný(lokálny) a obmedzený(rovesník) - - - interested(local) and unchoked(peer) - interesovaný(lokálny) a neobmedzený(rovesník) - - - interested(peer) and choked(local) - interesovaný(rovesník) a obmedzený(lokálny) - - - interested(peer) and unchoked(local) - interesovaný(rovesník) a neobmedzený(lokálny) - - - optimistic unchoke - optimistické zrušenie obmedzenia - - - peer snubbed - rovesník neposiela - - - incoming connection - prichádzajúce spojenie - - - not interested(local) and unchoked(peer) - neinteresovaný(lokálny) a neobmedzený(rovesník) - - - not interested(peer) and unchoked(local) - neinteresovaný(rovesník) a neobmedzený(lokálny) - - - peer from PEX - rovesník z PEX - - - peer from DHT - rovesník z DHT - - - encrypted traffic - šifrovaný prenos - - - encrypted handshake - šifrovaný handshake - - - peer from LSD - rovesník z LSD - PeersAdditionDlg @@ -4126,6 +4094,203 @@ Ste si istý, že chcete ukončiť Bittorrent? Biele: dostupné kúsky + + PluginSelectDlg + + + Search plugins + Zásuvné moduly vyhľadávania + + + + Installed search plugins: + + + + + Name + Názov + + + + Version + Verzia + + + + Url + Url + + + + + Enabled + Zapnuté + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nové zásuvné moduly vyhľadávačov nájdete tu: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Nainštalovať nový + + + + Check for updates + Skontrolovať aktualizácie + + + + Close + Zatvoriť + + + + Uninstall + Odinštalovať + + + + + + Yes + Áno + + + + + + + No + Nie + + + + Uninstall warning + Upozornenie o odstránení + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Niektoré zásuvné moduly nebolo možné odstrániť, pretože sú súčasťou aplikácie qBittorrent. Odinštalované môžu byť iba tie, ktoré ste pridali sami. +Tieto moduly však boli vypnuté. + + + + Uninstall success + Odstránenie prebehlo úspešne + + + + All selected plugins were uninstalled successfully + Všetky zvolené zásuvné moduly boli úspešne odinštalované + + + + + New search engine plugin URL + URL zásuvného modulu nového vyhľadávača + + + + + URL: + URL: + + + + Invalid link + Neplatný odkaz + + + + The link doesn't seem to point to a search engine plugin. + Zdá sa, že odkaz nesmeruje na zásuvný modul vyhľadávača. + + + + Select search plugins + Zvoliť zásuvné moduly vyhľadávačov + + + + qBittorrent search plugin + Vyhľadávacie zásuvné moduly pre qBittorrent + + + + + + Search plugin update + Aktualizácia zásuvného modulu vyhľadávača + + + + All your plugins are already up to date. + Všetky vaše vyhľadávacie zásuvné moduly sú už aktuálne. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Inštalácia zásuvného modulu vyhľadávača + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Zdroj zásuvného modulu + + + + Search plugin source: + Zdroj zásuvného modulu vyhľadávača: + + + + Local file + Lokálny súbor + + + + Web link + Webový odkaz + + Preferences @@ -4182,89 +4347,89 @@ Ste si istý, že chcete ukončiť Bittorrent? Pridávať príponu .!qB k neúplným súborom - + Copy .torrent files to: Kopírovať .torrent súbory do: - + Connections Limits Limit spojení - + Proxy Server Proxy server - + Global Rate Limits Globálne rýchlostné obmedzenia - + Apply rate limit to transport overhead Použiť rýchlostné obmedzenie na réžiu prenosu - + Schedule the use of alternative rate limits Naplánovať použitie alternatívnych rýchlostných obmedzení - + From: from (time1 to time2) Od: - + To: time1 to time2 Do: - + Enable Local Peer Discovery to find more peers Zapnúť Local Peer Discovery - umožní nájsť viac rovesníkov - + Encryption mode: Režim šifrovania: - + Prefer encryption Uprednostňovať šifrovanie - + Require encryption Vyžadovať šifrovanie - + Disable encryption Vypnúť šifrovanie - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Ďalšie informácie</a>) - + Maximum active downloads: Maximum aktívnych sťahovaní: - + Maximum active uploads: Max. aktívnych nahrávaní: - + Maximum active torrents: Maximum aktívnych torrentov: @@ -4289,82 +4454,82 @@ Ste si istý, že chcete ukončiť Bittorrent? Zobraziť obsah torrentu a nejaké voľby - + Run external program on torrent completion Po dokončení sťahovania spustiť externý program - + Port used for incoming connections: Port pre prichádzajúce spojenia: - + Random Náhodný - + Global maximum number of connections: Maximálny globálny počet spojení: - + Maximum number of connections per torrent: Maximálny počet spojení na torrent: - + Maximum number of upload slots per torrent: Maximálny počet slotov pre nahrávanie na torrent: - - + + Upload: Nahrávanie: - - + + Download: Sťahovanie: - - - - + + + + KiB/s KiB/s - + Remove folder Odstrániť priečinok - + Every day Každý deň - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Vymieňať si zoznam rovesníkov s kompatibilnými klientmi siete Bittorrent (µTorrent, Vuze, ...) - + Host: Počítač: - + SOCKS4 SOCKS4 - + Type: Typ: @@ -4537,262 +4702,262 @@ Ste si istý, že chcete ukončiť Bittorrent? Automaticky pridať torrenty z: - + Add folder... Pridať priečinok ... - + Copy .torrent files for finished downloads to: Kopírovať súbory .torrent po dokončení sťahovania do: - + Email notification upon download completion Upozornenie o dokončení sťahovania emailom - + Destination email: Cieľový email: - + SMTP server: SMTP server: - + This server requires a secure connection (SSL) Tento server vyžaduje zabezpečené pripojenie (SSL) - + Listening Port Počúvať na porte - + Use UPnP / NAT-PMP port forwarding from my router Použiť presmerovanie portov UPnP/NAT-PMP z môjho smerovača - + Use different port on each startup Použiť pri každom spustení iný port - + Global maximum number of upload slots: Globálne maximálny počet slotov na nahrávanie: - + Otherwise, the proxy server is only used for tracker connections Inak sa proxy server použije iba na pripojenia k trackeru - + Use proxy for peer connections Používať proxy na spojenia s rovesníkmi - + Disable connections not supported by proxies Zakázať spojenia, ktoré proxy nepodporujú - + Use proxy only for torrents Používať proxy len na torrenty. - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS kanály, vyhľadávacie module, softvérové aktualizácie a čokoľvek iné ako torrentové prenosy a podobné operácie (ako výmena medzi rovesníkmi) budú používať priame spojenie. - + Info: The password is saved unencrypted Info: Heslo sa ukladá nezakódované - + IP Filtering IP filter - + Reload the filter Znovu načítať filter - + Apply to trackers Použiť na trackery - + Apply rate limit to peers on LAN Použiť rýchlostné obmedzenie na rovesníkov v LAN - + When: Kedy: - + Weekdays Dni v týždni - + Weekends Víkendy - + Rate Limits Settings Nastavenia obmedzení rýchlosti - + Enable µTP protocol Povoliť protokol µTP - + Apply rate limit to µTP protocol Použiť obmedzenie rýchlosti na protokol µTP - + Privacy Súkromie - + Enable DHT (decentralized network) to find more peers Zapnúť DHT (decentralizovaná sieť) - umožní nájsť viac rovesníkov - + Enable Peer Exchange (PeX) to find more peers Zapnúť Peer eXchange (PeX) - umožní nájsť viac rovesníkov - + Look for peers on your local network Hľadať rovesníkov na vašej lokálnej sieti - + Enable when using a proxy or a VPN connection Povoliť počas používania proxy alebo spojenia VPN - + Enable anonymous mode Zapnúť anonymný režim - + Do not count slow torrents in these limits Nepočítať pomalé torrenty do týchto obmedzení - + Seed torrents until their ratio reaches Seedovať torrenty pokým ich pomer nedosiahne - + then potom - + Pause them ich pozastaviť - + Remove them ich odstrániť - + Automatically add these trackers to new downloads: Automaticky novo sťahovaným tieto trackery: - + Use UPnP / NAT-PMP to forward the port from my router Použiť presmerovanie portov UPnP/NAT-PMP z môjho smerovača - + Use HTTPS instead of HTTP Používať HTTPS namiesto HTTP - + Import SSL Certificate Importovať certifikát SSL - + Import SSL Key Importovať kľúč SSL - + Certificate: Certifikát: - + Alternative Rate Limits Alternatívne obmedzenie rýchlosti - + Key: Kľúč: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Informácie o certifikátoch</a> - + Bypass authentication for localhost Obísť autentifikáciu pri prihlasovaní z lokálneho počítača - + Update my dynamic domain name Aktualizovať môj dynamický názov domény - + Service: Služba: - + Register Zaregistrovať sa - + Domain name: Názov domény: - + (None) (žiadny) @@ -4802,61 +4967,61 @@ Ste si istý, že chcete ukončiť Bittorrent? Bittorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Autentifikácia - - - - + + + + Username: Meno používateľa: - - - - + + + + Password: Heslo: - + Torrent Queueing Zaraďovanie torrentov do frontu - + Share Ratio Limiting Obmedzenie pomeru zdieľania - + Enable Web User Interface (Remote control) Zapnúť webové rozhranie (diaľkové ovládanie) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Cesta k filtrom (.dat, .p2p, .p2b): @@ -5062,10 +5227,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Comment: Komentár: - - Torrent content: - Obsah torrentu: - Select All @@ -5589,28 +5750,28 @@ No further notices will be issued. Neznáma chyba - - + + Upgrade Aktualizácia - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Aktualizovali ste program zo staršej verzie, ktorá ukladala veci odlišným spôsobom. Je preto nutné, aby ste prešli na nový spôsob ukladania. V dôsledku toho však už nebudete môcť použiť znova verziu staršiu ako v3.3.0. Chcete pokračovať? [á/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Aktualizovali ste program zo staršej verzie, ktorá ukladala veci odlišným spôsobom. Je preto nutné, aby ste prešli na nový spôsob ukladania. Ak budete pokračovať, nebudete už môcť znova použiť verziu staršiu ako v3.3.0. - + Couldn't migrate torrent with hash: %1 Nepodarilo sa konvertovať torrent s hašom: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Nepodarilo sa konvertovať torrent. Neplatný názov súboru pre rýchle obnovenie: %1 @@ -5721,17 +5882,17 @@ No further notices will be issued. RSSImp - + Stream URL: URL streamu: - + Please type a RSS stream URL Zadajte prosím URL RSS streamu - + This RSS feed is already in the list. Tento RSS kanál už je v zozname. @@ -5751,75 +5912,92 @@ No further notices will be issued. Nový priečinok - + Deletion confirmation Potvrdenie zmazania - + Are you sure you want to delete the selected RSS feeds? Ste si istý, že chcete vymazať označené RSS kanály? - + Please choose a new name for this RSS feed Prosím, vyberte nový názov pre tento RSS kanál - + New feed name: Nový názov kanála: - + Name already in use Názov sa už používa - + This name is already used by another item, please choose another one. Tento názov už používa iná položka. Prosím, zvoľte iný názov. - + Date: Dátum: - + Author: Autor: - + Unread Neprečítané - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatické sťahovanie '%1' z z RSS kanála '%2' zlyhalo, pretože neobsahuje torrent ani magnetický odkaz. + Automatické sťahovanie '%1' z z RSS kanála '%2' zlyhalo, pretože neobsahuje torrent ani magnetický odkaz. - + Automatically downloading '%1' torrent from '%2' RSS feed... - Automaticky sa sťahuje torrent '%1' z RSS kanála '%2'... + Automaticky sa sťahuje torrent '%1' z RSS kanála '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Automatické sťahovanie '%1' z z RSS kanála '%2' zlyhalo, pretože neobsahuje torrent ani magnetický odkaz. + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Automaticky sa sťahuje torrent '%1' z RSS kanála '%2'... RssParser - Failed to open downloaded RSS file. - Nepodarilo sa otvoriť stiahnutý súbor RSS. + Nepodarilo sa otvoriť stiahnutý súbor RSS. - Invalid RSS feed at '%1'. - Neplatný kanál RSS na '%1'. + Neplatný kanál RSS na '%1'. @@ -5845,168 +6023,249 @@ No further notices will be issued. Maximálny počet článkov na kanál: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Prehliadať... + + + + Choose save path + Zvoľte cieľový adresár + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Sledovaný priečinok - - Download here - Stiahnuť sem + + Save Files to + + + + Download here + Stiahnuť sem - Download path - + Cesta pre stiahnutie SearchCategories - All categories - Všetky kategórie + Všetky kategórie - Movies - Filmy + Filmy - TV shows - TV relácie + TV relácie - Music - Hudba + Hudba - Games - Hry + Hry - Anime - Anime + Anime - Software - Softvér + Softvér - Pictures - Obrázky + Obrázky - Books - Knihy + Knihy SearchEngine - - - Search - Vyhľadávanie + Vyhľadávanie - Please install Python to use the Search Engine. - Nainštalujte prosím Python pre používanie vyhľadávačov. + Nainštalujte prosím Python pre používanie vyhľadávačov. - Empty search pattern - Prázdny vyhľadávací vzor + Prázdny vyhľadávací vzor - Please type a search pattern first - Prosím, najprv zadajte vyhľadávací vzor + Prosím, najprv zadajte vyhľadávací vzor - Searching... - Hľadá sa... + Hľadá sa... - Stop - Zastaviť + Zastaviť - - Search Engine - Vyhľadávač + Vyhľadávač - - Search has finished - Hľadanie skončené + Hľadanie skončené - An error occurred during search... - Počas vyhľadávania sa vyskytla chyba... + Počas vyhľadávania sa vyskytla chyba... - - Search aborted - Vyhľadávanie preušené + Vyhľadávanie preušené - All enabled - Všetky povolené + Všetky povolené - All engines - Všetky vyhľadávače + Všetky vyhľadávače - - Multiple... - Ďalšie... + Ďalšie... - - Results <i>(%1)</i>: i.e: Search results - Výsledky <i>(%1)</i>: + Výsledky <i>(%1)</i>: - Search returned no results - Vyhľadávanie nevrátilo žiadne výsledky + Vyhľadávanie nevrátilo žiadne výsledky - Stopped - Zastavené + Zastavené + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Všetky kategórie + + + + Movies + Filmy + + + + TV shows + TV relácie + + + + Music + Hudba + + + + Games + Hry + + + + Anime + Anime + + + + Software + Softvér + + + + Pictures + Obrázky + + + + Books + Knihy SearchListDelegate - - + + Unknown Neznáme @@ -6014,35 +6273,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Názov - + Size i.e: file size Veľkosť - + Seeders i.e: Number of full sources Seederi - + Leechers i.e: Number of partial sources Leecheri - + Search engine Vyhľadávač + + SearchWidget + + + + + + + Search + Vyhľadávanie + + + + Status: + Stav: + + + + + Stopped + + + + + Download + Stiahnuť + + + + Go to description page + Prejsť na stránku popisu + + + + Copy description page URL + Skopíruj URL stránky popisu + + + + Search plugins... + + + + + All enabled + Všetky povolené + + + + All plugins + + + + + + Multiple... + Ďalšie... + + + + + + Search Engine + Vyhľadávač + + + + Please install Python to use the Search Engine. + Nainštalujte prosím Python pre používanie vyhľadávačov. + + + + Empty search pattern + Prázdny vyhľadávací vzor + + + + Please type a search pattern first + Prosím, najprv zadajte vyhľadávací vzor + + + + + Results <i>(%1)</i>: + i.e: Search results + Výsledky <i>(%1)</i>: + + + + Searching... + Hľadá sa... + + + + Stop + Zastaviť + + + + + Search has finished + Hľadanie skončené + + + + + Search aborted + Vyhľadávanie preušené + + + + Search returned no results + Vyhľadávanie nevrátilo žiadne výsledky + + + + Search has failed + + + + + An error occurred during search... + Počas vyhľadávania sa vyskytla chyba... + + ShutdownConfirmDlg @@ -6436,7 +6820,7 @@ No further notices will be issued. Errored (0) - + Chybných (0) @@ -6481,30 +6865,34 @@ No further notices will be issued. Errored (%1) - + Chybných (%1) TorrentContentModel - + Name Názov - + Size Veľkosť - + Progress Priebeh - + + Download Priority + + + Priority - Priorita + Priorita @@ -6856,38 +7244,38 @@ No further notices will be issued. Upozornenia (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Nepodarilo sa dekódovať favico pre URL '%1'. Sťahujem favico vo formáte PNG. - + Couldn't decode favicon for URL '%1'. Nepodarilo sa dekódovať favico pre URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Nepodarilo sa stiahnuť favico pre URL '%1'. Dôvod: %2 - + Resume torrents Obnov torrenty - + Pause torrents Pozastaviť torrenty - + Delete torrents Zmazať torrenty - - + + All (%1) this is for the tracker filter Všetky (%1) @@ -7137,7 +7525,7 @@ No further notices will be issued. Errored torrent status, the torrent has an error - + Chybných @@ -7155,17 +7543,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Stav - + Labels Označenia - + Trackers Trackery @@ -7704,206 +8092,155 @@ No further notices will be issued. engineSelect - Search plugins - Zásuvné moduly vyhľadávania + Zásuvné moduly vyhľadávania - Installed search engines: - Nainštalované vyhľadávače: + Nainštalované vyhľadávače: - Name - Názov + Názov - Version - Verzia + Verzia - Url - Url + Url - - Enabled - Zapnuté + Zapnuté - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nové zásuvné moduly vyhľadávačov nájdete tu: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nové zásuvné moduly vyhľadávačov nájdete tu: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Nainštalovať nový + Nainštalovať nový - Check for updates - Skontrolovať aktualizácie + Skontrolovať aktualizácie - Close - Zatvoriť + Zatvoriť - Uninstall - Odinštalovať + Odinštalovať engineSelectDlg - Uninstall warning - Upozornenie o odstránení + Upozornenie o odstránení - Uninstall success - Odstránenie prebehlo úspešne + Odstránenie prebehlo úspešne - Invalid plugin - + Neplatný prídavný modul - The search engine plugin is invalid, please contact the author. - + Prídavný modul pre vyhľadávanie nie je platný, kontaktujte prosím autora. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Novšia verzia zásuvného modulu vyhľadávača '%1' je už nainštalovaná. + Novšia verzia zásuvného modulu vyhľadávača '%1' je už nainštalovaná. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' nebolo možné aktualizovať, ponechávam starú verziu. + Zásuvný modul vyhľadávača '%1' nebolo možné aktualizovať, ponechávam starú verziu. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' nebolo možné inštalovať. + Zásuvný modul vyhľadávača '%1' nebolo možné inštalovať. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' bol úspešne aktualizovaný. + Zásuvný modul vyhľadávača '%1' bol úspešne aktualizovaný. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' bol úspešne nainštalovaný. + Zásuvný modul vyhľadávača '%1' bol úspešne nainštalovaný. - The link doesn't seem to point to a search engine plugin. - Zdá sa, že odkaz nesmeruje na zásuvný modul vyhľadávača. + Zdá sa, že odkaz nesmeruje na zásuvný modul vyhľadávača. - Select search plugins - Zvoliť zásuvné moduly vyhľadávačov + Zvoliť zásuvné moduly vyhľadávačov - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Inštalácia vyhľadávacieho zásuvného modulu '%1' sa nepodarila. + Inštalácia vyhľadávacieho zásuvného modulu '%1' sa nepodarila. - - - - - Search plugin install - Inštalácia zásuvného modulu vyhľadávača + Inštalácia zásuvného modulu vyhľadávača - - - Yes - Áno + Áno - - - - No - Nie + Nie - qBittorrent search plugin - Vyhľadávacie zásuvné moduly pre qBittorrent + Vyhľadávacie zásuvné moduly pre qBittorrent - - - - Search plugin update - Aktualizácia zásuvného modulu vyhľadávača + Aktualizácia zásuvného modulu vyhľadávača - - Sorry, update server is temporarily unavailable. - Je mi ľúto, aktualizačný server je dočasne nedostupný. + Je mi ľúto, aktualizačný server je dočasne nedostupný. - All your plugins are already up to date. - Všetky vaše vyhľadávacie zásuvné moduly sú už aktuálne. + Všetky vaše vyhľadávacie zásuvné moduly sú už aktuálne. - All selected plugins were uninstalled successfully - Všetky zvolené zásuvné moduly boli úspešne odinštalované + Všetky zvolené zásuvné moduly boli úspešne odinštalované - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Niektoré zásuvné moduly nebolo možné odstrániť, pretože sú súčasťou aplikácie qBittorrent. Odinštalované môžu byť iba tie, ktoré ste pridali sami. + Niektoré zásuvné moduly nebolo možné odstrániť, pretože sú súčasťou aplikácie qBittorrent. Odinštalované môžu byť iba tie, ktoré ste pridali sami. Tieto moduly však boli vypnuté. - Invalid link - Neplatný odkaz + Neplatný odkaz - - New search engine plugin URL - URL zásuvného modulu nového vyhľadávača + URL zásuvného modulu nového vyhľadávača - - URL: - URL: + URL: @@ -8033,169 +8370,169 @@ Tieto moduly však boli vypnuté. options_imp - - + + Choose export directory Vyberte adresár, kde sa bude exportovať - - - - + + + + Choose a save directory Vyberte adresár, kde sa bude ukladať - + Add directory to scan Vyberte adresár, ktorý sa bude prehliadať - + Supported parameters (case sensitive): Podporované voľby (citlivé na veľkosť písmen) - + %N: Torrent name %N: Názov torrentu - + %L: Label %L: Označenie - + %F: Content path (same as root path for multifile torrent) %F: Cesta k obsahu (rovnaká ako koreňová cesta k torrentu s viacerými súbormi) - + %R: Root path (first torrent subdirectory path) %R: Koreňová cesta (cesta prvého podadresára torrentu) - + %D: Save path %D: Uložiť do - + %C: Number of files %C: Počet súborov - + %Z: Torrent size (bytes) %Z: Veľkosť torrentu (v bajtoch) - + %T: Current tracker %T: Aktuálny tracker - + %I: Info hash %I: Haš info - + Folder is already being watched. Priečinok sa už sleduje. - + Folder does not exist. Priečinok neexistuje. - + Folder is not readable. Priečinok nemožno prečítať. - + Failure Zlyhanie - + Failed to add Scan Folder '%1': %2 Nepodarilo sa pridať priečinok na prehľadanie: „%1“: %2 - - + + Filters Filtre - - + + Choose an IP filter file Zvoliť súbor filtra IP - + SSL Certificate Certifikát SSL - + SSL Key Kľúč SSL - + Parsing error Chyba pri spracovaní - + Failed to parse the provided IP filter Nepodarilo sa spracovať poskytnutý filter IP - + Successfully refreshed Úspešne obnovené - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Poskytnutý filter IP úspešne spracovaný: %1 pravidiel bolo použitých. - + Invalid key Neplatný kľúč - + This is not a valid SSL key. Toto nie je platný kľúč SSL. - + Invalid certificate Neplatný certifikát - + This is not a valid SSL certificate. Toto nie je platný certifikát SSL. - + The start time and the end time can't be the same. Dátum začiatku a dátum konca sa nesmú zhodovať. - + Time Error Chyba zadania času @@ -8203,24 +8540,20 @@ Tieto moduly však boli vypnuté. pluginSourceDlg - Plugin source - Zdroj zásuvného modulu + Zdroj zásuvného modulu - Search plugin source: - Zdroj zásuvného modulu vyhľadávača: + Zdroj zásuvného modulu vyhľadávača: - Local file - Lokálny súbor + Lokálny súbor - Web link - Webový odkaz + Webový odkaz @@ -8249,40 +8582,32 @@ Tieto moduly však boli vypnuté. search_engine - - Search - Vyhľadávanie + Vyhľadávanie - Status: - Stav: + Stav: - Stopped - Zastavený + Zastavený - Download - Stiahnuť + Stiahnuť - Go to description page - Prejsť na stránku popisu + Prejsť na stránku popisu - Copy description page URL - Skopíruj URL stránky popisu + Skopíruj URL stránky popisu - Search engines... - Vyhľadávače... + Vyhľadávače... diff --git a/src/lang/qbittorrent_sl.ts b/src/lang/qbittorrent_sl.ts index e7bd19089..c7e7a8219 100644 --- a/src/lang/qbittorrent_sl.ts +++ b/src/lang/qbittorrent_sl.ts @@ -175,172 +175,172 @@ Ne prenesi - - + + I/O Error I/O Napaka - + The torrent file does not exist. Torrent datoteka ne obstaja. - + Invalid torrent Napačen torrent - + Failed to load the torrent: %1 Napaka pri nalaganju torrenta: %1 - - + + Already in download list Torrent že obstaja v seznamu prenosov - + Free disk space: %1 Neporabljen prostor na disku: %1 - + Not Available This comment is unavailable Ni na voljo. - + Not Available This date is unavailable Ni na voljo - + Not available Ni na voljo - + Invalid magnet link Napačna magnet povezava - + Torrent is already in download list. Trackers were merged. Torrent že obstaja v seznamu prenosov. Sledilniki so bili združeni. - - + + Cannot add torrent Ni mogoče dodati torrenta - + Cannot add this torrent. Perhaps it is already in adding state. Ni mogoče dodati torrenta. Mogoče je že dodan. - + This magnet link was not recognized Ta magnet povezava ni prepoznavna - + Magnet link is already in download list. Trackers were merged. Magnet povezava je že v seznamu prenosov. Sledilnik so bili združeni. - + Cannot add this torrent. Perhaps it is already in adding. Ni mogoče dodati torrenta. Mogoče je že dodan. - + Magnet link Magnet povezava - + Retrieving metadata... Pridobivam podatke... - + Not Available This size is unavailable. Ni na voljo - - - + + + Choose save path Izberi mapo za shranjevanje - + Rename the file Preimenuj datoteko - + New name: Novo ime: - - + + The file could not be renamed Datoteke ni možno preimenovati - + This file name contains forbidden characters, please choose a different one. To ime datoteke vsebuje prepovedane znake, prosim izberi drugo ime. - - + + This name is already in use in this folder. Please use a different name. To ime je že v uporabi v tej mapi. Prosim uporabi drugo ime. - + The folder could not be renamed Mape ni možno preimenovati - + Rename... Preimenuj... - + Priority Prioriteta - + Invalid metadata Neveljavni meta podatki - + Parsing metadata... Razpoznavanje podatkov... - + Metadata retrieval complete Pridobivanje podatkov končano - + Download Error Napaka prejema @@ -431,10 +431,6 @@ Resolve peer host names Razreši host imena soležnikov - - Maximum number of half-open connections [0: Disabled] - Maksimalno število na pol odprtih povezav [0: Onemogoči] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Prilagodi članke na podlagi filtra epizod. - + Example: Primer: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match bo uejlo epizode ene sezone 2, 5, 8 do 15, 30 in naprej - + Episode filter rules: Filter pravila epizod: - + Season number is a mandatory non-zero value Številka sezone je obvezna vrednost - + Episode number is a mandatory non-zero value Številka epizode je obvezna vrednost - + Filter must end with semicolon Filter se mora končati z pomišljajem - + Three range types for episodes are supported: Tri vrste epizod so podprte: - + Single number: <b>1x25;</b> matches episode 25 of season one Sama številka: <b>1x25;</b> ustreza epizodi 25 sezone 1 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normalno zaporedje: <b>1x25-40;</b> ustreza epizodam 25 do 40 sezone 1 - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Neskončna vrednost: <b>1x25-;</b> ustreza epizodam 25 in naprej sezone 1 - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Ime novega pravila - + Please type the name of the new download rule. Prosim vpiši ime novega pravila prenosov. - - + + Rule name conflict Konflikt imen pravil. - - + + A rule with this name already exists, please choose another name. Pravilo z tem imenom že obstaja, prosim izberi drugo ime. - + Are you sure you want to remove the download rule named '%1'? Ali zares želiš odstraniti pravilo prenosov z imenom %1? - + Are you sure you want to remove the selected download rules? Ali ste prepričani, da želite odstraniti izbrana pravila za prejem? - + Rule deletion confirmation Potrditev odstranitev pravila - + Destination directory Ciljni imenik - + Invalid action Neveljavno dejanje - + The list is empty, there is nothing to export. Seznam je prazen. Ničesar ni za izvoz. - + Where would you like to save the list? Kam želite shraniti seznam? - + Rules list (*.rssrules) Seznam pravil (*.rssrules) - + I/O Error I/O Napaka - + Failed to create the destination file Spodletelo ustvarjanje ciljne datoteke - + Please point to the RSS download rules file Vpišite naslov spletnega vira RSS. - + Rules list Seznam pravil - + Import Error Napaka uvoza - + Failed to import the selected rules file Spodletelo uvažanje izbrane datoteke s pravili - + Add new rule... Dodaj novo pravilo ... - + Delete rule Odstrani pravilo - + Rename rule... Preimenuj pravilo ... - + Delete selected rules Odstrani izbrana pravila - + Rule renaming Preimenovanje pravila - + Please type the new rule name Vpišite novo ime pravila - + Regex mode: use Perl-like regular expressions Način regularnega izraza: uporabite Perlu podobne regularne izraze - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Način nadomestnega znaka: uporabite lahko <ul><li>? za ujemanje enega znaka </li><li>* za ujemanje nič ali več znakov </li><li>presledek velja kot IN operator</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Način nadomestnega znaka: uporabite lahko <ul><li>? za ujemanje enega znaka </li><li>* za ujemanje nič ali več znakov </li><li>| velja kot ALI operator</li></ul> @@ -952,65 +948,57 @@ %1 je dosegel najvišje nastavljeno razmerje. Premor ... - Error: Could not create torrent export directory: '%1' - Napaka: Ni bilo mogoče ustvariti imenika za izvoz torrenta: %1 - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Napaka: ni bilo mogoče izvoziti torrenta %1, mogoče še nima meta podatkov. - - - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Ni mogoče odkodirati %1 datoteke torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurzivni prejem datoteke '%1' vdelane v torrent '%2' - + Couldn't save '%1.torrent' Ni bilo mogoče shraniti '%1. torrenta' - + because %1 is disabled. this peer was blocked because uTP is disabled. ker je %1 onemogočen. - + because %1 is disabled. this peer was blocked because TCP is disabled. ker je %1 onemogočen. - + URL seed lookup failed for URL: '%1', message: %2 Spodletelo iskanje naslova URL za sejalca: %1, sporočilo: %2 @@ -1027,178 +1015,164 @@ '%1' je bil odstranjen iz seznama prenosov. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Prejemanje '%1', prosim počakajte ... - Torrent Export: torrent is invalid, skipping... - Izvoz torrenta: torrent je neveljaven, preskok ... - - - + DHT support [ON] Podpora DHT [vključena] - + DHT support [OFF]. Reason: %1 Podpora DHT [izključena]. Razlog: %1 - + DHT support [OFF] Podpora DHT [izključena] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent poskuša poslušati na vseh vratih vmesnika: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent je spodletel pri poslušanju na vseh vratih vmesnika: %1. Razlog: %2 - - - + The network interface defined is invalid: %1 Določeni omrežni vmesnik je neveljaven: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent poskuša poslušati na vmesniku %1 in vratih: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent ni našel krajevnega naslova %1 za poslušanje - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent je spodletel pri poslušanju na vseh vratih vmesnika: %1. Razlog: %2. {1.?} + - + Tracker '%1' was added to torrent '%2' Sledilnik '%1' je bil dodan h torrentu '%2' - + Tracker '%1' was deleted from torrent '%2' Sledilnik '%1' je bil odstranjen iz torrenta '%2' - + URL seed '%1' was added to torrent '%2' URL sejalec '%1' je bil dodan h torrentu '%2' - + URL seed '%1' was removed from torrent '%2' URL sejalec '%1' je bil odstranjen iz torrenta '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ni mogoče nadaljevati torrenta '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspešno razčlenjen filter IP: %1 pravil je bilo uveljavljenih. - + Error: Failed to parse the provided IP filter. Napaka: Spodletelo razčlenjevanje filtra IP. - + Couldn't add torrent. Reason: %1 Ni bilo mogoče dodati torrenta. Razlog: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' se nadaljuje. (hitro nadaljevanje) - + '%1' added to download list. 'torrent name' was added to download list. '%1' je bil dodan na seznam prejemov. - + An I/O error occurred, '%1' paused. %2 Zgodila se je napaka I/O, '%1' v premoru. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Spodletela preslikava vrat, sporočilo: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Uspešna preslikava vrat, sporočilo: %1 - + due to IP filter. this peer was blocked due to ip filter. zaradi filtra IP. - + due to port filter. this peer was blocked due to port filter. zaradi filtra vrat. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. zaradi i2p omejitev mešanega načina. - + because it has a low port. this peer was blocked because it has a low port. ker ima prenizka vrata. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent uspešno posluša na vmesniku %1 in vratih: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent je spodletel pri poslušanju na vmesnika %1 in vratih:%2/%3. Razlog: %4. {1 ?} {2/%3.?} + - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent je spodletel pri poslušanju na vmesnika %1 in vratih:%2/%3. Razlog: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Zunanji IP: %1 @@ -1212,12 +1186,12 @@ Ni bilo mogoče premakniti torrenta: '%1'. Razlog: %2 - + File sizes mismatch for torrent '%1', pausing it. Neusklajeni velikosti datoteke za torrent '%1', v premoru. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Hitro nadaljevanje je bilo zavrnjeno za torrent '%1'. Razlog: %2. Preverjam znova ... @@ -1242,7 +1216,7 @@ Vrednost - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Pogosti ključi za piškotke so: '%1', '%2'. @@ -1310,12 +1284,12 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. FeedListWidget - + RSS feeds Viri RSS - + Unread Neprebrano @@ -1412,10 +1386,6 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. Only one link per line Samo ena povezava na vrstico - - Download local torrent - Prejmi krajevni torrent - Download @@ -1602,7 +1572,17 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Prejeto @@ -1973,10 +1953,6 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. &About &O programu - - Exit - Končaj - &Pause @@ -2007,22 +1983,6 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. E&xit &Končaj - - Options - Možnosti - - - Resume - Nadaljuj - - - Pause - Premor - - - Delete - Odstrani - Open URL @@ -2040,19 +2000,15 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. - + Show Pokaži - + Check for program updates Preveri posodobitve programa - - Lock qBittorrent - Zakleni qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. - + Execution Log Dnevnik izvedb - + Clear the password Pobriši geslo - + Filter torrent list... Filtriraj seznam torrenta ... - + &Set Password &Nastavi geslo - + &Clear Password &Pobriši geslo - + Transfers Prenosi - + Torrent file association Povezava datoteke torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent ni privzeti program za odpiranje datotek torrent ali magnetnih povezav. Ali želite qBittorrent povezati z datotekami torrent in magnetnimi povezavami? - + Icons Only Samo ikone - + Text Only Samo besedilo - + Text Alongside Icons Besedilo zraven ikon - + Text Under Icons Besedilo pod ikonami - + Follow System Style Upoštevaj slog sistema - - - + + + UI lock password Geslo za zaklep uporabniškega vmesnika - - - + + + Please type the UI lock password: Vpišite geslo za zaklep uporabniškega vmesnika: - + The password should contain at least 3 characters Geslo mora vsebovati vsaj 3 znake. - + Password update Posodobite geslo - + The UI lock password has been successfully updated Geslo za zaklep uporabniškega vmesnika je bilo uspešno posodobljeno. - + Are you sure you want to clear the password? Ali ste prepričani, da želite pobrisati geslo? - + Search Iskanje - + Transfers (%1) Prenosi (%1) - + Error Napaka - + Failed to add torrent: %1 Spodletelo dodajanje torrenta: %1 - + Download completion Prejem zaključen - + I/O Error i.e: Input/Output Error Napaka I/O - + Recursive download confirmation Rekurzivna potrditev prejema - + Yes Da - + No Ne - + Never Nikoli - + Global Upload Speed Limit Splošna omejitev hitrosti pošiljanja - + Global Download Speed Limit Splošna omejitev hitrosti prejemanja - + &No &Ne - + &Yes &Da - + &Always Yes &Vedno da - + Python found in %1 Python najden v %1 - + Old Python Interpreter Star Python tolmač - + qBittorrent Update Available Na voljo je posodobitev - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Že uporabljate zadnjo različico - + Undetermined Python version Nedoločena različica Pythona - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2281,160 +2243,159 @@ Ali želite qBittorrent povezati z datotekami torrent in magnetnimi povezavami?< - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Vaša različica Pythona %1 je zastarela. Za delovanje iskalnikov morate nadgraditi Python na zadnjo različico. Najmanjša zahteva je: 2.7.0/3.3.0 - + Couldn't determine your Python version (%1). Search engine disabled. Ni mogoče razbrati vaše različice Pythona (%1). Iskalnik je onemogočen. - - + + Missing Python Interpreter Manjka Python tolmač - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Za uporabo iskalnika potrebujete Python. Ta pa ni nameščen. Ali ga želite namestiti sedaj? - + Python is required to use the search engine but it does not seem to be installed. Python je potreben za uporabo iskalnika, vendar ta ni nameščen. - A new version is available. Update to version %1? - Na voljo je nova različica. + Na voljo je nova različica. Želite posodobiti na različico %1? - + No updates available. You are already using the latest version. Ni posodobitev. Že uporabljate zadnjo različico. - + &Check for Updates &Preveri za posodobitve - + Checking for Updates... Preverjam za posodobitve ... - + Already checking for program updates in the background Že v ozadju preverjam posodobitve programa - + Python found in '%1' - + Download error Napaka prejema - + Python setup could not be downloaded, reason: %1. Please install it manually. Namestitev za Python ni bilo mogoče prejeti. Razlog: %1 Namestite Python ročno. - - + + Invalid password Neveljavno geslo - - + + RSS (%1) RSS (%1) - + URL download error Napaka prejema URL - + The password is invalid Geslo je neveljavno - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Hitrost prejema: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Hitrost pošiljanja: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [Pr: %1, Po: %2] qBittorrent %3 - + Hide Skrij - + Exiting qBittorrent Izhod qBittorrenta - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Trenutno se prenašajo določene datoteke. Ali ste prepričani, da želite končati qBittorrent? - + Open Torrent Files Odpri datoteke torrent - + Torrent Files Torrent datoteke - + Options were saved successfully. Možnosti so bile uspešno shranjene @@ -2442,17 +2403,17 @@ Ali ste prepričani, da želite končati qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Vaš dinamični DNS je bil uspešno posodobljen. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Napaka dinamičnega DNS-ja: Storitev trenutno ni na voljo, sledi vnovičen poskus čez 30min. - + Dynamic DNS error: hostname supplied does not exist under specified account. Napaka dinamičnega DNS-ja: vpisano ime gostitelja ne obstaja pod določenim računom. @@ -2462,32 +2423,32 @@ Ali ste prepričani, da želite končati qBittorrent? Napaka dinamičnega DNS-ja: Neveljavno uporabniško ime/geslo. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Napaka dinamičnega DNS-ja: qBittorrent je pristal na črnem seznamu storitve. Prijavite hrošča na http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Napaka dinamičnega DNS-ja: storitev je sporočila %1. Prijavite hrošča na http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Napaka dinamičnega DNSja: Vaše uporabniško ime je bilo blokirano zaradi zlorabe. - + Dynamic DNS error: supplied domain name is invalid. Napaka dinamičnega DNS-ja: vpisano ime domene je neveljavno. - + Dynamic DNS error: supplied username is too short. Napaka dinamičnega DNS-ja: vpisano uporabniško ime je prekratko. - + Dynamic DNS error: supplied password is too short. Napaka dinamičnega DNS-ja: vpisano geslo je prekratko. @@ -2514,154 +2475,149 @@ Ali ste prepričani, da želite končati qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP podatkovna zbirka naložena. Vrsta: %1. Čas izgradnje: %2. - + Couldn't load GeoIP database. Reason: %1 Ni bilo mogoče naložiti podatkovne zbirke GeoIP. Razlog: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2676,1137 +2632,1127 @@ Ali ste prepričani, da želite končati qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Francija + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Francija + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grčija - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. Ni bilo mogoče razširiti datoteke podatkovne zbirke GeoIP. - + Couldn't save downloaded GeoIP database file. Ni bilo mogoče shraniti prejete datoteke podatkovne zbirke GeoIP. - + Successfully updated GeoIP database. Uspešno posodobljena podatkovna zbirka GeoIP. - + Couldn't download GeoIP database file. Reason: %1 Ni bilo mogoče prejeti datoteke podatkovne zbirke GeoIP. Razlog: %1 @@ -3867,7 +3813,7 @@ Ali ste prepričani, da želite končati qBittorrent? incoming connection - dohodna povezava + @@ -3882,27 +3828,27 @@ Ali ste prepričani, da želite končati qBittorrent? peer from PEX - soležnik iz PEX + peer from DHT - soležnik iz DHT + encrypted traffic - šifriran promet + encrypted handshake - šifrirana izmenjava signalov + peer from LSD - soležnik iz LSD + @@ -3970,91 +3916,73 @@ Ali ste prepričani, da želite končati qBittorrent? Pomembnost - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Dodaj novega soležnika ... - + Copy selected Kopiraj izbrano - - + + Ban peer permanently Trajno izobči soležnika - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Zbiranje soležnikov - + Some peers could not be added. Check the Log for details. Nekaterih soležnikov ni bilo mogoče dodati h torrentu. Za več podrobnosti preverite Dnevnik. - + The peers were added to this torrent. Soležniki so biil dodan h torrentu. - + Are you sure you want to ban permanently the selected peers? Ali ste prepričani, da želite trajno izobčiti izbrane soležnike? - + &Yes &Da - + &No &Ne - - incoming connection - dohodna povezava - - - peer from PEX - soležnik iz PEX - - - peer from DHT - soležnik iz DHT - - - encrypted traffic - šifriran promet - - - encrypted handshake - šifrirana izmenjava signalov - - - peer from LSD - soležnik iz LSD - PeersAdditionDlg @@ -4092,6 +4020,203 @@ Ali ste prepričani, da želite končati qBittorrent? + + PluginSelectDlg + + + Search plugins + Vstavki iskanja + + + + Installed search plugins: + + + + + Name + Ime + + + + Version + Verzija + + + + Url + URL + + + + + Enabled + Omogočeno + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nove vstavke iskanja najdete na : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Namestite novega + + + + Check for updates + Preveri za posodobitve + + + + Close + Zapri + + + + Uninstall + Odstrani + + + + + + Yes + Da + + + + + + + No + Ne + + + + Uninstall warning + Opozorilo odstranjevanja + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Nekatere vstavke ni bilo mogoče odstraniti, ker so vključeni v qBittorrent. Samo tiste, ki ste jih sami dodali lahko odstranite. +Tisti vstavki so bili onemogočeni. + + + + Uninstall success + Odstranjevanje uspešno + + + + All selected plugins were uninstalled successfully + Vsi izbrani vstavki so bili uspešno odstranjeni + + + + + New search engine plugin URL + Nov URL vstavka iskalnika. + + + + + URL: + URL: + + + + Invalid link + Neveljavna povezava + + + + The link doesn't seem to point to a search engine plugin. + Povezava ne kaže na vstavek iskalnika. + + + + Select search plugins + Izberite vstavke iskanja + + + + qBittorrent search plugin + qBittorrent vstavek iskanja + + + + + + Search plugin update + Posodobitev vstavka iskanja + + + + All your plugins are already up to date. + Vsi vaši vstavki so že posodobljeni. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Namestitev vstavka iskanja + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Vir vstavka + + + + Search plugin source: + Vir vstavka iskanja + + + + Local file + Lokalna datoteka + + + + Web link + Spletna povezava + + Preferences @@ -4148,89 +4273,89 @@ Ali ste prepričani, da želite končati qBittorrent? Dodaj pripono .!qB nedokončanim datotekam - + Copy .torrent files to: Kopiraj datoteke .torrent v: - + Connections Limits Omejitve povezav - + Proxy Server Posredniški strežnik - + Global Rate Limits Splošne omejitve hitrosti - + Apply rate limit to transport overhead Uveljavi omejitev razmerja v slepi prenos - + Schedule the use of alternative rate limits Načrtujte uporabo nadomestnih omejitev hitrosti - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Omogočite odkrivanje krajevnih soležnikov za iskanje več soležnikov - + Encryption mode: Način šifriranja: - + Prefer encryption Prednostno šifriraj - + Require encryption Zahtevaj šifriranje - + Disable encryption Onemogoči šifriranje - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Več podrobnosti</a>) - + Maximum active downloads: Največ dejavnih prejemov: - + Maximum active uploads: Največ dejavnih pošiljanj: - + Maximum active torrents: Največ dejavnih torrentov: @@ -4255,82 +4380,82 @@ Ali ste prepričani, da želite končati qBittorrent? Pokaži vsebino torrenta in nekaj možnosti - + Run external program on torrent completion Ko se torrent zaključi zaženi zunanji program - + Port used for incoming connections: Uporabljena vrata za dohodne povezave: - + Random Naključno - + Global maximum number of connections: Najvišje splošno število povezav: - + Maximum number of connections per torrent: Najvišje število povezav na torrent: - + Maximum number of upload slots per torrent: Najvišje število povezav za pošiljanje na torrent: - - + + Upload: Pošiljanje: - - + + Download: Prejem: - - - - + + + + KiB/s KiB/s - + Remove folder Odstrani mapo - + Every day Vsak dan - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Izmenjaj soležnike z združljivimi odjemalci Bittorrent (µTorrent, Vuze, ...) - + Host: Gostitelj: - + SOCKS4 SOCKS4 - + Type: Vrsta: @@ -4503,262 +4628,262 @@ Ali ste prepričani, da želite končati qBittorrent? Samodejno dodaj torrente iz: - + Add folder... Dodaj mapo ... - + Copy .torrent files for finished downloads to: Za zaključene prejeme kopiraj datoteke .torrent v: - + Email notification upon download completion Pošlji e-poštno obvestilo ob zaključku prejema - + Destination email: Ciljni e-poštni naslov: - + SMTP server: Strežnik SMTP: - + This server requires a secure connection (SSL) Ta strežnik zahteva varno povezavo (SSL) - + Listening Port Vrata za poslušanje - + Use UPnP / NAT-PMP port forwarding from my router Uporabi UPnP / NAT-PMP za posredovanje vrat od mojega usmerjevalnika - + Use different port on each startup Uporabi druga vrata ob vsakem zagonu - + Global maximum number of upload slots: Najvišje splošno število povezav za pošiljanje na torrent: - + Otherwise, the proxy server is only used for tracker connections Drugače je posredniški strežnik uporabljen samo za povezave s sledilnikom - + Use proxy for peer connections Uporabi posredniški strežnik za povezave s soležniki - + Disable connections not supported by proxies Onemogoči povezave, ki ne podpirajo posredniških strežnikov - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Obvestilo: Geslo je shranjeno nešifrirano - + IP Filtering Filtriranje IP - + Reload the filter Ponovno naloži filter - + Apply to trackers Uveljavi pri sledilcem - + Apply rate limit to peers on LAN - + When: Ko: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Zasebnost - + Enable DHT (decentralized network) to find more peers Omogočite DHT (decentralizirano omrežje) da najdete več soležnikov - + Enable Peer Exchange (PeX) to find more peers Omogočite Izmenjavo soležnikov (PeX) da najdete več soležnikov - + Look for peers on your local network Poišči soležnike na krajevnem omrežju - + Enable when using a proxy or a VPN connection Omogoči, ko se uporablja posredniški strežnik ali povezava VPN - + Enable anonymous mode Omogoči brezimni način - + Do not count slow torrents in these limits Ne štej počasnih torrentov ob teh omejitvah - + Seed torrents until their ratio reaches Sejaj torrente, dokler razmerje ne doseže - + then nato - + Pause them Jih daj v premor - + Remove them Jih odstrani - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Uporabi UPnP / NAT-PMP za posredovanje vrat od mojega usmerjevalnika - + Use HTTPS instead of HTTP Uporabi HTTPS namesto HTTP - + Import SSL Certificate Uvozi potrdilo SSL - + Import SSL Key Uvozi ključ SSL - + Certificate: Potrdilo: - + Alternative Rate Limits - + Key: Ključ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Podrobnosti o potrdilih</a> - + Bypass authentication for localhost Obidi overitev za lokalnega gostitelja - + Update my dynamic domain name Posodobi mojo dinamično ime domene - + Service: Storitev: - + Register Vpis - + Domain name: Ime domene: - + (None) (Brez) @@ -4768,61 +4893,61 @@ Ali ste prepričani, da želite končati qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Vrata: - - - + + + Authentication Overitev - - - - + + + + Username: Uporabniško ime: - - - - + + + + Password: Geslo: - + Torrent Queueing Čakalna vrsta torrentov - + Share Ratio Limiting Souporaba omejitve razmerja - + Enable Web User Interface (Remote control) Omogoči spletni uporabniški vmesnik (Oddaljen nadzor) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Filter poti (.dat, .p2p, .p2b): @@ -5028,10 +5153,6 @@ Ali ste prepričani, da želite končati qBittorrent? Comment: Komentar: - - Torrent content: - Vsebina torrenta: - Select All @@ -5554,28 +5675,28 @@ Ne bo nadaljnjih obvestil. Neznana napaka - - + + Upgrade Nadgradnja - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Posodobili ste starejšo različico, ki je shranjevala predmete na drugačen način. Morali boste uporabljati nov sistem shranjevanja. Ne boste mogli več uporabljati starejše različice od v3.3.0. Nadaljujem? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Posodobili ste starejšo različico, ki je shranjevala predmete na drugačen način. Morali boste uporabljati nov sistem shranjevanja. Če nadaljujete ne boste mogli več uporabljati starejše različice od v3.3.0. - + Couldn't migrate torrent with hash: %1 Ni mogoče preseliti torrenta z razpršilom: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Ni mogoče preseliti torrenta. Neveljavno ime datoteke za hitro nadaljevanje: %1 @@ -5686,17 +5807,17 @@ Ne bo nadaljnjih obvestil. RSSImp - + Stream URL: URL pretoka: - + Please type a RSS stream URL Vpišite URL pretoka RSS - + This RSS feed is already in the list. Vir RSS je že na vašem seznamu. @@ -5716,75 +5837,77 @@ Ne bo nadaljnjih obvestil. Nova mapa - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Izberite novo ime za ta vir RSS - + New feed name: Novo ime vira: - + Name already in use Ime je že v uporabi - + This name is already used by another item, please choose another one. To ime že uporablja drug predmet, izberite novo ime. - + Date: Datum: - + Author: Avtor: - + Unread Neprebrano - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Spodletelo odpiranje prejete datoteke RSS. - - - - Invalid RSS feed at '%1'. - + Spodletelo odpiranje prejete datoteke RSS. @@ -5810,168 +5933,245 @@ Ne bo nadaljnjih obvestil. Največje število člankov na vir: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Brskaj ... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Opazovana mapa - - Download here - Prejmite tukaj + + Save Files to + - - Download path - + Download here + Prejmite tukaj SearchCategories - All categories - Vse kategorije + Vse kategorije - Movies - Filmi + Filmi - TV shows - TV oddaje + TV oddaje - Music - Glasba + Glasba - Games - Igre + Igre - Anime - Anime + Anime - Software - Programska oprema + Programska oprema - Pictures - Slike + Slike - Books - Knjige + Knjige SearchEngine - - - Search - Iskanje + Iskanje - Please install Python to use the Search Engine. - Za uporabo iskalnika namestite Python. + Za uporabo iskalnika namestite Python. - Empty search pattern - Brez iskanega parametra + Brez iskanega parametra - Please type a search pattern first - Najprej vpišite iskani parameter + Najprej vpišite iskani parameter - Searching... - Iskanje ... + Iskanje ... - Stop - Sop + Sop - - Search Engine - Iskalnik + Iskalnik - - Search has finished - Iskanje je zaključeno + Iskanje je zaključeno - An error occurred during search... - Med iskanjem se je zgodila napaka + Med iskanjem se je zgodila napaka - - Search aborted - Iskanje preklicano + Iskanje preklicano - All enabled - Vse omogočeno + Vse omogočeno - All engines - Vsi iskalniki + Vsi iskalniki - - Multiple... - Več ... + Več ... - - Results <i>(%1)</i>: i.e: Search results - Rezultati <i>(%1)</i>: + Rezultati <i>(%1)</i>: - Search returned no results - Iskanje ni vrnilo rezultatov + Iskanje ni vrnilo rezultatov - Stopped - Ustavljeno + Ustavljeno + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Vse kategorije + + + + Movies + Filmi + + + + TV shows + TV oddaje + + + + Music + Glasba + + + + Games + Igre + + + + Anime + Anime + + + + Software + Programska oprema + + + + Pictures + Slike + + + + Books + Knjige SearchListDelegate - - + + Unknown Neznano @@ -5979,35 +6179,160 @@ Ne bo nadaljnjih obvestil. SearchTab - + Name i.e: file name Ime - + Size i.e: file size Velikost - + Seeders i.e: Number of full sources Sejalci - + Leechers i.e: Number of partial sources Pobiralci - + Search engine Iskalnik + + SearchWidget + + + + + + + Search + Iskanje + + + + Status: + Stanje: + + + + + Stopped + Ustavljeno + + + + Download + + + + + Go to description page + Pojdi na stran z opisom + + + + Copy description page URL + Kopiraj naslov URL strani z opisom + + + + Search plugins... + + + + + All enabled + Vse omogočeno + + + + All plugins + + + + + + Multiple... + Več ... + + + + + + Search Engine + Iskalnik + + + + Please install Python to use the Search Engine. + Za uporabo iskalnika namestite Python. + + + + Empty search pattern + Brez iskanega parametra + + + + Please type a search pattern first + Najprej vpišite iskani parameter + + + + + Results <i>(%1)</i>: + i.e: Search results + Rezultati <i>(%1)</i>: + + + + Searching... + Iskanje ... + + + + Stop + Sop + + + + + Search has finished + Iskanje je zaključeno + + + + + Search aborted + Iskanje preklicano + + + + Search returned no results + Iskanje ni vrnilo rezultatov + + + + Search has failed + + + + + An error occurred during search... + Med iskanjem se je zgodila napaka + + ShutdownConfirmDlg @@ -6452,24 +6777,28 @@ Ne bo nadaljnjih obvestil. TorrentContentModel - + Name Ime - + Size Velikost - + Progress Napredek - + + Download Priority + + + Priority - Prednost + Prednost @@ -6821,38 +7150,38 @@ Ne bo nadaljnjih obvestil. Opozorilo (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Nadaljuj torrente - + Pause torrents Premor torrentov - + Delete torrents Odstrani torrente - - + + All (%1) this is for the tracker filter Vsi (%1) @@ -7120,17 +7449,17 @@ Ne bo nadaljnjih obvestil. TransferListFiltersWidget - + Status Stanje - + Labels Oznake - + Trackers Sledilniki @@ -7669,206 +7998,117 @@ Ne bo nadaljnjih obvestil. engineSelect - Search plugins - Vstavki iskanja + Vstavki iskanja - Installed search engines: - Nameščeni iskalniki: + Nameščeni iskalniki: - Name - Ime + Ime - Version - Verzija + Verzija - Url - URL + URL - - Enabled - Omogočeno + Omogočeno - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nove vstavke iskanja najdete na : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Nove vstavke iskanja najdete na : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Namestite novega + Namestite novega - Check for updates - Preveri za posodobitve + Preveri za posodobitve - Close - Zapri + Zapri - Uninstall - Odstrani + Odstrani engineSelectDlg - Uninstall warning - Opozorilo odstranjevanja + Opozorilo odstranjevanja - Uninstall success - Odstranjevanje uspešno + Odstranjevanje uspešno - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Povezava ne kaže na vstavek iskalnika. + Povezava ne kaže na vstavek iskalnika. - Select search plugins - Izberite vstavke iskanja + Izberite vstavke iskanja - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Namestitev vstavka iskanja + Namestitev vstavka iskanja - - - Yes - Da + Da - - - - No - Ne + Ne - qBittorrent search plugin - qBittorrent vstavek iskanja + qBittorrent vstavek iskanja - - - - Search plugin update - Posodobitev vstavka iskanja + Posodobitev vstavka iskanja - - Sorry, update server is temporarily unavailable. - Strežnik za posodobitve trenutno ni na voljo. + Strežnik za posodobitve trenutno ni na voljo. - All your plugins are already up to date. - Vsi vaši vstavki so že posodobljeni. + Vsi vaši vstavki so že posodobljeni. - All selected plugins were uninstalled successfully - Vsi izbrani vstavki so bili uspešno odstranjeni + Vsi izbrani vstavki so bili uspešno odstranjeni - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Nekatere vstavke ni bilo mogoče odstraniti, ker so vključeni v qBittorrent. Samo tiste, ki ste jih sami dodali lahko odstranite. + Nekatere vstavke ni bilo mogoče odstraniti, ker so vključeni v qBittorrent. Samo tiste, ki ste jih sami dodali lahko odstranite. Tisti vstavki so bili onemogočeni. - Invalid link - Neveljavna povezava + Neveljavna povezava - - New search engine plugin URL - Nov URL vstavka iskalnika. + Nov URL vstavka iskalnika. - - URL: - URL: + URL: @@ -7998,169 +8238,169 @@ Tisti vstavki so bili onemogočeni. options_imp - - + + Choose export directory Izberite mapo za izvoz - - - - + + + + Choose a save directory Izberite mapo za shranjevanje - + Add directory to scan Dodajte mapo za preiskovanje - + Supported parameters (case sensitive): Podprti parametri (razlikovanje velikosti črk): - + %N: Torrent name %N: Ime torrenta - + %L: Label %L: Oznaka - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Mesto za shranjevanje - + %C: Number of files %C: Število datotek - + %Z: Torrent size (bytes) %Z: Velikost torrenta (bajti) - + %T: Current tracker %T: Trenutni sledilnik - + %I: Info hash %I: Razpršilo - + Folder is already being watched. Mapa se že opazuje. - + Folder does not exist. Mapa ne obstaja. - + Folder is not readable. Mapa ni berljiva. - + Failure Spodletelo - + Failed to add Scan Folder '%1': %2 Spodletelo dodajanje mape za preiskovanje '%1': %2 - - + + Filters Filtri - - + + Choose an IP filter file Izberite datoteko s filtri IP - + SSL Certificate Potrdilo SSL - + SSL Key Ključ SSL - + Parsing error Napaka razčlenjevanja - + Failed to parse the provided IP filter Spodletelo razčlenjevanje filtra IP. - + Successfully refreshed Uspešno osveženo - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspešno razčlenjen filter IP: %1 pravil je bilo uveljavljenih. - + Invalid key Neveljaven ključ - + This is not a valid SSL key. To ni veljaven ključ SSL. - + Invalid certificate Neveljavno potrdilo - + This is not a valid SSL certificate. To ni veljavno potrdilo SSL. - + The start time and the end time can't be the same. Čas začetka in konca ne smeta biti enaka. - + Time Error Napaka časa @@ -8168,24 +8408,20 @@ Tisti vstavki so bili onemogočeni. pluginSourceDlg - Plugin source - Vir vstavka + Vir vstavka - Search plugin source: - Vir vstavka iskanja + Vir vstavka iskanja - Local file - Lokalna datoteka + Lokalna datoteka - Web link - Spletna povezava + Spletna povezava @@ -8214,40 +8450,32 @@ Tisti vstavki so bili onemogočeni. search_engine - - Search - Iskanje + Iskanje - Status: - Stanje: + Stanje: - Stopped - Ustavljeno + Ustavljeno - Download - Prejem + Prejem - Go to description page - Pojdi na stran z opisom + Pojdi na stran z opisom - Copy description page URL - Kopiraj naslov URL strani z opisom + Kopiraj naslov URL strani z opisom - Search engines... - Iskalniki ... + Iskalniki ... diff --git a/src/lang/qbittorrent_sr.ts b/src/lang/qbittorrent_sr.ts index c67298506..603cd5628 100644 --- a/src/lang/qbittorrent_sr.ts +++ b/src/lang/qbittorrent_sr.ts @@ -175,172 +175,172 @@ Не преузимај - - + + I/O Error И/О Грешка - + The torrent file does not exist. - + Invalid torrent - + Failed to load the torrent: %1 - - + + Already in download list - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available - + Invalid magnet link - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link - + Retrieving metadata... - + Not Available This size is unavailable. - - - + + + Choose save path Изаберите путању чувања - + Rename the file Преименуј фајл - + New name: Ново име: - - + + The file could not be renamed Фајл не може бити преименован - + This file name contains forbidden characters, please choose a different one. Ово име фајла садржи недозвољене карактере, молим изаберите неко друго. - - + + This name is already in use in this folder. Please use a different name. Ово име је већ у употреби молим изаберите неко друго. - + The folder could not be renamed Фолдер не може бити преименован - + Rename... Преименуј... - + Priority Приоритет - + Invalid metadata - + Parsing metadata... - + Metadata retrieval complete - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Одреди име хоста peer-а (учесника) - - Maximum number of half-open connections [0: Disabled] - Максимални број полу-отворених конекција [0: Онемогућено] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Назив новог правила - + Please type the name of the new download rule. - - + + Rule name conflict Конфликт у називу правила - - + + A rule with this name already exists, please choose another name. Правило са овим називом већ постоји, молим изаберите неки други назив. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Да ли сте сигурни да желите да уклоните изабрана правила преузимања? - + Rule deletion confirmation Потврда брисања - правила - + Destination directory Одредишни директоријум - + Invalid action Неважећа акција - + The list is empty, there is nothing to export. Листа је празна, не постоји ништа за извоз. - + Where would you like to save the list? Где желите да сачувате листу? - + Rules list (*.rssrules) Листа правила (*.rssrules) - + I/O Error И/О Грешка - + Failed to create the destination file Грешка при креирању циљне датотеке - + Please point to the RSS download rules file Молим укажите на RSS датотеку са правилима преузимања - + Rules list - + Import Error Грешка при увозу - + Failed to import the selected rules file Грешка при увозу изабране датотеке са правилима - + Add new rule... - + Delete rule Обриши правило - + Rename rule... - + Delete selected rules Обриши изабрана правила - + Rule renaming Преименовање правила - + Please type the new rule name Молим упишите назив за ново правило - + Regex mode: use Perl-like regular expressions Regex мод: користи слично Perl-у регуларне изразе - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Џокер мод: можете користити<ul><li>? да представља било који појединачни карактер</li><li>* да представља нулу или било које друге карактере</li><li>Размак број као AND операторе</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Џокер мод: можете користити<ul><li>? да представља било који појединачни карактер</li><li>* да представља нулу или било које друге карактере</li><li>| се користи као OR оператор</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Вредност - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS поруке - + Unread Непрочитане @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Само један линк по линији - - Download local torrent - Преузми локални торент - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Преузет @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &О програму - - Exit - Излаз - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Прикажи - + Check for program updates - - Lock qBittorrent - Закључај qBittorrent - Add Torrent &Link... @@ -2026,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Дневник догађаја - + Clear the password - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers Трансфери - + Torrent file association Асоцириње Торент фајла - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent није подразумевана апликација за отварање Торент фајлова или Magnet линкова. Да ли желите да асоцирате qBittorrent за Торент фајлове и Magnet линкове? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password Закључавање КИ-а лозинком - - - + + + Please type the UI lock password: Молим упишите лозинку закључавања КИ-а: - + The password should contain at least 3 characters Лозинка мора имати најмање 3 карактера - + Password update Обнављање лозинке - + The UI lock password has been successfully updated Закључавање КИ-а лозинком је успешно обновљено - + Are you sure you want to clear the password? - + Search Претраживање - + Transfers (%1) Трансфери (%1) - + Error - + Failed to add torrent: %1 - + Download completion Комплетно преузет - + I/O Error i.e: Input/Output Error И/О Грешка - + Recursive download confirmation Потврда поновног преузимања - + Yes Да - + No Не - + Never Никада - + Global Upload Speed Limit Општи лимит брзине слања - + Global Download Speed Limit Општи лимит брзине преузимања - + &No &Не - + &Yes &Да - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2242,156 +2242,150 @@ Do you want to associate qBittorrent to torrent files and Magnet links? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background - + Python found in '%1' - + Download error Грешка преузимања - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Погрешна лозинка - - + + RSS (%1) - + URL download error - + The password is invalid Лозинка је погрешна - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Сакриј - + Exiting qBittorrent Излазак из qBittorrent-а - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Неки фајлови се тренутно преносе. Да ли сте сигурни да желите да прекинете qBittorrent? - + Open Torrent Files Отвори Торент фајлове - + Torrent Files Торент Фајлови - + Options were saved successfully. Опције када је сачуван успешно. @@ -2399,17 +2393,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2419,32 +2413,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2471,154 +2465,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2633,1137 +2622,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Француска + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Француска + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3927,64 +3906,70 @@ Are you sure you want to quit qBittorrent? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Додај нов peer (учесник-а)... - + Copy selected - - + + Ban peer permanently Забрани(бануј) peer трајно - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Додавање (peer-a) учесника - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Да ли сте сигурни да желите да забраните изабране учеснике трајно? - + &Yes &Да - + &No &Не @@ -4025,6 +4010,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Претраживачки додаци + + + + Installed search plugins: + + + + + Name + Име + + + + Version + + + + + Url + Url (адреса) + + + + + Enabled + Доступан + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Преузмите нови додатак за претраживање овде: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Инсталирајте нови + + + + Check for updates + Проверите за надоградњу + + + + Close + Затвори + + + + Uninstall + Деинсталирај + + + + + + Yes + Да + + + + + + + No + Не + + + + Uninstall warning + Деинсталационо упозорење + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Деинсталација успешна + + + + All selected plugins were uninstalled successfully + Сви изабрани додаци су деинсталирани успешно + + + + + New search engine plugin URL + Нови додатак претраживачког модула URL + + + + + URL: + URL: + + + + Invalid link + + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + Изаберите додатак за претраживач + + + + qBittorrent search plugin + + + + + + + Search plugin update + Претраживачки додаци ажурирање + + + + All your plugins are already up to date. + Сви ваши додаци су већ ажурни. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Претраживачки додатак инсталација + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Додатак сорс + + + + Search plugin source: + Претраживачки додатак сорс: + + + + Local file + Локални фајл + + + + Web link + Веб линк + + Preferences @@ -4081,89 +4262,89 @@ Are you sure you want to quit qBittorrent? Додај .!qB екстензију у некомплетне фајлове - + Copy .torrent files to: Копирај .torrent фајлове у: - + Connections Limits Конекциона ограничења - + Proxy Server Прокси сервер - + Global Rate Limits Општа вредност ограничења - + Apply rate limit to transport overhead Примени ведносна ограничења код прекорачење преноса - + Schedule the use of alternative rate limits Распоред коришћења алтернативног ограничења брзине - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Омогући откривање локалних веза за налажење додатних учесника - + Encryption mode: Режим шифровања: - + Prefer encryption Предложи шифровање - + Require encryption Захтевај шифровање - + Disable encryption Онемогући шифровање - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) - + Maximum active downloads: Максимум активних преузимања: - + Maximum active uploads: Максимум активних слања: - + Maximum active torrents: Максимум активних торента: @@ -4188,82 +4369,82 @@ Are you sure you want to quit qBittorrent? Прикажи садржај торента и неке опције - + Run external program on torrent completion - + Port used for incoming connections: Порт коришћен за долазне конекције: - + Random Случајан - + Global maximum number of connections: Општи максимални број конекција: - + Maximum number of connections per torrent: Максимални број конекција по торенту: - + Maximum number of upload slots per torrent: Максимални број слотова за слање по торенту: - - + + Upload: Слање: - - + + Download: Преузимање: - - - - + + + + KiB/s KiB/s - + Remove folder Уклони фолдер - + Every day Сваки дан - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Размењуј peer-ове са компатибилним Bittorrent клијентима (µTorrent, Vuze, ...) - + Host: Домаћин: - + SOCKS4 SOCKS4 - + Type: Тип: @@ -4436,262 +4617,262 @@ Are you sure you want to quit qBittorrent? Аутоматски додај торенте из: - + Add folder... Додај фолдер... - + Copy .torrent files for finished downloads to: - + Email notification upon download completion Обавештење Е-поштом након комплетног преузимања - + Destination email: Адреса за Е-пошту: - + SMTP server: SMTP сервер: - + This server requires a secure connection (SSL) Овај сервер захтева безбедну конекцију (SSL) - + Listening Port Пријемни порт - + Use UPnP / NAT-PMP port forwarding from my router Користи UPnP / NAT-PMP преусмерење порта са мог рутера - + Use different port on each startup - + Global maximum number of upload slots: - + Otherwise, the proxy server is only used for tracker connections У супротном, прокси сервер се једино користи за конекције tracker-а(пратилаца) - + Use proxy for peer connections Користи прокси за peer(учесничке) конекције - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering IP Филтрирање - + Reload the filter Поново учитај филтер - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Када: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Приватност - + Enable DHT (decentralized network) to find more peers Омогући DHT (децентализовану мрежу) за налажење додатних учесника - + Enable Peer Exchange (PeX) to find more peers Омогући Peer Exchange (PeX) за налажење додатних учесника - + Look for peers on your local network Потражите peer-ове на вашој локалној мрежи - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Омогући анонимни начин рада - + Do not count slow torrents in these limits Не вреднуј споре торенте у овим ограничењима - + Seed torrents until their ratio reaches Донирај торенте док не достигнеш тражени ниво - + then затим - + Pause them Паузирај их - + Remove them Уклони их - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Користи UPnP / NAT-PMP преусмерење порта са мог рутера - + Use HTTPS instead of HTTP Користи HTTPS уместо HTTP - + Import SSL Certificate Увоз SSL сертификата - + Import SSL Key Увоз SSL кључа - + Certificate: Сертификат: - + Alternative Rate Limits - + Key: Кључ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - + Bypass authentication for localhost Заобиђи аутентификацију за localhost-а - + Update my dynamic domain name Обнови име мог динамичког домена - + Service: Сервис: - + Register Регистар - + Domain name: Име домена: - + (None) (Ниједан) @@ -4701,61 +4882,61 @@ Are you sure you want to quit qBittorrent? Бит-торент - + HTTP HTTP - - + + Port: Порт: - - - + + + Authentication Аутентификација - - - - + + + + Username: Корисничко име: - - - - + + + + Password: Лозинка: - + Torrent Queueing Опслуживање Торета - + Share Ratio Limiting Ограничење индекса дељења - + Enable Web User Interface (Remote control) Омогући Веб Кориснички Интерфејс (Даљински приступ) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Филтер, путања фајла (.dat, .p2p, .p2b): @@ -4961,10 +5142,6 @@ Are you sure you want to quit qBittorrent? Comment: Коментар: - - Torrent content: - Садржај Торента: - Select All @@ -5484,28 +5661,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5616,17 +5793,17 @@ No further notices will be issued. RSSImp - + Stream URL: Ток података URL: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5646,74 +5823,69 @@ No further notices will be issued. Нова фасцикла - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Молим изаберит ново име за овај RSS допис - + New feed name: Ново feed име: - + Name already in use Име је већ у употреби - + This name is already used by another item, please choose another one. Ово име је већ у употреби молим изаберите неко друго. - + Date: Датум: - + Author: Аутор: - + Unread Непрочитан - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... - RssParser + Rss::Private::Parser - - Failed to open downloaded RSS file. - - - - - Invalid RSS feed at '%1'. + + Invalid RSS feed. @@ -5740,168 +5912,216 @@ No further notices will be issued. Максимални број чланака по допису: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + + + + + Choose save path + Изаберите путању чувања + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Надгледани Фолдер - - Download here - Преузими одавде + + Save Files to + - - Download path - + Download here + Преузими одавде SearchCategories - All categories - Све категорије + Све категорије - Movies - Филмови + Филмови - TV shows - ТВ емисије + ТВ емисије - Music - Музика + Музика - Games - Игре + Игре - Anime - Анимације + Анимације - Software - Софтвер + Софтвер - Pictures - Слике + Слике - Books - Књиге + Књиге SearchEngine - - - Search - Претраживање + Претраживање - - Please install Python to use the Search Engine. - - - - Empty search pattern - Празано поље претраживања + Празано поље претраживања - Please type a search pattern first - Унесите прво назив за претраживање + Унесите прво назив за претраживање - Searching... - Претраживање... + Претраживање... - - Stop - - - - - Search Engine - Претраживачки модул + Претраживачки модул - - Search has finished - Претраживање је завршено + Претраживање је завршено - An error occurred during search... - Нека грешка се догодила током претраге... + Нека грешка се догодила током претраге... - - Search aborted - Претраживање прекинуто + Претраживање прекинуто - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Претрага није дала резултате + Претрага није дала резултате - - Stopped - Стопиран + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Све категорије + + + + Movies + Филмови + + + + TV shows + ТВ емисије + + + + Music + Музика + + + + Games + Игре + + + + Anime + Анимације + + + + Software + Софтвер + + + + Pictures + Слике + + + + Books + Књиге SearchListDelegate - - + + Unknown Непознат-а @@ -5909,35 +6129,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Име - + Size i.e: file size Величина - + Seeders i.e: Number of full sources Донори - + Leechers i.e: Number of partial sources Трагачи - + Search engine Претраживачки модул + + SearchWidget + + + + + + + Search + Претраживање + + + + Status: + Статус: + + + + + Stopped + Стопиран + + + + Download + + + + + Go to description page + Иди на веб страну са описом + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Претраживачки модул + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Празано поље претраживања + + + + Please type a search pattern first + Унесите прво назив за претраживање + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Претраживање... + + + + Stop + + + + + + Search has finished + Претраживање је завршено + + + + + Search aborted + Претраживање прекинуто + + + + Search returned no results + Претрага није дала резултате + + + + Search has failed + + + + + An error occurred during search... + Нека грешка се догодила током претраге... + + ShutdownConfirmDlg @@ -6382,24 +6727,24 @@ No further notices will be issued. TorrentContentModel - + Name Име - + Size Величина - + Progress Напредак - - Priority - Приоритет + + Download Priority + @@ -6751,38 +7096,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7050,17 +7395,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Статус - + Labels - + Trackers Пратиоци @@ -7599,205 +7944,95 @@ No further notices will be issued. engineSelect - Search plugins - Претраживачки додаци + Претраживачки додаци - Installed search engines: - Инсталирани претраживачки модули: + Инсталирани претраживачки модули: - Name - Име + Име - - Version - - - - Url - Url (адреса) + Url (адреса) - - Enabled - Доступан + Доступан - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Преузмите нови додатак за претраживање овде: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Преузмите нови додатак за претраживање овде: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Инсталирајте нови + Инсталирајте нови - Check for updates - Проверите за надоградњу + Проверите за надоградњу - Close - Затвори + Затвори - Uninstall - Деинсталирај + Деинсталирај engineSelectDlg - Uninstall warning - Деинсталационо упозорење + Деинсталационо упозорење - Uninstall success - Деинсталација успешна + Деинсталација успешна - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - Изаберите додатак за претраживач + Изаберите додатак за претраживач - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Претраживачки додатак инсталација + Претраживачки додатак инсталација - - - Yes - Да + Да - - - - No - Не + Не - - qBittorrent search plugin - - - - - - - Search plugin update - Претраживачки додаци ажурирање + Претраживачки додаци ажурирање - - Sorry, update server is temporarily unavailable. - Жао нам је, сервер за ажурирање је привремено недоступан. + Жао нам је, сервер за ажурирање је привремено недоступан. - All your plugins are already up to date. - Сви ваши додаци су већ ажурни. + Сви ваши додаци су већ ажурни. - All selected plugins were uninstalled successfully - Сви изабрани додаци су деинсталирани успешно + Сви изабрани додаци су деинсталирани успешно - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - - Invalid link - - - - - New search engine plugin URL - Нови додатак претраживачког модула URL + Нови додатак претраживачког модула URL - - URL: - URL: + URL: @@ -7927,169 +8162,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Изаберите директоријум за извоз - - - - + + + + Choose a save directory Изаберите директоријум за чување - + Add directory to scan Додај директоријум за скенирање - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Фолдер је већ надгледан. - + Folder does not exist. Фолдер не постоји. - + Folder is not readable. Фолдер се не може прочитати. - + Failure Неуспешно - + Failed to add Scan Folder '%1': %2 Неуспешно додавање Фолдера Скенирања '%1': %2 - - + + Filters Филтери - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Анализа грешака - + Failed to parse the provided IP filter Неспешна анализа датог IP филтера - + Successfully refreshed Успешно обновљен - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Погрешан кључ - + This is not a valid SSL key. Ово није валидан SSL кључ. - + Invalid certificate Неважећи сертификат - + This is not a valid SSL certificate. Ово није валидан SSL сертификат. - + The start time and the end time can't be the same. - + Time Error @@ -8097,24 +8332,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Додатак сорс + Додатак сорс - Search plugin source: - Претраживачки додатак сорс: + Претраживачки додатак сорс: - Local file - Локални фајл + Локални фајл - Web link - Веб линк + Веб линк @@ -8143,40 +8374,28 @@ Those plugins were disabled. search_engine - - Search - Претраживање + Претраживање - Status: - Статус: + Статус: - Stopped - Стопиран + Стопиран - Download - Преузимање + Преузимање - Go to description page - Иди на веб страну са описом + Иди на веб страну са описом - - Copy description page URL - - - - Search engines... - Претраживачки модули... + Претраживачки модули... diff --git a/src/lang/qbittorrent_sv.ts b/src/lang/qbittorrent_sv.ts index 31bbb1908..74b1c7ed1 100644 --- a/src/lang/qbittorrent_sv.ts +++ b/src/lang/qbittorrent_sv.ts @@ -175,172 +175,172 @@ Hämta inte - - + + I/O Error In-/Ut-fel - + The torrent file does not exist. Torrentfillen existerar inte. - + Invalid torrent Ogiltig torrent - + Failed to load the torrent: %1 Kunde inte ladda torrenten: %1 - - + + Already in download list Redan i hämtningslistan - + Free disk space: %1 - + Not Available This comment is unavailable Inte tillgänglig - + Not Available This date is unavailable Inte tillgänglig - + Not available Inte tillgänglig - + Invalid magnet link Ogiltig magnetlänk - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Denna magnetlänk känns ej igen - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Magnetlänk - + Retrieving metadata... Hämtar metadata... - + Not Available This size is unavailable. Inte tillgänglig - - - + + + Choose save path Välj sökväg att spara i - + Rename the file Byt namn på filen - + New name: Nytt namn: - - + + The file could not be renamed Det gick inte att byta namn på filen - + This file name contains forbidden characters, please choose a different one. Detta filnamn innehåller förbjudna tecken. Välj ett annat filnamn. - - + + This name is already in use in this folder. Please use a different name. Detta namn används redan i denna mapp. Använd ett annat namn. - + The folder could not be renamed Det gick inte att byta namn på mappen - + Rename... Byt namn... - + Priority Prioritet - + Invalid metadata - + Parsing metadata... Löser metadata... - + Metadata retrieval complete Hämtning av metadata klart - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Slå upp klienternas värdnamn - - Maximum number of half-open connections [0: Disabled] - Maximalt antal halvöppna anslutningar [0: inaktiverat] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. Matchar artiklar baserat på avsnittsfilter. - + Example: Exempel: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match kommer matcha 2, 5, 8 genom 15, 30 och framåt på avsnittet säsong ett - + Episode filter rules: Regler för avsnittsfilter: - + Season number is a mandatory non-zero value Säsongsnummer är ett krav för värden över noll - + Episode number is a mandatory non-zero value Avsnittsnummer är ett krav för värden över noll - + Filter must end with semicolon Filter måste sluta med semikolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one Ensamma siffror: <b>1x25;</b> matchar episod 25 av säsong ett - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Vanligt intervall: <b>1x25-40;</b>matchar episoderna 25 till 40 av säsong ett - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Oändligt intervall: <b>1x25-;</b> matchar episoderna 25 och uppåt av säsong ett - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Namn för ny regel - + Please type the name of the new download rule. Ange det nya regelnamnet. - - + + Rule name conflict Namnkonflikt för regler - - + + A rule with this name already exists, please choose another name. En regel med denna namn finns redan. Välj ett annat namn. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Är du säker på att du vill ta bort de markerade hämtningsreglerna? - + Rule deletion confirmation Bekräfta regelborttagning - + Destination directory Målkatalog - + Invalid action Ogiltig åtgärd - + The list is empty, there is nothing to export. Listan är tom. Det finns ingenting att exportera. - + Where would you like to save the list? Var vill du spara listan? - + Rules list (*.rssrules) Regellista (*.rssrules) - + I/O Error In-/Ut-fel - + Failed to create the destination file Misslyckades med att skapa målfilen - + Please point to the RSS download rules file Peka ut regelfilen för RSS-hämtning - + Rules list Regellista - + Import Error Importfel - + Failed to import the selected rules file Misslyckades med att importera den valda regelfilen - + Add new rule... Lägg till ny regel... - + Delete rule Ta bort regel - + Rename rule... Byt namn på regel... - + Delete selected rules Ta bort markerade regler - + Rule renaming Byt namn på regel - + Please type the new rule name Ange det nya regelnamnet - + Regex mode: use Perl-like regular expressions Regex-läge: använd Perl-liknande reguljära uttryck - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Jokerteckensläge: du kan använda<ul><li>? för att matcha ett enda tecken</li><li>* för att matcha noll eller flera tecken</li><li>Blanksteg räknas som AND-operatorer</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Jokerteckensläge: du kan använda<ul><li>? för att matcha ett enda tecken</li><li>* för att matcha noll eller flera tecken</li><li>| använd som OR-operator</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ "%1" togs bort från överföringslistan. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Värde - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-kanaler - + Unread Oläst @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Endast en länk per rad - - Download local torrent - Hämta lokal torrent - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Hämtad @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About &Om - - Exit - Avsluta - &Pause @@ -1984,22 +1982,6 @@ You should get this information from your Web browser preferences. E&xit - - Options - Alternativ - - - Resume - Återuppta - - - Pause - Gör paus - - - Delete - Ta bort - Open URL @@ -2017,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Visa - + Check for program updates Leta efter programuppdateringar - - Lock qBittorrent - Lås qBittorrent - Add Torrent &Link... @@ -2042,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Körningslogg - + Clear the password Rensa lösenordet - + Filter torrent list... Filtrera torrentlista... - + &Set Password - + &Clear Password - + Transfers Överföringar - + Torrent file association Associering av torrentfiler - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent är inte standardprogrammet för att öppna torrentfiler eller Magnet-länkar. Vill du associera qBittorrent med torrentfiler och Magnet-länkar? - + Icons Only Endast ikoner - + Text Only Endast text - + Text Alongside Icons Text längs med ikoner - + Text Under Icons Text under ikoner - + Follow System Style Använd systemets utseende - - - + + + UI lock password Lösenord för gränssnittslåsning - - - + + + Please type the UI lock password: Ange lösenord för gränssnittslåsning: - + The password should contain at least 3 characters Lösenordet bör innehålla minst 3 tecken - + Password update Lösenordet har uppdaterats - + The UI lock password has been successfully updated Lösenordet för gränssnittslåsning har uppdaterats - + Are you sure you want to clear the password? Är du säker att du vill rensa lösenordet? - + Search Sök - + Transfers (%1) Överföringar (%1) - + Error - + Failed to add torrent: %1 - + Download completion Hämtningen är färdig - + I/O Error i.e: Input/Output Error In-/ut-fel - + Recursive download confirmation Bekräfta rekursiv hämtning - + Yes Ja - + No Nej - + Never Aldrig - + Global Upload Speed Limit Allmän hastighetsgräns för sändning - + Global Download Speed Limit Allmän hastighetsgräns för hämtning - + &No &Nej - + &Yes &Ja - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2258,157 +2242,151 @@ Vill du associera qBittorrent med torrentfiler och Magnet-länkar? - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter Python-tolk saknas - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Leta redan efter programuppdateringar i bakgrunden - + Python found in '%1' - + Download error Hämtningsfel - + Python setup could not be downloaded, reason: %1. Please install it manually. Python-installationen kunde inte hämtas. Anledning: %1. Installera den manuellt. - - + + Invalid password Ogiltigt lösenord - - + + RSS (%1) - + URL download error - + The password is invalid Lösenordet är ogiltigt - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Hämtning: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Sändning: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [N: %1/s, U: %2/s] qBittorrent %3 - + Hide Dölj - + Exiting qBittorrent Avslutar qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Ett antal filer håller fortfarande på att överföras. Är du säker på att du vill avsluta qBittorrent? - + Open Torrent Files Öppna torrent-filer - + Torrent Files Torrent-filer - + Options were saved successfully. Inställningarna har sparats. @@ -2416,17 +2394,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2436,32 +2414,32 @@ Are you sure you want to quit qBittorrent? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2488,154 +2466,149 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2650,1137 +2623,1127 @@ Are you sure you want to quit qBittorrent? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Frankrike + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Frankrike + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Grekland - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3836,12 +3799,12 @@ Are you sure you want to quit qBittorrent? peer snubbed - peer snubbed + incoming connection - inkommande anslutning + @@ -3856,27 +3819,27 @@ Are you sure you want to quit qBittorrent? peer from PEX - klient från PEX + peer from DHT - klient från DHT + encrypted traffic - krypterad trafik + encrypted handshake - krypterad handskakning + peer from LSD - klient från LSD + @@ -3944,95 +3907,73 @@ Are you sure you want to quit qBittorrent? Relevans - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Lägg till en ny klient... - + Copy selected Kopiera markerade - - + + Ban peer permanently Bannlys klient permanent - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Lägg till klient - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Är du säker på att du vill bannlysa de markerade klienterna permanent? - + &Yes &Ja - + &No &Nej - - peer snubbed - peer snubbed - - - incoming connection - inkommande anslutning - - - peer from PEX - klient från PEX - - - peer from DHT - klient från DHT - - - encrypted traffic - krypterad trafik - - - encrypted handshake - krypterad handskakning - - - peer from LSD - klient från LSD - PeersAdditionDlg @@ -4070,6 +4011,202 @@ Are you sure you want to quit qBittorrent? + + PluginSelectDlg + + + Search plugins + Sökinsticksmoduler + + + + Installed search plugins: + + + + + Name + Namn + + + + Version + + + + + Url + Url + + + + + Enabled + Aktiverad + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan hitta nya instick för sökmotorer här: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Installera ett nytt instick + + + + Check for updates + Leta efter uppdateringar + + + + Close + Stäng + + + + Uninstall + Avinstallera + + + + + + Yes + Ja + + + + + + + No + Nej + + + + Uninstall warning + Varning vid avinstallation + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Avinstallation lyckades + + + + All selected plugins were uninstalled successfully + Alla markerade insticksmoduler avinstallerades + + + + + New search engine plugin URL + Url för nytt sökmotorinstick + + + + + URL: + Url: + + + + Invalid link + Ogiltig länk + + + + The link doesn't seem to point to a search engine plugin. + + + + + Select search plugins + Välj sökinsticksmoduler + + + + qBittorrent search plugin + + + + + + + Search plugin update + Uppdatering av sökinstick + + + + All your plugins are already up to date. + Alla dina insticksmoduler är redan uppdaterade. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Installation av sökinsticksmoduler + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Insticksmodulkälla + + + + Search plugin source: + Sök insticksmodulkälla: + + + + Local file + Lokal fil + + + + Web link + Webblänk + + Preferences @@ -4126,89 +4263,89 @@ Are you sure you want to quit qBittorrent? Lägg till filändelsen .!qB till ofullständiga filer - + Copy .torrent files to: Kopiera .torrent-filer till: - + Connections Limits Anslutningsgränser - + Proxy Server Proxyserver - + Global Rate Limits Allmänna hastighetsgränser - + Apply rate limit to transport overhead Tillämpa hastighetsgräns på transport-overhead - + Schedule the use of alternative rate limits Schemalägg användning av alternativa hastighetsgränser - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Aktivera Local Peer Discovery för att hitta fler klienter - + Encryption mode: Krypteringsläge: - + Prefer encryption Föredra kryptering - + Require encryption Kräv kryptering - + Disable encryption Inaktivera kryptering - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Mer information</a>) - + Maximum active downloads: Maximalt aktiva hämtningar: - + Maximum active uploads: Maximalt aktiva sändningar: - + Maximum active torrents: Maximalt aktiva torrenter: @@ -4233,82 +4370,82 @@ Are you sure you want to quit qBittorrent? Visa torrentens innehåll och alternativ - + Run external program on torrent completion - + Port used for incoming connections: Port som används för inkommande anslutningar: - + Random Slumpmässig - + Global maximum number of connections: Allmänt maximalt antal anslutningar: - + Maximum number of connections per torrent: Maximalt antal anslutningar per torrent: - + Maximum number of upload slots per torrent: Maximalt antal sändningsplatser per torrent: - - + + Upload: Sändning: - - + + Download: Hämtning: - - - - + + + + KiB/s KiB/s - + Remove folder Ta bort mapp - + Every day Varje dag - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Utväxla klienter med kompatibla Bittorrent-klienter (µTorrent, Vuze, ...) - + Host: Värd: - + SOCKS4 SOCKS 4 - + Type: Typ: @@ -4481,262 +4618,262 @@ Are you sure you want to quit qBittorrent? Lägg automatiskt till torrentfiler från: - + Add folder... Lägg till mapp... - + Copy .torrent files for finished downloads to: Kopiera .torrent-filer för färdiga nedladdningar till: - + Email notification upon download completion E-postnotifiering vid färdiga hämtningar - + Destination email: Mottagare av e-post: - + SMTP server: SMTP-server: - + This server requires a secure connection (SSL) Denna server kräver en säker anslutning (SSL) - + Listening Port Lyssningsport - + Use UPnP / NAT-PMP port forwarding from my router Använd UPnP / NAT-PMP-portomdirigering från min router - + Use different port on each startup Använd ny port vid varje uppstart - + Global maximum number of upload slots: Allmänt maximalt antal sändningsplatser per torrent: - + Otherwise, the proxy server is only used for tracker connections Om inte kommer proxyservern endast att användas för anslutningar till bevakare - + Use proxy for peer connections Använd proxyserver för klientanslutningar - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted Info: Lösenord sparas okrypterat - + IP Filtering IP-filtrering - + Reload the filter Läs om filtret - + Apply to trackers - + Apply rate limit to peers on LAN - + When: När: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Integritet - + Enable DHT (decentralized network) to find more peers Aktivera DHT (decentraliserat nätverk) för att hitta fler klienter - + Enable Peer Exchange (PeX) to find more peers Aktivera Peer Exchange (PeX) för att hitta fler klienter - + Look for peers on your local network Leta efter klienter på ditt lokala nätverk - + Enable when using a proxy or a VPN connection Aktivera när proxy eller VPN-anslutning används - + Enable anonymous mode Aktivera anonymt läge - + Do not count slow torrents in these limits Räkna inte in långsamma torrentfiler i dessa begränsningar - + Seed torrents until their ratio reaches Distribuera torrentfiler till deras förhållande når - + then sedan - + Pause them Pausa dem - + Remove them Ta bort dem - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Använd UPnP / NAT-PMP för att vidarebefordra porten från min router - + Use HTTPS instead of HTTP Använd HTTPS istället för HTTP - + Import SSL Certificate Importera SSL-certifikat - + Import SSL Key Importera SSL-nyckel - + Certificate: Certifikat: - + Alternative Rate Limits - + Key: Nyckel: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information om certifikat</a> - + Bypass authentication for localhost Kringgå autentisering för localhost - + Update my dynamic domain name Uppdatera mitt dynamiska domännamn - + Service: Tjänst: - + Register Registrera - + Domain name: Domännamn: - + (None) (Ingen) @@ -4746,61 +4883,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Port: - - - + + + Authentication Autentisering - - - - + + + + Username: Användarnamn: - - - - + + + + Password: Lösenord: - + Torrent Queueing Torrentkö - + Share Ratio Limiting Begränsning av utdelningsförhållande - + Enable Web User Interface (Remote control) Aktivera webbgränssnittet (fjärrstyrning) - + SOCKS5 SOCKS 5 - + Filter path (.dat, .p2p, .p2b): Filtersökväg (.dat, .p2p, .p2b): @@ -5006,10 +5143,6 @@ Are you sure you want to quit qBittorrent? Comment: Kommentar: - - Torrent content: - Torrentfilens innehåll: - Select All @@ -5531,28 +5664,28 @@ Detta meddelande kommer inte att visas igen. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5663,17 +5796,17 @@ Detta meddelande kommer inte att visas igen. RSSImp - + Stream URL: URL för kanal: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5693,75 +5826,77 @@ Detta meddelande kommer inte att visas igen. Ny mapp - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Välj ett nytt namn för denna RSS-kanal - + New feed name: Nytt kanalnamn: - + Name already in use Namnet används redan - + This name is already used by another item, please choose another one. Detta namn används redan av ett annat objekt. Välj ett annat namn. - + Date: Datum: - + Author: Upphovsman: - + Unread Oläst - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Kunde inte öppna den nedladdade RSS-filen. - - - - Invalid RSS feed at '%1'. - + Kunde inte öppna den nedladdade RSS-filen. @@ -5787,168 +5922,220 @@ Detta meddelande kommer inte att visas igen. Maximalt antal inlägg per RSS-kanal: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Bläddra... + + + + Choose save path + Välj sökväg att spara i + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Bevakad mapp - - Download here - Hämta hit + + Save Files to + - - Download path - + Download here + Hämta hit SearchCategories - All categories - Alla kategorier + Alla kategorier - Movies - Filmer + Filmer - TV shows - TV-program + TV-program - Music - Musik + Musik - Games - Spel + Spel - Anime - Anime + Anime - Software - Programvara + Programvara - Pictures - Bilder + Bilder - Books - Böcker + Böcker SearchEngine - - - Search - Sök + Sök - - Please install Python to use the Search Engine. - - - - Empty search pattern - Tomt sökmönster + Tomt sökmönster - Please type a search pattern first - Ange ett sökmönster först + Ange ett sökmönster först - Searching... - Söker... + Söker... - Stop - Stoppa + Stoppa - - Search Engine - Sökmotor + Sökmotor - - Search has finished - Sökningen är färdig + Sökningen är färdig - An error occurred during search... - Ett fel inträffade under sökningen... + Ett fel inträffade under sökningen... - - Search aborted - Sökningen avbröts + Sökningen avbröts - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Sökningen returnerade inga resultat + Sökningen returnerade inga resultat - - Stopped - Stoppad + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Alla kategorier + + + + Movies + Filmer + + + + TV shows + TV-program + + + + Music + Musik + + + + Games + Spel + + + + Anime + Anime + + + + Software + Programvara + + + + Pictures + Bilder + + + + Books + Böcker SearchListDelegate - - + + Unknown Okänd @@ -5956,35 +6143,160 @@ Detta meddelande kommer inte att visas igen. SearchTab - + Name i.e: file name Namn - + Size i.e: file size Storlek - + Seeders i.e: Number of full sources Distributörer - + Leechers i.e: Number of partial sources Reciprokörer - + Search engine Sökmotor + + SearchWidget + + + + + + + Search + Sök + + + + Status: + Status: + + + + + Stopped + Stoppad + + + + Download + Hämta + + + + Go to description page + Gå till beskrivningssidan + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Sökmotor + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Tomt sökmönster + + + + Please type a search pattern first + Ange ett sökmönster först + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Söker... + + + + Stop + Stoppa + + + + + Search has finished + Sökningen är färdig + + + + + Search aborted + Sökningen avbröts + + + + Search returned no results + Sökningen returnerade inga resultat + + + + Search has failed + + + + + An error occurred during search... + Ett fel inträffade under sökningen... + + ShutdownConfirmDlg @@ -6429,24 +6741,28 @@ Detta meddelande kommer inte att visas igen. TorrentContentModel - + Name Namn - + Size Storlek - + Progress Förlopp - + + Download Priority + + + Priority - Prioritet + Prioritet @@ -6798,38 +7114,38 @@ Detta meddelande kommer inte att visas igen. Varning (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents Återuppta torrentfiler - + Pause torrents Gör paus i torrentfiler - + Delete torrents Ta bort torrentfiler - - + + All (%1) this is for the tracker filter Alla (%1) @@ -7097,17 +7413,17 @@ Detta meddelande kommer inte att visas igen. TransferListFiltersWidget - + Status Status - + Labels Etiketter - + Trackers Bevakare @@ -7646,205 +7962,99 @@ Detta meddelande kommer inte att visas igen. engineSelect - Search plugins - Sökinsticksmoduler + Sökinsticksmoduler - Installed search engines: - Installerade sökmotorer: + Installerade sökmotorer: - Name - Namn + Namn - - Version - - - - Url - Url + Url - - Enabled - Aktiverad + Aktiverad - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan hitta nya instick för sökmotorer här: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan hitta nya instick för sökmotorer här: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Installera ett nytt instick + Installera ett nytt instick - Check for updates - Leta efter uppdateringar + Leta efter uppdateringar - Close - Stäng + Stäng - Uninstall - Avinstallera + Avinstallera engineSelectDlg - Uninstall warning - Varning vid avinstallation + Varning vid avinstallation - Uninstall success - Avinstallation lyckades + Avinstallation lyckades - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - - The link doesn't seem to point to a search engine plugin. - - - - Select search plugins - Välj sökinsticksmoduler + Välj sökinsticksmoduler - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Installation av sökinsticksmoduler + Installation av sökinsticksmoduler - - - Yes - Ja + Ja - - - - No - Nej + Nej - - qBittorrent search plugin - - - - - - - Search plugin update - Uppdatering av sökinstick + Uppdatering av sökinstick - - Sorry, update server is temporarily unavailable. - Tyvärr, uppdateringsservern är inte tillgänglig för tillfället. + Tyvärr, uppdateringsservern är inte tillgänglig för tillfället. - All your plugins are already up to date. - Alla dina insticksmoduler är redan uppdaterade. + Alla dina insticksmoduler är redan uppdaterade. - All selected plugins were uninstalled successfully - Alla markerade insticksmoduler avinstallerades + Alla markerade insticksmoduler avinstallerades - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Ogiltig länk + Ogiltig länk - - New search engine plugin URL - Url för nytt sökmotorinstick + Url för nytt sökmotorinstick - - URL: - Url: + Url: @@ -7974,169 +8184,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Välj exportkatalog - - - - + + + + Choose a save directory Välj en katalog att spara i - + Add directory to scan Lägg till katalog att söka av - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Mappen bevakas redan. - + Folder does not exist. Mappen finns inte. - + Folder is not readable. Mappen är inte läsbar. - + Failure Fel - + Failed to add Scan Folder '%1': %2 Misslyckades med att lägga till mapp att söka av "%1": %2 - - + + Filters Filter - - + + Choose an IP filter file - + SSL Certificate SSL-certifikat - + SSL Key SSL-nyckel - + Parsing error Tolkningsfel - + Failed to parse the provided IP filter Misslyckades med att tolka angivet IP-filter - + Successfully refreshed Uppdaterades - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Ogiltig nyckel - + This is not a valid SSL key. Detta är inte en giltig SSL-nyckel. - + Invalid certificate Ogiltigt certifikat - + This is not a valid SSL certificate. Detta är inte ett giltigt SSL-certifikat. - + The start time and the end time can't be the same. Starttiden och sluttiden kan inte vara desamma. - + Time Error Tidsfel @@ -8144,24 +8354,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Insticksmodulkälla + Insticksmodulkälla - Search plugin source: - Sök insticksmodulkälla: + Sök insticksmodulkälla: - Local file - Lokal fil + Lokal fil - Web link - Webblänk + Webblänk @@ -8190,40 +8396,28 @@ Those plugins were disabled. search_engine - - Search - Sök + Sök - Status: - Status: + Status: - Stopped - Stoppad + Stoppad - Download - Hämta + Hämta - Go to description page - Gå till beskrivningssidan + Gå till beskrivningssidan - - Copy description page URL - - - - Search engines... - Sökmotorer... + Sökmotorer... diff --git a/src/lang/qbittorrent_tr.ts b/src/lang/qbittorrent_tr.ts index afc41704f..4e88ba503 100644 --- a/src/lang/qbittorrent_tr.ts +++ b/src/lang/qbittorrent_tr.ts @@ -127,7 +127,7 @@ Set as default label - + Varsayılan etiket olarak ayarla @@ -175,172 +175,172 @@ İndirme yapma - - + + I/O Error G/Ç Hatası - + The torrent file does not exist. Torrent dosyası mevcut değil. - + Invalid torrent Geçersiz torrent - + Failed to load the torrent: %1 Torrenti yükleme başarısız: %1 - - + + Already in download list Zaten indirme listesinde - + Free disk space: %1 Boş disk alanı: %1 - + Not Available This comment is unavailable Mevcut Değil - + Not Available This date is unavailable Mevcut Değil - + Not available Mevcut değil - + Invalid magnet link Geçersiz magnet bağlantısı - + Torrent is already in download list. Trackers were merged. Torrent zaten indirme listesinde. İzleyiciler birleştirildi. - - + + Cannot add torrent Torrent eklenemiyor - + Cannot add this torrent. Perhaps it is already in adding state. Bu torrent eklenemiyor. Belki zaten ekleme durumundadır. - + This magnet link was not recognized Bu magnet bağlantısı tanınamadı - + Magnet link is already in download list. Trackers were merged. Magnet bağlantısı zaten indirme listesinde. İzleyiciler birleştirildi. - + Cannot add this torrent. Perhaps it is already in adding. Bu torrent eklenemiyor. Belki zaten eklenmektedir. - + Magnet link Magnet bağlantısı - + Retrieving metadata... Üstveri alınıyor... - + Not Available This size is unavailable. Mevcut Değil - - - + + + Choose save path Kayıt yolunu seçin - + Rename the file Dosyayı yeniden adlandır - + New name: Yeni adı: - - + + The file could not be renamed Dosya yeniden adlandırılamadı - + This file name contains forbidden characters, please choose a different one. Bu dosya adı yasak karakterler içeriyor, lütfen farklı bir tane seçin. - - + + This name is already in use in this folder. Please use a different name. Bu dosya adı bu klasörde zaten kullanılmakta. Lütfen farklı bir ad kullanın. - + The folder could not be renamed Klasör yeniden adlandırılamadı - + Rename... Yeniden adlandır... - + Priority Öncelik - + Invalid metadata Geçersiz üstveri - + Parsing metadata... Üstveri ayrıştırılıyor... - + Metadata retrieval complete Üstveri alımı tamamlandı - + Download Error İndirme Hatası @@ -431,10 +431,6 @@ Resolve peer host names Kişi anamakine adlarını çöz - - Maximum number of half-open connections [0: Disabled] - Yarı açık bağlantıların en fazla sayısı [0: Etkisizleştirildi] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Yarı açık bağlantıların en fazla sayısı [0: Sınırsız] @@ -613,7 +609,7 @@ Ignore Subsequent Matches for (0 to Disable) ... X days - Sonradan Gelen Eşleşmelerin Yoksayılması (0=Etkisiz) + Sonradan Gelen Eşleşmelerin Yoksayılması (0: Etkisiz) @@ -661,205 +657,205 @@ &Dışa Aktar... - + Matches articles based on episode filter. Bölüm süzgecine dayalı eşleşen maddeler. - + Example: Örnek: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match 2, 5, 8 ila 15, 30 arasıyla ve birinci sezonun ileriki bölümleriyle eşleşecek - + Episode filter rules: Bölüm süzgeç kuralları: - + Season number is a mandatory non-zero value Sezon numarası sıfırdan farklı zorunlu bir değerdir - + Episode number is a mandatory non-zero value Bölüm numarası sıfırdan farklı zorunlu bir değerdir - + Filter must end with semicolon Süzgeç noktalı virgül ile bitmek zorundadır - + Three range types for episodes are supported: Bölümler için üç aralık türü desteklenir: - + Single number: <b>1x25;</b> matches episode 25 of season one Tek numara: <b>1x25;</b> birinci sezonun 25. bölümüyle eşleşir - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Normal aralık: <b>1x25-40;</b> birinci sezonun 25 ila 40 arası bölümleriyle eşleşir - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Sonsuz aralık: <b>1x25-;</b> birinci sezonun 25. ve ileriki bölümleriyle eşleşir - + Last Match: %1 days ago Son Eşleşme: %1 gün önce - + Last Match: Unknown Son Eşleşme: Bilinmiyor - + New rule name Yeni kural adı - + Please type the name of the new download rule. Lütfen yeni indirme kuralı adını yazın. - - + + Rule name conflict Kural adı çakışması - - + + A rule with this name already exists, please choose another name. Bu isimde bir kural zaten var, lütfen başka bir isim seçin. - + Are you sure you want to remove the download rule named '%1'? '%1' adındaki indirme kuralını kaldırmak istediğinize emin misiniz? - + Are you sure you want to remove the selected download rules? Seçilen indirme kurallarını kaldırmak istediğinize emin misiniz? - + Rule deletion confirmation Kural silme onayı - + Destination directory Hedef dizin - + Invalid action Geçersiz eylem - + The list is empty, there is nothing to export. Liste boş, dışa aktarmak için bir şey yok. - + Where would you like to save the list? Listeyi nereye kaydetmek istersiniz? - + Rules list (*.rssrules) Kurallar listesi (*.rssrules) - + I/O Error G/Ç Hatası - + Failed to create the destination file Hedef dosya oluşturma başarısız - + Please point to the RSS download rules file Lütfen RSS indirme kuralları dosyasını gösterin - + Rules list Kurallar listesi - + Import Error İçe Aktarma Hatası - + Failed to import the selected rules file Seçilen kurallar dosyasını içe aktarma başarısız - + Add new rule... Yeni kural ekle... - + Delete rule Kuralı sil - + Rename rule... Kuralı yeniden adlandır... - + Delete selected rules Seçilen kuralları sil - + Rule renaming Kural yeniden adlandırma - + Please type the new rule name Lütfen yeni kural adını yazın - + Regex mode: use Perl-like regular expressions Regex kipi: Perl gibi düzenli ifadeleri kullan - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Joker kipi: <ul><li>Herhangi bir tek karakteri eşlemek için ?</li><li>Herhangi bir karakterin daha fazlasını ya da sıfır karakteri eşlemek için *</li><li>AND işleticileri olarak Boşluk miktarını</li></ul> kullanabilirsiniz - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Joker kipi: <ul><li>Herhangi bir tek karakteri eşlemek için ?</li><li>Herhangi bir karakterin daha fazlasını ya da sıfır karakteri eşlemek için *</li><li>| işaretini OR işleticileri olarak</li></ul> kullanabilirsiniz @@ -952,65 +948,57 @@ '%1', ayarladığınız en fazla orana ulaştı. Duraklatılıyor... - Error: Could not create torrent export directory: '%1' - Hata: Torrent dışa aktarma dizini oluşturulamadı: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Hata: '%1' torrenti dışa aktarılamadı, belki henüz üstveriye sahip değil. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Sistem ağ durumu %1 olarak değişti - + ONLINE ÇEVRİMİÇİ - + OFFLINE ÇEVRİMDIŞI - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 ağ yapılandırması değişti, oturum bağlaması yenileniyor - + Unable to decode '%1' torrent file. '%1' torrent dosyası çözülemiyor. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' '%1' dosyasının tekrarlayan indirmesi '%2' torrenti içine gömüldü - + Couldn't save '%1.torrent' '%1.torrent' dosyası kaydedilemedi - + because %1 is disabled. this peer was blocked because uTP is disabled. engellendi çünkü %1 etkisizleştirildi. - + because %1 is disabled. this peer was blocked because TCP is disabled. engellendi çünkü %1 etkisizleştirildi. - + URL seed lookup failed for URL: '%1', message: %2 URL gönderimi arama şu URL için başarısız oldu: '%1', ileti: '%2' @@ -1027,178 +1015,164 @@ '%1' dosyası aktarım listesinden kaldırıldı. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' indiriliyor, lütfen bekleyin... - Torrent Export: torrent is invalid, skipping... - Torrent Dışa Aktarma: torrent geçersiz, atlanıyor... - - - + DHT support [ON] DHT desteği [AÇIK] - + DHT support [OFF]. Reason: %1 DHT desteği [KAPALI]. Sebep: %1 - + DHT support [OFF] DHT desteği [KAPALI] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemeyi deniyor: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2 - - - + The network interface defined is invalid: %1 Tanımlanan ağ arayüzü geçersiz: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemeyi deniyor: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent dinlemek için bir %1 yerel adresi bulamadı - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2. {1.?} + qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2. - + Tracker '%1' was added to torrent '%2' İzleyici '%1', '%2' torrentine eklendi - + Tracker '%1' was deleted from torrent '%2' İzleyici '%1', '%2' torrentinden silindi - + URL seed '%1' was added to torrent '%2' Gönderim URL'si '%1', '%2' torrentine eklendi - + URL seed '%1' was removed from torrent '%2' Gönderim URL'si '%1', '%2' torrentinden kaldırıldı - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. '%1' torrent dosyası devam ettirilemiyor. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verilen IP süzgeci başarılı olarak ayrıştırıldı: %1 kural uygulandı. - + Error: Failed to parse the provided IP filter. Hata: Verilen IP süzgecini ayrıştırma başarısız. - + Couldn't add torrent. Reason: %1 Torrent eklenemedi. Sebep: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' dosyasına devam edildi. (hızlı devam) - + '%1' added to download list. 'torrent name' was added to download list. '%1' dosyası indirme listesine eklendi. - + An I/O error occurred, '%1' paused. %2 Bir G/Ç hatası meydana geldi, '%1' duraklatıldı. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Bağlantı noktası eşleme başarısız, ileti: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Bağlantı noktası eşleme başarılı, ileti: %1 - + due to IP filter. this peer was blocked due to ip filter. IP süzgecinden dolayı engellendi. - + due to port filter. this peer was blocked due to port filter. bağlantı noktası süzgecinden dolayı engellendi. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p karışık kip kısıtlamalarından dolayı engellendi. - + because it has a low port. this peer was blocked because it has a low port. engellendi çünkü düşük bir bağlantı noktasına sahip. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent, %1 arayüzünde şu bağlantı noktasını başarılı olarak dinliyor: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4. {1 ?} {2/%3.?} + qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Dış IP: %1 @@ -1212,12 +1186,12 @@ Torrent taşınamadı: '%1'. Sebep: %2 - + File sizes mismatch for torrent '%1', pausing it. '%1' torrenti için dosya boyutu uyuşmuyor, duraklatılıyor. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Hızlı devam verisi '%1' torrenti için reddedildi. Sebep: '%2'. Tekrar kontrol ediliyor... @@ -1242,7 +1216,7 @@ Değer - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Tanımlama bilgileri için yaygın anahtarlar: '%1', '%2'. @@ -1310,12 +1284,12 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. FeedListWidget - + RSS feeds RSS beslemeleri - + Unread Okunmadı @@ -1412,10 +1386,6 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Only one link per line Her satıra bir bağlantı - - Download local torrent - Yerel torrenti indir - Download @@ -1589,20 +1559,30 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Save files to location: - Dosyaların kaydedildiği yer: + Dosyaların kaydedildiği yer: Label: - Etiket: + Etiket: Cookie: + Tanımlama Bilgisi: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? İndirilen @@ -1615,7 +1595,7 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Upload local torrent - + Yerel torrenti gönder @@ -1973,10 +1953,6 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. &About &Hakkında - - Exit - Çıkış - &Pause @@ -2007,22 +1983,6 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. E&xit Çı&kış - - Options - Seçenekler - - - Resume - Devam et - - - Pause - Duraklat - - - Delete - Sil - Open URL @@ -2040,19 +2000,15 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. - + Show Göster - + Check for program updates Program güncellemelerini kontrol et - - Lock qBittorrent - qBittorrent'i kilitle - Add Torrent &Link... @@ -2065,215 +2021,221 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. - + Execution Log Çalıştırma Günlüğü - + Clear the password Parolayı temizle - + Filter torrent list... Torrent listesini süz... - + &Set Password Parola &Ayarla - + &Clear Password Parolayı &Temizle - + Transfers Aktarımlar - + Torrent file association Torrent dosyası ilişkilendirme - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent, torrent dosyalarını ya da Magnet bağlantılarını açmak için varsayılan uygulama değildir. qBittorrent'i torrent dosyalarına ya da Magnet bağlantılarına ilişkilendirmek istiyor musunuz? - + Icons Only Sadece Simgeler - + Text Only Sadece Metin - + Text Alongside Icons Metin Simgelerin Yanında - + Text Under Icons Metin Simgelerin Altında - + Follow System Style Sistem Stilini Takip Et - - - + + + UI lock password Arayüz kilidi parolası - - - + + + Please type the UI lock password: Lütfen Arayüz kilidi parolasını yazın: - + The password should contain at least 3 characters Parola en az 3 karakter içermeli - + Password update Parola güncelleme - + The UI lock password has been successfully updated Arayüz kilidi parolası başarılı olarak güncellendi - + Are you sure you want to clear the password? Parolayı temizlemek istediğinize emin misiniz? - + Search Ara - + Transfers (%1) Aktarımlar (%1) - + Error Hata - + Failed to add torrent: %1 Torrenti ekleme başarısız: %1 - + Download completion İndirme tamamlandı - + I/O Error i.e: Input/Output Error G/Ç Hatası - + Recursive download confirmation Tekrarlanan indirme onayı - + Yes Evet - + No Hayır - + Never Asla - + Global Upload Speed Limit Genel Gönderme Hızı Sınırı - + Global Download Speed Limit Genel İndirme Hızı Sınırı - + &No &Hayır - + &Yes &Evet - + &Always Yes Her &Zaman Evet - + Python found in %1 %1 içinde Python bulundu - + Old Python Interpreter Eski Python Yorumlayıcı - + qBittorrent Update Available qBittorrent Güncellemesi Mevcut - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Zaten En Son qBittorrent Sürümü Kullanılıyor - + Undetermined Python version Belirlenemeyen Python sürümü - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' dosyasının indirilmesi tamamlandı. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ qBittorrent'i torrent dosyalarına ya da Magnet bağlantılarına ilişkile Sebep: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? '%1' torrenti, torrent dosyaları içeriyor, bunların indirilmesi ile işleme devam etmek istiyor musunuz? - + Couldn't download file at URL '%1', reason: %2. Şu URL'den dosya indirilemedi: '%1', sebep: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Python sürümünüz %1 eskimiş. Arama motorlarının çalışması için lütfen en son sürüme yükseltin. En düşük gereken: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Python sürümünüz (%1) belirlenemedi. Arama motoru etkisizleştirildi. - - + + Missing Python Interpreter Eksik Python Yorumlayıcı - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Arama motorunu kullanmak için Python gerekir ancak yüklenmiş görünmüyor. Şimdi yüklemek istiyor musunuz? - + Python is required to use the search engine but it does not seem to be installed. Arama motorunu kullanmak için Python gerekir ancak yüklenmiş görünmüyor. - A new version is available. Update to version %1? - Yeni bir sürüm mevcut. + Yeni bir sürüm mevcut. %1 sürümüne güncellensin mi? - + No updates available. You are already using the latest version. Mevcut güncellemeler yok. Zaten en son sürümü kullanıyorsunuz. - + &Check for Updates Güncellemeleri &Kontrol Et - + Checking for Updates... Güncellemeler kontrol ediliyor... - + Already checking for program updates in the background Program güncellemeleri arka planda zaten kontrol ediliyor - + Python found in '%1' '%1' içinde Python bulundu - + Download error İndirme hatası - + Python setup could not be downloaded, reason: %1. Please install it manually. Python kurulumu indirilemedi, sebep: %1. Lütfen el ile yükleyin. - - + + Invalid password Geçersiz parola - - + + RSS (%1) RSS (%1) - + URL download error URL indirme hatası - + The password is invalid Parola geçersiz - - + + DL speed: %1 e.g: Download speed: 10 KiB/s İND hızı: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s GÖN hızı: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [İnd: %1, Gön: %2] qBittorrent %3 - + Hide Gizle - + Exiting qBittorrent qBittorrent'ten çıkılıyor - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Bazı dosyalar şu anda aktarılıyor. qBittorrent'ten çıkmak istediğinize emin misiniz? - + Open Torrent Files Torrent Dosyalarını Aç - + Torrent Files Torrent Dosyaları - + Options were saved successfully. Seçenekler başarılı olarak kaydedildi. @@ -2443,17 +2404,17 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Değişken DNS'iniz başarılı olarak güncellendi. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Değişken DNS hatası: Hizmet geçici olarak kullanılamıyor, 30 dakika içinde yeniden denenecektir. - + Dynamic DNS error: hostname supplied does not exist under specified account. Değişken DNS hatası: verilen anamakine adı belirtilen hesap altında mevcut değil. @@ -2463,32 +2424,32 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Değişken DNS hatası: Geçersiz kullanıcı adı/parola. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Değişken DNS hatası: qBittorrent, hizmet tarafından kara listeye alındı, lütfen http://bugs.qbittorrent.org adresinde bir hata bildirin. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Değişken DNS hatası: %1, hizmet tarafından geri döndürüldü, lütfen http://bugs.qbittorrent.org adresinde bir hata bildirin. - + Dynamic DNS error: Your username was blocked due to abuse. Değişken DNS hatası: Kullanıcı adınız kötüye kullanımdan dolayı engellendi. - + Dynamic DNS error: supplied domain name is invalid. Değişken DNS hatası: verilen etki alanı adı geçersiz. - + Dynamic DNS error: supplied username is too short. Değişken DNS hatası: verilen kullanıcı adı çok kısa. - + Dynamic DNS error: supplied password is too short. Değişken DNS hatası: verilen parola çok kısa. @@ -2515,154 +2476,161 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP veritabanı yüklendi. Türü: %1. Yapım zamanı: %2. - + Couldn't load GeoIP database. Reason: %1 GeoIP veritabanı yüklenemedi. Sebep: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A Yok - Asia/Pacific Region - Asya/Pasifik Bölgesi + Asya/Pasifik Bölgesi + + + Europe + Avrupa - Europe - Avrupa - - - Andorra Andora - + United Arab Emirates Birleşik Arap Emirlikleri - + Afghanistan Afganistan - + Antigua and Barbuda Antigua ve Barbuda - + Anguilla Anguilla - + Albania Arnavutluk - + Armenia Ermenistan - Netherlands Antilles - Hollanda Antilleri + Hollanda Antilleri - + Angola Angola - + Antarctica Antartika - + Argentina Arjantina - + American Samoa Amerikan Samoası - + Austria Avusturya - + Australia Avusturalya - + Aruba Aruba - + Azerbaijan Azerbaycan - + Bosnia and Herzegovina Bosna Hersek - + Barbados Barbados - + Bangladesh Bangladeş - + Belgium Belçika - + Burkina Faso Burkina Faso - + Bulgaria Bulgaristan - + Bahrain Bahreyn - + Burundi Burundi - + Benin Benin @@ -2677,1137 +2645,1187 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Brunei Darussalam - Bolivia - Bolivya + Bolivya - + Brazil Brezilya - + Bahamas Bahamalar - + Bhutan Bhutan - + Bouvet Island Bouvet Adası - + Botswana Botsvana - + Belarus Beyaz Rusya - + Belize Beliz - + Canada Kanada - + Cocos (Keeling) Islands Cocos (Keeling) Adaları - + Congo, The Democratic Republic of the Demokratik Kongo Cumhuriyeti - + Central African Republic Orta Afrika Cumhuriyeti - + Congo Kongo - + Switzerland İsviçre - Cote D'Ivoire - Fildişi Sahili + Fildişi Sahili - + Cook Islands Cook Adaları - + Chile Şili - + Cameroon Kamerun - + China Çin - + Colombia Kolombiya - + Costa Rica Kosta Rika - + Cuba Kuba - + Cape Verde Yeşil Burun Adaları - + + Curacao + + + + Christmas Island Christmas Adası - + Cyprus Kıbrıs - + Czech Republic Çek Cumhuriyeti - + Germany Almanya - + Djibouti Cibuti - + Denmark Danimarka - + Dominica Dominika - + Dominican Republic Dominik Cumhuriyeti - + Algeria Cezayir - + Ecuador Ekvator - + Estonia Estonya - + Egypt Mısır - + Western Sahara Batı Sahra - + Eritrea Eritre - + Spain İspanya - + Ethiopia Etiyopya - + Finland Finlandiya - + Fiji Fiji - + Falkland Islands (Malvinas) Falkland Adaları (Malvinas) - + Micronesia, Federated States of Mikronezya Federal Devletleri - + Faroe Islands Faroe Adaları - + France Fransa - France, Metropolitan - Fransa, Metropolitan + Fransa, Metropolitan - + Gabon Gabon - + United Kingdom Birleşik Krallık - + Grenada Grenada - + Georgia Gürcistan - + French Guiana Fransız Guyanası - + Ghana Gana - + Gibraltar Cebelitarık - + Greenland Grönland - + Gambia Gambiya - + Guinea Gine - + Guadeloupe Guadeloupe - + Equatorial Guinea Ekvator Ginesi - + Greece Yunanistan - + South Georgia and the South Sandwich Islands Güney Georgia ve Güney Sandwich Adaları - + Guatemala Guatemala - + Guam Guam - + Guinea-Bissau Gine-Bissau - + Guyana Guyana - + Hong Kong Hong Kong - + Heard Island and McDonald Islands Heard Adası ve McDonald Adaları - + Honduras Honduras - + Croatia Hırvatistan - + Haiti Haiti - + Hungary Macaristan - + Indonesia Endonezya - + Ireland İrlanda - + Israel İsrail - + India Hindistan - + British Indian Ocean Territory Britanya Hint Okyanusu Toprakları - + Iraq Irak - + Iran, Islamic Republic of İran İslam Cumhuriyeti - + Iceland İzlanda - + Italy İtalya - + Jamaica Jamaika - + Jordan Ürdün - + Japan Japonya - + Kenya Kenya - + Kyrgyzstan Kırgizistan - + Cambodia Kamboçya - + Kiribati Kiribati - + Comoros Komorlar - + Saint Kitts and Nevis Saint Kitts ve Nevis - + Korea, Democratic People's Republic of Kore Demokratik Halk Cumhuriyeti - + Korea, Republic of Güney Kore - + Kuwait Kuveyt - + Cayman Islands Kayman Adaları - + Kazakhstan Kazakistan - + Lao People's Democratic Republic Laos Demokratik Halk Cumhuriyeti - + Lebanon Lübnan - + Saint Lucia Saint Lucia - + Liechtenstein Lihtenştayn - + Sri Lanka Sri Lanka - + Liberia Liberya - + Lesotho Lesotho - + Lithuania Litvanya - + Luxembourg Lüksemburg - + Latvia Letonya - Libyan Arab Jamahiriya - Libya + Libya - + Morocco Fas - + Monaco Monako - + Moldova, Republic of Moldova - + Madagascar Madakaskar - + Marshall Islands Marshall Adaları - Macedonia - Makedonya + Makedonya - + Mali Mali - + Myanmar Myanmar - + Mongolia Moğolistan - Macau - Makao + Makao - + Northern Mariana Islands Kuzey Mariana Adaları - + Martinique Martinik - + Mauritania Moritanya - + Montserrat Montserrat - + Malta Malta - + Mauritius Mauritius - + Maldives Maldivler - + Malawi Malavi - + Mexico Meksika - + Malaysia Malesya - + Mozambique Mozambik - + Namibia Namibya - + New Caledonia Yeni Kaledonya - + Niger Nijer - + Norfolk Island Norfolk Adası - + Nigeria Nijerya - + Nicaragua Nikaragua - + Netherlands Hollanda - + Norway Norveç - + Nepal Nepal - + Nauru Nauru - + Niue Niue - + New Zealand Yeni Zelanda - + Oman Oman - + Panama Panama - + Peru javascript:; - + French Polynesia Fransız Polinezyası - + Papua New Guinea Papua Yeni Gine - + Philippines Filipinler - + Pakistan Pakistan - + Poland Polonya - + Saint Pierre and Miquelon Saint Pierre ve Miquelon - Pitcairn Islands - Pitcairn Adaları + Pitcairn Adaları - + Puerto Rico Porto Riko - Palestinian Territory - Filistin Toprakları + Filistin Toprakları - + Portugal Portekiz - + Palau Palau - + Paraguay Paraguay - + Qatar Katar - + Reunion Reunion - + Romania Romanya - + Russian Federation Rusya Federasyonu - + Rwanda Ruanda - + Saudi Arabia Suudi Arabistan - + Solomon Islands Solomon Adaları - + Seychelles Seyşeller - + Sudan Sudan - + Sweden İsveç - + Singapore Singapur - Saint Helena - Saint Helena + Saint Helena - + Slovenia Slovenya - + Svalbard and Jan Mayen Svalbard ve Jan Mayen - + Slovakia Slovakya - + Sierra Leone Sierra Leone - + San Marino San Marino - + Senegal Senegal - + Somalia Somali - + Suriname Surinam - + Sao Tome and Principe Sao Tome ve Principe - + El Salvador El Salvador - + Syrian Arab Republic Suriye Arap Cumhuriyeti - + Swaziland Svaziland - + Turks and Caicos Islands Turks ve Caicos Adaları - + Chad Çad - + French Southern Territories Fransız Güney Toprakları - + Togo Togo - + Thailand Tayland - + Tajikistan Tacikistan - + Tokelau Tokelau - + Turkmenistan Türkmenistan - + Tunisia Tunus - + Tonga Tonga - + Timor-Leste Doğu Timor - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Türkiye - + Trinidad and Tobago Trinidad ve Tobago - + Tuvalu Tuvalu - + Taiwan Tayvan - + Tanzania, United Republic of Tanzanya Birleşik Cumhuriyeti - + Ukraine Ukrayna - + Uganda Uganda - + United States Minor Outlying Islands Amerika Birleşik Devletleri Küçük Dış Adaları - + United States Amerika Birleşik Devletleri - + Uruguay Uruguay - + Uzbekistan Özbekistan - + Holy See (Vatican City State) Vatikan - + Saint Vincent and the Grenadines Saint Vincent ve Grenadinler - Venezuela - Venezuela + Venezuela - + Virgin Islands, British Britanya Virjin Adaları - + Virgin Islands, U.S. ABD Virjin Adaları - Vietnam - Vietnam + Vietnam - + Vanuatu Vanuatu - + Wallis and Futuna Wallis ve Futuna - + Samoa Samoa - + Yemen Yemen - + Mayotte Mayotte - + Serbia Sırbistan - + South Africa Güney Afrika - + Zambia Zambiya - + Montenegro Karadağ - + Zimbabwe Zimbabve - Anonymous Proxy - İsimsiz Proksi + İsimsiz Proksi - Satellite Provider - Uydu Sağlayıcı + Uydu Sağlayıcı - Other - Diğer + Diğer - + Aland Islands Aland Adaları - + Guernsey Guernsey - + Isle of Man Man Adası - + Jersey Jersey - + Saint Barthelemy Saint Barthelemy - Saint Martin - Saint Martin + Saint Martin - + Could not uncompress GeoIP database file. GeoIP veritabanı dosyası genişletilemedi. - + Couldn't save downloaded GeoIP database file. İndirilmiş GeoIP veritabanı dosyası kaydedilemedi. - + Successfully updated GeoIP database. GeoIP veritabanı başarılı olarak güncellendi. - + Couldn't download GeoIP database file. Reason: %1 GeoIP veritabanı dosyası indirilemedi. Sebep: %1 @@ -3838,72 +3856,72 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? interested(local) and choked(peer) - ilgilenen(yerel) ve sıkışan(kişi) + ilgilenen(yerel) ve sıkışan(kişi) interested(local) and unchoked(peer) - ilgilenen(yerel) ve sıkışmayan(kişi) + ilgilenen(yerel) ve sıkışmayan(kişi) interested(peer) and choked(local) - ilgilenen(kişi) ve sıkışan(yerel) + ilgilenen(kişi) ve sıkışan(yerel) interested(peer) and unchoked(local) - ilgilenen(kişi) ve sıkışmayan(yerel) + ilgilenen(kişi) ve sıkışmayan(yerel) optimistic unchoke - iyimser sıkışmama + iyimser sıkışmama peer snubbed - kişi geri çevrildi + kişi geri çevrildi incoming connection - gelen bağlantı + gelen bağlantı not interested(local) and unchoked(peer) - ilgilenmeyen(yerel) ve sıkışmayan(kişi) + ilgilenmeyen(yerel) ve sıkışmayan(kişi) not interested(peer) and unchoked(local) - ilgilenmeyen(kişi) ve sıkışmayan(yerel) + ilgilenmeyen(kişi) ve sıkışmayan(yerel) peer from PEX - PEX'ten kişi + PEX'ten kişi peer from DHT - DHT'den kişi + DHT'den kişi encrypted traffic - şifrelenmiş trafik + şifrelenmiş trafik encrypted handshake - şifrelenmiş görüşme + şifrelenmiş görüşme peer from LSD - LSD'den kişi + LSD'den kişi @@ -3971,123 +3989,73 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Uygunluk - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Yeni bir kişi ekle... - + Copy selected Seçileni kopyala - - + + Ban peer permanently Kişiyi kalıcı olarak yasakla - + Manually adding peer '%1'... Kişi '%1' el ile ekleniyor... - + The peer '%1' could not be added to this torrent. Kişi '%1' bu torrente eklenemedi. - + Manually banning peer '%1'... Kişi '%1' el ile yasaklanıyor... - - + + Peer addition Kişi ekleme - + Some peers could not be added. Check the Log for details. Bazı kişiler eklenemedi. Ayrıntılar için Günlüğü kontrol edin. - + The peers were added to this torrent. Kişiler bu torrente eklendi. - + Are you sure you want to ban permanently the selected peers? Seçilen kişileri kalıcı olarak yasaklamak istediğinize emin misiniz? - + &Yes &Evet - + &No &Hayır - - interested(local) and choked(peer) - ilgilenen(yerel) ve sıkışan(kişi) - - - interested(local) and unchoked(peer) - ilgilenen(yerel) ve sıkışmayan(kişi) - - - interested(peer) and choked(local) - ilgilenen(kişi) ve sıkışan(yerel) - - - interested(peer) and unchoked(local) - ilgilenen(kişi) ve sıkışmayan(yerel) - - - optimistic unchoke - iyimser sıkışmama - - - peer snubbed - kişi geri çevrildi - - - incoming connection - gelen bağlantı - - - not interested(local) and unchoked(peer) - ilgilenmeyen(yerel) ve sıkışmayan(kişi) - - - not interested(peer) and unchoked(local) - ilgilenmeyen(kişi) ve sıkışmayan(yerel) - - - peer from PEX - PEX'ten kişi - - - peer from DHT - DHT'den kişi - - - encrypted traffic - şifrelenmiş trafik - - - encrypted handshake - şifrelenmiş görüşme - - - peer from LSD - LSD'den kişi - PeersAdditionDlg @@ -4125,6 +4093,203 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Mavi: Mevcut parçalar + + PluginSelectDlg + + + Search plugins + Arama eklentileri + + + + Installed search plugins: + + + + + Name + Adı + + + + Version + Sürüm + + + + Url + URL + + + + + Enabled + Etkinleştirildi + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Yeni bir tane yükle + + + + Check for updates + Güncellemeleri kontrol et + + + + Close + Kapat + + + + Uninstall + Kaldır + + + + + + Yes + Evet + + + + + + + No + Hayır + + + + Uninstall warning + Kaldırma uyarısı + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Bazı eklentiler kaldırılamadı çünkü bunlar qBittorrent'e dahil edilmiş durumda. Sadece kendi ekledikleriniz kaldırılabilir. +Bu eklentiler etkisizleştirildi. + + + + Uninstall success + Kaldırma başarılı + + + + All selected plugins were uninstalled successfully + Tüm seçilen eklentiler başarılı olarak kaldırıldı + + + + + New search engine plugin URL + Yeni arama motoru eklentisi URL'si + + + + + URL: + URL: + + + + Invalid link + Geçersiz bağlantı + + + + The link doesn't seem to point to a search engine plugin. + Bağlantı bir arama motoru eklentisini gösteriyor görünmüyor. + + + + Select search plugins + Arama eklentilerini seç + + + + qBittorrent search plugin + qBittorrent arama eklentisi + + + + + + Search plugin update + Arama eklentisi güncellemesi + + + + All your plugins are already up to date. + Tüm eklentileriniz zaten güncel. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Arama eklentisi yüklemesi + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Eklenti kaynağı + + + + Search plugin source: + Arama eklentisi kaynağı: + + + + Local file + Yerel dosya + + + + Web link + Web bağlantısı + + Preferences @@ -4181,89 +4346,89 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Tamamlanmamış dosyalara .!qB uzantısı ekle - + Copy .torrent files to: .torrent dosyalarını şuraya kopyala: - + Connections Limits Bağlantı Sınırları - + Proxy Server Proksi Sunucusu - + Global Rate Limits Genel Oran Sınırları - + Apply rate limit to transport overhead Oran sınırını aktarım ekyüküne uygula - + Schedule the use of alternative rate limits Alternatif oran sınırları kullanımını zamanla - + From: from (time1 to time2) Bu saatten: - + To: time1 to time2 Bu saate: - + Enable Local Peer Discovery to find more peers Daha çok kişi bulmak için Yerel Kişi Keşfi'ni etkinleştir - + Encryption mode: Şifreleme kipi: - + Prefer encryption Şifrelemeyi tercih et - + Require encryption Şifreleme gerekli olsun - + Disable encryption Şifrelemeyi etkisizleştir - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Daha fazla bilgi</a>) - + Maximum active downloads: En fazla aktif indirme: - + Maximum active uploads: En fazla aktif gönderme: - + Maximum active torrents: En fazla aktif torrent: @@ -4288,82 +4453,82 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Torrent içeriğini ve bazı seçenekleri görüntüle - + Run external program on torrent completion Torrent tamamlanmasında harici program çalıştır - + Port used for incoming connections: Gelen bağlantılar için kullanılan b.noktası: - + Random Rastgele - + Global maximum number of connections: Genel en fazla bağlantı sayısı: - + Maximum number of connections per torrent: Torrent başına en fazla bağlantı sayısı: - + Maximum number of upload slots per torrent: Torrent başına en fazla gönderme yuvası sayısı: - - + + Upload: Gönderme: - - + + Download: İndirme: - - - - + + + + KiB/s KB/s - + Remove folder Klasörü kaldır - + Every day Her gün - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Kişileri uyumlu Bittorrent istemcileri ile değiştir (µTorrent, Vuze, ...) - + Host: Anamakine: - + SOCKS4 SOCKS4 - + Type: Türü: @@ -4536,262 +4701,262 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Torrentleri otomatik olarak şuradan ekle: - + Add folder... Klasör ekle... - + Copy .torrent files for finished downloads to: Tamamlanan indirmeler için .torrent dosyalarını şuraya kopyala: - + Email notification upon download completion İndirmenin tamamlanması üzerine e-posta bildirimi yap - + Destination email: Hedef e-posta: - + SMTP server: SMTP sunucusu: - + This server requires a secure connection (SSL) Bu sunucu güvenli bir bağlantı gerektirir (SSL) - + Listening Port Dinlenen Bağlantı Noktası - + Use UPnP / NAT-PMP port forwarding from my router Yönlendiricimden UPnP / NAT-PMP bağlantı noktası yönlendirmesi kullan - + Use different port on each startup Her başlangıçta farklı bağlantı noktası kullan - + Global maximum number of upload slots: Genel en fazla gönderme yuvası sayısı: - + Otherwise, the proxy server is only used for tracker connections Aksi halde, proksi sunucusu sadece izleyici bağlantıları için kullanılır - + Use proxy for peer connections Kişi bağlantıları için proksi kullan - + Disable connections not supported by proxies Proksiler tarafından desteklenmeyen bağlantıları etkisizleştir - + Use proxy only for torrents Sadece torrentler için proksi kullan - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Torrent aktarımları ve ilgili işlemlerin (kişi değişimleri gibi) dışında RSS beslemeleri, arama motoru, yazılım güncellemeleri gibi herşey doğrudan bağlantı kullanacak - + Info: The password is saved unencrypted Bilgi: Parola şifrelenmeden kaydedilir - + IP Filtering IP Süzme - + Reload the filter Süzgeci yeniden yükle - + Apply to trackers İzleyicilere uygula - + Apply rate limit to peers on LAN Oran sınırını LAN üzerindeki kişilere uygula - + When: Zaman: - + Weekdays Hafta içi - + Weekends Hafta sonu - + Rate Limits Settings Oran Sınırı Ayarları - + Enable µTP protocol µTP protokolünü etkinleştir - + Apply rate limit to µTP protocol Oran sınırını µTP protokolüne uygula - + Privacy Gizlilik - + Enable DHT (decentralized network) to find more peers Daha çok kişi bulmak için DHT'yi (merkezsizleştirilmiş ağ) etkinleştir - + Enable Peer Exchange (PeX) to find more peers Daha çok kişi bulmak için Kişi Değişimi'ni (PeX) etkinleştir - + Look for peers on your local network Yerel ağınızdaki kişileri arasın - + Enable when using a proxy or a VPN connection Bir proksi veya VPN bağlantısı kullanılırken etkinleştir - + Enable anonymous mode İsimsiz kipi etkinleştir - + Do not count slow torrents in these limits Yavaş torrentleri bu sınırlar içinde sayma - + Seed torrents until their ratio reaches Torrentleri şu orana ulaşıncaya kadar gönder - + then ondan sonra - + Pause them Bunları duraklat - + Remove them Bunları kaldır - + Automatically add these trackers to new downloads: Bu izleyicileri otomatik olarak yeni indirmelere ekle: - + Use UPnP / NAT-PMP to forward the port from my router Bağlantı noktasını yönlendiricimden yönlendirmek için UPnP / NAT-PMP kullan - + Use HTTPS instead of HTTP HTTP yerine HTTPS kullan - + Import SSL Certificate SSL Sertifikasını İçe Aktar - + Import SSL Key SSL Anahtarını İçe Aktar - + Certificate: Sertifika: - + Alternative Rate Limits Alternatif Oran Sınırları - + Key: Anahtar: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Sertifikalar hakkında bilgi</a> - + Bypass authentication for localhost Yerel makineler için kimlik doğrulamasını atlat - + Update my dynamic domain name Değişken etki alanı adımı güncelle - + Service: Hizmet: - + Register Kaydol - + Domain name: Etki alanı adı: - + (None) (Hiçbiri) @@ -4801,61 +4966,61 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? BitTorrent - + HTTP HTTP - - + + Port: B.Noktası: - - - + + + Authentication Kimlik Doğrulaması - - - - + + + + Username: Kullanıcı adı: - - - - + + + + Password: Parola: - + Torrent Queueing Torrent Kuyruğu - + Share Ratio Limiting Paylaşma Oranı Sınırlama - + Enable Web User Interface (Remote control) Web Kullanıcı Arayüzünü etkinleştir (Uzak denetim) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Süzgeç yolu (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Comment: Yorum: - - Torrent content: - Torrent içeriği: - Select All @@ -5587,28 +5748,28 @@ Başka bir bildiri yayınlanmayacaktır. Bilinmeyen hata - - + + Upgrade Yükselt - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Dosyaları farklı olarak kaydeden eski bir sürümden güncellediniz. Yeni kaydetme sistemine geçirmek zorundasınız. Artık v3.3.0 sürümünden daha eski bir sürümü kullanamayacaksınız. Devam edilsin mi? [e/h] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Dosyaları farklı olarak kaydeden eski bir sürümden güncellediniz. Yeni kaydetme sistemine geçirmek zorundasınız. Eğer devam ederseniz, artık v3.3.0 sürümünden daha eski bir sürümü kullanamayacaksınız. - + Couldn't migrate torrent with hash: %1 Torrentin geçirilmesi şu adresleme ile yapılamadı: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Torrentin geçirilmesi yapılamadı. Geçersiz hızlı devam etme dosya adı: %1 @@ -5719,17 +5880,17 @@ Başka bir bildiri yayınlanmayacaktır. RSSImp - + Stream URL: Akış URL'si: - + Please type a RSS stream URL Lütfen bir RSS akışı URL'si yazın - + This RSS feed is already in the list. Bu RSS beslemesi zaten listede. @@ -5749,75 +5910,92 @@ Başka bir bildiri yayınlanmayacaktır. Yeni klasör - + Deletion confirmation Silme onayı - + Are you sure you want to delete the selected RSS feeds? Seçilen RSS beslemelerini silmek istediğinize emin misiniz? - + Please choose a new name for this RSS feed Lütfen bu RSS beslemesi için yeni bir ad seçin - + New feed name: Yeni besleme adı: - + Name already in use Bu ad kullanımda - + This name is already used by another item, please choose another one. Bu ad başka bir öğe tarafından zaten kullanılıyor, lütfen başka bir tane seçin. - + Date: Tarih: - + Author: Hazırlayan: - + Unread Okunmadı - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... + '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... - + Automatically downloading '%1' torrent from '%2' RSS feed... - '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... + '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... RssParser - Failed to open downloaded RSS file. - İndirilmiş RSS dosyasını açma başarısız. + İndirilmiş RSS dosyasını açma başarısız. - Invalid RSS feed at '%1'. - '%1' adresinde geçersiz RSS beslemesi. + '%1' adresinde geçersiz RSS beslemesi. @@ -5843,168 +6021,249 @@ Başka bir bildiri yayınlanmayacaktır. Besleme başına en fazla makale sayısı: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Gözat... + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder İzlenen Klasör - - Download here - Buraya indir + + Save Files to + + + + Download here + Buraya indir - Download path - İndirme yolu + İndirme yolu SearchCategories - All categories - Tüm kategoriler + Tüm kategoriler - Movies - Filmler + Filmler - TV shows - Televizyon programları + Televizyon programları - Music - Müzik + Müzik - Games - Oyunlar + Oyunlar - Anime - Çizgi Film + Çizgi Film - Software - Yazılım + Yazılım - Pictures - Fotoğraflar + Fotoğraflar - Books - Kitaplar + Kitaplar SearchEngine - - - Search - Ara + Ara - Please install Python to use the Search Engine. - Arama Motorunu kullanmak için lütfen Python'u yükleyin. + Arama Motorunu kullanmak için lütfen Python'u yükleyin. - Empty search pattern - Boş arama örneği + Boş arama örneği - Please type a search pattern first - Lütfen önce bir arama örneği girin + Lütfen önce bir arama örneği girin - Searching... - Aranıyor... + Aranıyor... - Stop - Durdur + Durdur - - Search Engine - Arama Motoru + Arama Motoru - - Search has finished - Arama bitti + Arama bitti - An error occurred during search... - Arama sırasında bir hata meydana geldi... + Arama sırasında bir hata meydana geldi... - - Search aborted - Arama iptal edildi + Arama iptal edildi - All enabled - Tüm etkinleştirilmiş + Tüm etkinleştirilmiş - All engines - Tüm motorlar + Tüm motorlar - - Multiple... - Çoklu... + Çoklu... - - Results <i>(%1)</i>: i.e: Search results - Sonuçlar <i>(%1)</i>: + Sonuçlar <i>(%1)</i>: - Search returned no results - Arama sonuç bulamadı + Arama sonuç bulamadı - Stopped - Durduruldu + Durduruldu + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Tüm kategoriler + + + + Movies + Filmler + + + + TV shows + Televizyon programları + + + + Music + Müzik + + + + Games + Oyunlar + + + + Anime + Çizgi Film + + + + Software + Yazılım + + + + Pictures + Fotoğraflar + + + + Books + Kitaplar SearchListDelegate - - + + Unknown Bilinmiyor @@ -6012,35 +6271,160 @@ Başka bir bildiri yayınlanmayacaktır. SearchTab - + Name i.e: file name Adı - + Size i.e: file size Boyut - + Seeders i.e: Number of full sources Gönderen - + Leechers i.e: Number of partial sources Çeken - + Search engine Arama motoru + + SearchWidget + + + + + + + Search + + + + + Status: + Durum: + + + + + Stopped + + + + + Download + İndir + + + + Go to description page + Açıklama sayfasına git + + + + Copy description page URL + Açıklama sayfası URL'sini kopyala + + + + Search plugins... + + + + + All enabled + Tüm etkinleştirilmiş + + + + All plugins + + + + + + Multiple... + Çoklu... + + + + + + Search Engine + Arama Motoru + + + + Please install Python to use the Search Engine. + Arama Motorunu kullanmak için lütfen Python'u yükleyin. + + + + Empty search pattern + Boş arama örneği + + + + Please type a search pattern first + Lütfen önce bir arama örneği girin + + + + + Results <i>(%1)</i>: + i.e: Search results + Sonuçlar <i>(%1)</i>: + + + + Searching... + Aranıyor... + + + + Stop + Durdur + + + + + Search has finished + Arama bitti + + + + + Search aborted + Arama iptal edildi + + + + Search returned no results + Arama sonuç bulamadı + + + + Search has failed + + + + + An error occurred during search... + Arama sırasında bir hata meydana geldi... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ Başka bir bildiri yayınlanmayacaktır. TorrentContentModel - + Name Adı - + Size Boyut - + Progress İlerleme - + + Download Priority + + + Priority - Öncelik + Öncelik @@ -6854,38 +7242,38 @@ Başka bir bildiri yayınlanmayacaktır. Uyarı (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. '%1' URL'si için favicon çözülemedi. PNG biçiminde favicon indirilmeye çalışılıyor. - + Couldn't decode favicon for URL '%1'. '%1' URL'si için favicon çözülemedi. - + Couldn't download favicon for URL '%1'. Reason: %2 '%1' URL'si için favicon indirilemedi. Sebep: '%2' - + Resume torrents Torrentlere devam et - + Pause torrents Torrentleri duraklat - + Delete torrents Torrentleri sil - - + + All (%1) this is for the tracker filter Tümü (%1) @@ -7153,17 +7541,17 @@ Başka bir bildiri yayınlanmayacaktır. TransferListFiltersWidget - + Status Durum - + Labels Etiketler - + Trackers İzleyiciler @@ -7702,206 +8090,155 @@ Başka bir bildiri yayınlanmayacaktır. engineSelect - Search plugins - Arama eklentileri + Arama eklentileri - Installed search engines: - Yüklü arama motorları: + Yüklü arama motorları: - Name - Adı + Adı - Version - Sürüm + Sürüm - Url - URL + URL - - Enabled - Etkinleştirildi + Etkinleştirildi - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Yeni bir tane yükle + Yeni bir tane yükle - Check for updates - Güncellemeleri kontrol et + Güncellemeleri kontrol et - Close - Kapat + Kapat - Uninstall - Kaldır + Kaldır engineSelectDlg - Uninstall warning - Kaldırma uyarısı + Kaldırma uyarısı - Uninstall success - Kaldırma başarılı + Kaldırma başarılı - Invalid plugin - Geçersiz eklenti + Geçersiz eklenti - The search engine plugin is invalid, please contact the author. - Arama motoru eklentisi geçersiz, lütfen hazırlayanı ile irtibata geçin. + Arama motoru eklentisi geçersiz, lütfen hazırlayanı ile irtibata geçin. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - '%1' arama motoru eklentisinin en son sürümü zaten yüklü. + '%1' arama motoru eklentisinin en son sürümü zaten yüklü. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - '%1' arama motoru eklentisi güncellenemedi, eski sürüm tutuluyor. + '%1' arama motoru eklentisi güncellenemedi, eski sürüm tutuluyor. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - '%1' arama motoru eklentisi yüklenemedi. + '%1' arama motoru eklentisi yüklenemedi. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - '%1' arama motoru eklentisi başarılı olarak güncellendi. + '%1' arama motoru eklentisi başarılı olarak güncellendi. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - '%1' arama motoru eklentisi başarılı olarak yüklendi. + '%1' arama motoru eklentisi başarılı olarak yüklendi. - The link doesn't seem to point to a search engine plugin. - Bağlantı bir arama motoru eklentisini gösteriyor görünmüyor. + Bağlantı bir arama motoru eklentisini gösteriyor görünmüyor. - Select search plugins - Arama eklentilerini seç + Arama eklentilerini seç - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Üzgünüz, '%1' arama motoru eklentisi kurulumu başarısız oldu. + Üzgünüz, '%1' arama motoru eklentisi kurulumu başarısız oldu. - - - - - Search plugin install - Arama eklentisi yüklemesi + Arama eklentisi yüklemesi - - - Yes - Evet + Evet - - - - No - Hayır + Hayır - qBittorrent search plugin - qBittorrent arama eklentisi + qBittorrent arama eklentisi - - - - Search plugin update - Arama eklentisi güncellemesi + Arama eklentisi güncellemesi - - Sorry, update server is temporarily unavailable. - Üzgünüz, güncelleme sunucusu geçici olarak kullanılamaz. + Üzgünüz, güncelleme sunucusu geçici olarak kullanılamaz. - All your plugins are already up to date. - Tüm eklentileriniz zaten güncel. + Tüm eklentileriniz zaten güncel. - All selected plugins were uninstalled successfully - Tüm seçilen eklentiler başarılı olarak kaldırıldı + Tüm seçilen eklentiler başarılı olarak kaldırıldı - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Bazı eklentiler kaldırılamadı çünkü bunlar qBittorrent'e dahil edilmiş durumda. Sadece kendi ekledikleriniz kaldırılabilir. + Bazı eklentiler kaldırılamadı çünkü bunlar qBittorrent'e dahil edilmiş durumda. Sadece kendi ekledikleriniz kaldırılabilir. Bu eklentiler etkisizleştirildi. - Invalid link - Geçersiz bağlantı + Geçersiz bağlantı - - New search engine plugin URL - Yeni arama motoru eklentisi URL'si + Yeni arama motoru eklentisi URL'si - - URL: - URL: + URL: @@ -8031,169 +8368,169 @@ Bu eklentiler etkisizleştirildi. options_imp - - + + Choose export directory Dışa aktarma dizini seçin - - - - + + + + Choose a save directory Bir kaydetme dizini seçin - + Add directory to scan Taramak için dizin ekleyin - + Supported parameters (case sensitive): Desteklenen parametreler (büyük küçük harfe duyarlı): - + %N: Torrent name %N: Torrent adı - + %L: Label %L: Etiket - + %F: Content path (same as root path for multifile torrent) %F: İçerik yolu (çok dosyalı torrent için olan kök yolu ile aynı) - + %R: Root path (first torrent subdirectory path) %R: Kök yolu (ilk torrent alt dizin yolu) - + %D: Save path %D: Kaydetme yolu - + %C: Number of files %C: Dosya sayısı - + %Z: Torrent size (bytes) %Z: Torrent boyutu (bayt) - + %T: Current tracker %T: Şu anki izleyici - + %I: Info hash %I: Bilgi adreslemesi - + Folder is already being watched. Klasör zaten izleniyor. - + Folder does not exist. Klasör mevcut değil. - + Folder is not readable. Klasör okunabilir değil. - + Failure Hata - + Failed to add Scan Folder '%1': %2 '%1' Tarama Klasörünü ekleme başarısız: %2 - - + + Filters Süzgeçler - - + + Choose an IP filter file Bir IP süzgeci dosyası seçin - + SSL Certificate SSL Sertifikası - + SSL Key SSL Anahtarı - + Parsing error Ayrıştırma hatası - + Failed to parse the provided IP filter Verilen IP süzgecini ayrıştırma başarısız - + Successfully refreshed Başarılı olarak yenilendi - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verilen IP süzgeci başarılı olarak ayrıştırıldı: %1 kural uygulandı. - + Invalid key Geçersiz anahtar - + This is not a valid SSL key. Bu geçerli bir SSL anahtarı değil. - + Invalid certificate Geçersiz sertifika - + This is not a valid SSL certificate. Bu, geçerli bir SSL sertifikası değil. - + The start time and the end time can't be the same. Başlangıç zamanı ve bitiş zamanı aynı olamaz. - + Time Error Zaman Hatası @@ -8201,24 +8538,20 @@ Bu eklentiler etkisizleştirildi. pluginSourceDlg - Plugin source - Eklenti kaynağı + Eklenti kaynağı - Search plugin source: - Arama eklentisi kaynağı: + Arama eklentisi kaynağı: - Local file - Yerel dosya + Yerel dosya - Web link - Web bağlantısı + Web bağlantısı @@ -8247,40 +8580,32 @@ Bu eklentiler etkisizleştirildi. search_engine - - Search - Ara + Ara - Status: - Durum: + Durum: - Stopped - Durdu + Durdu - Download - İndir + İndir - Go to description page - Açıklama sayfasına git + Açıklama sayfasına git - Copy description page URL - Açıklama sayfası URL'sini kopyala + Açıklama sayfası URL'sini kopyala - Search engines... - Arama motorları... + Arama motorları... diff --git a/src/lang/qbittorrent_uk.ts b/src/lang/qbittorrent_uk.ts index db04ae715..6ee61974d 100644 --- a/src/lang/qbittorrent_uk.ts +++ b/src/lang/qbittorrent_uk.ts @@ -127,7 +127,7 @@ Set as default label - + Зробити міткою за замовчуванням @@ -175,172 +175,172 @@ Не завантажувати - - + + I/O Error Помилка вводу/виводу - + The torrent file does not exist. Цей torrent-файл не існує. - + Invalid torrent Хибний торрент - + Failed to load the torrent: %1 Не вдалось завантажити торрент: %1 - - + + Already in download list Вже є в списку завантажень - + Free disk space: %1 Вільне місце на диску: %1 - + Not Available This comment is unavailable Недоступно - + Not Available This date is unavailable Недоступно - + Not available Недоступно - + Invalid magnet link Хибне magnet-посилання - + Torrent is already in download list. Trackers were merged. Торрент вже є у списку завантажень. Трекери об’єднано. - - + + Cannot add torrent Не вдалось додати торрент - + Cannot add this torrent. Perhaps it is already in adding state. Не вдалось додати цей торрент. Можливо, він уже в стані додавання. - + This magnet link was not recognized Це magnet-посилання не було розпізнано - + Magnet link is already in download list. Trackers were merged. Magnet-посилання вже є в списку завантажень. Трекерт об’єднано. - + Cannot add this torrent. Perhaps it is already in adding. Не вдалось додати цей торрент. Можливо, він уже додається - + Magnet link Magnet-посилання - + Retrieving metadata... Отримуються метадані... - + Not Available This size is unavailable. Недоступно - - - + + + Choose save path Виберіть шлях збереження - + Rename the file Перейменувати файл - + New name: Нова назва: - - + + The file could not be renamed Файл не вдалося перейменувати - + This file name contains forbidden characters, please choose a different one. Ця назва файла містить заборонені символи. Будь ласка, виберіть іншу. - - + + This name is already in use in this folder. Please use a different name. Ця назва вже використовується в даній папці. Будь ласка, виберіть іншу. - + The folder could not be renamed Цю теку не вдалося перейменувати - + Rename... Перейменувати... - + Priority Пріоритет - + Invalid metadata Хибні метадані - + Parsing metadata... Розбираються метадані... - + Metadata retrieval complete Завершено отримання метаданих - + Download Error Помилка завантаження @@ -431,10 +431,6 @@ Resolve peer host names Дізнаватись адресу пірів - - Maximum number of half-open connections [0: Disabled] - Максимальна кількість напіввідкритих з’єднань [0: Вимк.] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Максимальна кількість напіввідкритих з’єднань [0: Необмежено] @@ -661,205 +657,205 @@ &Експорт... - + Matches articles based on episode filter. Знаходить статті на основі фільтру серій - + Example: Приклад: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match знайде 2, 5, 8-15, 30 і подальші серії першого сезону - + Episode filter rules: Правила фільтра серій: - + Season number is a mandatory non-zero value Номер сезону — обов’язкове ненульове значення - + Episode number is a mandatory non-zero value Номер серії — обов’язкове ненульове значення - + Filter must end with semicolon Фільтр повинен закінчуватись крапкою з комою - + Three range types for episodes are supported: Підтримуються три типи діапазонів для серій - + Single number: <b>1x25;</b> matches episode 25 of season one Одне число: <b>1x25;</b> відповідає 25ій серії першого сезону - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one Звичайний діапазон: <b>1x25-40;</b> відповідає серіям 25-40 першого сезону - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one Нескінченний діапазон: <b>1x25-;</b> відповідає всім серіям, починаючи з 25-ї, першого сезону - + Last Match: %1 days ago Останній збіг: %1 днів тому - + Last Match: Unknown Останній збіг: невідомо - + New rule name Нова назва правила - + Please type the name of the new download rule. Будь ласка, введіть назву нового правила завантаження. - - + + Rule name conflict Конфлікт назв правил - - + + A rule with this name already exists, please choose another name. Правило з цією назвою вже існує, будь ласка, оберіть іншу назву. - + Are you sure you want to remove the download rule named '%1'? Ви впевнені, що хочете видалити правило завантаження з назвою „%1“? - + Are you sure you want to remove the selected download rules? Ви дійсно хочете видалити вибрані правила завантаження? - + Rule deletion confirmation Підтвердження видалення правила - + Destination directory Тека призначення - + Invalid action Неправильна дія - + The list is empty, there is nothing to export. Список пустий, нічого експортувати. - + Where would you like to save the list? Де би ви хотіли зберегти список? - + Rules list (*.rssrules) Список правил (*.rssrules) - + I/O Error Помилка вводу/виводу - + Failed to create the destination file Не вдалося створити теку призначення - + Please point to the RSS download rules file Будь ласка, вкажіть файл правил завантаження RSS - + Rules list Список правил - + Import Error Помилка імпорту - + Failed to import the selected rules file Не вдалось імпортувати вибраний файл правил - + Add new rule... Додати нове правило... - + Delete rule Видалити правило - + Rename rule... Перейменувати правило... - + Delete selected rules Видалити позначені правила - + Rule renaming Перейменування правила - + Please type the new rule name Будь ласка, введіть нову назву правила - + Regex mode: use Perl-like regular expressions Режим регулярних виразів: Perl-подібні - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Режим шаблонів: можна використовувати<ul><li>? для позначення будь-якого символа</li><li>* для позначення 0 або більше символів</li><li>Пробіли вважаються операторами AND (та)</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Режим шаблонів: можна використовувати<ul><li>? для позначення будь-якого символа</li><li>* для позначення 0 або більше символів</li><li>| використовується як оператор OR (або)</li></ul> @@ -952,65 +948,57 @@ '%1' досяг максимального коефіцієнта, налаштованого вами. Призупиняється... - Error: Could not create torrent export directory: '%1' - Помилка: Не вдалось створити теку експорту: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - Помилка: не вдалось експортувати торрент '%1', можливо, він ще не має метаданих. - - - + System network status changed to %1 e.g: System network status changed to ONLINE Мережевий статус системи змінено на %1 - + ONLINE ОНЛАЙН - + OFFLINE ОФЛАЙН - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Мережева конфігурація %1 змінилась, оновлення прив'язки сеансу - + Unable to decode '%1' torrent file. Не вдалось розкодувати торрент-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Рекурсивне завантаження файла '%1', вбудованого в торрент '%2' - + Couldn't save '%1.torrent' Не вдалося зберегти '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. бо %1 вимкнено. - + because %1 is disabled. this peer was blocked because TCP is disabled. бо %1 вимкнено. - + URL seed lookup failed for URL: '%1', message: %2 Пошук URL роздачі невдалий для URL: '%1', повідомлення: %2 @@ -1027,178 +1015,164 @@ '%1' видалено зі списку завантажень. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Завантажується '%1', зачекайте... - Torrent Export: torrent is invalid, skipping... - Експорт торрентів: торрент хибний, пропускається... - - - + DHT support [ON] Підтримка DHT [Увімк.] - + DHT support [OFF]. Reason: %1 Підтримка DHT [Вимк.]. Причина: %1 - + DHT support [OFF] Підтримка DHT [Вимк.] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent пробує приєднатись до будь-якого інтерфейсу, порт: %1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2 - - - + The network interface defined is invalid: %1 Зазначений мережевий інтерфейс неправильний: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent пробує приєднатись до інтерфейсу %1, порт: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent не знайшов локальну адресу %1 для очікування вхідних з’єднань - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2. {1.?} + qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2. - + Tracker '%1' was added to torrent '%2' Трекет '%1' додано до торрента '%2' - + Tracker '%1' was deleted from torrent '%2' Трекер '%1' вилучено з торрента '%2' - + URL seed '%1' was added to torrent '%2' URL-роздачу '%1' додано до торрента '%2' - + URL seed '%1' was removed from torrent '%2' URL-роздачу '%1' вилучено з торрента '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Не вдалося відновити торрент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успішно оброблено наданий фільтр IP: застосовано %1 правил. - + Error: Failed to parse the provided IP filter. Помилка: Не вдалося розібрати даний фільтр IP. - + Couldn't add torrent. Reason: %1 Не вдалося додати торрент. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' продовжено. (швидке відновлення) - + '%1' added to download list. 'torrent name' was added to download list. '%1' додано до списку завантажень. - + An I/O error occurred, '%1' paused. %2 Виникла помилка вводу/виводу, '%1' призупинено. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Не вдалось приєднати порт, повідомлення: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Успішне приєднання порта, повідомлення: %1 - + due to IP filter. this peer was blocked due to ip filter. через фільтр IP. - + due to port filter. this peer was blocked due to port filter. через фільтр портів. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. через обмеження змішаного режиму i2p. - + because it has a low port. this peer was blocked because it has a low port. через низький номер порта. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent очікує з’єднань на інтерфейсі %1 порт: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4. {1 ?} {2/%3.?} + qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4. - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 Зовнішня IP: %1 @@ -1212,12 +1186,12 @@ Не вдалося перемістити торрент: '%1'. Причина: %2 - + File sizes mismatch for torrent '%1', pausing it. Розміри файлів не збігаються для торрента %1, буде зупинено. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... Дані швидкого відновлення були відкинуті для торрента '%1'. Причина: %2. Повторна перевірка... @@ -1242,7 +1216,7 @@ Значення - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Звичайні ключі для cookies: '%1', '%2'. @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-подачі - + Unread Непрочитані @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line Одне посилання на рядок - - Download local torrent - Завантажити локальний торрент - Download @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - Зберігати файли до: + Зберігати файли до: Label: - + Мітка: Cookie: + Кукі: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? Завантажено @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + Вивантажити локальний торрент @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About &Про програму - - Exit - Вийти - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit &Вийти - - Options - Налаштування - - - Resume - Продовжити - - - Pause - Призупинити - - - Delete - Видалити - Open URL @@ -2040,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show Показати - + Check for program updates Перевірити, чи є свіжіші версії програми - - Lock qBittorrent - Заблокувати qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ You should get this information from your Web browser preferences. - + Execution Log Журнал виконання - + Clear the password Забрати пароль - + Filter torrent list... Фільтрувати список торрентів... - + &Set Password &Встановити пароль - + &Clear Password &Забрати пароль - + Transfers Завантаження - + Torrent file association Асоціації torrent-файлів - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent не є програмою за замовчуванням для відкривання торрентів. Встановити qBittorrent як програму для відкривання torrent-файлів та magnet-посилань? - + Icons Only Лише значки - + Text Only Лише текст - + Text Alongside Icons Текст біля значків - + Text Under Icons Текст під значками - + Follow System Style Наслідувати стиль системи - - - + + + UI lock password Пароль блокування інтерфейсу - - - + + + Please type the UI lock password: Будь ласка, введіть пароль блокування інтерфейсу: - + The password should contain at least 3 characters Пароль повинен містити щонайменше 3 символи - + Password update Оновити пароль - + The UI lock password has been successfully updated Пароль блокування інтерфейсу успішно оновлено - + Are you sure you want to clear the password? Ви впевнені, що хочете забрати пароль? - + Search Пошук - + Transfers (%1) Завантаження (%1) - + Error Помилка - + Failed to add torrent: %1 Не вдалося додати торрент: %1 - + Download completion Завантажено - + I/O Error i.e: Input/Output Error Помилка вводу/виводу - + Recursive download confirmation Підтвердження рекурсивного завантаження - + Yes Так - + No Ні - + Never Ніколи - + Global Upload Speed Limit Глобальний ліміт вивантаження - + Global Download Speed Limit Глобальний ліміт завантаження - + &No &Ні - + &Yes &Так - + &Always Yes &Завжди так - + Python found in %1 Python знайдено в %1 - + Old Python Interpreter Старий інтерпретатор Python - + qBittorrent Update Available Доступне оновлення qBittorrent - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version Вже використовується найновіша версія qBittorrent - + Undetermined Python version Невизначена версія Python - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. Завантаження '%1' завершено. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Причина: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Торрент '%1' містить інші торренти. Завантажувати і їх? - + Couldn't download file at URL '%1', reason: %2. Не вдалося завантажити файл з URL: '%1', причина: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. Ваша версія Python %1 застаріла. Будь ласка, встановіть найновішу версію, щоб запрацював пошук. Мінімальна вимога: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. Не вдалось визначити версію Python (%1). Пошук вимкнено. - - + + Missing Python Interpreter Не вистачає інтерпретатора Python - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? Для використання Пошуковика потрібен Python, але, здається, він не встановлений. Встановити його зараз? - + Python is required to use the search engine but it does not seem to be installed. Для використання Пошуковика потрібен Python, але, здається, він не встановлений. - A new version is available. Update to version %1? - Доступна нова версія. + Доступна нова версія. Оновити до версії %1? - + No updates available. You are already using the latest version. Немає доступних оновлень. Ви вже користуєтеся найновішою версією. - + &Check for Updates &Перевірити оновлення - + Checking for Updates... Перевірка оновлень... - + Already checking for program updates in the background Вже відбувається фонова перевірка оновлень - + Python found in '%1' Python знайдено в '%1' - + Download error Помилка завантаження - + Python setup could not be downloaded, reason: %1. Please install it manually. Не вдалося завантажити програму інсталяції Python. Причина: %1. Будь ласка, встановіть Python самостійно. - - + + Invalid password Неправильний пароль - - + + RSS (%1) RSS (%1) - + URL download error Помилка завантаження URL - + The password is invalid Цей пароль неправильний - - + + DL speed: %1 e.g: Download speed: 10 KiB/s Шв. завант.: %1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s Шв. вивант.: %1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [З: %1, В: %2] qBittorrent %3 - + Hide Сховати - + Exiting qBittorrent Вихід із qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Ще відбуваються передачі файлів. Ви впевнені, що хочете вийти з qBittorrent? - + Open Torrent Files Відкрити torrent-файли - + Torrent Files Torrent-файли - + Options were saved successfully. Налаштування успішно збережені. @@ -2443,17 +2404,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. Ваш динамічний DNS успішно оновлено. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. Помилка динамічного DNS: Сервіс тимчасово недоступний; повторна спроба за 30 хвилин. - + Dynamic DNS error: hostname supplied does not exist under specified account. Помилка динамічного DNS: наданий домен не існує в зазначеному обліковому записі. @@ -2463,32 +2424,32 @@ Are you sure you want to quit qBittorrent? Помилка динамічного DNS: Неправильний логін/пароль. - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. Помилка динамічного DNS: qBittorrent додано в чорний список сервісу; будь ласка, повідомте про це на http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. Помилка динамічного DNS: Сервіс повернув %1; будь ласка, повідомте про помилку на http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. Помилка динамічного DNS: Ваш логін заблоковано через зловживання. - + Dynamic DNS error: supplied domain name is invalid. Помилка динамічного DNS: наданий домен неправильний. - + Dynamic DNS error: supplied username is too short. Помилка динамічного DNS: наданий логін закороткий. - + Dynamic DNS error: supplied password is too short. Помилка динамічного DNS: наданий пароль закороткий. @@ -2515,154 +2476,161 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. Базу даних GeoIP завантажено. Тип: %1. Час збірки: %2. - + Couldn't load GeoIP database. Reason: %1 Не вдалося завантажити базу даних GeoIP. Причина: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - Asia/Pacific Region - Азія і Тихоокеанський регіон + Азія і Тихоокеанський регіон + + + Europe + Європа - Europe - Європа - - - Andorra Андорра - + United Arab Emirates Об’єднані Арабські Емірати - + Afghanistan Афганістан - + Antigua and Barbuda Антигуа і Барбуда - + Anguilla Ангілья - + Albania Албанія - + Armenia Вірменія - Netherlands Antilles - Нідерландські Антильські острови + Нідерландські Антильські острови - + Angola Ангола - + Antarctica Антарктида - + Argentina Аргентина - + American Samoa Американське Самоа - + Austria Австрія - + Australia Австралія - + Aruba Аруба - + Azerbaijan Азербайджан - + Bosnia and Herzegovina Боснія і Герцеговина - + Barbados Барбадос - + Bangladesh Бангладеш - + Belgium Бельгія - + Burkina Faso Буркіна-Фасо - + Bulgaria Болгарія - + Bahrain Бахрейн - + Burundi Бурунді - + Benin Бенін @@ -2677,1137 +2645,1187 @@ Are you sure you want to quit qBittorrent? Бруней-Даруссалам - Bolivia - Болівія + Болівія - + Brazil Бразилія - + Bahamas Багами - + Bhutan Бутан - + Bouvet Island Острів Буве - + Botswana Ботсвана - + Belarus Білорусь - + Belize Беліз - + Canada Канада - + Cocos (Keeling) Islands Кокосові (Кілінгові) острови - + Congo, The Democratic Republic of the Конго, Демократична Республіка - + Central African Republic Центральноафриканська Республіка - + Congo Конго - + Switzerland Швейцарія - Cote D'Ivoire - Кот-д'Івуар + Кот-д'Івуар - + Cook Islands Острови Кука - + Chile Чилі - + Cameroon Камерун - + China Китай - + Colombia Колумбія - + Costa Rica Коста-Ріка - + Cuba Куба - + Cape Verde Кабо-Верде - + + Curacao + + + + Christmas Island Острів Різдва - + Cyprus Кіпр - + Czech Republic Чехія - + Germany Німеччина - + Djibouti Джибуті - + Denmark Данія - + Dominica Домініка - + Dominican Republic Домініканська республіка - + Algeria Алжир - + Ecuador Еквадор - + Estonia Естонія - + Egypt Єгипет - + Western Sahara Західна Сахара - + Eritrea Еритрея - + Spain Іспанія - + Ethiopia Ефіопія - + Finland Фінляндія - + Fiji Фіджі - + Falkland Islands (Malvinas) Фолклендські (Мальвінські) острови - + Micronesia, Federated States of Мікронезія, Федеративні Штати - + Faroe Islands Фарерські острови - + France Франція - France, Metropolitan - Франція, Метрополія + Франція, Метрополія - + Gabon Габон - + United Kingdom Об’єднане Королівство - + Grenada Гренада - + Georgia Грузія - + French Guiana Французька Гвіана - + Ghana Гана - + Gibraltar Гібралтар - + Greenland Гренландія - + Gambia Гамбія - + Guinea Гвінея - + Guadeloupe Гваделупа - + Equatorial Guinea Екваторіальна Гвінея - + Greece Греція - + South Georgia and the South Sandwich Islands Південна Джорджія та Південні Сандвічеві острови - + Guatemala Гватемала - + Guam Гуам - + Guinea-Bissau Гвінея-Бісау - + Guyana Гайана - + Hong Kong Гонконг - + Heard Island and McDonald Islands Острів Герд і Острови Макдональд - + Honduras Гондурас - + Croatia Хорватія - + Haiti Гаїті - + Hungary Угорщина - + Indonesia Індонезія - + Ireland Ірландія - + Israel Ізраїль - + India Індія - + British Indian Ocean Territory Британська територія Індійського океану - + Iraq Ірак - + Iran, Islamic Republic of Іран, Ісламська Республіка - + Iceland Ісландія - + Italy Італія - + Jamaica Ямайка - + Jordan Йорданія - + Japan Японія - + Kenya Кенія - + Kyrgyzstan Киргизстан - + Cambodia Камбоджа - + Kiribati Кірибаті - + Comoros Коморські острови - + Saint Kitts and Nevis Сент-Кіттс і Невіс - + Korea, Democratic People's Republic of Корейська Народно-Демократична Республіка - + Korea, Republic of Корея, Республіка - + Kuwait Кувейт - + Cayman Islands Кайманові острови - + Kazakhstan Казахстан - + Lao People's Democratic Republic Лаоська Народно-Демократична Республіка - + Lebanon Ліван - + Saint Lucia Сент-Люсія - + Liechtenstein Ліхтенштейн - + Sri Lanka Шрі Ланка - + Liberia Ліберія - + Lesotho Лесото - + Lithuania Литва - + Luxembourg Люксембург - + Latvia Латвія - Libyan Arab Jamahiriya - Лівійська Арабська Джамахірія + Лівійська Арабська Джамахірія - + Morocco Марокко - + Monaco Монако - + Moldova, Republic of Молдова, Республіка - + Madagascar Мадагаскар - + Marshall Islands Маршаллові Острови - Macedonia - Македонія + Македонія - + Mali Малі - + Myanmar М’янма - + Mongolia Монголія - Macau - Макао + Макао - + Northern Mariana Islands Північні Маріанські острови - + Martinique Мартиніка - + Mauritania Мавританія - + Montserrat Монтсеррат - + Malta Мальта - + Mauritius Маврикій - + Maldives Мальдіви - + Malawi Малаві - + Mexico Мексика - + Malaysia Малайзія - + Mozambique Мозамбік - + Namibia Намібія - + New Caledonia Нова Каледонія - + Niger Нігер - + Norfolk Island Норфолк, Острів - + Nigeria Нігерія - + Nicaragua Нікарагуа - + Netherlands Нідерланди - + Norway Норвегія - + Nepal Непал - + Nauru Науру - + Niue Ніуе - + New Zealand Нова Зеландія - + Oman Оман - + Panama Панама - + Peru Перу - + French Polynesia Французька Полінезія - + Papua New Guinea Папуа-Нова Гвінея - + Philippines Філіппіни - + Pakistan Пакистан - + Poland Польща - + Saint Pierre and Miquelon Сен-П’єр і Мікелон - Pitcairn Islands - Піткерн, Острови + Піткерн, Острови - + Puerto Rico Пуерто-Рико - Palestinian Territory - Палестинська територія + Палестинська територія - + Portugal Португалія - + Palau Палау - + Paraguay Парагвай - + Qatar Катар - + Reunion Реюньйон - + Romania Румунія - + Russian Federation Російська Федерація - + Rwanda Руанда - + Saudi Arabia Саудівська Аравія - + Solomon Islands Соломонові Острови - + Seychelles Сейшельські Острови - + Sudan Судан - + Sweden Швеція - + Singapore Сінгапур - Saint Helena - Святої Єлени, Острів + Святої Єлени, Острів - + Slovenia Словенія - + Svalbard and Jan Mayen Свальбард і Ян-Маєн - + Slovakia Словаччина - + Sierra Leone Сьєрра-Леоне - + San Marino Сан-Марино - + Senegal Сенегал - + Somalia Сомалі - + Suriname Сурінам - + Sao Tome and Principe Сан-Томе і Принсіпі - + El Salvador Сальвадор - + Syrian Arab Republic Сирійська Арабська Республіка - + Swaziland Свазіленд - + Turks and Caicos Islands Теркс і Кейкос, Острови - + Chad Чад - + French Southern Territories Французькі Південні території - + Togo Того - + Thailand Таїланд - + Tajikistan Таджикистан - + Tokelau Токелау - + Turkmenistan Туркменістан - + Tunisia Туніс - + Tonga Тонга - + Timor-Leste Східний Тимор - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey Туреччина - + Trinidad and Tobago Тринідад і Тобаго - + Tuvalu Тувалу - + Taiwan Тайвань - + Tanzania, United Republic of Танзанія, Об’єднана Республіка - + Ukraine Україна - + Uganda Уганда - + United States Minor Outlying Islands Зовнішні малі острови США - + United States США - + Uruguay Уругвай - + Uzbekistan Узбекистан - + Holy See (Vatican City State) Святий Престол (Держава-місто Ватикан) - + Saint Vincent and the Grenadines Сент-Вінсент і Гренадини - Venezuela - Венесуела + Венесуела - + Virgin Islands, British Віргінські Острови, Британські - + Virgin Islands, U.S. Віргінські острови, Американські - Vietnam - В’єтнам + В’єтнам - + Vanuatu Вануату - + Wallis and Futuna Волліс і Футуна - + Samoa Самоа - + Yemen Ємен - + Mayotte Майотта - + Serbia Сербія - + South Africa Південна Африка - + Zambia Замбія - + Montenegro Чорногорія - + Zimbabwe Зімбабве - Anonymous Proxy - Анонімний проксі + Анонімний проксі - Satellite Provider - Супутниковий провайдер + Супутниковий провайдер - Other - Інше + Інше - + Aland Islands Аландські острови - + Guernsey Гернсі - + Isle of Man Острів Мен - + Jersey Джерсі, Острів - + Saint Barthelemy Сен-Бартельмі - Saint Martin - Сен-Мартен + Сен-Мартен - + Could not uncompress GeoIP database file. Не вдалося розпакувати базу даних GeoIP. - + Couldn't save downloaded GeoIP database file. Не вдалося зберегти завантажений файл бази GeoIP. - + Successfully updated GeoIP database. Базу даних GeoIP успішно оновлено. - + Couldn't download GeoIP database file. Reason: %1 Не вдалося завантажити файл бази GeoIP. Причина: %1 @@ -3838,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - зацікавлений (локальний), відмовляється (пір) + зацікавлений (локальний), відмовляється (пір) interested(local) and unchoked(peer) - зацікавлений (локальний), погоджується (пір) + зацікавлений (локальний), погоджується (пір) interested(peer) and choked(local) - зацікавлений (пір), відмовляється (локальний) + зацікавлений (пір), відмовляється (локальний) interested(peer) and unchoked(local) - зацікавлений (пір), погоджується (локальний) + зацікавлений (пір), погоджується (локальний) optimistic unchoke - оптимістичний вибір + оптимістичний вибір peer snubbed - пір зупинився + пір зупинився incoming connection - вхідне з’єднання + вхідне з’єднання not interested(local) and unchoked(peer) - незацікавлений (локальний), відмовляється (пір) + незацікавлений (локальний), відмовляється (пір) not interested(peer) and unchoked(local) - незацікавлений (пір), відмовляється (локальний) + незацікавлений (пір), відмовляється (локальний) peer from PEX - пір із PEX + пір із PEX peer from DHT - пір із DHT + пір із DHT encrypted traffic - закодований трафік + шифрований трафік encrypted handshake - зашифроване рукостискання + шифроване підтвердження встановлення зв’язку peer from LSD - пір із LSD + пір із LSD @@ -3971,123 +3989,73 @@ Are you sure you want to quit qBittorrent? Доречність - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Додати нового піра... - + Copy selected Скопіювати вибране - - + + Ban peer permanently Заблокувати піра - + Manually adding peer '%1'... Вручну додається пір '%1'... - + The peer '%1' could not be added to this torrent. Піра '%1' не вдалося додати до цього торрента. - + Manually banning peer '%1'... Вручну блокується пір '%1'... - - + + Peer addition Додавання піра - + Some peers could not be added. Check the Log for details. Деяких пірів не вдалося додати. Додаткові деталі в Журналі. - + The peers were added to this torrent. Пірів додано до цього торрента. - + Are you sure you want to ban permanently the selected peers? Ви впевнені, що хочете назовсім заблокувати вибраних пірів? - + &Yes &Так - + &No &Ні - - interested(local) and choked(peer) - зацікавлений (локальний), відмовляється (пір) - - - interested(local) and unchoked(peer) - зацікавлений (локальний), погоджується (пір) - - - interested(peer) and choked(local) - зацікавлений (пір), відмовляється (локальний) - - - interested(peer) and unchoked(local) - зацікавлений (пір), погоджується (локальний) - - - optimistic unchoke - оптимістичний вибір - - - peer snubbed - пір зупинився - - - incoming connection - вхідне з’єднання - - - not interested(local) and unchoked(peer) - незацікавлений (локальний), відмовляється (пір) - - - not interested(peer) and unchoked(local) - незацікавлений (пір), відмовляється (локальний) - - - peer from PEX - пір із PEX - - - peer from DHT - пір із DHT - - - encrypted traffic - закодований трафік - - - encrypted handshake - зашифроване рукостискання - - - peer from LSD - пір із LSD - PeersAdditionDlg @@ -4125,6 +4093,203 @@ Are you sure you want to quit qBittorrent? Синій: доступні шматки + + PluginSelectDlg + + + Search plugins + Пошукові додатки + + + + Installed search plugins: + + + + + Name + Назва + + + + Version + Версія + + + + Url + URL + + + + + Enabled + Увімкнено + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Ви можете отримати нові пошукові додатки тут: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Встановити новий + + + + Check for updates + Перевірити оновлення + + + + Close + Закрити + + + + Uninstall + Видалити + + + + + + Yes + Так + + + + + + + No + Ні + + + + Uninstall warning + Попередження про видалення + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + Деякі додатки не вдалося видалити, тому що вони є частиною qBittorrent. Можна видалити лише ті додатки, які ви встановили власноруч. +Ці додатки було вимкнено. + + + + Uninstall success + Видалення успішне + + + + All selected plugins were uninstalled successfully + Всі вибрані пошукові додатки успішно видалено + + + + + New search engine plugin URL + Новий URL пошукового додатка + + + + + URL: + URL: + + + + Invalid link + Хибне посилання + + + + The link doesn't seem to point to a search engine plugin. + Це посилання не вказує на пошуковий додаток. + + + + Select search plugins + Вибрати пошукові додатки + + + + qBittorrent search plugin + Пошуковий додаток qBittorrent + + + + + + Search plugin update + Оновити пошуковий додаток + + + + All your plugins are already up to date. + Всі ваші додатки свіжої версії. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Встановити пошуковий додаток + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Джерело додатка + + + + Search plugin source: + Джерело пошукового додатка: + + + + Local file + Локальний файл + + + + Web link + Веб-посилання + + Preferences @@ -4181,89 +4346,89 @@ Are you sure you want to quit qBittorrent? Додавати розширення .!qB до незавершених файлів - + Copy .torrent files to: Копіювати torrent-файли до: - + Connections Limits Обмеження з’єднань - + Proxy Server Проксі-сервер - + Global Rate Limits Глобальні обмеження швидкості - + Apply rate limit to transport overhead Включати в обмеження протокол передачі - + Schedule the use of alternative rate limits Використання альтернативних обмежень швидкості за розкладом - + From: from (time1 to time2) З: - + To: time1 to time2 До: - + Enable Local Peer Discovery to find more peers Увімкнути локальний пошук пірів, щоб знаходити більше пірів - + Encryption mode: Режим шифрування: - + Prefer encryption Надавати перевагу шифруванню - + Require encryption Вимагати шифрування - + Disable encryption Вимкнути шифрування - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Подробиці</a>) - + Maximum active downloads: Максимум активних завантажень: - + Maximum active uploads: Максимум активних вивантажень: - + Maximum active torrents: Максимум активних торрентів: @@ -4288,82 +4453,82 @@ Are you sure you want to quit qBittorrent? Відображати вміст торрента і деякі налаштування - + Run external program on torrent completion Запустити зовнішню програму при завершенні торрента - + Port used for incoming connections: Порт для вхідних з’єднань: - + Random Випадковий - + Global maximum number of connections: Максимальна кількість з’єднань: - + Maximum number of connections per torrent: Максимальна кількість з’єднань на торрент: - + Maximum number of upload slots per torrent: Макс. з’єднань для вивантаження на торрент: - - + + Upload: Вивантаження: - - + + Download: Завантаження: - - - - + + + + KiB/s КіБ/с - + Remove folder Вилучити теку - + Every day Щодня - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Обмін пірами із сумісними Bittorrent-клієнтами (µTorrent, Vuze, ...) - + Host: Сервер: - + SOCKS4 SOCKS4 - + Type: Тип: @@ -4536,262 +4701,262 @@ Are you sure you want to quit qBittorrent? Автоматично додавати торренти із: - + Add folder... Додати теку... - + Copy .torrent files for finished downloads to: Копіювати torrent-файли для завершених завантажень до: - + Email notification upon download completion Сповіщення через e-mail при завершенні завантажень - + Destination email: E-mail призначення: - + SMTP server: SMTP сервер: - + This server requires a secure connection (SSL) Цей сервер вимагає безпечного з’єднання (SSL) - + Listening Port Порт для вхідних з’єднань - + Use UPnP / NAT-PMP port forwarding from my router Використовувати UPnP / NAT-PMP з мого роутера - + Use different port on each startup Використовувати щоразу інший порт - + Global maximum number of upload slots: Максимальна кількість з’єднань для вивантаження: - + Otherwise, the proxy server is only used for tracker connections В іншому випадку, проксі-сервер використовується лише для з’єднань з трекером - + Use proxy for peer connections Використовувати проксі для з’єднання з пірами - + Disable connections not supported by proxies Вимкнути з’єднання, які не підтримуються проксі-серверами. - + Use proxy only for torrents Використовувати проксі лише для торрентів - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS-подачі, пошуковик, оновлення ПЗ та все інше крім передачі даних торрентів і пов’язаних операцій (наприклад, обмін пірами) використовуватиме пряме з’єднання - + Info: The password is saved unencrypted Примітка: Пароль зберігається в незашифрованому вигляді - + IP Filtering IP-фільтр - + Reload the filter Перезавантажити фільтр - + Apply to trackers Застосувати до трекерів - + Apply rate limit to peers on LAN Застосувати обмеження для пірів з LAN - + When: Коли: - + Weekdays Робочі дні - + Weekends Вихідні - + Rate Limits Settings Налаштування обмежень швидкості - + Enable µTP protocol Увімкнути протокол µTP - + Apply rate limit to µTP protocol Включати в обмеження протокол uTP - + Privacy Конфіденційність - + Enable DHT (decentralized network) to find more peers Увімкнути DHT (децентралізовану мережу), щоб знаходити більше пірів - + Enable Peer Exchange (PeX) to find more peers Увімкнути обмін пірами (PeX), щоб знаходити більше пірів - + Look for peers on your local network Шукати пірів у локальній мережі - + Enable when using a proxy or a VPN connection Увімкнути при використанні з’єднання через проксі або VPN - + Enable anonymous mode Увімкнути анонімний режим - + Do not count slow torrents in these limits Не враховувати повільні торренти до цих обмежень - + Seed torrents until their ratio reaches Сідувати торренти, доки їх коефіцієнт не досягне - + then а тоді - + Pause them Призупинити їх - + Remove them Видалити їх - + Automatically add these trackers to new downloads: Автоматично додавати ці трекери до нових завантажень: - + Use UPnP / NAT-PMP to forward the port from my router Використовувати UPnP / NAT-PMP, щоб направити порт в роутері - + Use HTTPS instead of HTTP Використовувати HTTPS замість HTTP - + Import SSL Certificate Імпортувати сертифікат SSL - + Import SSL Key Імпортувати ключ SSL - + Certificate: Сертифікат: - + Alternative Rate Limits Альтернативні обмеження швидкості - + Key: Ключ: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Інформація про сертифікати</a> - + Bypass authentication for localhost Пропустити автентифікацію для localhost - + Update my dynamic domain name Оновлювати мій динамічний домен - + Service: Сервіс: - + Register Зареєструватись - + Domain name: Домен: - + (None) (Немає) @@ -4801,61 +4966,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: Порт: - - - + + + Authentication Автентифікація - - - - + + + + Username: Ім’я користувача: - - - - + + + + Password: Пароль: - + Torrent Queueing Черга торрентів - + Share Ratio Limiting Обмеження вивантаження - + Enable Web User Interface (Remote control) Увімкнути Веб-інтерфейс (дистанційне керування) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Шлях до фільтра (.dat, .p2p, .p2b): @@ -5061,10 +5226,6 @@ Are you sure you want to quit qBittorrent? Comment: Коментар: - - Torrent content: - Вміст торрента: - Select All @@ -5587,28 +5748,28 @@ No further notices will be issued. Невідома помилка - - + + Upgrade Оновлення - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] Ви оновили програму зі старої версії, яка по-іншому зберігала дані. Ви повинні перейти на нову систему. Після цього ви не зможете повернутись до старішої версії, ніж v3.3.0. Продовжити? [т/н] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. Ви оновили програму зі старої версії, яка по-іншому зберігала дані. Ви повинні перейти на нову систему. Після цього ви не зможете повернутись до старішої версії, ніж v3.3.0. - + Couldn't migrate torrent with hash: %1 Не вдалося адаптувати торрент з хешом: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 Не вдалося адаптувати торрент. Неправильна назва файла швидкого відновлення: %1 @@ -5719,17 +5880,17 @@ No further notices will be issued. RSSImp - + Stream URL: URL подачі: - + Please type a RSS stream URL Будь ласка, введіть URL подачі RSS - + This RSS feed is already in the list. Ця подача RSS вже є у списку. @@ -5749,75 +5910,92 @@ No further notices will be issued. Нова тека - + Deletion confirmation Підтвердження видалення - + Are you sure you want to delete the selected RSS feeds? Ви впевнені, що хочете видалити вибрані RSS-подачі? - + Please choose a new name for this RSS feed Будь ласка, виберіть нову назву для цієї RSS-подачі - + New feed name: Нова назва подачі: - + Name already in use Назва вже використовується - + This name is already used by another item, please choose another one. Ця назва вже використовується. Будь ласка, виберіть іншу. - + Date: Дата: - + Author: Автор: - + Unread Непрочитані - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Автоматичне завантаження '%1' із RSS-подачі '%2' не вдалося, тому що вона не містить торрент або magnet-посилання... + Автоматичне завантаження '%1' із RSS-подачі '%2' не вдалося, тому що вона не містить торрент або magnet-посилання... - + Automatically downloading '%1' torrent from '%2' RSS feed... - Автоматично завантажується торрент '%1' з RSS-подачі '%2'... + Автоматично завантажується торрент '%1' з RSS-подачі '%2'... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + Автоматичне завантаження '%1' із RSS-подачі '%2' не вдалося, тому що вона не містить торрент або magnet-посилання... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + Автоматично завантажується торрент '%1' з RSS-подачі '%2'... RssParser - Failed to open downloaded RSS file. - Не вдалось відкрити завантажений RSS-файл. + Не вдалось відкрити завантажений RSS-файл. - Invalid RSS feed at '%1'. - Некоректна RSS-подача: '%1'. + Некоректна RSS-подача: '%1'. @@ -5843,168 +6021,249 @@ No further notices will be issued. Максимальна кількість новин на подачу: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + Відкрити... + + + + Choose save path + Виберіть шлях збереження + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Тека спостерігання - - Download here - Завантажувати до + + Save Files to + + + + Download here + Завантажувати до - Download path - Шлях завантаження + Шлях завантаження SearchCategories - All categories - Всі категорії + Всі категорії - Movies - Фільми + Фільми - TV shows - Телешоу + Телешоу - Music - Музика + Музика - Games - Ігри + Ігри - Anime - Аніме + Аніме - Software - Програми + Програми - Pictures - Зображення + Зображення - Books - Книги + Книги SearchEngine - - - Search - Пошук + Пошук - Please install Python to use the Search Engine. - Будь ласка, встановіть Python, щоб використовувати Пошуковик + Будь ласка, встановіть Python, щоб використовувати Пошуковик - Empty search pattern - Пустий шаблон пошуку + Пустий шаблон пошуку - Please type a search pattern first - Будь ласка, спочатку введіть шаблон пошуку + Будь ласка, спочатку введіть шаблон пошуку - Searching... - Пошук... + Пошук... - Stop - Зупинити + Зупинити - - Search Engine - Пошуковик + Пошуковик - - Search has finished - Пошук закінчено + Пошук закінчено - An error occurred during search... - Під час пошуку сталася помилка... + Під час пошуку сталася помилка... - - Search aborted - Пошук скасовано + Пошук скасовано - All enabled - Всі увімкнено + Всі увімкнено - All engines - Всі пошуковики + Всі пошуковики - - Multiple... - Кілька... + Кілька... - - Results <i>(%1)</i>: i.e: Search results - Результати <i>(%1)</i>: + Результати <i>(%1)</i>: - Search returned no results - Пошук не дав результів + Пошук не дав результів - Stopped - Зупинено + Зупинено + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Всі категорії + + + + Movies + Фільми + + + + TV shows + Телешоу + + + + Music + Музика + + + + Games + Ігри + + + + Anime + Аніме + + + + Software + Програми + + + + Pictures + Зображення + + + + Books + Книги SearchListDelegate - - + + Unknown Невідомо @@ -6012,35 +6271,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Назва - + Size i.e: file size Розмір - + Seeders i.e: Number of full sources Сідери - + Leechers i.e: Number of partial sources Лічери - + Search engine Пошуковик + + SearchWidget + + + + + + + Search + Пошук + + + + Status: + Статус: + + + + + Stopped + Зупинено + + + + Download + Завантажити + + + + Go to description page + Перейти до сторінки опису + + + + Copy description page URL + Скопіювати URL сторінки опису + + + + Search plugins... + + + + + All enabled + Всі увімкнено + + + + All plugins + + + + + + Multiple... + Кілька... + + + + + + Search Engine + Пошуковик + + + + Please install Python to use the Search Engine. + Будь ласка, встановіть Python, щоб використовувати Пошуковик + + + + Empty search pattern + Пустий шаблон пошуку + + + + Please type a search pattern first + Будь ласка, спочатку введіть шаблон пошуку + + + + + Results <i>(%1)</i>: + i.e: Search results + Результати <i>(%1)</i>: + + + + Searching... + Пошук... + + + + Stop + Зупинити + + + + + Search has finished + Пошук закінчено + + + + + Search aborted + Пошук скасовано + + + + Search returned no results + Пошук не дав результів + + + + Search has failed + + + + + An error occurred during search... + Під час пошуку сталася помилка... + + ShutdownConfirmDlg @@ -6485,24 +6869,28 @@ No further notices will be issued. TorrentContentModel - + Name Назва - + Size Розмір - + Progress Прогрес - + + Download Priority + + + Priority - Пріоритет + Пріоритет @@ -6854,38 +7242,38 @@ No further notices will be issued. Попередження (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. Не вдалося розкодувати піктограму для URL '%1'. Спроба завантажити зображення у форматі PNG. - + Couldn't decode favicon for URL '%1'. Не вдалося розкодувати піктограму для URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 Не вдалося завантажити піктограму для URL '%1'. Причина: %2 - + Resume torrents Продовжити торренти - + Pause torrents Призупинити торренти - + Delete torrents Видалити торренти - - + + All (%1) this is for the tracker filter Всі (%1) @@ -7153,17 +7541,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Статус - + Labels Мітки - + Trackers Трекери @@ -7702,206 +8090,155 @@ No further notices will be issued. engineSelect - Search plugins - Пошукові додатки + Пошукові додатки - Installed search engines: - Встановлені пошуковики: + Встановлені пошуковики: - Name - Назва + Назва - Version - Версія + Версія - Url - URL + URL - - Enabled - Увімкнено + Увімкнено - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Ви можете отримати нові пошукові додатки тут: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Ви можете отримати нові пошукові додатки тут: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Встановити новий + Встановити новий - Check for updates - Перевірити оновлення + Перевірити оновлення - Close - Закрити + Закрити - Uninstall - Видалити + Видалити engineSelectDlg - Uninstall warning - Попередження про видалення + Попередження про видалення - Uninstall success - Видалення успішне + Видалення успішне - Invalid plugin - Хибний додаток + Хибний додаток - The search engine plugin is invalid, please contact the author. - Пошуковий додаток некоректний, будь ласка повідомте автора. + Пошуковий додаток некоректний, будь ласка повідомте автора. - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - Новіша версія пошукового додатка '%1' вже встановлена. + Новіша версія пошукового додатка '%1' вже встановлена. - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - Пошуковий додаток '%1' не вдалося оновити, залишено стару версію. + Пошуковий додаток '%1' не вдалося оновити, залишено стару версію. - '%1' search engine plugin could not be installed. %1 is the name of the search engine - Не вдалося встановити пошуковий додаток '%1'. + Не вдалося встановити пошуковий додаток '%1'. - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - Пошуковий додаток '%1' успішно оновлено. + Пошуковий додаток '%1' успішно оновлено. - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - Пошуковий додаток '%1' успішно встановлено. + Пошуковий додаток '%1' успішно встановлено. - The link doesn't seem to point to a search engine plugin. - Це посилання не вказує на пошуковий додаток. + Це посилання не вказує на пошуковий додаток. - Select search plugins - Вибрати пошукові додатки + Вибрати пошукові додатки - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - Вибачте, встановити пошуковий додаток '%1' не вдалось. + Вибачте, встановити пошуковий додаток '%1' не вдалось. - - - - - Search plugin install - Встановити пошуковий додаток + Встановити пошуковий додаток - - - Yes - Так + Так - - - - No - Ні + Ні - qBittorrent search plugin - Пошуковий додаток qBittorrent + Пошуковий додаток qBittorrent - - - - Search plugin update - Оновити пошуковий додаток + Оновити пошуковий додаток - - Sorry, update server is temporarily unavailable. - Пробачте, сервер оновлень тимчасово недоступний. + Пробачте, сервер оновлень тимчасово недоступний. - All your plugins are already up to date. - Всі ваші додатки свіжої версії. + Всі ваші додатки свіжої версії. - All selected plugins were uninstalled successfully - Всі вибрані пошукові додатки успішно видалено + Всі вибрані пошукові додатки успішно видалено - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Деякі додатки не вдалося видалити, тому що вони є частиною qBittorrent. Можна видалити лише ті додатки, які ви встановили власноруч. + Деякі додатки не вдалося видалити, тому що вони є частиною qBittorrent. Можна видалити лише ті додатки, які ви встановили власноруч. Ці додатки було вимкнено. - Invalid link - Хибне посилання + Хибне посилання - - New search engine plugin URL - Новий URL пошукового додатка + Новий URL пошукового додатка - - URL: - URL: + URL: @@ -8031,169 +8368,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Виберіть теку для експорту - - - - + + + + Choose a save directory Виберіть теку для збереження - + Add directory to scan Додати теку спостерігання - + Supported parameters (case sensitive): Підтримувані параметри (чутливо до регістру): - + %N: Torrent name %N: Назва торрента - + %L: Label %L: Мітка - + %F: Content path (same as root path for multifile torrent) %F: Шлях вмісту (для торрента з багатьма файлами те саме що корінь) - + %R: Root path (first torrent subdirectory path) %R: Кореневий шлях (шлях до головної папки торрента) - + %D: Save path %D: Шлях збереження - + %C: Number of files %C: Кількість файлів - + %Z: Torrent size (bytes) %Z: Розмір торрента (в байтах) - + %T: Current tracker %T: Поточний трекер - + %I: Info hash %I: Інформаційний хеш - + Folder is already being watched. За текою вже ведеться стеження. - + Folder does not exist. Тека не існує. - + Folder is not readable. Теку неможливо прочитати. - + Failure Провал - + Failed to add Scan Folder '%1': %2 Не вдалося додати теку '%1': %2 - - + + Filters Фільтри - - + + Choose an IP filter file Виберіть файл IP-фільтра - + SSL Certificate Сертифікат SSL - + SSL Key Ключ SSL - + Parsing error Помилка розбору - + Failed to parse the provided IP filter Не вдалося розібрати даний фільтр IP - + Successfully refreshed Успішно оновлено - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успішно розібрано наданий фільтр IP: застосовано %1 правил. - + Invalid key Неправильний ключ - + This is not a valid SSL key. Це не є коректний ключ SSL. - + Invalid certificate Неправильний сертифікат - + This is not a valid SSL certificate. Це не є коректний сертифікат SSL. - + The start time and the end time can't be the same. Час початку і кінця не може бути тим самим. - + Time Error Помилка часу @@ -8201,24 +8538,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Джерело додатка + Джерело додатка - Search plugin source: - Джерело пошукового додатка: + Джерело пошукового додатка: - Local file - Локальний файл + Локальний файл - Web link - Веб-посилання + Веб-посилання @@ -8247,40 +8580,32 @@ Those plugins were disabled. search_engine - - Search - Пошук + Пошук - Status: - Статус: + Статус: - Stopped - Зупинено + Зупинено - Download - Завантажити + Завантажити - Go to description page - Перейти до сторінки опису + Перейти до сторінки опису - Copy description page URL - Скопіювати URL сторінки опису + Скопіювати URL сторінки опису - Search engines... - Пошуковики... + Пошуковики... diff --git a/src/lang/qbittorrent_vi.ts b/src/lang/qbittorrent_vi.ts index b12e60de6..e77df1e51 100644 --- a/src/lang/qbittorrent_vi.ts +++ b/src/lang/qbittorrent_vi.ts @@ -175,172 +175,172 @@ Không tải về - - + + I/O Error Lỗi về xuất/nhập - + The torrent file does not exist. Tập tin torrent này không tồn tại. - + Invalid torrent Torrent không hợp lệ - + Failed to load the torrent: %1 Xảy ra lỗi khi tải torrent: %1 - - + + Already in download list Đã có trong danh sách tải về - + Free disk space: %1 - + Not Available This comment is unavailable - + Not Available This date is unavailable - + Not available Hiện không có - + Invalid magnet link Đường dẫn magnet không hợp lệ - + Torrent is already in download list. Trackers were merged. - - + + Cannot add torrent - + Cannot add this torrent. Perhaps it is already in adding state. - + This magnet link was not recognized Không nhận dạng được đường dẫn magnet này - + Magnet link is already in download list. Trackers were merged. - + Cannot add this torrent. Perhaps it is already in adding. - + Magnet link Đường dẫn magnet - + Retrieving metadata... Đang nhận các thông tin chi tiết... - + Not Available This size is unavailable. - - - + + + Choose save path Chọn nơi để lưu - + Rename the file Đổi tên tập ti - + New name: Tên mới: - - + + The file could not be renamed Không thể đổi tên tập tin này - + This file name contains forbidden characters, please choose a different one. Tên tập tin chứa một số ký tự bị cấm, vui lòng chọn một tên khác. - - + + This name is already in use in this folder. Please use a different name. Tên này hiện đã được dùng cho một thư mục khác. Vui lòng sử dụng một tên khác. - + The folder could not be renamed Không thể đổi tên thư mục - + Rename... Đổi tên... - + Priority Độ ưu tiên - + Invalid metadata - + Parsing metadata... Đang phân tích số liệu từ các thông tin chi tiết... - + Metadata retrieval complete Đã nhận đầy đủ phần thông tin chi tiết - + Download Error @@ -431,10 +431,6 @@ Resolve peer host names Phân giải dựa vào tên host của peer - - Maximum number of half-open connections [0: Disabled] - Số lượng tối đa các kết nối mở-phân nửa [0: Tắt] - Strict super seeding @@ -661,205 +657,205 @@ - + Matches articles based on episode filter. - + Example: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + Episode filter rules: - + Season number is a mandatory non-zero value - + Episode number is a mandatory non-zero value - + Filter must end with semicolon - + Three range types for episodes are supported: - + Single number: <b>1x25;</b> matches episode 25 of season one - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Last Match: %1 days ago - + Last Match: Unknown - + New rule name Tên của luật mới - + Please type the name of the new download rule. Vui lòng xác định tên của luật quy định tải về mới. - - + + Rule name conflict Xung đột tên của quy tắc - - + + A rule with this name already exists, please choose another name. Một quy tắc với tên như thế đã có sẵn, vui lòng chọn một tên khác. - + Are you sure you want to remove the download rule named '%1'? - + Are you sure you want to remove the selected download rules? Bạn có chắc muốn loại bỏ các quy tắc tải đã được chọn hay không? - + Rule deletion confirmation Xác nhận thao tác xóa quy tắc - + Destination directory Thư mục đích - + Invalid action Thao tác không hợp lệ - + The list is empty, there is nothing to export. Danh sách hiện đang rỗng, không thể xuất dữ liệu nào. - + Where would you like to save the list? Bạn có muốn lưu lại danh sách tại phần nào? - + Rules list (*.rssrules) Danh sách các quy tắc (*.rssrules) - + I/O Error Lỗi Nhập/Xuất - + Failed to create the destination file Xảy ra lỗi khi tạo tập tin đích - + Please point to the RSS download rules file Vui lòng chọn tập tin quy tắc tải RSS - + Rules list - + Import Error Lỗi khi nhập dữ liệu - + Failed to import the selected rules file Xảy ra lỗi khi nhập dữ liệu từ các tập tin quy tắc được chọn - + Add new rule... Thêm quy tắc mới... - + Delete rule Xóa quy tắc - + Rename rule... Quy tắc đổi tên... - + Delete selected rules Xóa các quy tắc đã chọn - + Rule renaming Quy tắc đổi tên - + Please type the new rule name Vui lòng gõ vào tên cho quy tắc mới - + Regex mode: use Perl-like regular expressions Chế độ Regex: sử dụng các phép diễn đạt dạng Perl - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> Chế độ Wildcard: bạn có thể sử dụng ký tự<ul><li>? để đại diện cho bất kỳ ký tự đơn lẻ nào</li><li>* để thay thế cho một hoặc nhiều hơn bất kỳ ký tự nào</li><li>Khoảng trống được tính bằng phép toán AND</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> Chế độ Wildcard: bạn có thể sử dụng ký tự<ul><li>? để đại diện cho bất kỳ ký tự đơn lẻ nào</li><li>* để thay thế cho một hoặc nhiều hơn bất kỳ ký tự nào</li><li>| được sử dụng bằng phép toán OR</li></ul> @@ -952,57 +948,57 @@ - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 @@ -1019,164 +1015,164 @@ - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Phân tích cú pháp thành công từ bộ lọc dữ liệu IP: %1 các quy luật đã được áp dụng. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1190,12 +1186,12 @@ - + File sizes mismatch for torrent '%1', pausing it. - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... @@ -1220,7 +1216,7 @@ Giá trị - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. @@ -1287,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds Feed dạng RSS - + Unread Chưa đọc @@ -1389,10 +1385,6 @@ You should get this information from your Web browser preferences. Only one link per line Mỗi dòng chỉ chứa một liên kết - - Download local torrent - Tải về từ phần torrent trên hệ thống - Download @@ -1579,7 +1571,17 @@ You should get this information from your Web browser preferences. - + + Type folder here + + + + + Other... + + + + Downloaded Is the file downloaded or not? Đã được tải về @@ -1950,10 +1952,6 @@ You should get this information from your Web browser preferences. &About T&hông tin - - Exit - Thoát Khỏi Chương Trình - &Pause @@ -2001,19 +1999,15 @@ You should get this information from your Web browser preferences. - + Show Hiển Thị - + Check for program updates Kiểm tra cập nhật chương trình - - Lock qBittorrent - Khóa Lại qBittorrent - Add Torrent &Link... @@ -2026,215 +2020,221 @@ You should get this information from your Web browser preferences. - + Execution Log Thi Hành Việc Cập Nhật Nhật Trình - + Clear the password Xóa phần mật khẩu - + Filter torrent list... - + &Set Password - + &Clear Password - + Transfers Truyền Đổi - + Torrent file association Quản Lý Định Dạng Tập Tin Của Torrent - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent không phải là ứng dụng mặc định để mở các tập tin torrent hoặc liên kết dạng Magnet. Bạn có muốn qBittorrent đảm nhiệm mặc định cho thao tác mở các tập tin torrent và liên kết dạng Magnet không? - + Icons Only - + Text Only - + Text Alongside Icons - + Text Under Icons - + Follow System Style - - - + + + UI lock password Mật Khẩu Khóa Lại Giao Diện - - - + + + Please type the UI lock password: Vui Lòng Điền Vào Mật Khẩu Khóa Lại Giao Diện: - + The password should contain at least 3 characters Mật Khẩu Nên Chứa Ít Nhất 3 Ký Tự - + Password update Cập Nhật Mật Khẩu - + The UI lock password has been successfully updated Mật Khẩu Khóa Giao Diện Đã Được Cập Nhật Thành Công - + Are you sure you want to clear the password? Bạn có chắc bạn muốn xóa đi phần mật khẩu? - + Search Tìm Kiếm - + Transfers (%1) Truyền Đổi (%1) - + Error - + Failed to add torrent: %1 - + Download completion Tải Về Hoàn Tất - + I/O Error i.e: Input/Output Error Lỗi Về Nhập/Xuất Dữ Liệu - + Recursive download confirmation Xác Nhận Tải Về Đệ Quy - + Yes Đồng Ý - + No Không Đồng Ý - + Never Không Bao Giờ - + Global Upload Speed Limit Giới Hạn Tốc Độ Tải Lên Chung - + Global Download Speed Limit Giới Hạn Tốc Độ Tải Xuống Chung - + &No K&hông Đồng Ý - + &Yes &Đồng Ý - + &Always Yes - + Python found in %1 - + Old Python Interpreter - + qBittorrent Update Available - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version - + Undetermined Python version - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2242,156 +2242,150 @@ Bạn có muốn qBittorrent đảm nhiệm mặc định cho thao tác mở cá - + The torrent '%1' contains torrent files, do you want to proceed with their download? - + Couldn't download file at URL '%1', reason: %2. - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Couldn't determine your Python version (%1). Search engine disabled. - - + + Missing Python Interpreter - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - - - - + No updates available. You are already using the latest version. - + &Check for Updates - + Checking for Updates... - + Already checking for program updates in the background Đã thực thi việc kiểm tra bản cập nhật ở chế độ nền - + Python found in '%1' - + Download error Lỗi khi tải về - + Python setup could not be downloaded, reason: %1. Please install it manually. - - + + Invalid password Mật Khẩu Không Hợp Lệ - - + + RSS (%1) - + URL download error - + The password is invalid Phần Mật Khẩu Không Hợp Lệ - - + + DL speed: %1 e.g: Download speed: 10 KiB/s - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + Hide Ẩn Đi - + Exiting qBittorrent Thoát Khỏi qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? Một Số Tập Tin Hiện Đang Trong Quá Trình Truyền Tải. Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? - + Open Torrent Files Mở Các Tập Tin Torrent - + Torrent Files Các Tập Tin Torrent - + Options were saved successfully. Các Tùy Chọn Đã Được Lưu Thành Công. @@ -2399,17 +2393,17 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::DNSUpdater - + Your dynamic DNS was successfully updated. - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Dynamic DNS error: hostname supplied does not exist under specified account. @@ -2419,32 +2413,32 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Dynamic DNS error: Your username was blocked due to abuse. - + Dynamic DNS error: supplied domain name is invalid. - + Dynamic DNS error: supplied username is too short. - + Dynamic DNS error: supplied password is too short. @@ -2471,154 +2465,149 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. - + Couldn't load GeoIP database. Reason: %1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A - - - Asia/Pacific Region - - - Europe - - - - Andorra - + United Arab Emirates - + Afghanistan - + Antigua and Barbuda - + Anguilla - + Albania - + Armenia - - Netherlands Antilles - - - - + Angola - + Antarctica - + Argentina - + American Samoa - + Austria - + Australia - + Aruba - + Azerbaijan - + Bosnia and Herzegovina - + Barbados - + Bangladesh - + Belgium - + Burkina Faso - + Bulgaria - + Bahrain - + Burundi - + Benin @@ -2633,1137 +2622,1127 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? - - Bolivia - - - - + Brazil - + Bahamas - + Bhutan - + Bouvet Island - + Botswana - + Belarus - + Belize - + Canada - + Cocos (Keeling) Islands - + Congo, The Democratic Republic of the - + Central African Republic - + Congo - + Switzerland - - Cote D'Ivoire - - - - + Cook Islands - + Chile - + Cameroon - + China - + Colombia - + Costa Rica - + Cuba - + Cape Verde - - - Christmas Island - - - Cyprus + Curacao - Czech Republic + Christmas Island - Germany + Cyprus - Djibouti + Czech Republic - Denmark + Germany - Dominica + Djibouti - Dominican Republic + Denmark - Algeria + Dominica - Ecuador + Dominican Republic - Estonia + Algeria - Egypt + Ecuador - Western Sahara + Estonia - Eritrea + Egypt - Spain + Western Sahara - Ethiopia + Eritrea - Finland + Spain - Fiji + Ethiopia - Falkland Islands (Malvinas) + Finland - Micronesia, Federated States of + Fiji - Faroe Islands + Falkland Islands (Malvinas) - France - Pháp + Micronesia, Federated States of + - France, Metropolitan + Faroe Islands + France + Pháp + + + Gabon - + United Kingdom - + Grenada - + Georgia - + French Guiana - + Ghana - + Gibraltar - + Greenland - + Gambia - + Guinea - + Guadeloupe - + Equatorial Guinea - + Greece Hy Lạp - + South Georgia and the South Sandwich Islands - + Guatemala - + Guam - + Guinea-Bissau - + Guyana - + Hong Kong - + Heard Island and McDonald Islands - + Honduras - + Croatia - + Haiti - + Hungary - + Indonesia - + Ireland - + Israel - + India - + British Indian Ocean Territory - + Iraq - + Iran, Islamic Republic of - + Iceland - + Italy - + Jamaica - + Jordan - + Japan - + Kenya - + Kyrgyzstan - + Cambodia - + Kiribati - + Comoros - + Saint Kitts and Nevis - + Korea, Democratic People's Republic of - + Korea, Republic of - + Kuwait - + Cayman Islands - + Kazakhstan - + Lao People's Democratic Republic - + Lebanon - + Saint Lucia - + Liechtenstein - + Sri Lanka - + Liberia - + Lesotho - + Lithuania - + Luxembourg - + Latvia - - Libyan Arab Jamahiriya - - - - + Morocco - + Monaco - + Moldova, Republic of - + Madagascar - + Marshall Islands - - Macedonia - - - - + Mali - + Myanmar - + Mongolia - - Macau - - - - + Northern Mariana Islands - + Martinique - + Mauritania - + Montserrat - + Malta - + Mauritius - + Maldives - + Malawi - + Mexico - + Malaysia - + Mozambique - + Namibia - + New Caledonia - + Niger - + Norfolk Island - + Nigeria - + Nicaragua - + Netherlands - + Norway - + Nepal - + Nauru - + Niue - + New Zealand - + Oman - + Panama - + Peru - + French Polynesia - + Papua New Guinea - + Philippines - + Pakistan - + Poland - + Saint Pierre and Miquelon - - Pitcairn Islands - - - - + Puerto Rico - - Palestinian Territory - - - - + Portugal - + Palau - + Paraguay - + Qatar - + Reunion - + Romania - + Russian Federation - + Rwanda - + Saudi Arabia - + Solomon Islands - + Seychelles - + Sudan - + Sweden - + Singapore - - Saint Helena - - - - + Slovenia - + Svalbard and Jan Mayen - + Slovakia - + Sierra Leone - + San Marino - + Senegal - + Somalia - + Suriname - + Sao Tome and Principe - + El Salvador - + Syrian Arab Republic - + Swaziland - + Turks and Caicos Islands - + Chad - + French Southern Territories - + Togo - + Thailand - + Tajikistan - + Tokelau - + Turkmenistan - + Tunisia - + Tonga - + Timor-Leste - - Turkey + + Bolivia, Plurinational State of - - Trinidad and Tobago + + Bonaire, Sint Eustatius and Saba - - Tuvalu + + Cote d'Ivoire - - Taiwan + + Libya - - Tanzania, United Republic of + + Saint Martin (French part) - - Ukraine + + Macedonia, The Former Yugoslav Republic of - - Uganda + + Macao - - United States Minor Outlying Islands + + Pitcairn - - United States + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) - Uruguay + Turkey - Uzbekistan + Trinidad and Tobago - Holy See (Vatican City State) + Tuvalu - Saint Vincent and the Grenadines + Taiwan - Venezuela + Tanzania, United Republic of - Virgin Islands, British + Ukraine - Virgin Islands, U.S. + Uganda - Vietnam + United States Minor Outlying Islands - Vanuatu + United States - Wallis and Futuna + Uruguay - Samoa + Uzbekistan - Yemen + Holy See (Vatican City State) - Mayotte - - - - - Serbia + Saint Vincent and the Grenadines - South Africa + Virgin Islands, British - Zambia - - - - - Montenegro + Virgin Islands, U.S. - Zimbabwe + Vanuatu - Anonymous Proxy + Wallis and Futuna - Satellite Provider + Samoa - Other + Yemen - Aland Islands + Mayotte + + + + + Serbia - Guernsey + South Africa - Isle of Man + Zambia + + + + + Montenegro + Zimbabwe + + + + + Aland Islands + + + + + Guernsey + + + + + Isle of Man + + + + Jersey - + Saint Barthelemy - - Saint Martin - - - - + Could not uncompress GeoIP database file. - + Couldn't save downloaded GeoIP database file. - + Successfully updated GeoIP database. - + Couldn't download GeoIP database file. Reason: %1 @@ -3794,72 +3773,72 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? interested(local) and choked(peer) - khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối chậm (mạng ngang hàng) + interested(local) and unchoked(peer) - khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối không chậm (mạng ngang hàng) + interested(peer) and choked(local) - khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối chậm (mạng đồng bộ) + interested(peer) and unchoked(local) - khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối không chậm (mạng đồng bộ) + optimistic unchoke - gỡ bõ nghẽn mạch ưu tiên + peer snubbed - bỏ mạng ngang hàng + incoming connection - kết nối đang thực hiện + not interested(local) and unchoked(peer) - không quan tâm(nội bộ) và gỡ nghẽn mạng(ngang hàng) + not interested(peer) and unchoked(local) - không quan tâm(ngang hàng) và gỡ nghẽn mạng(nội bộ) + peer from PEX - mạng ngang hàng từ PEX + peer from DHT - mạng ngang hàng từ DHT + encrypted traffic - dữ liệu mạng đã mã hóa + encrypted handshake - chập kết nối đã mã hóa + peer from LSD - mạng ngang hàng từ LSD + @@ -3927,123 +3906,73 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... Thêm vào một mạng ngang hàng mới... - + Copy selected - - + + Ban peer permanently Luôn cấm mạng ngang hàng - + Manually adding peer '%1'... - + The peer '%1' could not be added to this torrent. - + Manually banning peer '%1'... - - + + Peer addition Bổ sung mạng ngang hàng - + Some peers could not be added. Check the Log for details. - + The peers were added to this torrent. - + Are you sure you want to ban permanently the selected peers? Bạn có chắc muốn cấm hoàn toàn những mạng ngang hàng mà bạn đã lựa chọn hay không? - + &Yes &Đồng Ý - + &No K&hông Đồng Ý - - interested(local) and choked(peer) - khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối chậm (mạng ngang hàng) - - - interested(local) and unchoked(peer) - khả năng kết nối cao (mạng đồng bộ) và khả năng kết nối không chậm (mạng ngang hàng) - - - interested(peer) and choked(local) - khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối chậm (mạng đồng bộ) - - - interested(peer) and unchoked(local) - khả năng kết nối cao (mạng ngang hàng) và khả năng kết nối không chậm (mạng đồng bộ) - - - optimistic unchoke - gỡ bõ nghẽn mạch ưu tiên - - - peer snubbed - bỏ mạng ngang hàng - - - incoming connection - kết nối đang thực hiện - - - not interested(local) and unchoked(peer) - không quan tâm(nội bộ) và gỡ nghẽn mạng(ngang hàng) - - - not interested(peer) and unchoked(local) - không quan tâm(ngang hàng) và gỡ nghẽn mạng(nội bộ) - - - peer from PEX - mạng ngang hàng từ PEX - - - peer from DHT - mạng ngang hàng từ DHT - - - encrypted traffic - dữ liệu mạng đã mã hóa - - - encrypted handshake - chập kết nối đã mã hóa - - - peer from LSD - mạng ngang hàng từ LSD - PeersAdditionDlg @@ -4081,6 +4010,202 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? + + PluginSelectDlg + + + Search plugins + Tiện ích tìm kiếm + + + + Installed search plugins: + + + + + Name + Tên + + + + Version + + + + + Url + Đường dẫn + + + + + Enabled + Đã bật + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Bạn có thể nhận được các tiện ích tìm kiếm mới nhất ở đây: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + Cài một phần mới + + + + Check for updates + Kiểm tra cập nhật phiên bản + + + + Close + Đóng lại + + + + Uninstall + Gỡ bỏ + + + + + + Yes + + + + + + + + No + Không Đồng Ý + + + + Uninstall warning + Cảnh báo khi gỡ bỏ + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + + + + + Uninstall success + Đã gỡ bỏ thành công + + + + All selected plugins were uninstalled successfully + Tất cả các tiện ích được chọn đã được gỡ bỏ thành công + + + + + New search engine plugin URL + Đường dẫn mới của phần tiện ích tìm kiếm + + + + + URL: + Đường dẫn: + + + + Invalid link + Liên kết không hợp lệ + + + + The link doesn't seem to point to a search engine plugin. + Liên kết này dường như không trỏ đến một tiện ích tìm kiếm nào. + + + + Select search plugins + Chọn tiện ích tìm kiếm + + + + qBittorrent search plugin + + + + + + + Search plugin update + Cập nhật tiện ích tìm kiếm + + + + All your plugins are already up to date. + Tất cả các tiện ích của bạn đều là mới nhất. + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + Cài đặt tiện ích tìm kiếm + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + Nguồn của tiện ích + + + + Search plugin source: + Nguồn của tiện ích tìm kiếm: + + + + Local file + Tập tin tại máy + + + + Web link + Liên kết Web + + Preferences @@ -4137,89 +4262,89 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Tạm dừng .!phần mở rộng qB để không hoàn thiện các tập tin - + Copy .torrent files to: Sao chép tập tin .torrent vào: - + Connections Limits Giới hạn các kết nối - + Proxy Server Máy chủ proxy - + Global Rate Limits Giới hạn tỉ lệ chung - + Apply rate limit to transport overhead Áp dụng tỉ lệ giới hạn với các phần tải sau - + Schedule the use of alternative rate limits Thời biểu sử dụng tỉ lệ giới hạn phòng hờ - + From: from (time1 to time2) - + To: time1 to time2 - + Enable Local Peer Discovery to find more peers Cho phép chế độ khám phá mạng ngang hàng cục bộ để tìm ra nhiều mạng ngang hàng hơn - + Encryption mode: Chế độ mã hóa: - + Prefer encryption Mã hóa ưa dùng - + Require encryption Yêu cầu cần có mã hóa - + Disable encryption Vô hiệu hóa phần mã hóa - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">Thêm thông tin</a>) - + Maximum active downloads: Lượng tải về tối đa hiện hữu: - + Maximum active uploads: Lượng tải lên tối đa hiện hữu: - + Maximum active torrents: Lượng torrent tối đa hiện hữu: @@ -4244,82 +4369,82 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Hiển thị nội dung torrent và các tùy chọn khác - + Run external program on torrent completion - + Port used for incoming connections: Cổng kết nối dùng cho các kết nối đi vào hệ thống: - + Random Ngẫu nhiên - + Global maximum number of connections: Số lượng kết nối tối đa: - + Maximum number of connections per torrent: Số lượng kết nối tối đa cho mỗi torrent: - + Maximum number of upload slots per torrent: Số lượng lượt tải lên tối đa cho mỗi torrent: - - + + Upload: Tải lên: - - + + Download: Tải về: - - - - + + + + KiB/s KiB/s - + Remove folder Loại bỏ thư mục - + Every day Mỗi ngày - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) Hoán chuyển mạng ngang hàng với các máy trạm Bittorrent tương thích (µTorrent, Vuze, ...) - + Host: Máy chủ: - + SOCKS4 SOCKS4 - + Type: Loại: @@ -4492,262 +4617,262 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Tự động thêm vào các torrent từ: - + Add folder... Thêm thư mục... - + Copy .torrent files for finished downloads to: Sao chép các tập tin .torrent đã hoàn thành tại: - + Email notification upon download completion Gửi email thông báo mỗi khi phần tải về đã hoàn tất - + Destination email: Địa chỉ email muốn gửi: - + SMTP server: Máy phục vụ SMTP: - + This server requires a secure connection (SSL) Máy chủ này yêu cầu kết nối dạng bảo mật (SSL) - + Listening Port Cổng đóng nhận dữ liệu - + Use UPnP / NAT-PMP port forwarding from my router Sử dụng cổng kết nôi UPnP / NAT-PMP để chuyển hướng từ router - + Use different port on each startup Sử dụng cổng kết nối khác nhau mỗi khi khởi động - + Global maximum number of upload slots: Số lượng kết nối tối đa của phần tải lên: - + Otherwise, the proxy server is only used for tracker connections Còn bằng không, máy chủ proxy sẽ chỉ được sử dụng cho các kết nối của tracker - + Use proxy for peer connections Sử dụng proxy đối với các kết nối ngang hàng - + Disable connections not supported by proxies - + Use proxy only for torrents - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + Info: The password is saved unencrypted - + IP Filtering Lọc địa chỉ IP - + Reload the filter Tải lại bộ lọc dữ liệu - + Apply to trackers - + Apply rate limit to peers on LAN - + When: Vào lúc: - + Weekdays - + Weekends - + Rate Limits Settings - + Enable µTP protocol - + Apply rate limit to µTP protocol - + Privacy Chính sách riêng tư: - + Enable DHT (decentralized network) to find more peers Cho phép DHT (tái phân phối tập trung mạng) để tìm thêm mạng ngang hàng - + Enable Peer Exchange (PeX) to find more peers Cho phép chuyển đổi mạng ngang hàng (PeX) để tìm thêm mạng ngang hàng khác - + Look for peers on your local network Tìm các mạng ngang hàng ở hệ thống hiện tại - + Enable when using a proxy or a VPN connection - + Enable anonymous mode Cho phép chế độ ẩn danh - + Do not count slow torrents in these limits Không đếm các torrent có tốc độ quá chậm trong những giới hạn này - + Seed torrents until their ratio reaches Seed các torrent cho đến khi tỉ lệ đạt ngưỡng - + then sau đó - + Pause them Tạm dừng - + Remove them Loại bỏ - + Automatically add these trackers to new downloads: - + Use UPnP / NAT-PMP to forward the port from my router Sử dụng UPnP / NAT-PMP để chuyển hướng từ router - + Use HTTPS instead of HTTP Sử dụng HTTPS thay cho HTTP - + Import SSL Certificate Nhập dữ liệu từ chứng chỉ SSL - + Import SSL Key Nhập dữ liệu từ khóa SSL - + Certificate: Chứng chỉ: - + Alternative Rate Limits - + Key: Khóa dữ liệu: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Thông tin về chứng chỉ</a> - + Bypass authentication for localhost Không cần xác nhận tại localhost - + Update my dynamic domain name Cập nhật tên miền động của tôi - + Service: Dịch vụ: - + Register Đăng ký - + Domain name: Tên miền: - + (None) (Không có gì) @@ -4757,61 +4882,61 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? BitTorrent - + HTTP HTTP - - + + Port: Cổng kết nối: - - - + + + Authentication Xác nhận - - - - + + + + Username: Tên người dùng: - - - - + + + + Password: Mật khẩu: - + Torrent Queueing Hàng đợi torrent - + Share Ratio Limiting Giới hạn tỉ lệ chia sẻ - + Enable Web User Interface (Remote control) Cho phép hiển thị giao diện Web (điều khiển từ xa) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): Lọc đường dẫn (.dat, .p2p, .p2b): @@ -5017,10 +5142,6 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Comment: Bình luận: - - Torrent content: - Nội dung torrent: - Select All @@ -5540,28 +5661,28 @@ No further notices will be issued. - - + + Upgrade - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Couldn't migrate torrent with hash: %1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 @@ -5672,17 +5793,17 @@ No further notices will be issued. RSSImp - + Stream URL: Luồng liên kết: - + Please type a RSS stream URL - + This RSS feed is already in the list. @@ -5702,75 +5823,77 @@ No further notices will be issued. Tạo thư mục mới - + Deletion confirmation - + Are you sure you want to delete the selected RSS feeds? - + Please choose a new name for this RSS feed Xin vui lòng chọn một tên mới cho feed dạng RSS này - + New feed name: Tên mới cho feed: - + Name already in use Tên này đã được sử dụng - + This name is already used by another item, please choose another one. Tên này đã được sử dụng bởi một đối tượng khác, xin vui lòng chọn một tên khác. - + Date: Ngày tháng: - + Author: Tác giả: - + Unread Chưa đọc - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatically downloading '%1' torrent from '%2' RSS feed... + + Rss::Private::Parser + + + Invalid RSS feed. + + + RssParser - Failed to open downloaded RSS file. - Không thể mở tập tin tải về RSS. - - - - Invalid RSS feed at '%1'. - + Không thể mở tập tin tải về RSS. @@ -5796,168 +5919,220 @@ No further notices will be issued. Số lượng tối đa của các bài viết cho một nguồn cấp dữ liệu: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + + + + + Choose save path + + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder Thư mục đã theo dõi - - Download here - Tải về tại đây + + Save Files to + - - Download path - + Download here + Tải về tại đây SearchCategories - All categories - Tất cả thể loại + Tất cả thể loại - Movies - Phim + Phim - TV shows - Chương trình TV + Chương trình TV - Music - Nhạc + Nhạc - Games - Trò chơi + Trò chơi - Anime - A-ni-mê + A-ni-mê - Software - Phần mềm + Phần mềm - Pictures - Hình ảnh + Hình ảnh - Books - Sách + Sách SearchEngine - - - Search - Tìm kiếm + Tìm kiếm - - Please install Python to use the Search Engine. - - - - Empty search pattern - Làm rỗng phần tìm kiếm mẫu + Làm rỗng phần tìm kiếm mẫu - Please type a search pattern first - Trước tiên xin vui lòng chọn một mẫu tìm kiếm + Trước tiên xin vui lòng chọn một mẫu tìm kiếm - Searching... - Đang tìm kiếm... + Đang tìm kiếm... - Stop - Dừng lại + Dừng lại - - Search Engine - Cơ chế Tìm kiếm + Cơ chế Tìm kiếm - - Search has finished - Đã hoàn tất phần tìm kiếm + Đã hoàn tất phần tìm kiếm - An error occurred during search... - Xảy ra lổi trong quá trình tìm kiếm... + Xảy ra lổi trong quá trình tìm kiếm... - - Search aborted - Hủy thao tác tìm kiếm + Hủy thao tác tìm kiếm - - All enabled - - - - - All engines - - - - - - Multiple... - - - - - - Results <i>(%1)</i>: - i.e: Search results - - - - Search returned no results - Không tìm thấy kết quả nào + Không tìm thấy kết quả nào - - Stopped - Đã dừng lại + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + Tất cả thể loại + + + + Movies + Phim + + + + TV shows + Chương trình TV + + + + Music + Nhạc + + + + Games + Trò chơi + + + + Anime + A-ni-mê + + + + Software + Phần mềm + + + + Pictures + Hình ảnh + + + + Books + Sách SearchListDelegate - - + + Unknown Chưa rõ @@ -5965,35 +6140,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name Tên - + Size i.e: file size Kích thước - + Seeders i.e: Number of full sources Các người dùng dạng seeder - + Leechers i.e: Number of partial sources Các người dùng dạng leecher - + Search engine Cơ chế Tìm kiếm + + SearchWidget + + + + + + + Search + + + + + Status: + Trạng thái: + + + + + Stopped + Đã dừng lại + + + + Download + Tải về + + + + Go to description page + Truy cập vào trang mô tả + + + + Copy description page URL + + + + + Search plugins... + + + + + All enabled + + + + + All plugins + + + + + + Multiple... + + + + + + + Search Engine + Cơ chế Tìm kiếm + + + + Please install Python to use the Search Engine. + + + + + Empty search pattern + Làm rỗng phần tìm kiếm mẫu + + + + Please type a search pattern first + Trước tiên xin vui lòng chọn một mẫu tìm kiếm + + + + + Results <i>(%1)</i>: + i.e: Search results + + + + + Searching... + Đang tìm kiếm... + + + + Stop + Dừng lại + + + + + Search has finished + Đã hoàn tất phần tìm kiếm + + + + + Search aborted + Hủy thao tác tìm kiếm + + + + Search returned no results + Không tìm thấy kết quả nào + + + + Search has failed + + + + + An error occurred during search... + Xảy ra lổi trong quá trình tìm kiếm... + + ShutdownConfirmDlg @@ -6438,24 +6738,28 @@ No further notices will be issued. TorrentContentModel - + Name Tên - + Size Kích thước - + Progress Tiến độ - + + Download Priority + + + Priority - Độ ưu tiên + Độ ưu tiên @@ -6807,38 +7111,38 @@ No further notices will be issued. - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Couldn't decode favicon for URL '%1'. - + Couldn't download favicon for URL '%1'. Reason: %2 - + Resume torrents - + Pause torrents - + Delete torrents - - + + All (%1) this is for the tracker filter @@ -7106,17 +7410,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status Trạng thái - + Labels Nhãn - + Trackers Tracker @@ -7655,205 +7959,103 @@ No further notices will be issued. engineSelect - Search plugins - Tiện ích tìm kiếm + Tiện ích tìm kiếm - Installed search engines: - Các công cụ cài tìm kiếm đã được cài đặt: + Các công cụ cài tìm kiếm đã được cài đặt: - Name - Tên + Tên - - Version - - - - Url - Đường dẫn + Đường dẫn - - Enabled - Đã bật + Đã bật - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Bạn có thể nhận được các tiện ích tìm kiếm mới nhất ở đây: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Bạn có thể nhận được các tiện ích tìm kiếm mới nhất ở đây: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - Cài một phần mới + Cài một phần mới - Check for updates - Kiểm tra cập nhật phiên bản + Kiểm tra cập nhật phiên bản - Close - Đóng lại + Đóng lại - Uninstall - Gỡ bỏ + Gỡ bỏ engineSelectDlg - Uninstall warning - Cảnh báo khi gỡ bỏ + Cảnh báo khi gỡ bỏ - Uninstall success - Đã gỡ bỏ thành công + Đã gỡ bỏ thành công - - Invalid plugin - - - - - The search engine plugin is invalid, please contact the author. - - - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - - - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - - - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - - - - The link doesn't seem to point to a search engine plugin. - Liên kết này dường như không trỏ đến một tiện ích tìm kiếm nào. + Liên kết này dường như không trỏ đến một tiện ích tìm kiếm nào. - Select search plugins - Chọn tiện ích tìm kiếm + Chọn tiện ích tìm kiếm - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - - - - - - - - Search plugin install - Cài đặt tiện ích tìm kiếm + Cài đặt tiện ích tìm kiếm - - - Yes - Đồng ý + Đồng ý - - - - No - Không Đồng Ý + Không Đồng Ý - - qBittorrent search plugin - - - - - - - Search plugin update - Cập nhật tiện ích tìm kiếm + Cập nhật tiện ích tìm kiếm - - Sorry, update server is temporarily unavailable. - Rất tiếc, hiện không thể kết nối đến máy chủ phục vụ tiến trình cập nhật. + Rất tiếc, hiện không thể kết nối đến máy chủ phục vụ tiến trình cập nhật. - All your plugins are already up to date. - Tất cả các tiện ích của bạn đều là mới nhất. + Tất cả các tiện ích của bạn đều là mới nhất. - All selected plugins were uninstalled successfully - Tất cả các tiện ích được chọn đã được gỡ bỏ thành công + Tất cả các tiện ích được chọn đã được gỡ bỏ thành công - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - - - - Invalid link - Liên kết không hợp lệ + Liên kết không hợp lệ - - New search engine plugin URL - Đường dẫn mới của phần tiện ích tìm kiếm + Đường dẫn mới của phần tiện ích tìm kiếm - - URL: - Đường dẫn: + Đường dẫn: @@ -7983,169 +8185,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory Chọn thư mục xuất dữ liệu - - - - + + + + Choose a save directory Chọn thư mục để lưu dữ liệu - + Add directory to scan Thêm thư mục để quét - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Thư mục đã bị theo dõi. - + Folder does not exist. Thư mục không tồn tại. - + Folder is not readable. Không thể đọc được dữ liệu từ thư mục. - + Failure Gặp lỗi - + Failed to add Scan Folder '%1': %2 Gặp lổi khi thêm vào thư mục quét '%1': %2 - - + + Filters Lọc dữ liệu - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Lỗi phân tích cú pháp - + Failed to parse the provided IP filter Lỗi: Không thể phân tích cú pháp từ bộ lọc dữ liệu IP cung cấp. - + Successfully refreshed Đã cập nhật thành công - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Phân tích cú pháp thành công từ bộ lọc dữ liệu IP: %1 các quy luật đã được áp dụng. - + Invalid key Khoá không hợp lệ. - + This is not a valid SSL key. Đây không phải là một khóa SSL hợp lệ. - + Invalid certificate Chứng chỉ không hợp lệ - + This is not a valid SSL certificate. Đây không phải là một chứng chỉ SSL hợp lệ. - + The start time and the end time can't be the same. Thời gian bắt đầu và thời gian kết thúc không được phép giống nhau. - + Time Error Xảy ra lỗi về thời gian @@ -8153,24 +8355,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - Nguồn của tiện ích + Nguồn của tiện ích - Search plugin source: - Nguồn của tiện ích tìm kiếm: + Nguồn của tiện ích tìm kiếm: - Local file - Tập tin tại máy + Tập tin tại máy - Web link - Liên kết Web + Liên kết Web @@ -8199,40 +8397,28 @@ Those plugins were disabled. search_engine - - Search - Tìm kiếm + Tìm kiếm - Status: - Trạng thái: + Trạng thái: - Stopped - Đã dừng lại + Đã dừng lại - Download - Tải về + Tải về - Go to description page - Truy cập vào trang mô tả + Truy cập vào trang mô tả - - Copy description page URL - - - - Search engines... - Bộ máy tìm kiếm online... + Bộ máy tìm kiếm online... diff --git a/src/lang/qbittorrent_zh.ts b/src/lang/qbittorrent_zh.ts index 2587bff32..d704652d9 100644 --- a/src/lang/qbittorrent_zh.ts +++ b/src/lang/qbittorrent_zh.ts @@ -59,7 +59,7 @@ This version of qBittorrent was built against the following libraries: - 该版本qBittorrent使用以下库: + 该版本 qBittorrent 使用以下库: @@ -107,12 +107,12 @@ Torrent settings - Torrent设置 + Torrent 设置 Start torrent - 开始torrent + 开始 torrent @@ -127,12 +127,12 @@ Set as default label - + 设置为默认标签 Torrent Information - Torrent信息 + Torrent 信息 @@ -152,7 +152,7 @@ Info Hash: - 哈希值 + 哈希值: @@ -167,7 +167,7 @@ Maximum - 最大 + 最高 @@ -175,172 +175,172 @@ 不下载 - - + + I/O Error - I/O错误 + I/O 错误 - + The torrent file does not exist. - 该torrent文件不存在. + 该 torrent 文件不存在。 - + Invalid torrent - 无效torrent + 无效 torrent - + Failed to load the torrent: %1 - 加载torrent失败: %1 + 加载 torrent 失败:%1 - - + + Already in download list 已经在下载列表中 - + Free disk space: %1 剩余磁盘空间:%1 - + Not Available This comment is unavailable 不可用 - + Not Available This date is unavailable 不可用 - + Not available 不可用 - + Invalid magnet link 无效的磁力链接 - + Torrent is already in download list. Trackers were merged. - Torrent已经在下载列表中。Trackers 已合并。 + Torrent 已经在下载列表中。Trackers 已合并。 - - + + Cannot add torrent 无法添加 torrent - + Cannot add this torrent. Perhaps it is already in adding state. 无法添加此 torrent。也许它已是添加状态。 - + This magnet link was not recognized 该磁力链接未被识别 - + Magnet link is already in download list. Trackers were merged. Magnet 链接已经在下载列表中。Trackers 已合并。 - + Cannot add this torrent. Perhaps it is already in adding. 无法添加此 torrent。也许它已是添加状态。 - + Magnet link 磁力链接 - + Retrieving metadata... 检索元数据... - + Not Available This size is unavailable. 不可用 - - - + + + Choose save path 选择保存路径 - + Rename the file 重命名文件 - + New name: - 新名: + 新名称: - - + + The file could not be renamed 文件不能被重命名 - + This file name contains forbidden characters, please choose a different one. - 该文件名包含被禁止符号,请重新命名. + 该文件名包含被禁止符号,请重新命名。 - - + + This name is already in use in this folder. Please use a different name. - 该名称已被使用,请重新命名. + 该文件名已存在,请重新命名。 - + The folder could not be renamed - 文件夹不能被重命名 + 该文件夹不能被重命名 - + Rename... 重命名... - + Priority 优先 - + Invalid metadata 无效的元数据 - + Parsing metadata... 解析元数据... - + Metadata retrieval complete 元数据检索完成 - + Download Error 下载错误 @@ -360,17 +360,17 @@ Outgoing ports (Min) [0: Disabled] - 出端口(最小) [0: 禁用] + 出端口(最小) [0: 禁用] Outgoing ports (Max) [0: Disabled] - 出端口(最大) [0: 禁用] + 出端口(最大) [0: 禁用] Recheck torrents on completion - 完成后再次核对torrent + 完成后再次核对 torrent @@ -381,7 +381,7 @@ ms milliseconds - ms + ms @@ -397,7 +397,7 @@ (auto) - (自动) + (自动) @@ -431,10 +431,6 @@ Resolve peer host names 显示用户主机名 - - Maximum number of half-open connections [0: Disabled] - 最大半开放连接数 [0: 禁用] - Strict super seeding @@ -448,28 +444,28 @@ Listen on IPv6 address (requires restart) - 监听IPv6地址(需要重启动) + 监听 IPv6 地址(需要重启) Confirm torrent recheck - 确认再次核对torrent + 确认再次核对 torrent Exchange trackers with other peers - 与其他用户交换trackers + 与其他用户交换 trackers Always announce to all trackers - 总是向所有trackers宣布 + 总是向所有 trackers 宣布 Any interface i.e. Any network interface - 任何界面 + 任何接口 @@ -480,12 +476,12 @@ Maximum number of half-open connections [0: Unlimited] - + 最大半开放连接数 [0: 无限制] IP Address to report to trackers (requires restart) - 向追踪器报告IP地址(需重启) + 向 trackers 报告 IP 地址(需要重启) @@ -495,12 +491,12 @@ Enable embedded tracker - 启用嵌入式tracker + 启用嵌入式 tracker Embedded tracker port - 嵌入式tracker端口 + 嵌入式 tracker 端口 @@ -529,7 +525,7 @@ To control qBittorrent, access the Web UI at http://localhost:%1 - 通过网页端控制qBittorrent,你需要访问 http://localhost:%1 + 欲通过网页端控制 qBittorrent,你需要访问 http://localhost:%1 @@ -544,7 +540,7 @@ This is a security risk, please consider changing your password from program preferences. - 存在安全风险!请尝试在设置更改密码! + 存在安全风险!请考虑在设置更改密码! @@ -562,7 +558,7 @@ RSS Downloader - RSS下载器 + RSS 下载器 @@ -592,7 +588,7 @@ Must Not Contain: - 必须不包含: + 必须不含: @@ -618,7 +614,7 @@ days - + @@ -661,205 +657,205 @@ 导出... - + Matches articles based on episode filter. - 基于剧集筛选器匹配的文章。 + 基于事件筛选器匹配的文章。 - + Example: 示例: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - 将匹配第 1 季中的 2、5、8 到 15、30 及之后的剧集 - - - - Episode filter rules: - 剧集筛选器规则: - - - - Season number is a mandatory non-zero value - Season number 必须是一个非零值 + 将匹配第 1 季中的 2,5,8 包括 15,30 和之后的剧集 + Episode filter rules: + 事件筛选器规则: + + + + Season number is a mandatory non-zero value + 季度数必须是一个非零值 + + + Episode number is a mandatory non-zero value 剧集数必须是一个非零值 - + Filter must end with semicolon 筛选器必须以分号结束 - + Three range types for episodes are supported: 支持三种范围类型的过滤器: - - - Single number: <b>1x25;</b> matches episode 25 of season one - 单一数字: <b>1x25;</b> 匹配第 1 季的剧集 25 - - Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - 一般范围: <b>1x25-40;</b> 匹配第 1 季的剧集 25-40 + Single number: <b>1x25;</b> matches episode 25 of season one + 单一数字:<b>1x25;</b> 匹配第 1 季的剧集 25 - Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - 无限范围: <b>1x25-;</b> 匹配第 1 季的剧集 25 及以上 + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one + 一般范围:<b>1x25-40;</b> 匹配第 1 季的剧集 25-40 - + + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one + 无限范围:<b>1x25-;</b> 匹配第 1 季的剧集 25 及以上 + + + Last Match: %1 days ago 最后匹配:%1 天前 - + Last Match: Unknown 最后匹配:未知 - + New rule name 新规则名称 - + Please type the name of the new download rule. - 请命名新的下载规则 + 请命名新的下载规则。 - - + + Rule name conflict 规则名称冲突 - - + + A rule with this name already exists, please choose another name. - 该名称已被另一规则使用, 请重新命名 + 该名称已被另一规则使用,请重新命名。 - + Are you sure you want to remove the download rule named '%1'? - 您确定要移除名为 %1 的下载规则吗? - - - - Are you sure you want to remove the selected download rules? - 您确定要移除选中的规则吗? + 您确定要移除名为 '%1' 的下载规则吗? + Are you sure you want to remove the selected download rules? + 您确定要移除选中的规则吗? + + + Rule deletion confirmation 确认删除规则 - + Destination directory 目标目录 - + Invalid action 无效行为 - + The list is empty, there is nothing to export. - 该目录为空, 无项目可导出. + 规则列表为空, 无项目可导出。 - + Where would you like to save the list? - 您想将该目录保存在? + 您想将该列表保存在? - + Rules list (*.rssrules) - 规则目录 (*.rssrules) + 规则列表 (*.rssrules) - + I/O Error - 输入/输出错误 + I/O 错误 - + Failed to create the destination file 创建目标文件失败 - + Please point to the RSS download rules file - 请指向RSS下载规则文件 + 请指向 RSS 下载规则文件 - + Rules list 规则列表 - + Import Error 导入错误 - + Failed to import the selected rules file 无法导入选中的规则文件 - + Add new rule... 添加新规则... - + Delete rule 删除规则 - + Rename rule... 重命名规则... - + Delete selected rules 删除选中的规则 - + Rule renaming - 正在重命名规则 + 重命名规则 - + Please type the new rule name 请输入新的规则名称 - + Regex mode: use Perl-like regular expressions - 正则表达式模式:使用类似Perl的正则表达式 + 正则表达式模式:使用类似 Perl 的正则表达式 - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> 通配符模式:可使用<ul><li>? 匹配任意单字符</li><li>* 匹配零个或多个任意字符</li><li>空格视为运算符"且"</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> 通配符模式:可使用<ul><li>? 匹配任意单字符</li><li>* 匹配零个或多个任意字符</li><li>| 表示运算符"或"</li></ul> @@ -874,72 +870,72 @@ HTTP User-Agent is '%1' - HTTP 用户代理是 %1 + HTTP 用户代理是 '%1' Anonymous mode [ON] - 匿名模式[开] + 匿名模式 [开] Anonymous mode [OFF] - 匿名模式[关] + 匿名模式 [关] PeX support [ON] - PeX 支持[开] + PeX 支持 [开] PeX support [OFF] - PeX 支持[关] + PeX 支持 [关] Restart is required to toggle PeX support - 更改PeX支持状态需要重启 + 更改 PeX 支持状态需要重启 Local Peer Discovery support [ON] - 本地资源搜索支持[开] + 本地资源搜索支持 [开] Local Peer Discovery support [OFF] - 本地资源搜索支持[关] + 本地资源搜索支持 [关] Encryption support [ON] - 加密支持[开] + 加密支持 [开] Encryption support [FORCED] - 加密支持[强制] + 加密支持 [强制] Encryption support [OFF] - 加密支持[开] + 加密支持 [开] Embedded Tracker [ON] - 嵌入式Tracker [开] + 嵌入式 Tracker [开] Failed to start the embedded tracker! - 无法启动嵌入式tracker! + 无法启动嵌入式 tracker! Embedded Tracker [OFF] - 嵌入式Tracker [关] + 嵌入式 Tracker [关] @@ -952,253 +948,231 @@ '%1' 达到了您设定的最大比率,暂停中... - Error: Could not create torrent export directory: '%1' - 错误: 无法创建torrent输出文件夹: '%1' - - - Error: could not export torrent '%1', maybe it has not metadata yet. - 错误: 无法导出torrent '%1', 或缺少元数据! - - - + System network status changed to %1 e.g: System network status changed to ONLINE 系统网络状态变更至 %1 - + ONLINE 在线 - + OFFLINE 离线 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding 网络配置 %1 发生改变,刷新会话绑定 - + Unable to decode '%1' torrent file. - 无法解析 '%1' torrent文件 + 无法解析 '%1' torrent 文件。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 递归下载文件 '%1' 内嵌于 torrent '%2' - + Couldn't save '%1.torrent' 无法保存 '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - 因为 %1 已被禁用 + 因为 %1 已被禁用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. - 因为 %1 已被禁用 + 因为 %1 已被禁用。 - + URL seed lookup failed for URL: '%1', message: %2 - 找不到网址种子: '%1', 消息: %2 + 找不到 URL 种子:'%1',消息:%2 '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - '%1'从传输列表及硬盘被移除. + '%1' 从传输列表及硬盘被移除。 '%1' was removed from transfer list. 'xxx.avi' was removed... - '%1'从传输列表被移除. + '%1' 从传输列表被移除。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - '%1'下载中,请等待... + '%1' 下载中,请等待... - Torrent Export: torrent is invalid, skipping... - 导出 Torrent:torrent 无效,跳过... - - - + DHT support [ON] DHT 支持 [开] - + DHT support [OFF]. Reason: %1 DHT 支持 [关]。原因:%1 - + DHT support [OFF] DHT 支持 [关] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - qBittorrent试图监听任何接口上的端口:%1 + qBittorrent 试图监听任何接口上的端口:%1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent监听任何接口上的端口:%1 失败。原因:%2 - - - + The network interface defined is invalid: %1 - 网络界面定义无效:%1 + 网络界面定义无效:%1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - qBittorrent试图监听接口%1 端口:%2 + qBittorrent 试图监听接口 %1 端口:%2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent 没有找到一个 %1 本地地址侦听 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent监听任何接口上的端口:%1 失败。原因:%2. {1.?} + qBittorrent 监听接口端口 %1 失败。原因:%2。 - + Tracker '%1' was added to torrent '%2' - Tracker '%1' 已被添加到BT种子 '%2' + Tracker '%1' 已被添加到 torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - Tracker '%1' 已被添加到BT种子 '%2' + Tracker '%1' 已被添加到 torrent '%2' - + URL seed '%1' was added to torrent '%2' - URL 种子'%1' 已被添加到BT种子 '%2' + URL 种子'%1' 已被添加到 torrent '%2' - + URL seed '%1' was removed from torrent '%2' - URL 种子'%1' 已被添加到BT种子 '%2' + URL 种子'%1' 已被添加到 torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - 无法解码torrent文件:'%1' + 无法恢复 torrent:'%1'。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - 解析提供的IP过滤器成功: %1 规则被应用. + 解析提供的 IP 过滤器成功:%1 条规则被应用。 - + Error: Failed to parse the provided IP filter. - 错误: 无法解析提供的IP过滤器 + 错误: 无法解析提供的 IP 过滤器。 - + Couldn't add torrent. Reason: %1 - 不能移动torrent:'%1' 原因:%2 + 不能添加 torrent:'%1'。原因:%2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - '%1'重新开始. (快速) + '%1' 已恢复(快速恢复)。 - + '%1' added to download list. 'torrent name' was added to download list. - '%1'已添加到下载列表. + '%1' 已添加到下载列表。 - + An I/O error occurred, '%1' paused. %2 - 出现输入/输出错误,'%1'暂停. %2 + 出现 I/O 错误,'%1' 暂停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - UPnP/NAT-PMP: 端口映射失败, 消息: %1 + UPnP/NAT-PMP:端口映射失败,消息: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - UPnP/NAT-PMP: 端口映射成功, 消息: %1 + UPnP/NAT-PMP:端口映射成功,消息: %1 - + due to IP filter. this peer was blocked due to ip filter. 取决于 IP 筛选器。 - + due to port filter. this peer was blocked due to port filter. 取决于端口筛选器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由于 i2p 混合模式的限制。 - + because it has a low port. this peer was blocked because it has a low port. 因为它有一个低端口号。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent 成功监听接口 %1 端口:%2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4. {1 ?} {2/%3.?} + qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4。 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP:%1 @@ -1212,14 +1186,14 @@ 无法移动 torrent:'%1'。原因:%2 - + File sizes mismatch for torrent '%1', pausing it. - 文件大小与 '%1' torrent不匹配, 暂停中。 + 文件大小与 torrent '%1' 不匹配,暂停中。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - '%1' 种子的快速恢复数据被拒绝,原因: %2。重新检查中... + Torrent '%1' 的快速恢复数据被拒绝,原因:%2。重新检查中... @@ -1227,7 +1201,7 @@ Cookies management - Cookies管理 + Cookies 管理 @@ -1242,11 +1216,11 @@ - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - 对cookies的公共键值为:%1,%2. -您可以在您的浏览器首选项里得到相关信息. + 常见的 Cookies 键值包括 '%1','%2'。 +您可以从网页浏览器的个性化设置中找到它们。 @@ -1261,7 +1235,7 @@ You should get this information from your Web browser preferences. Are you sure you want to delete these %1 torrents from the transfer list? Are you sure you want to delete these 5 torrents from the transfer list? - 你确定你要从传输列表中删除这些 %1 torrents吗? + 你确定要从传输列表中删除这 %1 个 torrents 吗? @@ -1292,7 +1266,7 @@ You should get this information from your Web browser preferences. Blocked IPs - 被阻止IP + 被阻止的 IP @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds - RSS文件 + RSS 订阅列表 - + Unread 未读 @@ -1347,17 +1321,17 @@ You should get this information from your Web browser preferences. Unsupported database file size. - 不支持数据库文件大小 + 不支持数据库文件大小。 Metadata error: '%1' entry not found. - 元数据错误: 未找到: '%1'项 + 元数据错误: 未找到 '%1' 项。 Metadata error: '%1' entry has invalid type. - 元数据错误: '%1'项有无效类型 + 元数据错误: '%1' 项类型无效。 @@ -1367,7 +1341,7 @@ You should get this information from your Web browser preferences. Unsupported IP version: %1 - 不支持IP版本: %1 + 不支持 IP 版本: %1 @@ -1382,7 +1356,7 @@ You should get this information from your Web browser preferences. Database corrupted: no data section found. - 数据库损坏:未发现数据段 + 数据库损坏:未发现数据段。 @@ -1405,16 +1379,12 @@ You should get this information from your Web browser preferences. Download Torrents from their URL or Magnet link - 从URL或M磁力链接下载Torrents + 从 URL 或磁力链接下载 Torrents Only one link per line - 每行仅可有一连接 - - - Download local torrent - 下载本地torrent + 每行一个连接 @@ -1424,57 +1394,57 @@ You should get this information from your Web browser preferences. Global upload rate limit must be greater than 0 or disabled. - 全局上传速率限制必须大于0或禁止 + 全局上传限制必须大于 0 或禁止。 Global download rate limit must be greater than 0 or disabled. - 全局下载速率限制必须大于0或禁止 + 全局下载限制必须大于 0 或禁止。 Alternative upload rate limit must be greater than 0 or disabled. - 可替代上传速率限制必须大于0或禁止 + 可替代上传比率限制必须大于 0 或禁止。 Alternative download rate limit must be greater than 0 or disabled. - 可替代下载速率限制必须大于0或禁止 + 可替代下载比率限制必须大于 0 或禁止。 Maximum active downloads must be greater than -1. - 最大正在下载数必须大于-1 + 最大同时下载数必须大于 -1。 Maximum active uploads must be greater than -1. - 最大正在上传数必须大于-1 + 最大同时上传数必须大于 -1。 Maximum active torrents must be greater than -1. - 最大同时活动torrent数必须大于-1 + 最大同时活动 torrents 必须大于 -1。 Maximum number of connections limit must be greater than 0 or disabled. - 最大连接数限制必须大于0或禁用. + 最大连接数限制必须大于 0 或禁用。 Maximum number of connections per torrent limit must be greater than 0 or disabled. - 每torrent最大连接数限制必须大于0或禁用. + 每个 torrent 的最大连接数限制必须大于 0 或禁用。 Maximum number of upload slots per torrent limit must be greater than 0 or disabled. - 每torrent最大上传通道数限制必须大于0或禁用. + 每个 torrent 的最大上传线程数限制必须大于 0 或禁用。 Unable to save program preferences, qBittorrent is probably unreachable. - 无法保存程序偏好选项,qBttorrent也许无法达到. + 无法保存程序偏好选项,可能是无法连接到 qBttorrent。 @@ -1489,12 +1459,12 @@ You should get this information from your Web browser preferences. The port used for the Web UI must be between 1 and 65535. - 用于Web用户界面的端口必须在 1 和65535之间 + 用于 Web 用户界面的端口必须大于 1 且小于 65535。 Unable to log in, qBittorrent is probably unreachable. - 登录失败,qBittorrent很可能发生连接故障 + 登录失败,可能是无法连接到 qBttorrent。 @@ -1534,7 +1504,7 @@ You should get this information from your Web browser preferences. Apply - 应用 + 确定 @@ -1549,22 +1519,22 @@ You should get this information from your Web browser preferences. All - 所有 + 全部 Downloading - 下载中 + 下载 Seeding - 做种中 + 做种 Completed - 完成 + 完成 @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - 保存文件到: + 保存文件到: Label: - 标签: + 标签: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? 已下载 @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + 上传本地的 torrent @@ -1625,12 +1605,12 @@ You should get this information from your Web browser preferences. The Web UI username must be at least 3 characters long. - Web界面用户名长度最少为3个字符. + Web 界面用户名长度最少为 3 个字符。 The Web UI password must be at least 3 characters long. - Web用户界面密码长度最少为3个字符. + Web 界面密码长度最少为 3 个字符。 @@ -1640,7 +1620,7 @@ You should get this information from your Web browser preferences. qBittorrent client is not reachable - 无法访问qBittorrent客户端 + 无法访问 qBittorrent 客户端 @@ -1665,7 +1645,7 @@ You should get this information from your Web browser preferences. qBittorrent has been shutdown. - qBittorrent已经关闭。 + qBittorrent 已经关闭。 @@ -1721,17 +1701,17 @@ You should get this information from your Web browser preferences. Resume torrents - 恢复Torrents + 恢复 Torrents Pause torrents - 暂停Torrents + 暂停 Torrents Delete torrents - 删除Torrents + 删除 Torrents @@ -1772,7 +1752,7 @@ You should get this information from your Web browser preferences. Clear - 清理 + 清除 @@ -1780,7 +1760,7 @@ You should get this information from your Web browser preferences. &Edit - &编辑 + 编辑 @@ -1790,17 +1770,17 @@ You should get this information from your Web browser preferences. &File - &文件 + 文件 &Help - &帮助 + 帮助 On Downloads &Done - 在下载完成后(&D) + 下载完成后 @@ -1820,7 +1800,7 @@ You should get this information from your Web browser preferences. Torrent &Creator - Torrent 创建器(&C) + 生成 Torrent @@ -1845,12 +1825,12 @@ You should get this information from your Web browser preferences. Minimum Priority - 最低优先级 + 设置下载限制... Top Priority - 最高优先级 + 最低优先级 @@ -1871,7 +1851,7 @@ You should get this information from your Web browser preferences. &Top Toolbar - 顶部工具栏(&t) + 顶部工具栏 @@ -1881,7 +1861,7 @@ You should get this information from your Web browser preferences. S&peed in Title Bar - 在标题栏显示速度(&p) + 在标题栏显示速度 @@ -1891,22 +1871,22 @@ You should get this information from your Web browser preferences. &RSS Reader - RSS 阅读器(&R) + RSS 阅读器 Search &Engine - 搜索引擎(&E) + 搜索引擎 L&ock qBittorrent - 锁定 qBittorrent(&o) + 锁定 qBittorrent &Import Existing Torrent... - 导入已存在的 Torrent(&I)... + 导入已下载的 Torrent... @@ -1916,47 +1896,47 @@ You should get this information from your Web browser preferences. Do&nate! - 捐赠(&n) + 捐赠 R&esume All - 重新开始所有 + 重新开始所有任务 &Log - 日志(&L) + 日志 &Exit qBittorrent - 退出 qBittorrent(&E) + 退出 qBittorrent &Suspend System - 系统睡眠(&S) + 睡眠操作系统 &Hibernate System - 系统休眠(&H) + 休眠操作系统 S&hutdown System - 关闭系统(&h) + 关闭操作系统 &Disabled - 禁用(&D) + 不执行任何操作 &Statistics - 统计(&S) + 统计 @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About 关于 - - Exit - 退出 - &Pause @@ -1990,12 +1966,12 @@ You should get this information from your Web browser preferences. P&ause All - 暂停所有 + 暂停所有任务 &Add Torrent File... - 添加 Torrent 文件(&A)... + 添加 Torrent 文件... @@ -2005,23 +1981,7 @@ You should get this information from your Web browser preferences. E&xit - 退出(&x) - - - Options - 设定 - - - Resume - 恢复 - - - Pause - 暂停 - - - Delete - 删除 + 退出 @@ -2031,7 +1991,7 @@ You should get this information from your Web browser preferences. &Documentation - 文档资料 + 帮助文档 @@ -2040,419 +2000,421 @@ You should get this information from your Web browser preferences. - + Show 显示 - + Check for program updates 检查程序更新 - - Lock qBittorrent - 锁定qBittorrent - Add Torrent &Link... - 添加 Torrent 链接(&A)... + 添加 Torrent 链接... If you like qBittorrent, please donate! - 如果您喜欢qBittorrent, 请捐款! + 如果您喜欢 qBittorrent,请捐款! - + Execution Log 执行日志 - + Clear the password 清除密码 - + Filter torrent list... 过滤 torrent 列表... - + &Set Password - 设置密码(&S) + 设置密码 - + &Clear Password - 清除密码(&C) + 清除密码 - + Transfers 传输 - + Torrent file association - 结合torrent文件 + 关联 torrent 文件 - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - qBittorrent不是打开torrent文件或磁力链接的默认应用程序. -您想用qBittorrent打开torrent文件或磁力链接吗? + qBittorrent 不是打开 torrent 文件或磁力链接的默认应用程序。 +您想用 qBittorrent 打开 torrent 文件或磁力链接吗? - + Icons Only - 只有图标 + 只显示图标 - + Text Only - 只有文字 + 只显示文字 - + Text Alongside Icons - 文字在图标旁 + 在图标旁显示文字 - + Text Under Icons - 文字在图标下 + 在图标下显示文字 - + Follow System Style 跟随系统设置 - - - + + + UI lock password 锁定用户界面的密码 - - - + + + Please type the UI lock password: - 请输入用于锁定用户界面的密码 + 请输入用于锁定用户界面的密码: - + The password should contain at least 3 characters 密码应包含至少三个字符 - + Password update 更新密码 - + The UI lock password has been successfully updated 锁定用户界面的密码已成功更新 - + Are you sure you want to clear the password? 你确定你要清除密码吗? - + Search 搜索 - + Transfers (%1) - 传输(%1) + 传输 (%1) - + Error 错误 - + Failed to add torrent: %1 无法添加 torrent:%1 - + Download completion 下载完成 - + I/O Error i.e: Input/Output Error - 输入/输出错误 + I/O 错误 - + Recursive download confirmation - 循环下载确认 + 确认递归下载 - + Yes - + No - + Never 从不 - + Global Upload Speed Limit 总上传速度限制 - + Global Download Speed Limit 总下载速度限制 - + &No - 否(&N) + - + &Yes - 是(&Y) + - + &Always Yes - 总是(&A) + 总是 - + Python found in %1 Python 位于 %1 - + Old Python Interpreter 旧的 Python 解释器 - + qBittorrent Update Available qBittorrent 有可用更新 - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version 已经是最新的 qBittorrent - + Undetermined Python version - 未确定的Python版本 + 未确定的 Python 版本 - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. '%1' 下载完毕! - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - 种子 '%1' 出现了一个 I/O 错误。 -原因: %2 + Torrent '%1' 出现了一个 I/O 错误。 + 原因: %2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent '%1' 包含多个 torrent 文件,您想用它们下载吗? - + Couldn't download file at URL '%1', reason: %2. 无法在网址: '%1' 下载文件,原因:%2。 - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. 您的 Python 已经过时,版本号为 %1。请更新其至最新版本以继续使用搜索引擎。最低要求版本号为 2.7.0/3.3.0。 - + Couldn't determine your Python version (%1). Search engine disabled. 无法确定您的 Python 版本 (%1)。搜索引擎已禁用。 - - + + Missing Python Interpreter - 缺少Python解释器 + 缺少 Python 解释器 - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - 未安装使用搜索引擎需要的Python,你想现在安装吗? + 使用搜索引擎需要 Python,但是它似乎未被安装。 +你想现在安装吗? - + Python is required to use the search engine but it does not seem to be installed. - 未安装使用搜索引擎需要的Python + 使用搜索引擎需要 Python,但是它似乎未被安装。 - A new version is available. Update to version %1? - 有新版本可供更新。 + 有新版本可供更新。 更新到版本 %1 吗? - + No updates available. You are already using the latest version. 没有可用更新。 您正在使用的已是最新版本。 - + &Check for Updates - 检查更新(&C) + 检查更新 - + Checking for Updates... 正在检查更新... - + Already checking for program updates in the background 已经在后台检查程序更新 - + Python found in '%1' Python 位于 '%1' - + Download error 下载出错 - + Python setup could not be downloaded, reason: %1. Please install it manually. 不能下载 Python 安装程序,原因:%1。 请手动安装。 - - + + Invalid password 无效密码 - - + + RSS (%1) RSS (%1) - + URL download error URL 下载出错 - + The password is invalid 该密码无效 - - + + DL speed: %1 e.g: Download speed: 10 KiB/s 下载速度:%1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s 上传速度:%1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - [下载:%1, 上传:%2] qBittorrent %3 + [D: %1, U: %2] qBittorrent %3 - + Hide 隐藏 - + Exiting qBittorrent - 正在退出qBittorrent + 正在退出 qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? - 一些文件正在传输中. -您确定要退出qBittorrent吗? + 一些文件正在传输中。 +您确定要退出 qBittorrent 吗? - + Open Torrent Files - 打开Torrent文件 + 打开 Torrent 文件 - + Torrent Files - Torrent文件 + Torrent 文件 - + Options were saved successfully. - 选项保存成功. + 选项保存成功。 Net::DNSUpdater - + Your dynamic DNS was successfully updated. 您的动态 DNS 已成功更新。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 动态 DNS 错误:服务器暂时不可用,将于 30 分钟后重试。 - + Dynamic DNS error: hostname supplied does not exist under specified account. 动态 DNS 错误:提供的主机名不在指定的账户下。 @@ -2462,32 +2424,32 @@ Are you sure you want to quit qBittorrent? 动态 DNS 错误:无效的用户名/密码。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. 动态 DNS 错误:qBittorrent 被服务器屏蔽,请在 http://bugs.qbittorrent.org 提交此错误。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 动态 DNS 错误:服务器返回 %1,请在 http://bugs.qbittorrent.org 提交此错误。 - + Dynamic DNS error: Your username was blocked due to abuse. 动态 DNS 错误:您的用户名因滥用而被屏蔽。 - + Dynamic DNS error: supplied domain name is invalid. 动态 DNS 错误:提供的域名无效。 - + Dynamic DNS error: supplied username is too short. 动态 DNS 错误:提供的用户名过短。 - + Dynamic DNS error: supplied password is too short. 动态 DNS 错误:提供的密码过短。 @@ -2507,161 +2469,168 @@ Are you sure you want to quit qBittorrent? Unexpected redirect to magnet URI. - 意外重定向至磁力链接 + 意外重定向至磁力链接。 Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. 已载入 GeoIP 数据库。类型:%1。创建时间:%2。 - + Couldn't load GeoIP database. Reason: %1 无法载入 GeoIP 数据库。原因:%1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/A - Asia/Pacific Region - 亚洲/太平洋地区 + 亚洲/太平洋地区 + + + Europe + 欧洲 - Europe - 欧洲 - - - Andorra 安道尔 - + United Arab Emirates 阿拉伯联合酋长国 - + Afghanistan 阿富汗 - + Antigua and Barbuda 安提瓜和巴布达 - + Anguilla 安圭拉 - + Albania 阿尔巴尼亚 - + Armenia 亚美尼亚 - Netherlands Antilles - 荷属安地列斯群岛 + 荷属安地列斯群岛 - + Angola 安哥拉 - + Antarctica 南极洲 - + Argentina 阿根廷 - + American Samoa 美属萨摩亚 - + Austria 奥地利 - + Australia 澳大利亚 - + Aruba 阿鲁巴 - + Azerbaijan 阿塞拜疆 - + Bosnia and Herzegovina 波斯尼亚和黑塞哥维那 - + Barbados 巴巴多斯 - + Bangladesh 孟加拉国 - + Belgium 比利时 - + Burkina Faso 布吉纳法索 - + Bulgaria 保加利亚 - + Bahrain 巴林 - + Burundi 布隆迪 - + Benin 贝宁 @@ -2676,1137 +2645,1187 @@ Are you sure you want to quit qBittorrent? 文莱达鲁萨兰国 - Bolivia - 玻利维亚 + 玻利维亚 - + Brazil 巴西 - + Bahamas 巴哈马 - + Bhutan 不丹 - + Bouvet Island 布维岛 - + Botswana 博茨瓦纳 - + Belarus 白俄罗斯 - + Belize 伯利兹 - + Canada 加拿大 - + Cocos (Keeling) Islands 科科斯 (基林) 群岛 - + Congo, The Democratic Republic of the 刚果民主共和国 - + Central African Republic 中非共和国 - + Congo 刚果 - + Switzerland 瑞士 - Cote D'Ivoire - 科特迪瓦 + 科特迪瓦 - + Cook Islands 库克群岛 - + Chile 智利 - + Cameroon 喀麦隆 - + China 中国 - + Colombia 哥伦比亚 - + Costa Rica 哥斯达黎加 - + Cuba 古巴 - + Cape Verde 佛得角 - + + Curacao + + + + Christmas Island 圣诞岛 - + Cyprus 塞浦路斯 - + Czech Republic 捷克共和国 - + Germany 德国 - + Djibouti 吉布提 - + Denmark 丹麦 - + Dominica 多米尼克 - + Dominican Republic 多米尼加共和国 - + Algeria 阿尔及利亚 - + Ecuador 厄瓜多尔 - + Estonia 爱沙尼亚 - + Egypt 埃及 - + Western Sahara 西撒哈拉 - + Eritrea 厄立特里亚 - + Spain 西班牙 - + Ethiopia 埃塞俄比亚 - + Finland 芬兰 - + Fiji 斐济 - + Falkland Islands (Malvinas) 福克兰群岛 (马尔维纳斯群岛) - + Micronesia, Federated States of 密克罗尼西亚联邦国 - + Faroe Islands 法罗群岛 - + France 法国 - France, Metropolitan - 法国大都会 + 法国大都会 - + Gabon 加蓬 - + United Kingdom 英国 - + Grenada 格林纳达 - + Georgia 格鲁吉亚 - + French Guiana 法属圭亚那 - + Ghana 加纳 - + Gibraltar 直布罗陀 - + Greenland 格陵兰岛 - + Gambia 冈比亚 - + Guinea 几内亚 - + Guadeloupe 瓜德罗普岛 - + Equatorial Guinea 赤道几内亚 - + Greece 希腊 - + South Georgia and the South Sandwich Islands 南乔治亚岛和南桑威奇群岛 - + Guatemala 危地马拉 - + Guam 关岛 - + Guinea-Bissau 几内亚比绍 - + Guyana 圭亚那 - + Hong Kong 香港 - + Heard Island and McDonald Islands 赫德岛和麦克唐纳群岛 - + Honduras 洪都拉斯 - + Croatia 克罗地亚 - + Haiti 海地 - + Hungary 匈牙利 - + Indonesia 印度尼西亚 - + Ireland 爱尔兰 - + Israel 以色列 - + India 印度 - + British Indian Ocean Territory 英属印度洋领地 - + Iraq 伊拉克 - + Iran, Islamic Republic of 伊朗伊斯兰共和国 - + Iceland 冰岛 - + Italy 意大利 - + Jamaica 牙买加 - + Jordan 约旦 - + Japan 日本 - + Kenya 肯尼亚 - + Kyrgyzstan 吉尔吉斯斯坦 - + Cambodia 柬埔寨 - + Kiribati 基里巴斯 - + Comoros 科摩罗 - + Saint Kitts and Nevis 圣基茨和尼维斯 - + Korea, Democratic People's Republic of 朝鲜民主主义人民共和国 - + Korea, Republic of 韩国 (大韩民国) - + Kuwait 科威特 - + Cayman Islands 开曼群岛 - + Kazakhstan 哈萨克斯坦 - + Lao People's Democratic Republic 老挝人民民主共和国 - + Lebanon 黎巴嫩 - + Saint Lucia 圣卢西亚 - + Liechtenstein 列支敦士登 - + Sri Lanka 斯里兰卡 - + Liberia 利比里亚 - + Lesotho 莱索托 - + Lithuania 立陶宛 - + Luxembourg 卢森堡 - + Latvia 拉托维亚 - Libyan Arab Jamahiriya - 阿拉伯利比亚民众国 + 阿拉伯利比亚民众国 - + Morocco 摩洛哥 - + Monaco 摩纳哥 - + Moldova, Republic of 摩尔多瓦共和国 - + Madagascar 马达加斯加 - + Marshall Islands 马绍尔群岛 - Macedonia - 马其顿 + 马其顿 - + Mali 马里 - + Myanmar 缅甸 - + Mongolia 蒙古 - Macau - 澳门 + 澳门 - + Northern Mariana Islands 北马里亚纳群岛 - + Martinique 马提尼克岛 - + Mauritania 毛里塔尼亚 - + Montserrat 蒙特塞拉特 - + Malta 马耳他 - + Mauritius 毛里求斯 - + Maldives 马尔代夫 - + Malawi 马拉维 - + Mexico 墨西哥 - + Malaysia 马来西亚 - + Mozambique 莫桑比克 - + Namibia 纳米比亚 - + New Caledonia 新喀里多尼亚 - + Niger 尼日尔 - + Norfolk Island 诺福克岛 - + Nigeria 尼日利亚 - + Nicaragua 尼加拉瓜 - + Netherlands 荷兰 - + Norway 挪威 - + Nepal 尼泊尔 - + Nauru 瑙鲁 - + Niue 纽埃 - + New Zealand 新西兰 - + Oman 阿曼 - + Panama 巴拿马 - + Peru 秘鲁 - + French Polynesia 法属波利尼西亚 - + Papua New Guinea 巴布亚新几内亚 - + Philippines 菲律宾 - + Pakistan 巴基斯坦 - + Poland 波兰 - + Saint Pierre and Miquelon 圣皮埃尔和密克隆群岛 - Pitcairn Islands - 皮特凯恩群岛 + 皮特凯恩群岛 - + Puerto Rico 波多黎各 - Palestinian Territory - 巴勒斯坦领土 + 巴勒斯坦领土 - + Portugal 葡萄牙 - + Palau 帕劳 - + Paraguay 巴拉圭 - + Qatar 卡塔尔 - + Reunion 团聚 - + Romania 罗马尼亚 - + Russian Federation 俄罗斯联邦 - + Rwanda 卢旺达 - + Saudi Arabia 沙特阿拉伯 - + Solomon Islands 所罗门群岛 - + Seychelles 塞舌尔 - + Sudan 苏丹 - + Sweden 瑞典 - + Singapore 新加坡 - Saint Helena - 圣海伦娜 + 圣海伦娜 - + Slovenia 斯洛文尼亚 - + Svalbard and Jan Mayen 斯瓦尔巴和扬马延岛 - + Slovakia 斯洛伐克 - + Sierra Leone 塞拉利昂 - + San Marino 圣马利诺 - + Senegal 塞内加尔 - + Somalia 索马里 - + Suriname 苏里南 - + Sao Tome and Principe 圣多美和普林西比 - + El Salvador 萨尔瓦多 - + Syrian Arab Republic 阿拉伯叙利亚共和国 - + Swaziland 斯威士兰 - + Turks and Caicos Islands 特克斯和凯科斯群岛 - + Chad 乍得 - + French Southern Territories 法国南部领地 - + Togo 多哥 - + Thailand 泰国 - + Tajikistan 塔吉克斯坦 - + Tokelau 托克劳 - + Turkmenistan 土库曼斯坦 - + Tunisia 突尼斯 - + Tonga 汤加 - + Timor-Leste 东帝汶 - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey 土耳其 - + Trinidad and Tobago 特立尼达和多巴哥 - + Tuvalu 图瓦卢 - + Taiwan 台湾省 - + Tanzania, United Republic of 坦桑尼亚联合共和国 - + Ukraine 乌克兰 - + Uganda 乌干达 - + United States Minor Outlying Islands 美国本土外小岛屿 - + United States 美国 - + Uruguay 乌拉圭 - + Uzbekistan 乌兹别克斯坦 - + Holy See (Vatican City State) 教廷 (梵蒂冈城国) - + Saint Vincent and the Grenadines 圣文森特和格林纳丁斯 - Venezuela - 委内瑞拉 + 委内瑞拉 - + Virgin Islands, British 英属维京群岛 - + Virgin Islands, U.S. 美属维京群岛 - Vietnam - 越南 + 越南 - + Vanuatu 瓦努阿图 - + Wallis and Futuna 瓦利斯和富图纳群岛 - + Samoa 萨摩亚 - + Yemen 也门 - + Mayotte 马约特岛 - + Serbia 塞尔维亚 - + South Africa 南非 - + Zambia 赞比亚 - + Montenegro 黑山 - + Zimbabwe 津巴布韦 - Anonymous Proxy - 匿名代理 + 匿名代理 - Satellite Provider - 卫星提供商 + 卫星提供商 - Other - 其他 + 其他 - + Aland Islands 奥兰群岛 - + Guernsey 根西岛 - + Isle of Man 马恩岛 - + Jersey 泽西岛 - + Saint Barthelemy 圣巴泰勒米 - Saint Martin - 圣马丁岛 + 圣马丁岛 - + Could not uncompress GeoIP database file. 无法解压 GeoIP 数据库文件。 - + Couldn't save downloaded GeoIP database file. 无法保存已下载的 GeoIP 数据库文件。 - + Successfully updated GeoIP database. 成功更新 GeoIP 数据库。 - + Couldn't download GeoIP database file. Reason: %1 无法下载 GeoIP 数据库文件。原因:%1 @@ -3837,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - 被关注的 (本地)和阻塞的 (peer) + 客户端期望下载但用户传输阻塞 interested(local) and unchoked(peer) - 被关注 (本地)和通畅的 (peer) + 客户端期望下载且用户传输疏通 interested(peer) and choked(local) - 被关注的 (peer)和阻塞的 (本地) + 用户期望下载但客户端传输阻塞 interested(peer) and unchoked(local) - 被关注的 (peer)和通畅的 (本地) + 用户期望下载且客户端传输疏通 optimistic unchoke - 尝试性疏通 + 传输阻塞并正尝试疏通 peer snubbed - 被拒绝的 peer + 传输未阻塞但连接超时 incoming connection - 传入的​​连接 + 传入连接中 not interested(local) and unchoked(peer) - 不被关注 (本地)和通畅的 (peer) + 用户传输疏通但客户端不期望下载 not interested(peer) and unchoked(local) - 不被关注的 (peer)和通畅的 (本地) + 客户端传输疏通但用户不期望下载 peer from PEX - 来自 PEX 的 peer + 来自 PEX 的用户 peer from DHT - 来自DHT 的 peer + 来自 DHT 的用户 encrypted traffic - 加密的流量 + 加密的流量 encrypted handshake - 加密的握手 + 加密的握手 peer from LSD - 来自 LSD 的 peer + 来自 LSD 的用户 @@ -3931,7 +3950,7 @@ Are you sure you want to quit qBittorrent? Client i.e.: Client application - 用户 + 客户端 @@ -3943,7 +3962,7 @@ Are you sure you want to quit qBittorrent? Down Speed i.e: Download speed - 下载速度 + 下载速度 @@ -3970,122 +3989,72 @@ Are you sure you want to quit qBittorrent? 文件关联 - - Add a new peer... - 添加新用户 + + Files + i.e. files that are being downloaded right now + - + + Add a new peer... + 添加新用户... + + + Copy selected 复制已选择的 - - + + Ban peer permanently 永久禁止用户 - + Manually adding peer '%1'... 手动添加用户 '%1'... - + The peer '%1' could not be added to this torrent. 用户 '%1' 无法被添加到此 torrent。 - + Manually banning peer '%1'... 手动禁止用户 '%1'... - - + + Peer addition - 用户添加 + 添加用户 - + Some peers could not be added. Check the Log for details. 部分用户无法被添加。请查看日志以了解更多。 - + The peers were added to this torrent. 这些用户已添加到此 torrent。 - + Are you sure you want to ban permanently the selected peers? - 您确定要永久禁止被选中的用户吗? + 您确定要永久禁止被选中的用户吗? - + &Yes - &是 + - + &No - &否 - - - interested(local) and choked(peer) - 被关注的 (本地)和阻塞的 (peer) - - - interested(local) and unchoked(peer) - 被关注 (本地)和通畅的 (peer) - - - interested(peer) and choked(local) - 被关注的 (peer)和阻塞的 (本地) - - - interested(peer) and unchoked(local) - 被关注的 (peer)和通畅的 (本地) - - - optimistic unchoke - 尝试性疏通 - - - peer snubbed - 被拒绝的 peer - - - incoming connection - 传入的​​连接 - - - not interested(local) and unchoked(peer) - 不被关注 (本地)和通畅的 (peer) - - - not interested(peer) and unchoked(local) - 不被关注的 (peer)和通畅的 (本地) - - - peer from PEX - 来自 PEX 的 peer - - - peer from DHT - 来自DHT 的 peer - - - encrypted traffic - 加密的流量 - - - encrypted handshake - 加密的握手 - - - peer from LSD - 来自 LSD 的 peer + @@ -4124,6 +4093,203 @@ Are you sure you want to quit qBittorrent? 蓝色:可用部分 + + PluginSelectDlg + + + Search plugins + 搜索插件 + + + + Installed search plugins: + + + + + Name + 名称 + + + + Version + 版本 + + + + Url + 网址 + + + + + Enabled + 启用 + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 您可以在这里获得新的搜索引擎:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + 安装一个新的搜索引擎 + + + + Check for updates + 检查更新 + + + + Close + 关闭 + + + + Uninstall + 卸载 + + + + + + Yes + + + + + + + + No + + + + + Uninstall warning + 卸载警告 + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + 一些插件不能被卸载,因为它们是由 qBittorrent 添加的。只有你自己添加的插件才能被卸载。 +这些插件已被禁用。 + + + + Uninstall success + 卸载成功 + + + + All selected plugins were uninstalled successfully + 所有选中的插件已成功卸载 + + + + + New search engine plugin URL + 新搜索引擎插件网址 + + + + + URL: + 网址: + + + + Invalid link + 无效链接 + + + + The link doesn't seem to point to a search engine plugin. + 该链接似乎并不指向一个搜索引擎插件。 + + + + Select search plugins + 选择搜索插件 + + + + qBittorrent search plugin + qBittorrent 搜索插件 + + + + + + Search plugin update + 更新搜索插件 + + + + All your plugins are already up to date. + 所有的插件已是最新的。 + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + 安装搜索插件 + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + 插件来源 + + + + Search plugin source: + 搜索插件来源: + + + + Local file + 本地文件 + + + + Web link + 网络连接 + + Preferences @@ -4166,13 +4332,13 @@ Are you sure you want to quit qBittorrent? Start / Stop Torrent - 开始 / 停止Torrent + 开始 / 停止 Torrent No action - 无行动 + 不执行操作 @@ -4180,96 +4346,96 @@ Are you sure you want to quit qBittorrent? 为不完整的文件添加扩展名 .!qB - + Copy .torrent files to: - 复制.torrent文件到: + 复制 .torrent 文件到: - + Connections Limits 连接限制 - + Proxy Server 代理服务器 - + Global Rate Limits 总速度限制 - + Apply rate limit to transport overhead 应用速度限制于传送总开销 - + Schedule the use of alternative rate limits 预定可替代的速度限制的使用时间 - + From: from (time1 to time2) 从: - + To: time1 to time2 到: - + Enable Local Peer Discovery to find more peers 启用本地资源搜索以获取更多资源 - + Encryption mode: 加密模式: - + Prefer encryption 偏好加密 - + Require encryption - 命令加密 + 要求加密 - + Disable encryption 禁用加密 - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">更多信息</a>) - + Maximum active downloads: 最大活动的下载数: - + Maximum active uploads: 最大活动的上传数: - + Maximum active torrents: - 最大活动的torrents种子数: + 最大活动的 torrents 数: When adding a torrent - 添加torrent时 + 添加 torrent 时 @@ -4284,85 +4450,85 @@ Are you sure you want to quit qBittorrent? Display torrent content and some options - 显示torrent内容及选项 + 显示 torrent 内容及选项 - + Run external program on torrent completion Torrent 完成时运行外部程序 - + Port used for incoming connections: 用于对内连接的端口: - + Random 随机 - + Global maximum number of connections: 总最大连接数: - + Maximum number of connections per torrent: - 每torrent最大连接数: + 每 torrent 最大连接数: - + Maximum number of upload slots per torrent: - 每torrent上传位置最大值: + 每 torrent 上传线程最大值: - - + + Upload: 上传: - - + + Download: 下载: - - - - + + + + KiB/s KiB/s - + Remove folder 移除文件夹 - + Every day 每天 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - 与兼容的Bittorrent客户端交换资源(µTorrent, Vuze, ...) + 与兼容的 Bittorrent 客户端交换资源(µTorrent, Vuze, ...) - + Host: - IP: + 主机: - + SOCKS4 SOCKS4 - + Type: 类型: @@ -4374,12 +4540,12 @@ Are you sure you want to quit qBittorrent? Action on double-click - 双击执行活动 + 双击执行操作 Downloading torrents: - 正在下载torrents: + 正在下载 torrents: @@ -4390,7 +4556,7 @@ Are you sure you want to quit qBittorrent? Completed torrents: - 完成的torrents: + 完成的 torrents: @@ -4405,18 +4571,18 @@ Are you sure you want to quit qBittorrent? Start qBittorrent minimized - 开始时使qBittorrent最小化 + 开始时使 qBittorrent 最小化 Minimize qBittorrent to notification area - 最小化qBittorrent到通知区域 + 最小化 qBittorrent 到通知区域 Close qBittorrent to notification area i.e: The systray tray icon will still be visible when closing the main window. - 关闭qBittorrent到通知区域 + 关闭 qBittorrent 到通知区域 @@ -4456,7 +4622,7 @@ Are you sure you want to quit qBittorrent? Start qBittorrent on Windows start up - Windows启动时启动qBittorrent + Windows 启动时启动 qBittorrent @@ -4466,7 +4632,7 @@ Are you sure you want to quit qBittorrent? Show qBittorrent in notification area - 在通知区域显示qBittorrent + 在通知区域显示 qBittorrent @@ -4476,12 +4642,12 @@ Are you sure you want to quit qBittorrent? Use qBittorrent for .torrent files - 使用qBittorrent打开.torrent文件 + 使用 qBittorrent 打开 .torrent 文件 Use qBittorrent for magnet links - 使用qBittorrent打开磁力链接 + 使用 qBittorrent 打开磁力链接 @@ -4491,7 +4657,7 @@ Are you sure you want to quit qBittorrent? Inhibit system sleep when torrents are active - 当torrent激活时禁止系统休眠 + 当 torrent 激活时禁止系统休眠 @@ -4502,7 +4668,7 @@ Are you sure you want to quit qBittorrent? Bring torrent dialog to the front - 把 torrent 对话框打开到前台 + 前置 torrent 对话框 @@ -4517,7 +4683,7 @@ Are you sure you want to quit qBittorrent? Append the label of the torrent to the save path - 在保存路径附加torrent的标签 + 在保存路径附加 torrent 的标签 @@ -4527,270 +4693,270 @@ Are you sure you want to quit qBittorrent? Keep incomplete torrents in: - 保存未完成的torrents到: + 保存未完成的 torrents 到: Automatically add torrents from: - 自动从此处添加torrents: + 自动从此处添加 torrents: - + Add folder... 添加文件夹... - + Copy .torrent files for finished downloads to: - 复制下载完成的 .torrent文件到: + 复制下载完成的 .torrent 文件到: - + Email notification upon download completion 下载完成时邮件通知 - + Destination email: - 目标电子邮件: + 目标电子邮箱: - + SMTP server: - SMTP服务器: + SMTP 服务器: - + This server requires a secure connection (SSL) 该服务器需要安全链接 (SSL) - + Listening Port - 侦听端口 + 监听端口 - + Use UPnP / NAT-PMP port forwarding from my router - 正使用我的路由器的UPnP / NAT-PMP端口转发 + 使用我的路由器的 UPnP / NAT-PMP 端口转发 - + Use different port on each startup 在每次启动时使用不同的端口 - + Global maximum number of upload slots: - 全局最大上传slot数: + 全局最大上传线程数: + + + + Otherwise, the proxy server is only used for tracker connections + 否则,代理服务器将仅用于 tracker 连接 - Otherwise, the proxy server is only used for tracker connections - 否则, 代理服务器将仅用于tracker连接 - - - Use proxy for peer connections - 使用代理服务器进行对等连接 + 使用代理服务器进行连接 - + Disable connections not supported by proxies - 禁用代理服务器不支持的连接 + 禁用代理服务器不支持的连接 - + Use proxy only for torrents 仅仅对 torrents 使用代理 - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - RSS订阅,搜索引擎,软件更新或者其他除了torrent传输和相关操作(例如用户交换数据)之外的任何事情都将使用直接连接 + RSS 订阅,搜索引擎,软件更新或者其他除了 torrent 传输和相关操作(例如用户交换数据)之外的任何事情都将使用直接连接 - + Info: The password is saved unencrypted 提示:密码未被加密! - + IP Filtering - IP过滤 + IP 过滤 - + Reload the filter - 重载过滤器 + 重新加载过滤器 - + Apply to trackers - 应用到 trackers + 匹配 trackers - + Apply rate limit to peers on LAN 对本地网络用户进行速度限制 - + When: 时间: - + Weekdays 工作日 - + Weekends 周末 - + Rate Limits Settings 设置速率限制 - + Enable µTP protocol 启用 µTP 协议 - + Apply rate limit to µTP protocol 应用速率限制到 µTP 协议 - + Privacy 隐私 - + Enable DHT (decentralized network) to find more peers - 启用DHT (无服务器网络) 以获取更多的资源 + 启用 DHT(无服务器网络)以获取更多的资源 - + Enable Peer Exchange (PeX) to find more peers - 启用同行交换 (PeX) 以获取更多资源 + 启用线程交换 (PeX) 以获取更多资源 - + Look for peers on your local network 在本地网络上寻找资源 - + Enable when using a proxy or a VPN connection - 使用代理或VPN连接时启用 + 使用代理或 VPN 连接时启用 - + Enable anonymous mode 启用匿名模式 - + Do not count slow torrents in these limits - 慢速torrent不计入限制内 + 慢速 torrent 不计入限制内 - + Seed torrents until their ratio reaches - 分享torrents直至达到比率 + 分享 torrents 直至达到比率 - + then 然后 - + Pause them 暂停它们 - + Remove them 移除它们 - + Automatically add these trackers to new downloads: 自动添加以下 trackers 到新的 torrents: - + Use UPnP / NAT-PMP to forward the port from my router - 使用我的路由器的UPnP / NAT-PMP端口来转发 + 使用我的路由器的 UPnP / NAT-PMP 端口来转发 - + Use HTTPS instead of HTTP 用 HTTPS 取代 HTTP - + Import SSL Certificate 导入 SSL 证书 - + Import SSL Key 导入 SSL 密匙 - + Certificate: 证书: - + Alternative Rate Limits 可替代速度限制 - + Key: 密匙: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> - <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>关于证书</a> - + Bypass authentication for localhost 绕过对本地主机的验证 - + Update my dynamic domain name 更新我的动态域名 - + Service: 服务: - + Register 注册 - + Domain name: 域名: - + (None) (无) @@ -4800,68 +4966,68 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: 端口: - - - + + + Authentication 验证 - - - - + + + + Username: 用户名: - - - - + + + + Password: 密码: - + Torrent Queueing - Torrent排队 + Torrent 排队 - + Share Ratio Limiting 分享率限制 - + Enable Web User Interface (Remote control) 启用网络用户界面(远程控制) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): - 过滤器路径(.dat, .p2p, .p2b): + 过滤器路径 (.dat, .p2p, .p2b): Detected unclean program exit. Using fallback file to restore settings. - 检测到未完全清理的程序退出记录。使用备份文件恢复设置。 + 检测到不清洁的程序退出。使用备份文件恢复设定。 @@ -4901,7 +5067,7 @@ Are you sure you want to quit qBittorrent? Sorry, we can't preview this file - 抱歉, 此文件无法被预览 + 抱歉,此文件无法被预览 @@ -4936,7 +5102,7 @@ Are you sure you want to quit qBittorrent? Maximum Maximum (priority) - 最大 + 最高 @@ -5060,10 +5226,6 @@ Are you sure you want to quit qBittorrent? Comment: 注释: - - Torrent content: - Torrent内容: - Select All @@ -5112,7 +5274,7 @@ Are you sure you want to quit qBittorrent? Created By: - 创建者: + 创建: @@ -5142,7 +5304,7 @@ Are you sure you want to quit qBittorrent? Maximum - 最大 + 最高 @@ -5159,7 +5321,7 @@ Are you sure you want to quit qBittorrent? %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - %1 x %2 (有 %3) + %1 x %2 (已完成 %3) @@ -5226,12 +5388,12 @@ Are you sure you want to quit qBittorrent? Copy Web seed URL - 复制网页种子URL网址 + 复制网页种子 URL Edit Web seed URL - 编辑网页种子URL地址 + 编辑网页种子 URL @@ -5241,7 +5403,7 @@ Are you sure you want to quit qBittorrent? New name: - 新名: + 新文件名: @@ -5252,13 +5414,13 @@ Are you sure you want to quit qBittorrent? This file name contains forbidden characters, please choose a different one. - 该文件名包含被禁止符号,请重新命名. + 该文件名包含被禁止符号,请重新命名。 This name is already in use in this folder. Please use a different name. - 该名称已被使用,请重新命名. + 该名称已被使用,请重新命名。 @@ -5295,12 +5457,12 @@ Are you sure you want to quit qBittorrent? Web seed editing - 网页种子编辑 + 编辑网页种子 Web seed URL: - 网页种子URL地址: + 网页种子 URL: @@ -5314,14 +5476,13 @@ Are you sure you want to quit qBittorrent? Error: '%1' is not a valid torrent file. - 错误:'%1' 不是一个有效的Torrent文件。 + 错误:'%1' 不是一个有效的 torrent 文件。 Error: Could not add torrent to session. - 错误:无法添加 torrent 到会话中。 - + 错误:无法添加 torrent 到会话中。 @@ -5343,17 +5504,17 @@ Are you sure you want to quit qBittorrent? %1 must specify the correct port (1 to 65535). - %1 必须指定正确的端口号 (1 to 65535)。 + %1 必须指定正确的端口号 (1 ~ 65535)。 You cannot use %1: qBittorrent is already running for this user. - 您不能使用 %1:qBittorrent 已在运行。 + 您不能使用 %1:qBittorrent 已在当前用户运行。 Usage: - 用量: + 使用: @@ -5373,22 +5534,22 @@ Are you sure you want to quit qBittorrent? Changes the Web UI port (current: %1) - 修改网页用户界面端口(当前:%1) + 修改网络界面端口(当前:%1) Disable splash screen - 禁用启动动画 + 禁用启动界面 Run in daemon-mode (background) - 运行在守护进程模式(后台) + 运行在守护进程模式(后台运行) Downloads the torrents passed by the user - 下载用户批准的torrents + 下载用户批准的 torrents @@ -5408,7 +5569,7 @@ Are you sure you want to quit qBittorrent? Bad command line: - 错误的命令 + 错误的命令: @@ -5421,7 +5582,7 @@ Are you sure you want to quit qBittorrent? qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility. No further notices will be issued. - qBittorrent 是一个文件共享程序。当你运行一个BT种子文件,它的数据会被上传至其他用户。您会为任何你共享的内容负全部的责任。 + qBittorrent 是一个文件共享程序。当你运行一个 torrent 文件时,它的数据会被上传给其他用户。您需要对你共享的任何内容负全部的责任。 之后不会有其他提醒。 @@ -5479,7 +5640,7 @@ No further notices will be issued. The remote host name was not found (invalid hostname) - 未找到远端主机名(无效主机名) + 未找到远程服务器(无效主机名) @@ -5489,12 +5650,12 @@ No further notices will be issued. The remote server closed the connection prematurely, before the entire reply was received and processed - 远端服务器在接到和处理完整回复前过早关闭连接 + 远程服务器在接到和处理完整回复前过早关闭连接 The connection to the remote server timed out - 连接远端服务器超时 + 连接远程服务器超时 @@ -5504,7 +5665,7 @@ No further notices will be issued. The remote server refused the connection - 远端服务器拒绝连接 + 远程服务器拒绝连接 @@ -5534,17 +5695,17 @@ No further notices will be issued. The access to the remote content was denied (401) - 读取远端内容被拒绝 (401) + 读取远程内容被拒绝 (401) The operation requested on the remote content is not permitted - 对于远端内容请求的操作未被允许 + 对于远程内容请求的操作未被允许 The remote content was not found at the server (404) - 内容在远程服务器上未找到(404) + 内容在远程服务器上未找到 (404) @@ -5574,7 +5735,7 @@ No further notices will be issued. An unknown error related to the remote content was detected - 检测到未知的关于远端内容的错误 + 检测到未知的关于远程内容的错误 @@ -5587,30 +5748,30 @@ No further notices will be issued. 未知错误 - - + + Upgrade 升级 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] 你从较旧的版本更新,两者保存的东西有所不同。你必须迁移到新的保存系统。你将不能再次使用比 v3.3.0 旧的版本。要继续吗? [y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. 你从较旧的版本更新,两者保存的东西有所不同。你必须迁移到新的保存系统。如果你继续,你将不能再次使用比 v3.3.0 旧的版本。 - + Couldn't migrate torrent with hash: %1 不能迁移 torrent,它的哈希为:%1 - + Couldn't migrate torrent. Invalid fastresume file name: %1 - 不能迁移 torrent。无效的 fastresume 文件名称:%1 + 不能迁移 torrent。无效的快速恢复文件名称:%1 @@ -5623,7 +5784,7 @@ No further notices will be issued. New subscription - 新RSS文件 + 新 RSS 订阅 @@ -5640,7 +5801,7 @@ No further notices will be issued. RSS Downloader... - RSS下载器... + RSS 下载器... @@ -5650,7 +5811,7 @@ No further notices will be issued. Torrents: (double-click to download) - Torrents: (双击下载) + Torrents:(双击下载) @@ -5677,28 +5838,28 @@ No further notices will be issued. New subscription... - 新RSS文件... + 新建订阅... Update all feeds - 更新所有文件 + 更新所有订阅 Download torrent - 下载torrent + 下载 torrent Open news URL - 打开新闻URL + 打开新闻 URL Copy feed URL - 复制文件URL + 复制文件 URL @@ -5708,28 +5869,28 @@ No further notices will be issued. Manage cookies... - 管理cookies... + 管理 cookies... Refresh RSS streams - 重新载入RSS资源 + 重新载入 RSS 资源 RSSImp - + Stream URL: - 网址资源: + 资源地址: - + Please type a RSS stream URL - 请输入一个 RSS 流 URL + 请输入一个 RSS 资源地址 - + This RSS feed is already in the list. 该 RSS 订阅已在列表中。 @@ -5749,75 +5910,92 @@ No further notices will be issued. 新文件夹 - + Deletion confirmation 确认删除 - + Are you sure you want to delete the selected RSS feeds? 您确定要删除选中的 RSS 订阅吗? - + Please choose a new name for this RSS feed - 请命名该RSS文件 + 请重命名该 RSS 文件 - + New feed name: 新文件名: - + Name already in use 名称已被使用 - + This name is already used by another item, please choose another one. - 该名称已被另一项目使用,请重新选择. + 该名称已被另一项目使用,请重新选择。 - + Date: 日期: - + Author: 作者: - + Unread 未读 - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... + 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... - + Automatically downloading '%1' torrent from '%2' RSS feed... - 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... + 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... RssParser - Failed to open downloaded RSS file. - 无法打开下载的RSS文件。 + 无法打开下载的 RSS 文件。 - Invalid RSS feed at '%1'. - '%1' 无效的RSS订阅。 + '%1' 无效的 RSS 订阅。 @@ -5825,12 +6003,12 @@ No further notices will be issued. RSS Reader Settings - RSS阅读器设置 + RSS 阅读器设置 RSS feeds refresh interval: - RSS消息源刷新间隔: + RSS 消息源刷新间隔: @@ -5843,168 +6021,249 @@ No further notices will be issued. 每个订阅源文章数目最大值: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + 浏览... + + + + Choose save path + 选择保存路径 + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder 监控文件夹 - - Download here - 下载到这里 + + Save Files to + + + + Download here + 下载到这里 - Download path - 下载路径 + 下载路径 SearchCategories - All categories - 所有类别 + 所有类别 - Movies - 电影 + 电影 - TV shows - 电视节目 + 电视节目 - Music - 音乐 + 音乐 - Games - 游戏 + 游戏 - Anime - 动漫 + 动画 - Software - 软件 + 软件 - Pictures - 图片 + 图片 - Books - 书籍 + 书籍 SearchEngine - - - Search - 搜索 + 搜索 - Please install Python to use the Search Engine. - 请安装 Python 以使用搜索引擎。 + 请安装 Python 以使用搜索引擎。 - Empty search pattern - 无搜索关键词 + 无搜索关键词 - Please type a search pattern first - 请先输入关键词 + 请先输入关键词 - Searching... - 搜索中... + 搜索中... - Stop - 停止 + 停止 - - Search Engine - 搜索引擎 + 搜索引擎 - - Search has finished - 搜索完毕 + 搜索完毕 - An error occurred during search... - 搜索中出现错误... + 搜索中出现错误... - - Search aborted - 搜索失败 + 搜索失败 - All enabled - 全部启用 + 全部开启 - All engines - 所有引擎 + 所有搜索引擎 - - Multiple... - 多个... + 更多... - - Results <i>(%1)</i>: i.e: Search results - 结果 <i>(%1)</i> + 结果 <i>(%1)</i> - Search returned no results - 搜索无结果 + 搜索无结果 - Stopped - 已停止 + 已停止 + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + 所有类别 + + + + Movies + 电影 + + + + TV shows + 电视节目 + + + + Music + 音乐 + + + + Games + 游戏 + + + + Anime + 动画 + + + + Software + 软件 + + + + Pictures + 图片 + + + + Books + 书籍 SearchListDelegate - - + + Unknown 未知 @@ -6012,35 +6271,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name 名称 - + Size i.e: file size 大小 - + Seeders i.e: Number of full sources 完整种子 - + Leechers i.e: Number of partial sources 不完整种子 - + Search engine 搜索引擎 + + SearchWidget + + + + + + + Search + 搜索 + + + + Status: + 状态: + + + + + Stopped + + + + + Download + 下载 + + + + Go to description page + 跳至描述页 + + + + Copy description page URL + 复制描述页网址 + + + + Search plugins... + + + + + All enabled + 全部开启 + + + + All plugins + + + + + + Multiple... + 更多... + + + + + + Search Engine + 搜索引擎 + + + + Please install Python to use the Search Engine. + 请安装 Python 以使用搜索引擎。 + + + + Empty search pattern + 无搜索关键词 + + + + Please type a search pattern first + 请先输入关键词 + + + + + Results <i>(%1)</i>: + i.e: Search results + 结果 <i>(%1)</i> + + + + Searching... + 搜索中... + + + + Stop + 停止 + + + + + Search has finished + 搜索完毕 + + + + + Search aborted + 搜索失败 + + + + Search returned no results + 搜索无结果 + + + + Search has failed + + + + + An error occurred during search... + 搜索中出现错误... + + ShutdownConfirmDlg @@ -6066,22 +6450,22 @@ No further notices will be issued. qBittorrent will now exit unless you cancel within the next %1 seconds. - qBittorrent 将退出,除非你在%1 秒内选择取消操作。 + qBittorrent 将退出,若要终止请在 %1 秒内选择取消操作。 The computer will now be switched off unless you cancel within the next %1 seconds. - 电脑将关机,除非你在%1 秒内选择取消操作。 + 电脑将关机,若要终止请在 %1 秒内选择取消操作。 The computer will now go to sleep mode unless you cancel within the next %1 seconds. - 电脑将进入睡眠模式,除非你在%1 秒内选择取消操作。 + 电脑将进入睡眠模式,若要终止请在 %1 秒内选择取消操作。 The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - 电脑将进入休眠模式,除非你在%1 秒内选择取消操作。 + 电脑将进入休眠模式,若要终止请在 %1 秒内选择取消操作。 @@ -6243,7 +6627,7 @@ No further notices will be issued. Total peer connections: - 总的 peer 连接: + 总的线程连接: @@ -6263,7 +6647,7 @@ No further notices will be issued. Total waste (this session): - 总的浪费(本次会话): + 总的浪费(本次会话): @@ -6273,7 +6657,7 @@ No further notices will be issued. Read cache Hits: - 读缓存次数: + 读取缓存次数: @@ -6288,22 +6672,22 @@ No further notices will be issued. Queued I/O jobs: - 队列的I/O任务: + 队列的 I/O 任务: Write cache overload: - 写缓存超负荷: + 写入缓存超负荷: Average time in queue (ms): - 在队列的平均时间(毫秒): + 在队列的平均时间(毫秒): Read cache overload: - 读缓存超负荷: + 读取缓存超负荷: @@ -6328,7 +6712,7 @@ No further notices will be issued. No direct connections. This may indicate network configuration problems. - 无直接连接.这也许指示网络设置问题. + 无直接连接。这也许表明网络设置存在问题。 @@ -6339,12 +6723,12 @@ No further notices will be issued. qBittorrent needs to be restarted - 需要重启qBittorrent + 需要重启 qBittorrent qBittorrent was just updated and needs to be restarted for the changes to be effective. - qBittorrent刚刚被更新需要重启使改动生效. + qBittorrent 刚刚被更新,需要重启以使更改生效。 @@ -6355,7 +6739,7 @@ No further notices will be issued. Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - 脱机.通常意味着qBittorrent侦听对内连接的端口失败. + 脱机。这通常意味着 qBittorrent 侦听对内连接的端口失败。 @@ -6399,17 +6783,17 @@ No further notices will be issued. Downloading (0) - 下载中 (0) + 下载 (0) Seeding (0) - 正在做种 (0) + 做种 (0) Completed (0) - 完成 (0) + 完成 (0) @@ -6424,12 +6808,12 @@ No further notices will be issued. Active (0) - 启用 (0) + 活动 (0) Inactive (0) - 未启用 (0) + 非活动 (0) @@ -6444,17 +6828,17 @@ No further notices will be issued. Downloading (%1) - 下载中 (%1) + 下载 (%1) Seeding (%1) - 正在做种 (%1) + 做种 (%1) Completed (%1) - 完成 (%1) + 完成 (%1) @@ -6469,12 +6853,12 @@ No further notices will be issued. Active (%1) - 启用 (%1) + 活动 (%1) Inactive (%1) - 未启用 (%1) + 非活动 (%1) @@ -6485,24 +6869,28 @@ No further notices will be issued. TorrentContentModel - + Name 名称 - + Size 大小 - + Progress 进度 - + + Download Priority + + + Priority - 优先 + 优先 @@ -6510,12 +6898,12 @@ No further notices will be issued. Select a folder to add to the torrent - 选择加入torrent的文件夹 + 选择加入 torrent 的文件夹 Select a file to add to the torrent - 选择加入到torrent的文件 + 选择加入到 torrent 的文件 @@ -6525,12 +6913,12 @@ No further notices will be issued. Please type an input path first - 请先给出输入路径 + 请先填写输入路径 Select destination torrent file - 选择目标torrent文件 + 选择目标 torrent 文件 @@ -6541,24 +6929,24 @@ No further notices will be issued. Torrent was created successfully: %1 %1 is the path of the torrent - 成功创建Torrent: %1 + 成功创建 torrent:%1 Torrent creation - 创建Torrent + 创建 Torrent Torrent creation was unsuccessful, reason: %1 - 创建Torrent失败,原因:%1 + 创建 torrent 失败,原因:%1 Created torrent file is invalid. It won't be added to download list. - 创建的torrent文件无效.它将不会被添加到下载列表中. + 创建的 torrent 文件无效。它将不会被添加到下载列表中。 @@ -6566,17 +6954,17 @@ No further notices will be issued. Torrent Import - Torrent导入 + 导入 Torrent This assistant will help you share with qBittorrent a torrent that you have already downloaded. - 该助手将帮助您与qBittorrent分享您已下载的torrent. + 该助手将帮助您与 qBittorrent 分享您已下载的 torrent。 Torrent file to import: - 要导入的torrent文件: + 要导入的 torrent 文件: @@ -6591,7 +6979,7 @@ No further notices will be issued. Skip the data checking stage and start seeding immediately - 跳过数据检查立即开始做种 + 跳过数据检查并立即开始做种 @@ -6601,7 +6989,7 @@ No further notices will be issued. Torrent file to import - 要导入的torrent文件 + 要导入的 torrent 文件 @@ -6623,17 +7011,17 @@ No further notices will be issued. Please point to the location of the torrent: %1 - 请指向torrent的位置:%1 + 请指向 torrent 的位置:%1 Invalid torrent file - 无效torrent文件 + 无效 torrent 文件 This is not a valid torrent file. - 这不是有效的torrent文件. + 这不是有效的 torrent 文件。 @@ -6654,7 +7042,7 @@ No further notices will be issued. Done % Done - 结束 + 已完成 @@ -6666,7 +7054,7 @@ No further notices will be issued. Seeds i.e. full sources (often untranslated) - 完整种子 + 种子 @@ -6748,13 +7136,13 @@ No further notices will be issued. Session Download Amount of data downloaded since program open (e.g. in MB) - 下载用时 + 本次会话下载 Session Upload Amount of data uploaded since program open (e.g. in MB) - 上传用时 + 本次会话上传 @@ -6778,7 +7166,7 @@ No further notices will be issued. Completed Amount of data completed (e.g. in MB) - 完成 + 完成 @@ -6816,7 +7204,7 @@ No further notices will be issued. Trackerless (0) - 缺少追踪者 (0) + 缺少 tracker (0) @@ -6832,7 +7220,7 @@ No further notices will be issued. Trackerless (%1) - 缺少追踪者 (%1) + 缺少 tracker (%1) @@ -6854,38 +7242,38 @@ No further notices will be issued. 警告 (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. 无法解码 URL '%1' 的图标。尝试下载 PNG 格式的图标。 - + Couldn't decode favicon for URL '%1'. 无法解码 URL '%1' 的图标。 - + Couldn't download favicon for URL '%1'. Reason: %2 无法下载 URL '%1' 的图标。原因: %2 - - - Resume torrents - 恢复下载 - - - - Pause torrents - 暂停下载 - - Delete torrents - 删除BT种子 + Resume torrents + 恢复 torrents - - + + Pause torrents + 暂停 torrents + + + + Delete torrents + 删除 torrents + + + + All (%1) this is for the tracker filter 全部 (%1) @@ -6896,7 +7284,7 @@ No further notices will be issued. URL - 网址 + URL @@ -6927,7 +7315,7 @@ No further notices will be issued. This torrent is private - 此Torrent是非公开的 + 此 torrent 是私有的 @@ -6947,43 +7335,43 @@ No further notices will be issued. Tracker URL: - Tracker URL网址: + Tracker URL: Tracker editing - Tracker编辑 + 编辑 Tracker Tracker editing failed - Tracker编辑失败 + Tracker 编辑失败 The tracker URL entered is invalid. - 输入的 tracker URL网址是无效的。 + 输入的 tracker 是无效的。 The tracker URL already exists. - Tracker URL网址已经存在。 + Tracker 已经存在。 Add a new tracker... - 添加新tracker... + 添加新 tracker... Copy tracker URL - 复制 tracker URL + 复制 tracker Edit selected tracker URL - 编辑选定的tracker URL网址 + 编辑选定的 tracker @@ -6998,7 +7386,7 @@ No further notices will be issued. Remove tracker - 移除tracker + 移除 tracker @@ -7006,27 +7394,27 @@ No further notices will be issued. Trackers addition dialog - 添加trackers对话窗 + 添加 trackers 对话窗 List of trackers to add (one per line): - 要添加的trackers列表(每行一个): + 要添加的 trackers 列表(每行一个): µTorrent compatible list URL: - µTorrent兼容的URL列表: + µTorrent 兼容的 URL 列表: I/O Error - 输入/输出错误 + I/O 错误 Error while trying to open the downloaded file. - 打开已下载文件时出错. + 打开已下载的文件时出错。 @@ -7036,7 +7424,7 @@ No further notices will be issued. No additional trackers were found. - 未找到另外的trackers. + 未找到其他的 trackers。 @@ -7046,7 +7434,7 @@ No further notices will be issued. The trackers list could not be downloaded, reason: %1 - 无法下载trackers列表,原因:%1 + 无法下载 trackers 列表,原因:%1 @@ -7054,7 +7442,7 @@ No further notices will be issued. Downloading - 下载中 + 下载 @@ -7083,7 +7471,7 @@ No further notices will be issued. Seeding Torrent is complete and in upload-only mode - 正在做种 + 做种 @@ -7095,13 +7483,13 @@ No further notices will be issued. [F] Downloading used when the torrent is forced started. You probably shouldn't translate the F. - [F] 正在下载 + [F] 下载 [F] Seeding used when the torrent is forced started. You probably shouldn't translate the F. - [F] 正在做种 + [F] 做种 @@ -7113,7 +7501,7 @@ No further notices will be issued. Queued for checking i.e. torrent is queued for hash checking - 检查队列 + 排队等待检查 @@ -7124,7 +7512,7 @@ No further notices will be issued. Completed - 完成 + 完成 @@ -7153,17 +7541,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status 状态 - + Labels 标签 - + Trackers Trackers @@ -7188,12 +7576,12 @@ No further notices will be issued. Torrent Download Speed Limiting - Torrent下载速度限制 + Torrent 下载速度限制 Torrent Upload Speed Limiting - Torrent上传速度限制 + Torrent 上传速度限制 @@ -7203,7 +7591,7 @@ No further notices will be issued. Are you sure you want to recheck the selected torrent(s)? - 你确定要重新检查选定的 torrent(s)吗? + 你确定要重新检查选定的 torrent(s) 吗? @@ -7223,7 +7611,7 @@ No further notices will be issued. Please don't use any special characters in the label name. - 请不要在标签名中使用特殊符号. + 请不要在标签名中使用特殊符号。 @@ -7233,7 +7621,7 @@ No further notices will be issued. New name: - 新名: + 新名称: @@ -7311,7 +7699,7 @@ No further notices will be issued. Set location... - 设定保存位置 + 更改保存位置... @@ -7357,7 +7745,7 @@ No further notices will be issued. New... New label... - 新... + 新标签... @@ -7371,7 +7759,7 @@ No further notices will be issued. Torrent Upload/Download Ratio Limiting - Torrent上传/下载率限制 + Torrent 上传/下载率限制 @@ -7406,7 +7794,7 @@ No further notices will be issued. Web UI Error - Unable to bind Web UI to port %1 - 网页用户界面错误 - 无法绑定网页用户界面至端口 %1 + 网页端错误 - 无法绑定网页端至端口 %1 @@ -7419,7 +7807,7 @@ No further notices will be issued. Copyright %1 2006-2015 The qBittorrent project - 版权所有 %1 2006-2015 qBittorrent项目 + Copyright %1 2006-2015 The qBittorrent project @@ -7429,7 +7817,7 @@ No further notices will be issued. Bug Tracker: - Bug跟踪: + Bug 跟踪: @@ -7439,7 +7827,7 @@ No further notices will be issued. IRC: #qbittorrent on Freenode - IRC:#qbittorrent 在 Freenode 上 + IRC:#qbittorrent 在 Freenode @@ -7466,7 +7854,7 @@ No further notices will be issued. Tracker authentication - Tracker验证 + Tracker 验证 @@ -7504,7 +7892,7 @@ No further notices will be issued. Deletion confirmation - qBittorrent - 确认删除-qBttorrent + 确认删除 - qBttorrent @@ -7527,12 +7915,12 @@ No further notices will be issued. Torrent Creation Tool - Torrent创建工具 + Torrent 创建工具 Torrent file creation - 创建Torrent文件 + 创建 Torrent 文件 @@ -7547,12 +7935,12 @@ No further notices will be issued. File or folder to add to the torrent: - 加入torrent的文件或文件夹: + 加入 torrent 的文件或文件夹: Tracker URLs: - Tracker网址: + Tracker 网址: @@ -7568,7 +7956,7 @@ No further notices will be issued. You can separate tracker tiers / groups with an empty line. A tracker tier is a group of trackers, consisting of a main tracker and its mirrors. - 你可以用一个空行分隔 tracker层/组。 + 你可以用一个空行分隔 tracker 层/组。 @@ -7638,7 +8026,7 @@ No further notices will be issued. Private (won't be distributed on DHT network if enabled) - 私人(不共享到DHT网络如启用) + 私人(启用后将不共享到 DHT 网络中) @@ -7666,12 +8054,12 @@ No further notices will be issued. Add torrent links - 添加torrent链接 + 添加 torrent 链接 One per line (HTTP links, Magnet links and info-hashes are supported) - 每行一个(支持HTTP 链接,磁力链接和哈希值 ) + 每行一个(支持 HTTP 链接,磁力链接和哈希值) @@ -7686,223 +8074,171 @@ No further notices will be issued. Download from urls - 从URL下载 + 从 URL 下载 No URL entered - 未输入URL + 未输入 URL Please type at least one URL. - 请至少输入一个URL. + 请输入至少一个 URL。 engineSelect - Search plugins - 搜索插件 + 搜索插件 - Installed search engines: - 搜索引擎已安装: + 搜索引擎已安装: - Name - 名称 + 名称 - Version - 版本 + 版本 - Url - 网址 + 网址 - - Enabled - 启用 + 启用 - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 您可以在这里获得新的搜索引擎:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 您可以在这里获得新的搜索引擎:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - 安装新一个 + 安装一个新的搜索引擎 - Check for updates - 检查更新 + 检查更新 - Close - 关闭 + 关闭 - Uninstall - 卸载 + 卸载 engineSelectDlg - Uninstall warning - 卸载警告 + 卸载警告 - Uninstall success - 卸载成功 + 卸载成功 - Invalid plugin - 无效插件 + 无效插件 - The search engine plugin is invalid, please contact the author. - 搜索插件不可用,请联系作者。 + 搜索插件不可用,请联系作者。 - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - 更新版本的搜索引擎插件 '%1' 已安装。 + 更新版本的搜索引擎插件 '%1' 已安装。 - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - 搜索引擎插件 '%1' 不能被更新,保留旧版本。 + 搜索引擎插件 '%1' 不能被更新,保留旧版本。 - '%1' search engine plugin could not be installed. %1 is the name of the search engine - 搜索引擎插件 '%1' 不能被安装。 + 搜索引擎插件 '%1' 不能被安装。 - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - 搜索引擎插件 '%1' 已成功更新。 + 搜索引擎插件 '%1' 已成功更新。 - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - 搜索引擎插件 '%1' 已成功安装。 + 搜索引擎插件 '%1' 已成功安装。 - The link doesn't seem to point to a search engine plugin. - 该链接似乎并不指向一个搜索引擎插件。 + 该链接似乎并不指向一个搜索引擎插件。 - Select search plugins - 选择搜索插件 + 选择搜索插件 - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - 抱歉,搜索插件 '%1' 安装失败。 + 抱歉,搜索插件 '%1' 安装失败。 - - - - - Search plugin install - 安装搜索插件 + 安装搜索插件 - - - Yes - + - - - - No - + - qBittorrent search plugin - qBittorrent 搜索插件 + qBittorrent 搜索插件 - - - - Search plugin update - 更新搜索插件 + 更新搜索插件 - - Sorry, update server is temporarily unavailable. - 对不起, -更新服务器暂时不可用. + 对不起,更新服务器暂时不可用。 - All your plugins are already up to date. - 所有的插件已是最新的. + 所有的插件已是最新的。 - All selected plugins were uninstalled successfully - 所有选中的插件已成功卸载 + 所有选中的插件已成功卸载 - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 一些插件不能被卸载,因为它们是由 qBittorrent 添加的。只有你自己添加的插件才能被卸载。 + 一些插件不能被卸载,因为它们是由 qBittorrent 添加的。只有你自己添加的插件才能被卸载。 这些插件已被禁用。 - Invalid link - 无效链接 + 无效链接 - - New search engine plugin URL - 新搜索引擎插件网址 + 新搜索引擎插件网址 - - URL: - 网址: + 网址: @@ -7977,13 +8313,13 @@ Those plugins were disabled. %1h %2m e.g: 3hours 5minutes - %1小时%2分钟 + %1 小时 %2 分钟 %1d %2h e.g: 2days 10hours - %1天%2小时 + %1 天 %2 小时 @@ -7994,19 +8330,19 @@ Those plugins were disabled. qBittorrent will shutdown the computer now because all downloads are complete. - 所有下载已完成,qBittorrent即将关闭电脑 + 所有下载已完成,qBittorrent 将关闭电脑。 < 1m < 1 minute - < 1分钟 + < 1 分钟 %1m e.g: 10minutes - %1分钟 + %1 分钟 @@ -8021,7 +8357,7 @@ Those plugins were disabled. Not working - 不运行 + 不工作 @@ -8032,169 +8368,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory 选择导出目录 - - - - + + + + Choose a save directory 保存到 - + Add directory to scan 添加监视目录 - + Supported parameters (case sensitive): 支持的参数(区分大小写): - + %N: Torrent name - %N: Torrent 名称 + %N:Torrent 名称 - + %L: Label - %L: 标签 + %L:标签 - + %F: Content path (same as root path for multifile torrent) %F:内容路径(与多文件 torrent 的根目录相同) - + %R: Root path (first torrent subdirectory path) %R:根目录(第一个 torrent 的子目录路径) - - - %D: Save path - %D: 保存路径 - - - - %C: Number of files - %C: 文件数 - - - - %Z: Torrent size (bytes) - %Z: Torrent 大小(字节) - - %T: Current tracker - %T: 当前 tracker + %D: Save path + %D:保存路径 + %C: Number of files + %C:文件数 + + + + %Z: Torrent size (bytes) + %Z:Torrent 大小(字节) + + + + %T: Current tracker + %T:当前 tracker + + + %I: Info hash - %I: 哈希值 + %I:哈希值 - + Folder is already being watched. - 文件夹已被监视. + 文件夹已被监视。 - + Folder does not exist. - 文件夹不存在. + 文件夹不存在。 - + Folder is not readable. - 文件夹不可读. + 文件夹不可读。 - + Failure 失败 - + Failed to add Scan Folder '%1': %2 - 添加监视文件夹 '%1失败:%2 + 添加监视文件夹 '%1' 失败:%2 - - + + Filters 过滤器 - - + + Choose an IP filter file 选择一个 IP 过滤规则文件 - + SSL Certificate SSL 证书 - + SSL Key - SSL 密匙 + SSL 密钥 - + Parsing error 解析错误 - + Failed to parse the provided IP filter - 无法解析提供的IP过滤器 + 无法解析提供的 IP 过滤器 - + Successfully refreshed 刷新成功 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - 解析提供的IP过滤器成功:%1 规则被应用. + 解析提供的 IP 过滤器成功:%1 条规则被应用。 - + Invalid key - 无效密匙 + 无效密钥 - + This is not a valid SSL key. - 这不是有效的SSL密匙 + 这不是有效的 SSL 密钥。 - + Invalid certificate 无效证书 - + This is not a valid SSL certificate. - 这不是有效的SSL证书 + 这不是有效的 SSL 证书。 - + The start time and the end time can't be the same. 开始时间和结束时间不能相同。 - + Time Error 时间错误 @@ -8202,24 +8538,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - 插件来源 + 插件来源 - Search plugin source: - 搜索插件来源: + 搜索插件来源: - Local file - 本地文件 + 本地文件 - Web link - 网络连接 + 网络连接 @@ -8248,40 +8580,32 @@ Those plugins were disabled. search_engine - - Search - 搜索 + 搜索 - Status: - 状态: + 状态: - Stopped - 停止 + 停止 - Download - 下载 + 下载 - Go to description page - 跳至描述页 + 跳至描述页 - Copy description page URL - 复制描述页网址 + 复制描述页网址 - Search engines... - 搜索引擎... + 搜索引擎... diff --git a/src/lang/qbittorrent_zh_HK.ts b/src/lang/qbittorrent_zh_HK.ts index 37ff5d9fa..8e8be8338 100644 --- a/src/lang/qbittorrent_zh_HK.ts +++ b/src/lang/qbittorrent_zh_HK.ts @@ -127,7 +127,7 @@ Set as default label - + 設定為預設標記 @@ -175,172 +175,172 @@ 不要下載 - - + + I/O Error 入出錯誤 - + The torrent file does not exist. 這Torrent檔不存在。 - + Invalid torrent 無效Torrent - + Failed to load the torrent: %1 無法載入Torrent:%1 - - + + Already in download list 已於下載清單。 - + Free disk space: %1 可用磁碟空間:%1 - + Not Available This comment is unavailable 不可選用 - + Not Available This date is unavailable 不可選用 - + Not available 不可選用 - + Invalid magnet link 無效磁性連結 - + Torrent is already in download list. Trackers were merged. Torrent已於下載清單。追蹤器被合併。 - - + + Cannot add torrent 無法加入Torrent - + Cannot add this torrent. Perhaps it is already in adding state. 無法加入這Torrent。可能正在加入狀態。 - + This magnet link was not recognized 無法辨認這磁性連結 - + Magnet link is already in download list. Trackers were merged. 磁性連結已於下載清單。追蹤器被合併。 - + Cannot add this torrent. Perhaps it is already in adding. 無法加入這Torrent。可能已加入。 - + Magnet link 磁性連結 - + Retrieving metadata... 檢索元資料… - + Not Available This size is unavailable. 不可選用 - - - + + + Choose save path 選取儲存路徑 - + Rename the file 重新命名檔案 - + New name: 新名稱: - - + + The file could not be renamed 檔案無法重新命名 - + This file name contains forbidden characters, please choose a different one. 檔名包含不准使用的字元,請另選名稱。 - - + + This name is already in use in this folder. Please use a different name. 資料夾存在同名項目。請另選名稱。 - + The folder could not be renamed 這資料夾無法重新命名 - + Rename... 重新命名… - + Priority 優先權 - + Invalid metadata 無效元資料 - + Parsing metadata... 解析元資料… - + Metadata retrieval complete 完成檢索元資料 - + Download Error 下載錯誤 @@ -431,10 +431,6 @@ Resolve peer host names 分析同路人主機名 - - Maximum number of half-open connections [0: Disabled] - 最大半開啟連接數(0:停用) - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + 最大半開啟連接數(0:無限) @@ -661,205 +657,205 @@ 匯出(&E)… - + Matches articles based on episode filter. 基於集數過濾器搜尋相符文章。 - + Example: 例子: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match 相符第1季的第2、第5、第8至15,以及由第30集起的往後集數 - + Episode filter rules: 集數過濾器規則: - + Season number is a mandatory non-zero value 季度數值須大於零 - + Episode number is a mandatory non-zero value 集數數值須大於零 - + Filter must end with semicolon 過濾器須以分號作結尾 - + Three range types for episodes are supported: 接受3種集數表達方式: - + Single number: <b>1x25;</b> matches episode 25 of season one 指明集數:<b>1x25;</b> 即第1季第25集 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one 集數範圍:<b>1x25-40;</b>即第1季第25至40集 - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one 往後集數:<b>1x25-;</b> 即第1季由第25集起的往後集數 - + Last Match: %1 days ago 最後相符:%1日前 - + Last Match: Unknown 最後相符:未知 - + New rule name 新規則名 - + Please type the name of the new download rule. 請輸入新下載規則名稱。 - - + + Rule name conflict 規則名稱衝突 - - + + A rule with this name already exists, please choose another name. 存在同名規則,請另選名稱。 - + Are you sure you want to remove the download rule named '%1'? 清除下載規則「%1」,確定? - + Are you sure you want to remove the selected download rules? 清除所選下載規則,確定? - + Rule deletion confirmation 確認清除規則 - + Destination directory 目標路徑 - + Invalid action 無效行動 - + The list is empty, there is nothing to export. 清單空白,不會匯出任何東西。 - + Where would you like to save the list? 儲存清單到那裡? - + Rules list (*.rssrules) 規則清單(*.rssrules) - + I/O Error 入出錯誤 - + Failed to create the destination file 無法建立目標檔案 - + Please point to the RSS download rules file 請指向RSS下載規則檔案 - + Rules list 規則清單 - + Import Error 匯入錯誤 - + Failed to import the selected rules file 匯入所選規則檔失敗 - + Add new rule... 加入新規則… - + Delete rule 刪除規則 - + Rename rule... 重新命名規則… - + Delete selected rules 刪除所選規則 - + Rule renaming 重新命名規則 - + Please type the new rule name 請輸入新規則名稱 - + Regex mode: use Perl-like regular expressions 正規表示法模式:使用類Perl的正規表示法 - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> 萬用字元:<ul><li>? 問號代表任何單一字元</li><li>* 星號代表無或多個字元</li><li>空格代表運算子「AND」</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> 萬用字元:<ul><li>? 問號代表任何單一字元</li><li>* 星號代表無或多個字元</li><li>「|」代表運算子「OR」</li></ul> @@ -952,65 +948,57 @@ 「%1」已到你設定的最大分享率。暫停中… - Error: Could not create torrent export directory: '%1' - 錯誤:無法建立Torrent匯出資料夾「%1」 - - - Error: could not export torrent '%1', maybe it has not metadata yet. - 錯誤:無法匯出Torrent「%1」,可能Torrent沒有元資料。 - - - + System network status changed to %1 e.g: System network status changed to ONLINE 系統網絡連線:%1 - + ONLINE 啟用 - + OFFLINE 停用 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1的網絡設定已更改,正在更新階段配對 - + Unable to decode '%1' torrent file. 無法解析Torrent檔「%1」 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 反復下載嵌入於Torrent「%2」的「%1」 - + Couldn't save '%1.torrent' 無法儲存「%1.torrent」 - + because %1 is disabled. this peer was blocked because uTP is disabled. 因%1已被停用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因%1已被停用。 - + URL seed lookup failed for URL: '%1', message: %2 網址「%1」搜尋URL種子失敗,訊息:%2 @@ -1027,178 +1015,164 @@ 「%1」已從傳輸清單清除。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... 下載「%1」中,請稍候… - Torrent Export: torrent is invalid, skipping... - 匯出Torrent:Torrent無效,正略過… - - - + DHT support [ON] 支援DHT分散式網絡 [啟用中] - + DHT support [OFF]. Reason: %1 支援DHT分散式網絡 [停用中]。理由:%1 - + DHT support [OFF] 支援DHT分散式網絡 [停用中] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent正在嘗試監聽任何介面埠:%1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent監聽任何介面埠失敗:%1。理由:%2 - - - + The network interface defined is invalid: %1 定義的網絡介面無效:%1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent正在嘗試監聽介面%1的埠:%2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent未找到供監聽的%1本地位址 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent監聽任何介面埠失敗:%1。理由:%2. {1.?} + qBittorrent監聽任何介面埠失敗:%1。理由:%2。 - + Tracker '%1' was added to torrent '%2' 追蹤器「%1」已加入到Torrent「%2」 - + Tracker '%1' was deleted from torrent '%2' 追蹤器「%1」已從Torrent「%2」刪除 - + URL seed '%1' was added to torrent '%2' 已加入URL種子「%1」到Torrent「%2」 - + URL seed '%1' was removed from torrent '%2' 已從Torrent「%2」清除URL種子「%1」 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 無法復原Torrent檔案「%1」。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 成功解析IP過濾器:已套用%1個規則。 - + Error: Failed to parse the provided IP filter. 錯誤:解析IP過濾器失敗。 - + Couldn't add torrent. Reason: %1 無法加入Torrent。理由:%1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) 「%1」已復原。(快速復原) - + '%1' added to download list. 'torrent name' was added to download list. 「%1」已加入到下載清單。 - + An I/O error occurred, '%1' paused. %2 發生入出錯誤,「%1」已暫停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP╱NAT-PMP:埠映射失敗,訊息:%1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP╱NAT-PMP:埠映射成功,訊息:%1 - + due to IP filter. this peer was blocked due to ip filter. 由於IP過濾器。 - + due to port filter. this peer was blocked due to port filter. 由於埠過濾器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由於i2p混合模式限制。 - + because it has a low port. this peer was blocked because it has a low port. 由於低埠。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent成功監聽介面%1的埠:%2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4. {1 ?} {2/%3.?} + qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4。 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 外部IP:%1 @@ -1212,12 +1186,12 @@ 無法移動Torrent「%1」。理由:%2 - + File sizes mismatch for torrent '%1', pausing it. 檔案大小不符Torrent「%1」,正在暫停。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... 快速復原「%1」被拒。理由:%2。再檢查中… @@ -1242,7 +1216,7 @@ - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Cookie的常見值為:「%1」、「%2」。 @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread 未讀 @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line 一行一連結 - - Download local torrent - 下載本地Torrent - Download @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - 儲存檔案到: + 儲存檔案到: Label: - 標記: + 標記: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? 已下載 @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + 上載本地Torrent @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About 關於(&A) - - Exit - 離開 - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit 離開(&X) - - Options - 喜好設定 - - - Resume - 繼續 - - - Pause - 暫停 - - - Delete - 刪除 - Open URL @@ -2040,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show 顯示 - + Check for program updates 檢查程式更新 - - Lock qBittorrent - 鎖定qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ You should get this information from your Web browser preferences. - + Execution Log 執行日誌 - + Clear the password 清除密碼 - + Filter torrent list... 過濾Torrent清單… - + &Set Password 設定密碼(&S) - + &Clear Password 清除密碼(&C) - + Transfers 傳輸 - + Torrent file association Torrent檔案關聯 - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent不是你開啟Torrent檔或磁性連結的預設程式。 你想要以qBittorrent開啟Torrent檔和磁性連結嗎? - + Icons Only 只有圖示 - + Text Only 只有文字 - + Text Alongside Icons 文字於圖示旁 - + Text Under Icons 文字於圖示下 - + Follow System Style 跟隨系統風格 - - - + + + UI lock password UI鎖定密碼 - - - + + + Please type the UI lock password: 請輸入UI鎖定密碼: - + The password should contain at least 3 characters 密碼最少含3個字元 - + Password update 更改密碼 - + The UI lock password has been successfully updated 已更改UI鎖定密碼 - + Are you sure you want to clear the password? 清除密碼,確定? - + Search 搜尋 - + Transfers (%1) 傳輸(%1) - + Error 錯誤 - + Failed to add torrent: %1 無法加入Torrent:%1 - + Download completion 下載完成 - + I/O Error i.e: Input/Output Error 入出錯誤 - + Recursive download confirmation 確認反復下載 - + Yes - + No - + Never 從不 - + Global Upload Speed Limit 整體上載速度限制 - + Global Download Speed Limit 整體下載速度限制 - + &No 否(&N) - + &Yes 是((&Y) - + &Always Yes 總是(&A) - + Python found in %1 於%1找到Python - + Old Python Interpreter 舊Python直譯器 - + qBittorrent Update Available qBittorrent存在新版本 - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version 已經是最新版qBittorrent。 - + Undetermined Python version 不確定的Python版本 - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. 完成下載「%1」。 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? 理由:%2 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent「%1」含未完成下載的檔案,嘗試完成嗎? - + Couldn't download file at URL '%1', reason: %2. 無法於網址「%1」下載檔案,理由:%2。 - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. 你的Pyrhon版本%1過時,請升級。搜尋引擎需要Pyrhon版本2.7.0╱3.3.0或以上。 - + Couldn't determine your Python version (%1). Search engine disabled. 未能辨認Python版本(%1)。搜尋引擎被停用。 - - + + Missing Python Interpreter 沒有Python直譯器 - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? 沒有安裝搜尋引擎需要的Pyrhon。 立即安裝? - + Python is required to use the search engine but it does not seem to be installed. 沒有安裝搜尋引擎需要的Pyrhon。 - A new version is available. Update to version %1? - 存在新版本 + 存在新版本 更新到版本%1嗎? - + No updates available. You are already using the latest version. 沒有較新的版本 你的版本已是最新。 - + &Check for Updates 檢查更新(&C) - + Checking for Updates... 正在檢查更新… - + Already checking for program updates in the background 已於背景檢查程式更新 - + Python found in '%1' 於「%1」找到Python - + Download error 下載錯誤 - + Python setup could not be downloaded, reason: %1. Please install it manually. Python安裝程式無法下載。理由:%1。 請手動安裝。 - - + + Invalid password 無效密碼 - - + + RSS (%1) RSS(%1) - + URL download error 網址下載錯誤 - + The password is invalid 無效密碼 - - + + DL speed: %1 e.g: Download speed: 10 KiB/s 下載速度:%1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s 上載速度:%1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [下載:%1,上載:%2] qBittorrent %3 - + Hide 隱藏 - + Exiting qBittorrent 離開qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? 部份檔案仍在傳輸。 確定離開qBittorrent嗎? - + Open Torrent Files 開啟Torrent檔 - + Torrent Files Torrent檔 - + Options were saved successfully. 成功儲存喜好設定。 @@ -2443,17 +2404,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. 成功更新動態DNS。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 動態DNS錯誤:服務暫時無法使用,將在30分鐘後重試。 - + Dynamic DNS error: hostname supplied does not exist under specified account. 動態DNS錯誤:提供的主機名稱於指定帳號不存在。 @@ -2463,32 +2424,32 @@ Are you sure you want to quit qBittorrent? 動態DNS錯誤:無效的用戶名稱╱密碼。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. 動態DNS錯誤:qBittorrent被該服務封鎖,請回報這問題至http://bugs.qbittorrent.org。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 動態DNS錯誤:該服務傳回%1,請回報這問題至http://bugs.qbittorrent.org。 - + Dynamic DNS error: Your username was blocked due to abuse. 動態DNS錯誤:你的用戶名稱因濫用而被封鎖。 - + Dynamic DNS error: supplied domain name is invalid. 動態DNS錯誤:提供的域名無效。 - + Dynamic DNS error: supplied username is too short. 動態DNS錯誤:提供的用戶名稱太短。 - + Dynamic DNS error: supplied password is too short. 動態DNS錯誤:提供的密碼太短。 @@ -2515,154 +2476,161 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. 已載入GeoIP資料庫。類型:%1。版本時間:%2。 - + Couldn't load GeoIP database. Reason: %1 無法載入GeoIP資料庫。理由:%1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A (無) - Asia/Pacific Region - 亞太(Asia╱Pacific) + 亞太(Asia╱Pacific) + + + Europe + 歐洲(Europe) - Europe - 歐洲(Europe) - - - Andorra 安道爾(Andorra) - + United Arab Emirates 阿拉伯聯合酋長國(United Arab Emirates) - + Afghanistan 阿富汗(Afghanistan) - + Antigua and Barbuda 安提瓜和巴布達(Antigua and Barbuda) - + Anguilla 安圭拉(Anguilla) - + Albania 阿爾巴尼亞(Albania) - + Armenia 阿美尼亞(Armenia) - Netherlands Antilles - 荷屬安地列斯(Netherlands Antilles) + 荷屬安地列斯(Netherlands Antilles) - + Angola 安哥拉(Angola) - + Antarctica 南極洲(Antarctica) - + Argentina 阿根廷(Argentina) - + American Samoa 美屬薩摩亞(American Samoa) - + Austria 奧地利(Austria) - + Australia 澳洲(Australia) - + Aruba 阿魯巴(Aruba) - + Azerbaijan 阿西拜疆(Azerbaijan) - + Bosnia and Herzegovina 波斯尼亞(Bosnia) - + Barbados 巴巴多斯(Barbados) - + Bangladesh 孟加拉(Bangladesh) - + Belgium 比利時(Belgium) - + Burkina Faso 布基納法索(Burkina Faso) - + Bulgaria 保加利亞(Bulgaria) - + Bahrain 巴林(Bahrain) - + Burundi 布隆迪(Burundi) - + Benin 貝寧(Benin) @@ -2677,1137 +2645,1187 @@ Are you sure you want to quit qBittorrent? 汶萊(Brunei) - Bolivia - 玻利維亞(Bolivia) + 玻利維亞(Bolivia) - + Brazil 巴西(Brazil) - + Bahamas 巴哈馬(Bahamas) - + Bhutan 不丹(Bhutan) - + Bouvet Island 鮑威特島(Bouvet Island) - + Botswana 博茨華納(Botswana) - + Belarus 白俄羅斯(Belarus) - + Belize 伯利茲(Belize) - + Canada 加拿大(Canada) - + Cocos (Keeling) Islands 可可斯群島(Cocos Islands) - + Congo, The Democratic Republic of the 剛果民主共和國(Democratic Republic of Congo) - + Central African Republic 中非共和國(Central African Republic) - + Congo 剛果(Congo) - + Switzerland 瑞士(Switzerland) - Cote D'Ivoire - 科特迪瓦(Cote D'Ivoire) + 科特迪瓦(Cote D'Ivoire) - + Cook Islands 庫克群島(Cook Islands) - + Chile 智利(Chile) - + Cameroon 喀麥隆(Cameroon) - + China 中華人民共和國(China) - + Colombia 哥倫比亞(Colombia) - + Costa Rica 哥斯達黎加(Costa Rica) - + Cuba 古巴(Cuba) - + Cape Verde 佛得角(Cape Verde) - + + Curacao + + + + Christmas Island 聖誕島(Christmas Island) - + Cyprus 西浦路斯(Cyprus) - + Czech Republic 捷克(Czech Republic) - + Germany 德國(Germany) - + Djibouti 吉布提(Djibouti) - + Denmark 丹麥(Denmark) - + Dominica 多明尼加聯邦(Dominica) - + Dominican Republic 多明尼加共和國(Dominican Republic) - + Algeria 阿爾及利亞(Algeria) - + Ecuador 厄瓜多爾(Ecuador) - + Estonia 愛沙尼亞(Estonia) - + Egypt 埃及(Egypt) - + Western Sahara 西撒哈拉(Western Sahara) - + Eritrea 厄立特里亞(Eritrea) - + Spain 西班牙(Spain) - + Ethiopia 衣索比亞(Ethiopia) - + Finland 芬蘭(Finland) - + Fiji 斐濟(Fiji) - + Falkland Islands (Malvinas) 福克蘭群島(Falkland Islands) - + Micronesia, Federated States of 密克羅尼西亞聯邦(Federated States of Micronesia) - + Faroe Islands 法羅群島(Faroe Islands) - + France 法國(France) - France, Metropolitan - 法國大都會區(Metropolitan France) + 法國大都會區(Metropolitan France) - + Gabon 加蓬(Gabon) - + United Kingdom 英國(United Kingdom) - + Grenada 格林納達(Grenada) - + Georgia 格魯吉亞(Georgia) - + French Guiana 法屬圭亞那(French Guiana) - + Ghana 加納(Ghana) - + Gibraltar 直布羅陀(Gibraltar) - + Greenland 格陵蘭(Greenland) - + Gambia 岡比亞(Gambia) - + Guinea 幾內亞(Guinea) - + Guadeloupe 瓜德羅普(Guadeloupe) - + Equatorial Guinea 赤道幾內亞(Equatorial Guinea) - + Greece 希臘(Greece) - + South Georgia and the South Sandwich Islands 南喬治亞和南三文治群島(South Georgia and South Sandwich Islands) - + Guatemala 危地馬拉(Guatemala) - + Guam 關島(Guam) - + Guinea-Bissau 幾內亞比紹(Guinea-Bissau) - + Guyana 圭亞那(Guyana) - + Hong Kong 香港(Hong Kong) - + Heard Island and McDonald Islands 凱德島和麥當奴群島(Heard Island and McDonald Islands) - + Honduras 洪都拉斯(Honduras) - + Croatia 克羅地亞(Croatia) - + Haiti 海地(Haiti) - + Hungary 匈牙利(Hungary) - + Indonesia 印尼(Indonesia) - + Ireland 愛爾蘭(Ireland) - + Israel 以色列(Israel) - + India 印度(India) - + British Indian Ocean Territory 英屬印度洋領地(British Indian Ocean Territory) - + Iraq 伊拉克(Iraq) - + Iran, Islamic Republic of 伊朗(Iran) - + Iceland 冰島(Iceland) - + Italy 意大利(Italy) - + Jamaica 牙買加(Jamaica) - + Jordan 約旦(Jordan) - + Japan 日本(Japan) - + Kenya 肯亞(Kenya) - + Kyrgyzstan 吉爾吉斯(Kyrgyzstan) - + Cambodia 柬埔寨(Cambodia) - + Kiribati 基里巴斯(Kiribati) - + Comoros 科摩羅(Comoros) - + Saint Kitts and Nevis 聖基茨和尼維斯(Saint Kitts and Nevis) - + Korea, Democratic People's Republic of 朝鮮(North Korea) - + Korea, Republic of 韓國(South Korea) - + Kuwait 科威特(Kuwait) - + Cayman Islands 開曼群島(Cayman Islands) - + Kazakhstan 哈薩克(Kazakhstan) - + Lao People's Democratic Republic 寮國(Laos) - + Lebanon 黎巴嫩(Lebanon) - + Saint Lucia 聖盧西亞(Saint Lucia) - + Liechtenstein 列支敦士登(Liechtenstein) - + Sri Lanka 斯里蘭卡(Sri Lanka) - + Liberia 利比里亞(Liberia) - + Lesotho 萊索托(Lesotho) - + Lithuania 立陶宛(Lithuania) - + Luxembourg 盧森堡(Luxembourg) - + Latvia 拉脫維亞(Latvia) - Libyan Arab Jamahiriya - 利比亞(Libya) + 利比亞(Libya) - + Morocco 摩洛哥(Morocco) - + Monaco 摩納哥(Monaco) - + Moldova, Republic of 摩爾多瓦(Moldova) - + Madagascar 馬達加斯加(Madagascar) - + Marshall Islands 馬紹爾群島(Marshall Islands) - Macedonia - 馬其頓(Macedonia) + 馬其頓(Macedonia) - + Mali 馬里(Mali) - + Myanmar 緬甸(Myanmar) - + Mongolia 蒙古(Mongolia) - Macau - 澳門(Macau) + 澳門(Macau) - + Northern Mariana Islands 北馬里亞納群島(Northern Mariana Islands) - + Martinique 馬提尼克(Martinique) - + Mauritania 毛里塔尼亞(Mauritania) - + Montserrat 滿特西拉特(Montserrat) - + Malta 馬耳他(Malta) - + Mauritius 毛里求斯(Mauritius) - + Maldives 馬爾代夫(Maldives) - + Malawi 馬拉維(Malawi) - + Mexico 墨西哥(Mexico) - + Malaysia 馬來西亞(Malaysia) - + Mozambique 莫桑比克(Mozambique) - + Namibia 納米比亞(Namibia) - + New Caledonia 新喀里多尼亞(New Caledonia) - + Niger 尼日爾(Niger) - + Norfolk Island 諾福克島(Norfolk Island) - + Nigeria 尼日利亞(Nigeria) - + Nicaragua 尼加拉瓜(Nicaragua) - + Netherlands 荷蘭(Netherlands) - + Norway 挪威(Norway) - + Nepal 尼泊爾(Nepal) - + Nauru 瑙魯(Nauru) - + Niue 紐埃(Niue) - + New Zealand 新西蘭(New Zealand) - + Oman 阿曼(Oman) - + Panama 巴拿馬(Panama) - + Peru 秘魯(Peru) - + French Polynesia 法屬波利尼西亞(French Polynesia) - + Papua New Guinea 巴布亞新幾內亞(Papua New Guinea) - + Philippines 菲律賓(Philippines) - + Pakistan 巴基斯坦(Pakistan) - + Poland 波蘭(Poland) - + Saint Pierre and Miquelon 聖皮埃爾和密克隆(Saint Pierre and Miquelon) - Pitcairn Islands - 皮特凱恩群島(Pitcairn Islands) + 皮特凱恩群島(Pitcairn Islands) - + Puerto Rico 波多黎各(Puerto Rico) - Palestinian Territory - 巴勒斯坦(Palestine) + 巴勒斯坦(Palestine) - + Portugal 葡萄牙(Portugal) - + Palau 帛琉(Palau) - + Paraguay 巴拉圭(Paraguay) - + Qatar 卡塔爾(Qatar) - + Reunion 留尼旺(Reunion) - + Romania 羅馬尼亞(Romania) - + Russian Federation 俄羅斯(Russia) - + Rwanda 盧旺達(Rwanda) - + Saudi Arabia 沙地阿拉伯(Saudi Arabia) - + Solomon Islands 所羅門群島(Solomon Islands) - + Seychelles 西舌爾(Seychelles) - + Sudan 蘇丹(Sudan) - + Sweden 瑞典(Sweden) - + Singapore 新加坡(Singapore) - Saint Helena - 聖凱倫娜(Saint Helena) + 聖凱倫娜(Saint Helena) - + Slovenia 斯洛文尼亞(Slovenia) - + Svalbard and Jan Mayen 斯瓦巴和揚馬延(Svalbard and Jan Mayen) - + Slovakia 斯洛伐克(Slovakia) - + Sierra Leone 西拉利昂(Sierra Leone) - + San Marino 聖馬力諾(San Marino) - + Senegal 西內加爾(Senegal) - + Somalia 索馬里(Somalia) - + Suriname 蘇里南(Suriname) - + Sao Tome and Principe 聖多美和普林西比(Sao Tome and Principe) - + El Salvador 薩爾瓦多(El Salvador) - + Syrian Arab Republic 敘利亞(Syria) - + Swaziland 斯威士蘭(Swaziland) - + Turks and Caicos Islands 特克斯群島和凱科斯群島(Turks and Caicos Islands) - + Chad 乍得(Chad) - + French Southern Territories 法屬南部領地(French Southern Territories) - + Togo 多哥(Togo) - + Thailand 泰國(Thailand) - + Tajikistan 塔吉克(Tajikistan) - + Tokelau 托克勞(Tokelau) - + Turkmenistan 土庫曼(Turkmenistan) - + Tunisia 突尼西亞(Tunisia) - + Tonga 湯加(Tonga) - + Timor-Leste 東帝汶(East Timor) - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey 土耳其(Turkey) - + Trinidad and Tobago 千里達和多巴哥(Trinidad and Tobago) - + Tuvalu 吐瓦魯(Tuvalu) - + Taiwan 臺灣(Taiwan) - + Tanzania, United Republic of 坦桑尼亞(Tanzania) - + Ukraine 烏克蘭(Ukraine) - + Uganda 烏干達(Uganda) - + United States Minor Outlying Islands 美國小型外島(United States Minor Outlying Islands) - + United States 美國(United States) - + Uruguay 烏拉圭(Uruguay) - + Uzbekistan 烏茲別克(Uzbekistan) - + Holy See (Vatican City State) 梵蒂岡(Vatican) - + Saint Vincent and the Grenadines 聖文森和格林納丁斯(Saint Vincent and the Grenadines) - Venezuela - 委內瑞拉(Venezuela) + 委內瑞拉(Venezuela) - + Virgin Islands, British 英屬處女群島(British Virgin Islands) - + Virgin Islands, U.S. 美屬處女群島(American Virgin Islands) - Vietnam - 越南(Vietnam) + 越南(Vietnam) - + Vanuatu 瓦努阿圖(Vanuatu) - + Wallis and Futuna 華利斯和富圖納(Wallis and Futuna) - + Samoa 薩摩亞(Samoa) - + Yemen 也門(Yemen) - + Mayotte 馬約特(Mayotte) - + Serbia 西爾維亞(Serbia) - + South Africa 南非(South Africa) - + Zambia 贊比亞(Zambia) - + Montenegro 黑山(Montenegro) - + Zimbabwe 津巴布韋(Zimbabwe) - Anonymous Proxy - 匿名代理 + 匿名代理 - Satellite Provider - 衛星供應者 + 衛星供應者 - Other - 其他 + 其他 - + Aland Islands 奧蘭群島(Aland Islands) - + Guernsey 根西(Guernsey) - + Isle of Man 曼島(Isle of Man) - + Jersey 澤西(Jersey) - + Saint Barthelemy 聖巴泰勒米(Saint Barthelemy) - Saint Martin - 聖馬丁(Saint Martin) + 聖馬丁(Saint Martin) - + Could not uncompress GeoIP database file. 無法解壓縮GeoIP資料庫檔。 - + Couldn't save downloaded GeoIP database file. 無法儲存GeoIP資料庫檔。 - + Successfully updated GeoIP database. 成功更新GeoIP資料庫。 - + Couldn't download GeoIP database file. Reason: %1 無法下載GeoIP資料庫。理由:%1 @@ -3838,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - 感興趣(本地)受阻(同路人) + 感興趣(本地)受阻(同路人) interested(local) and unchoked(peer) - 感興趣(本地)無阻(同路人) + 感興趣(本地)無阻(同路人) interested(peer) and choked(local) - 感興趣(同路人)受阻(本地) + 感興趣(同路人)受阻(本地) interested(peer) and unchoked(local) - 感興趣(同路人)無阻(本地) + 感興趣(同路人)無阻(本地) optimistic unchoke - 樂觀無阻 + 樂觀無阻 peer snubbed - 被同路人冷落 + 被同路人冷落 incoming connection - 連入 + 連入 not interested(local) and unchoked(peer) - 不感興趣(本地)無阻(同路人) + 不感興趣(本地)無阻(同路人) not interested(peer) and unchoked(local) - 不感興趣(同路人)無阻(本地) + 不感興趣(同路人)無阻(本地) peer from PEX - 來自PeX同路人交換的同路人 + 來自PeX同路人交換的同路人 peer from DHT - 來自DHT分散式網絡的同路人 + 來自DHT分散式網絡的同路人 encrypted traffic - 加密的流量 + 加密的流量 encrypted handshake - 加密的溝通 + 加密的溝通 peer from LSD - 來自LPD本地同路人發現的同路人 + 來自LPD本地同路人發現的同路人 @@ -3971,123 +3989,73 @@ Are you sure you want to quit qBittorrent? 相關度 - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... 加入同路人… - + Copy selected 複製所選 - - + + Ban peer permanently 永遠封鎖同路人 - + Manually adding peer '%1'... 手動加入同路人「%1」… - + The peer '%1' could not be added to this torrent. 無法加入同路人「%1」到這Torrent。 - + Manually banning peer '%1'... 手動封鎖同路人「%1」… - - + + Peer addition 加入同路人 - + Some peers could not be added. Check the Log for details. 無法加入部份同路人。詳情請看執行日誌。 - + The peers were added to this torrent. 已加入同路人到這Torrent。 - + Are you sure you want to ban permanently the selected peers? 永遠封鎖所選同路人,確定? - + &Yes 是(&Y) - + &No 否(&N) - - interested(local) and choked(peer) - 感興趣(本地)受阻(同路人) - - - interested(local) and unchoked(peer) - 感興趣(本地)無阻(同路人) - - - interested(peer) and choked(local) - 感興趣(同路人)受阻(本地) - - - interested(peer) and unchoked(local) - 感興趣(同路人)無阻(本地) - - - optimistic unchoke - 樂觀無阻 - - - peer snubbed - 被同路人冷落 - - - incoming connection - 連入 - - - not interested(local) and unchoked(peer) - 不感興趣(本地)無阻(同路人) - - - not interested(peer) and unchoked(local) - 不感興趣(同路人)無阻(本地) - - - peer from PEX - 來自PeX同路人交換的同路人 - - - peer from DHT - 來自DHT分散式網絡的同路人 - - - encrypted traffic - 加密的流量 - - - encrypted handshake - 加密的溝通 - - - peer from LSD - 來自LPD本地同路人發現的同路人 - PeersAdditionDlg @@ -4125,6 +4093,202 @@ Are you sure you want to quit qBittorrent? 藍:可得 + + PluginSelectDlg + + + Search plugins + 搜尋外掛 + + + + Installed search plugins: + + + + + Name + 名稱 + + + + Version + 版本 + + + + Url + 網址 + + + + + Enabled + 已啟用 + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 需要新的搜尋引擎外掛,請到:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + 安裝新的 + + + + Check for updates + 檢查更新 + + + + Close + 關閉 + + + + Uninstall + 解除安裝 + + + + + + Yes + + + + + + + + No + + + + + Uninstall warning + 解除安裝警告 + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + qBittorrent包含的外掛是無法解除安裝。僅自己加入的外掛可解除安裝。然而,這些外掛已被停用。 + + + + Uninstall success + 成功解除安裝 + + + + All selected plugins were uninstalled successfully + 全部選取的外掛都已成功解除安裝 + + + + + New search engine plugin URL + 新搜尋引擎外掛網址 + + + + + URL: + 網址: + + + + Invalid link + 無效連結 + + + + The link doesn't seem to point to a search engine plugin. + 連結似乎沒有指向搜尋引擎外掛。 + + + + Select search plugins + 選取搜尋外掛 + + + + qBittorrent search plugin + qBittorrent搜尋外掛 + + + + + + Search plugin update + 更新搜尋外掛 + + + + All your plugins are already up to date. + 全部外掛已是最新版本。 + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + 安裝搜尋外掛 + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + 外掛來源 + + + + Search plugin source: + 搜尋外掛來源: + + + + Local file + 本地檔案 + + + + Web link + 網絡連結 + + Preferences @@ -4181,89 +4345,89 @@ Are you sure you want to quit qBittorrent? 未完成檔案加上.!qB副檔名 - + Copy .torrent files to: 複製Torrent檔到: - + Connections Limits 連接限制 - + Proxy Server 代理伺服器 - + Global Rate Limits 整體速度限制 - + Apply rate limit to transport overhead 將速度限制套用到傳輸消耗 - + Schedule the use of alternative rate limits 設定使用特別速度限制的時間 - + From: from (time1 to time2) 從: - + To: time1 to time2 到: - + Enable Local Peer Discovery to find more peers 啟用LPD本地同路人發現來尋找更多同路人 - + Encryption mode: 加密模式: - + Prefer encryption 傾向加密 - + Require encryption 要求加密 - + Disable encryption 停用加密 - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">更多資訊</a>) - + Maximum active downloads: 最大活躍下載數量: - + Maximum active uploads: 最大活躍上載數量: - + Maximum active torrents: 最大活躍Torrent數量: @@ -4288,82 +4452,82 @@ Are you sure you want to quit qBittorrent? 顯示Torrent內容和其他選項 - + Run external program on torrent completion 完成Torrent時啟動外部程式 - + Port used for incoming connections: 連入埠: - + Random 隨機 - + Global maximum number of connections: 整體最大連接數量: - + Maximum number of connections per torrent: 每個Torrent最大連接數量: - + Maximum number of upload slots per torrent: 每個Torrent上載最大連接數量: - - + + Upload: 上載: - - + + Download: 下載: - - - - + + + + KiB/s KiB/s - + Remove folder 清除資料夾 - + Every day 每日 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) 與相容的Bittorrent用戶端(µTorrent等)交換同路人資訊 - + Host: 主機: - + SOCKS4 SOCKS4 - + Type: 類型: @@ -4536,262 +4700,262 @@ Are you sure you want to quit qBittorrent? 自動載入Torrent檔的位置: - + Add folder... 加入資料夾… - + Copy .torrent files for finished downloads to: 複製完成下載的Torrent檔到: - + Email notification upon download completion 下載完成時以電郵通知 - + Destination email: 寄往電郵: - + SMTP server: SMTP伺服器: - + This server requires a secure connection (SSL) 這個伺服器需要加密連接(SSL) - + Listening Port 監聽埠 - + Use UPnP / NAT-PMP port forwarding from my router 使用映射自路由器的UPnP╱NAT-PMP連接埠 - + Use different port on each startup 每次啟動時使用不同的埠 - + Global maximum number of upload slots: 整體上載最大連接數量: - + Otherwise, the proxy server is only used for tracker connections 否則,代理伺服器僅用於追蹤器連接 - + Use proxy for peer connections 使用代理伺服器來連接同路人 - + Disable connections not supported by proxies 停用不被代理伺服器支援的連接 - + Use proxy only for torrents 代理伺服器僅用於Torrent - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection Torrent傳輸和相關動作以外的RSS feeds、搜尋引擎、軟件更新等均直接連接 - + Info: The password is saved unencrypted (注意:儲存的密碼不會加密) - + IP Filtering IP過濾 - + Reload the filter 重新載入過濾器 - + Apply to trackers 套用到追蹤器 - + Apply rate limit to peers on LAN 將速度限制套用到區域網絡(LAN)的同路人 - + When: 日期: - + Weekdays 工作日 - + Weekends 週末 - + Rate Limits Settings 設定速度限制 - + Enable µTP protocol 啟用µTP協定 - + Apply rate limit to µTP protocol 將速度限制套用到µTP協定 - + Privacy 私隱 - + Enable DHT (decentralized network) to find more peers 啟用DHT分散式網絡來尋找更多同路人 - + Enable Peer Exchange (PeX) to find more peers 啟用PeX同路人交換來尋找更多同路人 - + Look for peers on your local network 於本地網絡尋找同路人 - + Enable when using a proxy or a VPN connection 使用代理伺服器或VPN連接時啟用 - + Enable anonymous mode 啟用匿名模式 - + Do not count slow torrents in these limits 這些限制不要計算慢速Torrent - + Seed torrents until their ratio reaches Torrent做種,直至達到分享率 - + then 然後 - + Pause them 暫停它們 - + Remove them 清除它們 - + Automatically add these trackers to new downloads: 自動加入這些追蹤器到新下載: - + Use UPnP / NAT-PMP to forward the port from my router 使用UPnP╱NAT-PMP映射路由器連接埠 - + Use HTTPS instead of HTTP 使用HTTPS,而不是HTTP - + Import SSL Certificate 匯入SSL憑證 - + Import SSL Key 匯入SSL鎖匙 - + Certificate: 憑證: - + Alternative Rate Limits 特別速度限制 - + Key: 鎖匙: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>關於憑證的資訊</a> - + Bypass authentication for localhost 略過本地主機驗證 - + Update my dynamic domain name 更新動態域名 - + Service: 服務: - + Register 註冊 - + Domain name: 域名: - + (None) (無) @@ -4801,61 +4965,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: 埠: - - - + + + Authentication 驗證 - - - - + + + + Username: 用戶名: - - - - + + + + Password: 密碼: - + Torrent Queueing Torrent排程 - + Share Ratio Limiting 分享率限制 - + Enable Web User Interface (Remote control) 啟用Web UI遠端控制 - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): 過濾器(.dat、.p2p、.p2b) @@ -5061,10 +5225,6 @@ Are you sure you want to quit qBittorrent? Comment: 評註: - - Torrent content: - Torrent內容: - Select All @@ -5586,28 +5746,28 @@ No further notices will be issued. 未知的錯誤 - - + + Upgrade 升級 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] 你升級自一個以其他方式儲存的版本。你必須遷移到新的儲存系統。這樣,你將無法再使用早於v3.3.0的版本。繼續嗎?[y╱n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. 你升級自一個以其他方式儲存的版本。你必須遷移到新的儲存系統。選擇繼續,你將無法再使用早於v3.3.0的版本。 - + Couldn't migrate torrent with hash: %1 無法遷移驗證碼是%1的Torrent - + Couldn't migrate torrent. Invalid fastresume file name: %1 無法遷移Torrent。無效的快速復原檔名稱:%1 @@ -5718,17 +5878,17 @@ No further notices will be issued. RSSImp - + Stream URL: 資源網址: - + Please type a RSS stream URL 請輸入一個RSS資源網址 - + This RSS feed is already in the list. 這RSS feed已於清單。 @@ -5748,75 +5908,92 @@ No further notices will be issued. 新資料夾 - + Deletion confirmation 確認刪除 - + Are you sure you want to delete the selected RSS feeds? 刪除所選RSS feed,確定? - + Please choose a new name for this RSS feed 請為這RSS feed選取新名稱 - + New feed name: 新Feed名稱: - + Name already in use 這名稱已使用 - + This name is already used by another item, please choose another one. 存在同名項目,請另選名稱。 - + Date: 日期: - + Author: 作者: - + Unread 未讀 - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… + 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… - + Automatically downloading '%1' torrent from '%2' RSS feed... - 從RSS feed「%2」自動下載「%1」Torrent… + 從RSS feed「%2」自動下載「%1」Torrent… + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… + + + Automatically downloading '%1' torrent from '%2' RSS feed... + 從RSS feed「%2」自動下載「%1」Torrent… RssParser - Failed to open downloaded RSS file. - 無法開啟已下載的RSS檔。 + 無法開啟已下載的RSS檔。 - Invalid RSS feed at '%1'. - 於「%1」的無效RSS feed。 + 於「%1」的無效RSS feed。 @@ -5842,168 +6019,249 @@ No further notices will be issued. 每個Feed的最大文章數: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + 瀏覽… + + + + Choose save path + 選取儲存路徑 + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder 監視資料夾 - - Download here - 下載到此 + + Save Files to + + + + Download here + 下載到此 - Download path - 下載路徑 + 下載路徑 SearchCategories - All categories - 全部類別 + 全部類別 - Movies - 電影 + 電影 - TV shows - 電視節目 + 電視節目 - Music - 音樂 + 音樂 - Games - 遊戲 + 遊戲 - Anime - 動畫 + 動畫 - Software - 軟件 + 軟件 - Pictures - 圖片 + 圖片 - Books - + SearchEngine - - - Search - 搜尋 + 搜尋 - Please install Python to use the Search Engine. - 請安裝搜尋引擎需要的Pyrhon。 + 請安裝搜尋引擎需要的Pyrhon。 - Empty search pattern - 空白搜尋模式 + 空白搜尋模式 - Please type a search pattern first - 請先輸入一個搜尋模式 + 請先輸入一個搜尋模式 - Searching... - 搜尋中… + 搜尋中… - Stop - 停止 + 停止 - - Search Engine - 搜尋引擎 + 搜尋引擎 - - Search has finished - 搜尋完成 + 搜尋完成 - An error occurred during search... - 搜尋時發生錯誤… + 搜尋時發生錯誤… - - Search aborted - 搜尋中止 + 搜尋中止 - All enabled - 全部已啟用的 + 全部已啟用的 - All engines - 全部引擎 + 全部引擎 - - Multiple... - 多重… + 多重… - - Results <i>(%1)</i>: i.e: Search results - 結果(%1): + 結果(%1): - Search returned no results - 沒有搜尋結果 + 沒有搜尋結果 - Stopped - 已停止 + 已停止 + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + 全部類別 + + + + Movies + 電影 + + + + TV shows + 電視節目 + + + + Music + 音樂 + + + + Games + 遊戲 + + + + Anime + 動畫 + + + + Software + 軟件 + + + + Pictures + 圖片 + + + + Books + SearchListDelegate - - + + Unknown 未知 @@ -6011,35 +6269,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name 名稱 - + Size i.e: file size 大小 - + Seeders i.e: Number of full sources 完整種子 - + Leechers i.e: Number of partial sources 不完整種子 - + Search engine 搜尋引擎 + + SearchWidget + + + + + + + Search + 搜尋 + + + + Status: + 狀態: + + + + + Stopped + 已停止 + + + + Download + 下載 + + + + Go to description page + 前往描述頁 + + + + Copy description page URL + 複製描述頁網址 + + + + Search plugins... + + + + + All enabled + 全部已啟用的 + + + + All plugins + + + + + + Multiple... + 多重… + + + + + + Search Engine + 搜尋引擎 + + + + Please install Python to use the Search Engine. + 請安裝搜尋引擎需要的Pyrhon。 + + + + Empty search pattern + 空白搜尋模式 + + + + Please type a search pattern first + 請先輸入一個搜尋模式 + + + + + Results <i>(%1)</i>: + i.e: Search results + 結果(%1): + + + + Searching... + 搜尋中… + + + + Stop + 停止 + + + + + Search has finished + 搜尋完成 + + + + + Search aborted + 搜尋中止 + + + + Search returned no results + 沒有搜尋結果 + + + + Search has failed + + + + + An error occurred during search... + 搜尋時發生錯誤… + + ShutdownConfirmDlg @@ -6484,24 +6867,28 @@ No further notices will be issued. TorrentContentModel - + Name 名稱 - + Size 大小 - + Progress 進度 - + + Download Priority + + + Priority - 優先權 + 優先權 @@ -6853,38 +7240,38 @@ No further notices will be issued. 警告(%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. 解析網址%1的圖示失敗。嘗試下載PNG格式的圖示。 - + Couldn't decode favicon for URL '%1'. 解析網址%1的圖示失敗。 - + Couldn't download favicon for URL '%1'. Reason: %2 無法下載網址%1的圖示。理由:%2 - + Resume torrents 繼續Torrent - + Pause torrents 暫停Torrent - + Delete torrents 刪除Torrent - - + + All (%1) this is for the tracker filter 全部(%1) @@ -7152,17 +7539,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status 狀態 - + Labels 標記 - + Trackers 追蹤器 @@ -7701,205 +8088,154 @@ No further notices will be issued. engineSelect - Search plugins - 搜尋外掛 + 搜尋外掛 - Installed search engines: - 已安裝的搜尋引擎: + 已安裝的搜尋引擎: - Name - 名稱 + 名稱 - Version - 版本 + 版本 - Url - 網址 + 網址 - - Enabled - 已啟用 + 已啟用 - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 需要新的搜尋引擎外掛,請到:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 需要新的搜尋引擎外掛,請到:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - 安裝新的 + 安裝新的 - Check for updates - 檢查更新 + 檢查更新 - Close - 關閉 + 關閉 - Uninstall - 解除安裝 + 解除安裝 engineSelectDlg - Uninstall warning - 解除安裝警告 + 解除安裝警告 - Uninstall success - 成功解除安裝 + 成功解除安裝 - Invalid plugin - 無效的外掛程式 + 無效的外掛程式 - The search engine plugin is invalid, please contact the author. - 無效的搜尋引擎外掛,請連絡作者。 + 無效的搜尋引擎外掛,請連絡作者。 - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - 已安裝搜尋引擎外掛「%1」的較新版本。 + 已安裝搜尋引擎外掛「%1」的較新版本。 - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - 未能更新搜尋引擎外掛「%1」,仍維持早前版本。 + 未能更新搜尋引擎外掛「%1」,仍維持早前版本。 - '%1' search engine plugin could not be installed. %1 is the name of the search engine - 未能安裝搜尋引擎外掛「%1」。 + 未能安裝搜尋引擎外掛「%1」。 - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - 成功更新搜尋引擎外掛「%1」。 + 成功更新搜尋引擎外掛「%1」。 - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - 成功安裝搜尋引擎外掛「%1」。 + 成功安裝搜尋引擎外掛「%1」。 - The link doesn't seem to point to a search engine plugin. - 連結似乎沒有指向搜尋引擎外掛。 + 連結似乎沒有指向搜尋引擎外掛。 - Select search plugins - 選取搜尋外掛 + 選取搜尋外掛 - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - 抱歉,安裝搜尋引擎外卦「%1」失敗。 + 抱歉,安裝搜尋引擎外卦「%1」失敗。 - - - - - Search plugin install - 安裝搜尋外掛 + 安裝搜尋外掛 - - - Yes - + - - - - No - + - qBittorrent search plugin - qBittorrent搜尋外掛 + qBittorrent搜尋外掛 - - - - Search plugin update - 更新搜尋外掛 + 更新搜尋外掛 - - Sorry, update server is temporarily unavailable. - 抱歉,更新伺服器暫時不可用。 + 抱歉,更新伺服器暫時不可用。 - All your plugins are already up to date. - 全部外掛已是最新版本。 + 全部外掛已是最新版本。 - All selected plugins were uninstalled successfully - 全部選取的外掛都已成功解除安裝 + 全部選取的外掛都已成功解除安裝 - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - qBittorrent包含的外掛是無法解除安裝。僅自己加入的外掛可解除安裝。然而,這些外掛已被停用。 + qBittorrent包含的外掛是無法解除安裝。僅自己加入的外掛可解除安裝。然而,這些外掛已被停用。 - Invalid link - 無效連結 + 無效連結 - - New search engine plugin URL - 新搜尋引擎外掛網址 + 新搜尋引擎外掛網址 - - URL: - 網址: + 網址: @@ -8029,169 +8365,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory 選取輸出路徑 - - - - + + + + Choose a save directory 選取儲存路徑 - + Add directory to scan 加入掃瞄資料夾 - + Supported parameters (case sensitive): 支援的參數(大小楷視為不同): - + %N: Torrent name Torrent名稱【%N】 - + %L: Label 標記【%L】 - + %F: Content path (same as root path for multifile torrent) 已下載檔案的路徑(單一檔案Torrent)【%F】 - + %R: Root path (first torrent subdirectory path) 已下載檔案的路徑(多檔案Torrent首個子資料夾)【%R】 - + %D: Save path 儲存路徑【%D】 - + %C: Number of files 檔案數量【%C】 - + %Z: Torrent size (bytes) Torrent大小(位元組)【%Z】 - + %T: Current tracker 目前追蹤器【%T】 - + %I: Info hash 資訊驗證碼【%I】 - + Folder is already being watched. 資料夾正被監視。 - + Folder does not exist. 資料夾不存在。 - + Folder is not readable. 資料夾不可讀取。 - + Failure 失敗 - + Failed to add Scan Folder '%1': %2 加入掃瞄資料夾%1失敗:%2 - - + + Filters 過濾器 - - + + Choose an IP filter file 選取一個IP過濾器檔 - + SSL Certificate SSL憑證 - + SSL Key SSL鎖匙 - + Parsing error 解析錯誤 - + Failed to parse the provided IP filter 解析IP過濾器失敗 - + Successfully refreshed 成功更新 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 成功解析IP過濾器:已套用%1個規則。 - + Invalid key 無效鎖匙 - + This is not a valid SSL key. 無效的SSL鎖匙。 - + Invalid certificate 無效憑證 - + This is not a valid SSL certificate. 無效的SSL憑證。 - + The start time and the end time can't be the same. 開始時間與結尾時間不可相同。 - + Time Error 時間錯誤 @@ -8199,24 +8535,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - 外掛來源 + 外掛來源 - Search plugin source: - 搜尋外掛來源: + 搜尋外掛來源: - Local file - 本地檔案 + 本地檔案 - Web link - 網絡連結 + 網絡連結 @@ -8245,40 +8577,32 @@ Those plugins were disabled. search_engine - - Search - 搜尋 + 搜尋 - Status: - 狀態: + 狀態: - Stopped - 已停止 + 已停止 - Download - 下載 + 下載 - Go to description page - 前往描述頁 + 前往描述頁 - Copy description page URL - 複製描述頁網址 + 複製描述頁網址 - Search engines... - 搜尋引擎… + 搜尋引擎… diff --git a/src/lang/qbittorrent_zh_TW.ts b/src/lang/qbittorrent_zh_TW.ts index 48b9c7e9e..9a2c8a94b 100644 --- a/src/lang/qbittorrent_zh_TW.ts +++ b/src/lang/qbittorrent_zh_TW.ts @@ -127,7 +127,7 @@ Set as default label - + 設為預設標籤 @@ -175,172 +175,172 @@ 不要下載 - - + + I/O Error I/O 錯誤 - + The torrent file does not exist. 此 torrent 檔案不存在。 - + Invalid torrent 無效的 torrent - + Failed to load the torrent: %1 無法載入 torrent:%1 - - + + Already in download list 已經在下載清單裡了。 - + Free disk space: %1 可用硬碟空間:%1 - + Not Available This comment is unavailable 不可用 - + Not Available This date is unavailable 不可用 - + Not available 不可得 - + Invalid magnet link 無效的磁性連結 - + Torrent is already in download list. Trackers were merged. Torrent 已經在下載清單裡了。Trackers 已被合併。 - - + + Cannot add torrent 無法加入 torrent - + Cannot add this torrent. Perhaps it is already in adding state. 無法加入此 torrent。也許它已經在正在加入的狀態了。 - + This magnet link was not recognized 無法辨識此磁性連結 - + Magnet link is already in download list. Trackers were merged. 磁性連結已經在下載清單裡了。Trackers 已被合併。 - + Cannot add this torrent. Perhaps it is already in adding. 無法加入此 torrent。也許它已經加入了。 - + Magnet link 磁性連結 - + Retrieving metadata... 檢索中介資料... - + Not Available This size is unavailable. 不可用 - - - + + + Choose save path 選擇儲存路徑 - + Rename the file 重新命名檔案 - + New name: 新名稱: - - + + The file could not be renamed 檔案無法重新命名 - + This file name contains forbidden characters, please choose a different one. 檔案名稱包含禁止使用之字元,請選擇其他名稱。 - - + + This name is already in use in this folder. Please use a different name. 此名稱已在此資料夾中使用。請選擇另一個名稱。 - + The folder could not be renamed 此資料夾無法被重新命名 - + Rename... 重新命名... - + Priority 優先度 - + Invalid metadata 無效的中介資料 - + Parsing metadata... 解析中介資料... - + Metadata retrieval complete 中介資料檢索完成 - + Download Error 下載錯誤 @@ -431,10 +431,6 @@ Resolve peer host names 解析下載者的主機名 - - Maximum number of half-open connections [0: Disabled] - 最大半開啟連線數 [0:停用] - Strict super seeding @@ -480,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + 最大半開啟連線數 [0:無限制] @@ -661,205 +657,205 @@ 匯出... (&E) - + Matches articles based on episode filter. 基於片段過濾器的符合文章。 - + Example: 範例: - + will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match 將會透過15、30及更前方的活躍片段符合2、5、8 - + Episode filter rules: 片段過濾器原則: - + Season number is a mandatory non-zero value 活躍的數字為一強制非零的值 - + Episode number is a mandatory non-zero value 片段的數字為一強制非零的值 - + Filter must end with semicolon 過濾器必須以分號作結尾 - + Three range types for episodes are supported: 支援三種範圍類型的過濾器: - + Single number: <b>1x25;</b> matches episode 25 of season one 單數字:<b>1x25;</b> 符合最活躍的一個中的片段25 - + Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one 一般範圍:<b>1x25-40;</b> 符合最活躍的一個中的片段25到40 - + Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one 無限範圍:<b>1x25-;</b> 符合最活躍的一個中的片段25及以上 - + Last Match: %1 days ago 最後符合:%1 天前 - + Last Match: Unknown 最後符合:未知 - + New rule name 新原則名稱 - + Please type the name of the new download rule. 請輸入新下載原則的名稱。 - - + + Rule name conflict 原則名稱衝突 - - + + A rule with this name already exists, please choose another name. 此原則名稱已存在,請選擇另一個名稱。 - + Are you sure you want to remove the download rule named '%1'? 您確定要移除已下載的原則「%1」嗎? - + Are you sure you want to remove the selected download rules? 你確定要移除所選的下載原則嗎? - + Rule deletion confirmation 原則刪除確認 - + Destination directory 目的地目錄 - + Invalid action 無效的行動 - + The list is empty, there is nothing to export. 清單是空白的,不會匯出任何東西。 - + Where would you like to save the list? 你想要將清單儲存到哪裡? - + Rules list (*.rssrules) 原則清單 (*.rssrules) - + I/O Error I/O 錯誤 - + Failed to create the destination file 無法建立目的檔案 - + Please point to the RSS download rules file 請指定 RSS 下載原則檔案 - + Rules list 原則清單 - + Import Error 匯入錯誤 - + Failed to import the selected rules file 匯入選擇的原則檔案失敗 - + Add new rule... 增加新原則... - + Delete rule 刪除原則 - + Rename rule... 重新命名原則... - + Delete selected rules 刪除所選的原則 - + Rule renaming 重新命名原則 - + Please type the new rule name 請輸入新原則檔案的名稱 - + Regex mode: use Perl-like regular expressions 正規表示法模式:使用類 Perl 的正規表示法 - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> 萬用字元模式:你可以使用<ul><li>? 來配對任何單一字元</li><li>* 來配對零或多個字元</li><li>空白視為「AND」運算子</li></ul> - + Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> 萬用字元模式:你可以使用<ul><li>? 來配對任何單一字元</li><li>* 來配對零或多個字元</li><li>| 視為「OR」運算子</li></ul> @@ -952,65 +948,57 @@ 「%1」已經到達您設定的最大比率了。正在暫停... - Error: Could not create torrent export directory: '%1' - 錯誤:無法建立 torrent 匯出目錄:「%1」 - - - Error: could not export torrent '%1', maybe it has not metadata yet. - 錯誤:無法匯出 torrent「%1」,也許它尚未有中介資料。 - - - + System network status changed to %1 e.g: System network status changed to ONLINE 系統的網路狀態變更為 %1 - + ONLINE 上線 - + OFFLINE 離線 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 的網路設定已變更,正在重新整理工作階段綁紮 - + Unable to decode '%1' torrent file. 無法解碼 torrent 檔案「%1」。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 遞迴下載在 torrent「%2」裡的檔案「%1」 - + Couldn't save '%1.torrent' 無法儲存「%1.torrent」 - + because %1 is disabled. this peer was blocked because uTP is disabled. 因為 %1 已停用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因為 %1 已停用。 - + URL seed lookup failed for URL: '%1', message: %2 找不到 URL:「%1」的 URL 種子,訊息:「%2」 @@ -1027,178 +1015,164 @@ 「%1」已經從傳輸清單中刪除了。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... 下載「%1」中,請稍候... - Torrent Export: torrent is invalid, skipping... - Torrent 匯出:torrent 無效,正在略過... - - - + DHT support [ON] DHT 支援 [開啟] - + DHT support [OFF]. Reason: %1 DHT 支援 [關閉]。理由:%1 - + DHT support [OFF] DHT 支援 [關閉] - + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent 正在嘗試監聽任何的介面埠:%1 - qBittorrent failed to listen on any interface port: %1. Reason: %2 - e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent 監聽任意介面埠失敗:%1。理由:%2 - - - + The network interface defined is invalid: %1 定義的網路介面是無效的:%1 - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent 正在嘗試監聽介面 %1 的埠: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent 找不到供監聽的 %1 本機位置 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - qBittorrent 監聽任意介面埠失敗:%1。理由:%2. {1.?} + qBittorrent 監聽任意介面埠失敗:%1 。理由:%2。 - + Tracker '%1' was added to torrent '%2' 追蹤者「%1」已加入到 torrent「%2」中 - + Tracker '%1' was deleted from torrent '%2' 追蹤者「%1」已被從 torrent「%2」中刪除 - + URL seed '%1' was added to torrent '%2' URL 種子「%1」已加入到 torrent「%2」中 - + URL seed '%1' was removed from torrent '%2' URL 種子「%1」已被從 torrent「%2」中刪除 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 無法復原 torrent 檔案:「%1」 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 分析 IP 過濾檔案成功:已套用 %1 個規則。 - + Error: Failed to parse the provided IP filter. 錯誤:IP 過濾檔案分析失敗。 - + Couldn't add torrent. Reason: %1 無法加入 torrent。理由:%1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) 「%1」已恢復下載。(快速恢復) - + '%1' added to download list. 'torrent name' was added to download list. 「%1」已增加到下載清單。 - + An I/O error occurred, '%1' paused. %2 發生 I/O 錯誤,「%1」已暫停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP:埠映射失敗,訊息:%1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP:埠映射成功,訊息:%1 - + due to IP filter. this peer was blocked due to ip filter. 由於 IP 過濾器。 - + due to port filter. this peer was blocked due to port filter. 由於埠過濾器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由於 i2p 混合模式限制。 - + because it has a low port. this peer was blocked because it has a low port. 因為它有著較低的埠。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent 成功監聽介面 %1 的埠:%2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4. {1 ?} {2/%3.?} + qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4。 - qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4 - e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4 - - - + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP:%1 @@ -1212,12 +1186,12 @@ 無法移動 torrent:「%1」。理由:%2 - + File sizes mismatch for torrent '%1', pausing it. 檔案大小和 torrent「%1」不符合,暫停。 - + Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... 快速恢復資料被 torrent「%1」拒絕,理由:「%2」。正在重新檢查... @@ -1242,7 +1216,7 @@ - + Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. Cookie 的常見值為:「%1」、「%2」。 @@ -1310,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread 未讀 @@ -1412,10 +1386,6 @@ You should get this information from your Web browser preferences. Only one link per line 一線僅一連結 - - Download local torrent - 下載本地 torrent - Download @@ -1589,20 +1559,30 @@ You should get this information from your Web browser preferences. Save files to location: - 儲存檔案到: + 儲存檔案到: Label: - 標籤: + 標籤: Cookie: + Cookie: + + + + Type folder here - + + Other... + + + + Downloaded Is the file downloaded or not? 已下載 @@ -1615,7 +1595,7 @@ You should get this information from your Web browser preferences. Upload local torrent - + 上傳本機 torrent @@ -1973,10 +1953,6 @@ You should get this information from your Web browser preferences. &About 關於 (&A) - - Exit - 離開 - &Pause @@ -2007,22 +1983,6 @@ You should get this information from your Web browser preferences. E&xit 離開(&X) - - Options - 選項 - - - Resume - 繼續 - - - Pause - 暫停 - - - Delete - 刪除 - Open URL @@ -2040,19 +2000,15 @@ You should get this information from your Web browser preferences. - + Show 顯示 - + Check for program updates 檢查軟體更新 - - Lock qBittorrent - 鎖定 qBittorrent - Add Torrent &Link... @@ -2065,215 +2021,221 @@ You should get this information from your Web browser preferences. - + Execution Log 執行紀錄 - + Clear the password 清除密碼 - + Filter torrent list... 過濾 torrent 列表... - + &Set Password 設定密碼(&S) - + &Clear Password 清除密碼(&C) - + Transfers 傳輸 - + Torrent file association Torrent 檔案關聯 - + qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent 不是你開啟 torrent 檔案或磁性連結的預設程式。 你想要以 qBittorrent 開啟 torrent 檔案和磁性連結嗎? - + Icons Only 只有圖示 - + Text Only 只有文字 - + Text Alongside Icons 文字在圖示旁 - + Text Under Icons 文字在圖示下 - + Follow System Style 跟隨系統風格 - - - + + + UI lock password UI 鎖定密碼 - - - + + + Please type the UI lock password: 請輸入 UI 鎖定密碼: - + The password should contain at least 3 characters 密碼應該至少包含 3 個字元 - + Password update 更新密碼 - + The UI lock password has been successfully updated UI 鎖定密碼已經更新了 - + Are you sure you want to clear the password? 你確定要清除密碼? - + Search 搜尋 - + Transfers (%1) 傳輸 (%1) - + Error 錯誤 - + Failed to add torrent: %1 無法加入 torrent:%1 - + Download completion 下載完成 - + I/O Error i.e: Input/Output Error I/O 錯誤 - + Recursive download confirmation 遞迴下載確認 - + Yes - + No - + Never 從不 - + Global Upload Speed Limit 全域上傳速度限制 - + Global Download Speed Limit 全域下載速度限制 - + &No 否(&N) - + &Yes 是(&Y) - + &Always Yes 永遠是(&A) - + Python found in %1 在 %1 找到 Python - + Old Python Interpreter 舊的 Python 直譯器 - + qBittorrent Update Available 有新版本的 qBittorren 可用 - + + A new version is available. +Do you want to download %1? + + + + Already Using the Latest qBittorrent Version 已經在用最新的 qBittorren 版本 - + Undetermined Python version 不確定的 Python 版本 - + '%1' has finished downloading. e.g: xxx.avi has finished downloading. 「%1」已經下載完成。 - + An I/O error occurred for torrent '%1'. Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. @@ -2282,160 +2244,159 @@ Do you want to associate qBittorrent to torrent files and Magnet links? 原因:「%2」 - + The torrent '%1' contains torrent files, do you want to proceed with their download? Torrent「%1」包含 torrent 檔案,你想要執行下載作業嗎? - + Couldn't download file at URL '%1', reason: %2. 無法下載檔案,在此 URL:「%1」,理由:「%2」 - + Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. 您的 Python 版本 %1 過期了。請更新到最新的版本以讓搜尋引擎可以運作。最低需求:2.7.0/3.3.0。 - + Couldn't determine your Python version (%1). Search engine disabled. 無法確定您的 Python 版本 (%1)。已停用搜尋引擎。 - - + + Missing Python Interpreter 遺失 Python 直譯器 - + Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? 使用搜尋引擎需要 Python,但是它似乎尚未安裝。 您想要現在安裝嗎? - + Python is required to use the search engine but it does not seem to be installed. 使用搜尋引擎需要 Python,但是它似乎尚未安裝。 - A new version is available. Update to version %1? - 有新版本可用 + 有新版本可用 要更新到 %1 嗎? - + No updates available. You are already using the latest version. 沒有更新的版本 你已經在用最新的版本了 - + &Check for Updates 檢查更新 (&C) - + Checking for Updates... 正在檢查更新... - + Already checking for program updates in the background 已經在背景檢查程式更新 - + Python found in '%1' 在「%1」找到 Python - + Download error 下載錯誤 - + Python setup could not be downloaded, reason: %1. Please install it manually. Python 安裝程式無法下載。原因: %1。 請手動安裝。 - - + + Invalid password 無效的密碼 - - + + RSS (%1) RSS (%1) - + URL download error URL 下載錯誤 - + The password is invalid 密碼是無效的 - - + + DL speed: %1 e.g: Download speed: 10 KiB/s 下載速度:%1 - - + + UP speed: %1 e.g: Upload speed: 10 KiB/s 上傳速度:%1 - + [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version [下載:%1,上傳:%2] qBittorrent %3 - + Hide 隱藏 - + Exiting qBittorrent 退出 qBittorrent - + Some files are currently transferring. Are you sure you want to quit qBittorrent? 有些檔案還在傳輸中。 你確定要退出 qBittorrent 嗎? - + Open Torrent Files 開啟 torrent 檔案 - + Torrent Files Torrent 檔案 - + Options were saved successfully. 選項儲存成功。 @@ -2443,17 +2404,17 @@ Are you sure you want to quit qBittorrent? Net::DNSUpdater - + Your dynamic DNS was successfully updated. 你的動態 DNS 更新成功。 - + Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. 動態 DNS 錯誤:服務暫時無法使用,將在 30 分鐘後重試。 - + Dynamic DNS error: hostname supplied does not exist under specified account. 動態 DNS 錯誤:提供的主機名稱在指定的帳號下不存在。 @@ -2463,32 +2424,32 @@ Are you sure you want to quit qBittorrent? 動態 DNS 錯誤:無效的使用者名稱/密碼。 - + Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. 動態 DNS 錯誤:qBittorrent 被該服務封鎖了,請回報此問題至 http://bugs.qbittorrent.org。 - + Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. 動態 DNS 錯誤:該服務傳回 %1,請回報此問題至 http://bugs.qbittorrent.org。 - + Dynamic DNS error: Your username was blocked due to abuse. 動態 DNS 錯誤:您的使用者名稱因濫用而被封鎖。 - + Dynamic DNS error: supplied domain name is invalid. 動態 DNS 錯誤:提供的網域名稱是無效的。 - + Dynamic DNS error: supplied username is too short. 動態 DNS 錯誤:提供的使用者名稱太短。 - + Dynamic DNS error: supplied password is too short. 動態 DNS 錯誤:提供的密碼太短。 @@ -2515,154 +2476,161 @@ Are you sure you want to quit qBittorrent? Net::GeoIPManager - + GeoIP database loaded. Type: %1. Build time: %2. GeoIP 資料庫已載入。類型:%1。構建時間:%2。 - + Couldn't load GeoIP database. Reason: %1 無法載入 GeoIP 資料庫。理由:%1 - - + + Venezuela, Bolivarian Republic of + + + + + Viet Nam + + + + + N/A N/A - Asia/Pacific Region - 亞洲/太平洋區域 + 亞洲/太平洋區域 + + + Europe + 歐洲 - Europe - 歐洲 - - - Andorra 安道爾 - + United Arab Emirates 阿拉伯聯合大公國 - + Afghanistan 阿富汗 - + Antigua and Barbuda 安地卡及巴布達 - + Anguilla 安圭拉 - + Albania 阿爾巴尼亞 - + Armenia 亞美尼亞 - Netherlands Antilles - 荷屬安地列斯 + 荷屬安地列斯 - + Angola 安哥拉 - + Antarctica 南極洲 - + Argentina 阿根廷 - + American Samoa 美屬薩摩亞 - + Austria 奧地利 - + Australia 澳大利亞 - + Aruba 阿魯巴 - + Azerbaijan 亞塞拜然 - + Bosnia and Herzegovina 波士尼亞與赫塞哥維納 - + Barbados 巴貝多 - + Bangladesh 孟加拉 - + Belgium 比利時 - + Burkina Faso 布吉納法索 - + Bulgaria 保加利亞 - + Bahrain 巴林 - + Burundi 蒲隆地 - + Benin 貝南 @@ -2677,1137 +2645,1187 @@ Are you sure you want to quit qBittorrent? 汶萊 - Bolivia - 玻利維亞 + 玻利維亞 - + Brazil 巴西 - + Bahamas 巴哈馬 - + Bhutan 不丹 - + Bouvet Island 布威島 - + Botswana 波札那 - + Belarus 白俄羅斯 - + Belize 貝里斯 - + Canada 加拿大 - + Cocos (Keeling) Islands 科科斯(基林)群島 - + Congo, The Democratic Republic of the 剛果民主共和國 - + Central African Republic 中非共和國 - + Congo 剛果共和國 - + Switzerland 瑞士 - Cote D'Ivoire - 象牙海岸 + 象牙海岸 - + Cook Islands 庫克群島 - + Chile 智利 - + Cameroon 喀麥隆 - + China 中華人民共和國 - + Colombia 哥倫比亞 - + Costa Rica 哥斯大黎加 - + Cuba 古巴 - + Cape Verde 維德角 - + + Curacao + + + + Christmas Island 聖誕島 - + Cyprus 賽普勒斯 - + Czech Republic 捷克共和國 - + Germany 德國 - + Djibouti 吉布地 - + Denmark 丹麥 - + Dominica 多米尼克 - + Dominican Republic 多明尼加共和國 - + Algeria 阿爾及利亞 - + Ecuador 厄瓜多 - + Estonia 愛沙尼亞 - + Egypt 埃及 - + Western Sahara 西撒哈拉 - + Eritrea 厄利垂亞 - + Spain 西班牙 - + Ethiopia 衣索比亞 - + Finland 芬蘭 - + Fiji 斐濟 - + Falkland Islands (Malvinas) 福克蘭群島(馬爾維納斯群島) - + Micronesia, Federated States of 密克羅尼西亞聯邦 - + Faroe Islands 法羅群島 - + France 法國 - France, Metropolitan - 法國本土 + 法國本土 - + Gabon 加彭 - + United Kingdom 英國本土 - + Grenada 格瑞那達 - + Georgia 喬治亞 - + French Guiana 法屬圭亞那 - + Ghana 加納 - + Gibraltar 直布羅陀 - + Greenland 格陵蘭 - + Gambia 甘比亞 - + Guinea 幾內亞 - + Guadeloupe 瓜德羅普 - + Equatorial Guinea 赤道幾內亞 - + Greece 希臘 - + South Georgia and the South Sandwich Islands 南喬治亞與南三明治群島 - + Guatemala 瓜地馬拉 - + Guam 關島 - + Guinea-Bissau 幾內亞比索 - + Guyana 蓋亞那 - + Hong Kong 香港 - + Heard Island and McDonald Islands 赫德島和麥克唐納群島 - + Honduras 洪都拉斯 - + Croatia 克羅埃西亞 - + Haiti 海地 - + Hungary 匈牙利 - + Indonesia 印度尼西亞 - + Ireland 愛爾蘭 - + Israel 以色列 - + India 印度 - + British Indian Ocean Territory 英屬印度洋領地 - + Iraq 伊拉克 - + Iran, Islamic Republic of 伊朗伊斯蘭共和國 - + Iceland 冰島 - + Italy 義大利 - + Jamaica 牙買加 - + Jordan 約旦 - + Japan 日本 - + Kenya 肯亞 - + Kyrgyzstan 吉爾吉斯 - + Cambodia 柬埔寨 - + Kiribati 吉里巴斯 - + Comoros 葛摩 - + Saint Kitts and Nevis 聖克里斯多福及尼維斯 - + Korea, Democratic People's Republic of 朝鮮民主主義人民共和國 - + Korea, Republic of 大韓民國 - + Kuwait 科威特 - + Cayman Islands 蓋曼群島 - + Kazakhstan 哈薩克 - + Lao People's Democratic Republic 寮人民民主共和國 - + Lebanon 黎巴嫩 - + Saint Lucia 聖露西亞 - + Liechtenstein 列支敦斯登 - + Sri Lanka 斯里蘭卡 - + Liberia 利比亞 - + Lesotho 賴索托 - + Lithuania 立陶宛 - + Luxembourg 盧森堡 - + Latvia 拉脫維亞 - Libyan Arab Jamahiriya - 阿拉伯利比亞民眾國 + 阿拉伯利比亞民眾國 - + Morocco 摩洛哥 - + Monaco 摩納哥 - + Moldova, Republic of 摩爾多瓦共和國 - + Madagascar 馬達加斯加 - + Marshall Islands 馬紹爾群島 - Macedonia - 馬其頓 + 馬其頓 - + Mali 馬利共和國 - + Myanmar 緬甸 - + Mongolia 蒙古 - Macau - 澳門 + 澳門 - + Northern Mariana Islands 北馬利安納群島 - + Martinique 馬丁尼克 - + Mauritania 茅利塔尼亞 - + Montserrat 蒙哲臘 - + Malta 馬爾他 - + Mauritius 模里西斯 - + Maldives 馬爾地夫 - + Malawi 馬拉威 - + Mexico 墨西哥 - + Malaysia 馬來西亞 - + Mozambique 莫三比克 - + Namibia 納米比亞 - + New Caledonia 新喀里多尼亞 - + Niger 尼日 - + Norfolk Island 諾福克島 - + Nigeria 奈及利亞 - + Nicaragua 尼加拉瓜 - + Netherlands 荷蘭 - + Norway 挪威 - + Nepal 尼泊爾 - + Nauru 諾魯 - + Niue 紐埃 - + New Zealand 紐西蘭 - + Oman 阿曼 - + Panama 巴拿馬 - + Peru 秘魯 - + French Polynesia 法屬玻里尼西亞 - + Papua New Guinea 巴布亞紐幾內亞 - + Philippines 菲律賓 - + Pakistan 巴基斯坦 - + Poland 波蘭 - + Saint Pierre and Miquelon 聖皮耶與密克隆群島 - Pitcairn Islands - 皮特肯群島 + 皮特肯群島 - + Puerto Rico 波多黎各 - Palestinian Territory - 巴勒斯坦領土 + 巴勒斯坦領土 - + Portugal 葡萄牙 - + Palau 帛琉 - + Paraguay 巴拉圭 - + Qatar 卡達 - + Reunion 留尼旺 - + Romania 羅馬尼亞 - + Russian Federation 俄羅斯聯邦 - + Rwanda 盧安達 - + Saudi Arabia 沙烏地阿拉伯 - + Solomon Islands 索羅門群島 - + Seychelles 塞席爾 - + Sudan 蘇丹 - + Sweden 瑞典 - + Singapore 新加坡 - Saint Helena - 聖赫勒拿 + 聖赫勒拿 - + Slovenia 斯洛維尼亞 - + Svalbard and Jan Mayen 斯瓦巴和揚馬延 - + Slovakia 斯洛伐克 - + Sierra Leone 獅子山共和國 - + San Marino 聖馬利諾 - + Senegal 塞內加爾 - + Somalia 索馬利亞 - + Suriname 蘇利南 - + Sao Tome and Principe 聖多美普林西比 - + El Salvador 薩爾瓦多 - + Syrian Arab Republic 阿拉伯敘利亞共和國 - + Swaziland 史瓦茲蘭 - + Turks and Caicos Islands 特克斯和凱科斯群島 - + Chad 查德 - + French Southern Territories 法屬南部領地 - + Togo 多哥 - + Thailand 泰國 - + Tajikistan 塔吉克斯坦 - + Tokelau 托克勞 - + Turkmenistan 土庫曼 - + Tunisia 突尼西亞 - + Tonga 東加 - + Timor-Leste 東帝汶 - + + Bolivia, Plurinational State of + + + + + Bonaire, Sint Eustatius and Saba + + + + + Cote d'Ivoire + + + + + Libya + + + + + Saint Martin (French part) + + + + + Macedonia, The Former Yugoslav Republic of + + + + + Macao + + + + + Pitcairn + + + + + Palestine, State of + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + South Sudan + + + + + Sint Maarten (Dutch part) + + + + Turkey 土耳其 - + Trinidad and Tobago 千里達及托巴哥 - + Tuvalu 吐瓦魯 - + Taiwan 臺灣 - + Tanzania, United Republic of 坦尚尼亞 - + Ukraine 烏克蘭 - + Uganda 烏甘達 - + United States Minor Outlying Islands 美國本土外小島嶼 - + United States 美國 - + Uruguay 烏拉圭 - + Uzbekistan 烏茲別克斯坦 - + Holy See (Vatican City State) 聖座(梵蒂岡城國) - + Saint Vincent and the Grenadines 聖文森及格瑞那丁 - Venezuela - 委內瑞拉 + 委內瑞拉 - + Virgin Islands, British 英屬維京群島 - + Virgin Islands, U.S. 美屬維京群島 - Vietnam - 越南 + 越南 - + Vanuatu 萬那杜 - + Wallis and Futuna 瓦利斯和富圖納 - + Samoa 薩摩亞 - + Yemen 葉門 - + Mayotte 馬約特 - + Serbia 塞爾維亞 - + South Africa 南非 - + Zambia 尚比亞 - + Montenegro 蒙特內格魯 - + Zimbabwe 辛巴威 - Anonymous Proxy - 匿名代理伺服器 + 匿名代理伺服器 - Satellite Provider - 衛星供應商 + 衛星供應商 - Other - 其他 + 其他 - + Aland Islands 奧蘭群島 - + Guernsey 格恩西 - + Isle of Man 曼島 - + Jersey 澤西 - + Saint Barthelemy 聖巴瑟米 - Saint Martin - 聖馬丁 + 聖馬丁 - + Could not uncompress GeoIP database file. 無法解壓縮 GeoIP 資料庫檔案。 - + Couldn't save downloaded GeoIP database file. 無法儲存已下載的 GeoIP 資料庫檔案。 - + Successfully updated GeoIP database. 成功更新 GeoIP 資料庫。 - + Couldn't download GeoIP database file. Reason: %1 無法下載 GeoIP 資料庫檔案。理由:%1 @@ -3838,72 +3856,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - interested(本機) 及 choked(點) + interested(本機) 及 choked(點) interested(local) and unchoked(peer) - interested(本機) 及 unchoked(點) + interested(本機) 及 unchoked(點) interested(peer) and choked(local) - interested(點) 及 choked(本機) + interested(點) 及 choked(本機) interested(peer) and unchoked(local) - interested(點) 及 unchoked(本機) + interested(點) 及 unchoked(本機) optimistic unchoke - 樂觀的 unchoke + 樂觀的 unchoke peer snubbed - 點突然停止 + 點突然停止 incoming connection - 連入的連線 + 連入的連線 not interested(local) and unchoked(peer) - not interested(本機) 及 unchoked(點) + not interested(本機) 及 unchoked(點) not interested(peer) and unchoked(local) - not interested(點) 及 unchoked(本機) + not interested(點) 及 unchoked(本機) peer from PEX - 來自 PeX 的 peer + 來自 PEX 的 peer peer from DHT - 來自 DHT 的 peer + 來自 DHT 的 peer encrypted traffic - 加密的流量 + 加密的流量 encrypted handshake - 加密的溝通 + 加密的溝通 peer from LSD - 來自 LSD 的 peer + 來自 LSD 的 peer @@ -3971,123 +3989,73 @@ Are you sure you want to quit qBittorrent? 關聯 - + + Files + i.e. files that are being downloaded right now + + + + Add a new peer... 增加新下載者... - + Copy selected 複製已選取的 - - + + Ban peer permanently 永遠封鎖下載者 - + Manually adding peer '%1'... 正在手動加入下載者「%1」... - + The peer '%1' could not be added to this torrent. 下載者「%1」無法新增到此 torrent 中。 - + Manually banning peer '%1'... 正在手動封鎖下載者「%1」... - - + + Peer addition 增加下載者 - + Some peers could not be added. Check the Log for details. 有些下載者無法被新增。檢查記錄檔以取得更多資訊。 - + The peers were added to this torrent. 下載者已新增到此 torrent 中。 - + Are you sure you want to ban permanently the selected peers? 你確定要永遠封鎖所選擇的下載者嗎? - + &Yes 是(&Y) - + &No 否(&N) - - interested(local) and choked(peer) - interested(本機) 及 choked(點) - - - interested(local) and unchoked(peer) - interested(本機) 及 unchoked(點) - - - interested(peer) and choked(local) - interested(點) 及 choked(本機) - - - interested(peer) and unchoked(local) - interested(點) 及 unchoked(本機) - - - optimistic unchoke - 樂觀的 unchoke - - - peer snubbed - 點突然停止 - - - incoming connection - 連入的連線 - - - not interested(local) and unchoked(peer) - not interested(本機) 及 unchoked(點) - - - not interested(peer) and unchoked(local) - not interested(點) 及 unchoked(本機) - - - peer from PEX - 來自 PeX 的 peer - - - peer from DHT - 來自 DHT 的 peer - - - encrypted traffic - 加密的流量 - - - encrypted handshake - 加密的溝通 - - - peer from LSD - 來自 LSD 的 peer - PeersAdditionDlg @@ -4125,6 +4093,202 @@ Are you sure you want to quit qBittorrent? 藍色:可用的部份 + + PluginSelectDlg + + + Search plugins + 搜尋外掛 + + + + Installed search plugins: + + + + + Name + 名稱 + + + + Version + 版本 + + + + Url + URL + + + + + Enabled + 已啟用 + + + + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 你可以在這裡取得新的搜尋引擎外掛:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + + + + Install a new one + 安裝新的 + + + + Check for updates + 檢查更新 + + + + Close + 關閉 + + + + Uninstall + 反安裝 + + + + + + Yes + + + + + + + + No + + + + + Uninstall warning + 反安裝警告 + + + + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. +Those plugins were disabled. + 有些外掛不能被卸載,因為他們包含在 qBittorrent 裡面。只有你自己安裝的外掛,才可以被卸載。然而,這些外掛已經被停用了。 + + + + Uninstall success + 反安裝成功 + + + + All selected plugins were uninstalled successfully + 所有選擇的外掛都已經成功反安裝了 + + + + + New search engine plugin URL + 新搜尋引擎外掛 URL + + + + + URL: + URL: + + + + Invalid link + 無效的連結 + + + + The link doesn't seem to point to a search engine plugin. + 連結似乎沒有指向搜尋引擎附加元件。 + + + + Select search plugins + 選擇搜尋外掛 + + + + qBittorrent search plugin + qBittorrent 搜尋外掛 + + + + + + Search plugin update + 更新搜尋外掛 + + + + All your plugins are already up to date. + 你所有的外掛都已經是最新版本。 + + + + Sorry, couldn't check for plugin updates. %1 + + + + + + + Search plugin install + 安裝搜尋外掛 + + + + "%1" search engine plugin was successfully installed. + %1 is the name of the search engine + + + + + Couldn't install "%1" search engine plugin. %2 + + + + + "%1" search engine plugin was successfully updated. + %1 is the name of the search engine + + + + + Couldn't update "%1" search engine plugin. %2 + + + + + PluginSourceDlg + + + Plugin source + 外掛來源 + + + + Search plugin source: + 搜尋外掛來源: + + + + Local file + 本地檔案 + + + + Web link + 網頁連結 + + Preferences @@ -4181,89 +4345,89 @@ Are you sure you want to quit qBittorrent? 在未完成檔案加上 .!qB 副檔名 - + Copy .torrent files to: 複製 torrent 檔案到: - + Connections Limits 連線限制 - + Proxy Server 代理伺服器 - + Global Rate Limits 全域分享率限制 - + Apply rate limit to transport overhead 套用速度限制至傳輸負載 - + Schedule the use of alternative rate limits 排程使用額外的速度限制 - + From: from (time1 to time2) 從: - + To: time1 to time2 到: - + Enable Local Peer Discovery to find more peers 啟用本地下載者搜尋來尋找更多下載者 - + Encryption mode: 加密模式: - + Prefer encryption 偏好加密 - + Require encryption 要求加密 - + Disable encryption 停用加密 - + (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>) (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">更多資訊</a>) - + Maximum active downloads: 最大活躍的下載數: - + Maximum active uploads: 最大活躍的上傳數: - + Maximum active torrents: 最大活躍的 torrent: @@ -4288,82 +4452,82 @@ Are you sure you want to quit qBittorrent? 顯示 torrent 內容及其他選項 - + Run external program on torrent completion 當 torrent 下載完成時執行外部程式 - + Port used for incoming connections: 連入連線時使用的埠: - + Random 隨機 - + Global maximum number of connections: 全域最大連線數: - + Maximum number of connections per torrent: 每個 torrent 的最大連線數: - + Maximum number of upload slots per torrent: 每個 torrent 上傳位置的最大數: - - + + Upload: 上傳: - - + + Download: 下載: - - - - + + + + KiB/s KiB/s - + Remove folder 移除資料夾 - + Every day 每天 - + Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) 與相容的 Bittorrent 客戶端 (µTorrent, Vuze, ...) 交換下載者資訊 - + Host: 主機: - + SOCKS4 SOCKS4 - + Type: 類型: @@ -4536,262 +4700,262 @@ Are you sure you want to quit qBittorrent? 自動載入 torrent 檔案: - + Add folder... 增加資料夾... - + Copy .torrent files for finished downloads to: 複製已完成的 torrent 檔案到: - + Email notification upon download completion 下載完成時使用電子郵件通知 - + Destination email: 目的地電子郵件: - + SMTP server: SMTP 伺服器: - + This server requires a secure connection (SSL) 這個伺服器需要加密連線 (SSL) - + Listening Port 監聽埠 - + Use UPnP / NAT-PMP port forwarding from my router 從我的路由器使用 UPnP/NAT-PMP 埠映射 - + Use different port on each startup 每次啟動時使用不同的埠 - + Global maximum number of upload slots: 全域最大上傳數: - + Otherwise, the proxy server is only used for tracker connections 除此之外,代理伺服器僅用於 tracker 連線 - + Use proxy for peer connections 使用代理伺服器來連線下載者 - + Disable connections not supported by proxies 停用不被代理伺服器所支援的連線 - + Use proxy only for torrents 只對 torrent 使用代理伺服器 - + RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection RSS feeds、搜尋引擎、軟體更新或是任何其他除了 torrent 傳輸及相關動作以外的東西(像是下載者交換)都將會使用直接連線 - + Info: The password is saved unencrypted 資訊:密碼以未加密的型式儲存 - + IP Filtering IP 過濾 - + Reload the filter 重讀過濾器 - + Apply to trackers 套用到 trackers - + Apply rate limit to peers on LAN 在區域網路上套用對下載者的速度限制 - + When: 何時: - + Weekdays 平日 - + Weekends 週末 - + Rate Limits Settings 速率限制設定 - + Enable µTP protocol 啟用 µTP 協定 - + Apply rate limit to µTP protocol 套用速率限制到 µTP 協定 - + Privacy 隱私 - + Enable DHT (decentralized network) to find more peers 啟用 DHT (分散式網路) 來尋找更多下載者 - + Enable Peer Exchange (PeX) to find more peers 啟用下載者交換 (PeX) 來尋找更多下載者 - + Look for peers on your local network 在本地網路找尋下載者 - + Enable when using a proxy or a VPN connection 當使用代理伺服器或 VPN 連線時啟用 - + Enable anonymous mode 啟用匿名模式 - + Do not count slow torrents in these limits 在這些限制中不要計算速度慢的 torrent - + Seed torrents until their ratio reaches 對 torrent 做種直到達到分享率 - + then 然後 - + Pause them 暫停它們 - + Remove them 移除它們 - + Automatically add these trackers to new downloads: 自動新增這些追蹤者到新的下載中: - + Use UPnP / NAT-PMP to forward the port from my router 從我的路由器使用 UPnP/NAT-PMP 埠映射 - + Use HTTPS instead of HTTP 使用 HTTPS 而不是 HTTP - + Import SSL Certificate 匯入 SSL 憑證 - + Import SSL Key 匯入 SSL 鑰匙 - + Certificate: 憑證: - + Alternative Rate Limits 替代速率限制 - + Key: 鑰匙: - + <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>Information about certificates</a> <a href=http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html#aboutcerts>關於憑證的資訊</a> - + Bypass authentication for localhost 略過本機的驗證 - + Update my dynamic domain name 更新我的動態網域名稱 - + Service: 服務: - + Register 註冊 - + Domain name: 網域名稱: - + (None) (無) @@ -4801,61 +4965,61 @@ Are you sure you want to quit qBittorrent? BitTorrent - + HTTP HTTP - - + + Port: 埠: - - - + + + Authentication 驗證 - - - - + + + + Username: 使用者名稱: - - - - + + + + Password: 密碼: - + Torrent Queueing Torrent 排程 - + Share Ratio Limiting 分享率限制 - + Enable Web User Interface (Remote control) 啟用 Web UI (遠端控制) - + SOCKS5 SOCKS5 - + Filter path (.dat, .p2p, .p2b): 過濾路徑 (.dat, .p2p, .p2b): @@ -5061,10 +5225,6 @@ Are you sure you want to quit qBittorrent? Comment: 註解: - - Torrent content: - Torrent 內容: - Select All @@ -5587,28 +5747,28 @@ No further notices will be issued. 未知的錯誤 - - + + Upgrade 更新 - + You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] 您從喔個較舊且以完全不同的方式儲存的版本更新。您必須遷移到新的儲存系統。您將無法再次使用比 v3.3.0 更舊的版本。要繼續嗎?[y/n] - + You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. 您從喔個較舊且以完全不同的方式儲存的版本更新。您必須遷移到新的儲存系統。如果要繼續,您將無法再次使用比 v3.3.0 更舊的版本。 - + Couldn't migrate torrent with hash: %1 無法遷移驗證碼值為 %1 的 torrent - + Couldn't migrate torrent. Invalid fastresume file name: %1 無法遷移 torrent。無效的快速恢復檔案名稱:%1 @@ -5719,17 +5879,17 @@ No further notices will be issued. RSSImp - + Stream URL: 串流 URL: - + Please type a RSS stream URL 請輸入一個 RSS 串流網址 - + This RSS feed is already in the list. 這個 RSS feed 已經在清單裡了。 @@ -5749,75 +5909,92 @@ No further notices will be issued. 新資料夾 - + Deletion confirmation 確認刪除 - + Are you sure you want to delete the selected RSS feeds? 您是否確定要刪除選定的 RSS feeds? - + Please choose a new name for this RSS feed 請為這個 RSS feed 選擇新名稱 - + New feed name: 新 feed 名稱: - + Name already in use 此名稱已使用 - + This name is already used by another item, please choose another one. 此名稱已被另一個項目使用,請選擇一個新的名稱。 - + Date: 日期: - + Author: 作者: - + Unread 未讀 - RssFeed + Rss::Feed - + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... + 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... - + Automatically downloading '%1' torrent from '%2' RSS feed... - 正在從「%2」RSS feed 自動下載「%1」torrent... + 正在從「%2」RSS feed 自動下載「%1」torrent... + + + + Rss::Private::Parser + + + Invalid RSS feed. + + + + + RssFeed + + Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... + 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... + + + Automatically downloading '%1' torrent from '%2' RSS feed... + 正在從「%2」RSS feed 自動下載「%1」torrent... RssParser - Failed to open downloaded RSS file. - 無法開啟已下載的 RSS 檔案。 + 無法開啟已下載的 RSS 檔案。 - Invalid RSS feed at '%1'. - 在「%1」無效的 RSS feed。 + 在「%1」無效的 RSS feed。 @@ -5843,168 +6020,249 @@ No further notices will be issued. 每個 feed 的最大文章數: + + ScanFoldersDelegate + + + Watch Folder + + + + + Default Folder + + + + + Browse... + 瀏覽... + + + + Choose save path + 選擇儲存路徑 + + ScanFoldersModel - + + Watch Folder + + + + + Default Folder + + + + Watched Folder 監視資料夾 - - Download here - 下載到此 + + Save Files to + + + + Download here + 下載到此 - Download path - 下載路徑 + 下載路徑 SearchCategories - All categories - 所有類別 + 所有類別 - Movies - 電影 + 電影 - TV shows - 電視劇 + 電視劇 - Music - 音樂 + 音樂 - Games - 遊戲 + 遊戲 - Anime - 動畫 + 動畫 - Software - 軟體 + 軟體 - Pictures - 圖片 + 圖片 - Books - + SearchEngine - - - Search - 搜尋 + 搜尋 - Please install Python to use the Search Engine. - 請安裝 Python 以使用搜尋引擎。 + 請安裝 Python 以使用搜尋引擎。 - Empty search pattern - 沒有搜尋模式 + 沒有搜尋模式 - Please type a search pattern first - 請先輸入一個搜尋模式 + 請先輸入一個搜尋模式 - Searching... - 搜尋中... + 搜尋中... - Stop - 停止 + 停止 - - Search Engine - 搜尋引擎 + 搜尋引擎 - - Search has finished - 搜尋完成 + 搜尋完成 - An error occurred during search... - 搜尋時發生錯誤... + 搜尋時發生錯誤... - - Search aborted - 搜尋中止 + 搜尋中止 - All enabled - 所有已啟用的 + 所有已啟用的 - All engines - 所有引擎 + 所有引擎 - - Multiple... - 多路的... + 多路的... - - Results <i>(%1)</i>: i.e: Search results - 結果 <i>(%1)</i>: + 結果 <i>(%1)</i>: - Search returned no results - 沒有搜尋結果 + 沒有搜尋結果 - Stopped - 已停止 + 已停止 + + + + Unknown search engine plugin file format. + + + + + A more recent version of this plugin is already installed. + + + + + + Plugin is not supported. + + + + + Update server is temporarily unavailable. %1 + + + + + + Failed to download the plugin file. %1 + + + + + An incorrect update info received. + + + + + All categories + 所有類別 + + + + Movies + 電影 + + + + TV shows + 電視劇 + + + + Music + 音樂 + + + + Games + 遊戲 + + + + Anime + 動畫 + + + + Software + 軟體 + + + + Pictures + 圖片 + + + + Books + SearchListDelegate - - + + Unknown 未知 @@ -6012,35 +6270,160 @@ No further notices will be issued. SearchTab - + Name i.e: file name 名稱 - + Size i.e: file size 大小 - + Seeders i.e: Number of full sources 種子 - + Leechers i.e: Number of partial sources 不完整種子 - + Search engine 搜尋引擎 + + SearchWidget + + + + + + + Search + 搜尋 + + + + Status: + 狀態: + + + + + Stopped + 已停止 + + + + Download + 下載 + + + + Go to description page + 到描述頁 + + + + Copy description page URL + 複製描述頁面的 URL + + + + Search plugins... + + + + + All enabled + 所有已啟用的 + + + + All plugins + + + + + + Multiple... + 多路的... + + + + + + Search Engine + 搜尋引擎 + + + + Please install Python to use the Search Engine. + 請安裝 Python 以使用搜尋引擎。 + + + + Empty search pattern + 沒有搜尋模式 + + + + Please type a search pattern first + 請先輸入一個搜尋模式 + + + + + Results <i>(%1)</i>: + i.e: Search results + 結果 <i>(%1)</i>: + + + + Searching... + 搜尋中... + + + + Stop + 停止 + + + + + Search has finished + 搜尋完成 + + + + + Search aborted + 搜尋中止 + + + + Search returned no results + 沒有搜尋結果 + + + + Search has failed + + + + + An error occurred during search... + 搜尋時發生錯誤... + + ShutdownConfirmDlg @@ -6485,24 +6868,28 @@ No further notices will be issued. TorrentContentModel - + Name 名稱 - + Size 大小 - + Progress 進度 - + + Download Priority + + + Priority - 優先度 + 優先度 @@ -6854,38 +7241,38 @@ No further notices will be issued. 警告 (%1) - + Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. 無法解碼 URL「%1」的 favico。正在嘗試以 PNG 格式下載 favico。 - + Couldn't decode favicon for URL '%1'. 無法解碼 URL「%1」的 favico。 - + Couldn't download favicon for URL '%1'. Reason: %2 無法下載 URL「%1」的 favico。理由:「%2」 - + Resume torrents 繼續 torrent - + Pause torrents 暫停 torrent - + Delete torrents 刪除 torrent - - + + All (%1) this is for the tracker filter 全部 (%1) @@ -7153,17 +7540,17 @@ No further notices will be issued. TransferListFiltersWidget - + Status 狀態 - + Labels 標籤 - + Trackers 追蹤者 @@ -7702,205 +8089,154 @@ No further notices will be issued. engineSelect - Search plugins - 搜尋外掛 + 搜尋外掛 - Installed search engines: - 已安裝的搜尋引擎: + 已安裝的搜尋引擎: - Name - 名稱 + 名稱 - Version - 版本 + 版本 - Url - URL + URL - - Enabled - 已啟用 + 已啟用 - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 你可以在這裡取得新的搜尋引擎外掛:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 你可以在這裡取得新的搜尋引擎外掛:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Install a new one - 安裝新的 + 安裝新的 - Check for updates - 檢查更新 + 檢查更新 - Close - 關閉 + 關閉 - Uninstall - 反安裝 + 反安裝 engineSelectDlg - Uninstall warning - 反安裝警告 + 反安裝警告 - Uninstall success - 反安裝成功 + 反安裝成功 - Invalid plugin - 無效的外掛程式 + 無效的外掛程式 - The search engine plugin is invalid, please contact the author. - 搜尋引擎外掛無效,請連絡作者。 + 搜尋引擎外掛無效,請連絡作者。 - A more recent version of '%1' search engine plugin is already installed. %1 is the name of the search engine - 已安裝一個更新版本的「%1」搜尋引擎外掛。 + 已安裝一個更新版本的「%1」搜尋引擎外掛。 - '%1' search engine plugin could not be updated, keeping old version. %1 is the name of the search engine - 「%1」搜尋引擎外掛不能升級,將保持舊版本。 + 「%1」搜尋引擎外掛不能升級,將保持舊版本。 - '%1' search engine plugin could not be installed. %1 is the name of the search engine - 「%1」搜尋引擎外掛不能安裝。 + 「%1」搜尋引擎外掛不能安裝。 - '%1' search engine plugin was successfully updated. %1 is the name of the search engine - 「%1」搜尋引擎外掛已經成功更新。 + 「%1」搜尋引擎外掛已經成功更新。 - '%1' search engine plugin was successfully installed. %1 is the name of the search engine - 「%1」搜尋引擎外掛已經成功安裝。 + 「%1」搜尋引擎外掛已經成功安裝。 - The link doesn't seem to point to a search engine plugin. - 連結似乎沒有指向搜尋引擎附加元件。 + 連結似乎沒有指向搜尋引擎附加元件。 - Select search plugins - 選擇搜尋外掛 + 選擇搜尋外掛 - Sorry, '%1' search plugin installation failed. %1 is the name of the search engine - 抱歉,搜尋外掛「%1」安裝失敗了。 + 抱歉,搜尋外掛「%1」安裝失敗了。 - - - - - Search plugin install - 安裝搜尋外掛 + 安裝搜尋外掛 - - - Yes - + - - - - No - + - qBittorrent search plugin - qBittorrent 搜尋外掛 + qBittorrent 搜尋外掛 - - - - Search plugin update - 更新搜尋外掛 + 更新搜尋外掛 - - Sorry, update server is temporarily unavailable. - 抱歉,更新伺服器暫時不可用。 + 抱歉,更新伺服器暫時不可用。 - All your plugins are already up to date. - 你所有的外掛都已經是最新版本。 + 你所有的外掛都已經是最新版本。 - All selected plugins were uninstalled successfully - 所有選擇的外掛都已經成功反安裝了 + 所有選擇的外掛都已經成功反安裝了 - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 有些外掛不能被卸載,因為他們包含在 qBittorrent 裡面。只有你自己安裝的外掛,才可以被卸載。然而,這些外掛已經被停用了。 + 有些外掛不能被卸載,因為他們包含在 qBittorrent 裡面。只有你自己安裝的外掛,才可以被卸載。然而,這些外掛已經被停用了。 - Invalid link - 無效的連結 + 無效的連結 - - New search engine plugin URL - 新搜尋引擎外掛 URL + 新搜尋引擎外掛 URL - - URL: - URL: + URL: @@ -8030,169 +8366,169 @@ Those plugins were disabled. options_imp - - + + Choose export directory 選擇輸出目錄 - - - - + + + + Choose a save directory 選擇儲存的目錄 - + Add directory to scan 增加要掃描的目錄 - + Supported parameters (case sensitive): 支援的參數(大小寫敏感): - + %N: Torrent name %N:Torrent 名稱 - + %L: Label %L:標籤 - + %F: Content path (same as root path for multifile torrent) %F:內容路徑(與多重 torrent 的根路徑相同) - + %R: Root path (first torrent subdirectory path) %R:根路徑(第一個 torrent 的子目錄路徑) - + %D: Save path %D:儲存路徑 - + %C: Number of files %C:檔案數量 - + %Z: Torrent size (bytes) %Z:Torrent 大小(位元組) - + %T: Current tracker %T:目前的 tracker - + %I: Info hash %I:資訊驗證碼 - + Folder is already being watched. 資料夾已在監視中。 - + Folder does not exist. 資料夾不存在。 - + Folder is not readable. 資料夾不可讀取。 - + Failure 失敗 - + Failed to add Scan Folder '%1': %2 增加掃描資料夾「%1」:%2 失敗 - - + + Filters 過濾器 - - + + Choose an IP filter file 選擇一個 IP 過濾器檔案 - + SSL Certificate SSL 憑證 - + SSL Key SSL 鑰匙 - + Parsing error 分析錯誤 - + Failed to parse the provided IP filter IP 過濾檔案分析失敗 - + Successfully refreshed 重新更新成功 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 分析 IP 過濾檔案成功:已套用 %1 個規則。 - + Invalid key 無效的鑰匙 - + This is not a valid SSL key. 這不是一個有效的 SSL 鑰匙。 - + Invalid certificate 無效的憑證 - + This is not a valid SSL certificate. 這不是一個有效的 SSL 憑證。 - + The start time and the end time can't be the same. 起始時間與終止時間不能相同。 - + Time Error 時間錯誤 @@ -8200,24 +8536,20 @@ Those plugins were disabled. pluginSourceDlg - Plugin source - 外掛來源 + 外掛來源 - Search plugin source: - 搜尋外掛來源: + 搜尋外掛來源: - Local file - 本地檔案 + 本地檔案 - Web link - 網頁連結 + 網頁連結 @@ -8246,40 +8578,32 @@ Those plugins were disabled. search_engine - - Search - 搜尋 + 搜尋 - Status: - 狀態: + 狀態: - Stopped - 已停止 + 已停止 - Download - 下載 + 下載 - Go to description page - 到描述頁 + 到描述頁 - Copy description page URL - 複製描述頁面的 URL + 複製描述頁面的 URL - Search engines... - 搜尋引擎... + 搜尋引擎... From 26fceae7e5583f19bd6814ee14361e1e6fb3ef57 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Tue, 12 Jan 2016 13:05:09 +0800 Subject: [PATCH 094/238] Update uncrustify script link. --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1fa9319e6..fd03dcd58 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,7 @@ OS version: * **Screenshots**! A screenshot is worth a thousand words. just upload it. [(How?)](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests) ### Good to know -* **Patience**. The dev team is small and resource limited. Devs finding their free time, analyzing the problem and fixing the issue, it all takes time. :clock3: +* **Be patient**. The dev team is small and resource limited. Devs finding their free time, analyzing the problem and fixing the issue, it all takes time. :clock3: * If you can code, why not become a **contributor** by fixing the issue and open a pull request? :wink: * Harsh words or threats won't help your situation. What's worse, your complain will (very likely) to be **ignored**. :fearful: @@ -25,7 +25,7 @@ OS version: # Opening a pull request ### Must read -* Read our [**coding guidelines**](https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md). There are some scripts to help you: [uncrustify script](https://gist.github.com/sledgehammer999/1cb1d9224d7fec8fa632), [astyle script](https://gist.github.com/Chocobo1/539cee860d1eef0acfa6), [(related thread)](https://github.com/qbittorrent/qBittorrent/issues/2192). +* Read our [**coding guidelines**](https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md). There are some scripts to help you: [uncrustify script](https://raw.githubusercontent.com/qbittorrent/qBittorrent/master/uncrustify.cfg), [astyle script](https://gist.github.com/Chocobo1/539cee860d1eef0acfa6), [(related thread)](https://github.com/qbittorrent/qBittorrent/issues/2192). * Keep the title **short** and provide a **clear** description about what your pull request does. * Provide **screenshots** for UI related changes. * Keep your git commit history **clean** and **precise**. Commits like `xxx fixup` should not appear. From 9e91cd70ee5854ce84a7a09d1f190f5dc278ba86 Mon Sep 17 00:00:00 2001 From: Gabriele Date: Fri, 11 Dec 2015 20:32:31 +0100 Subject: [PATCH 095/238] WebUI: Allow to remove the label assigned to a torrent Empty strings are not valid label names, but they are used to remove torrent labels, so allow them. --- src/webui/webapplication.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 1a61bff6d..534a66379 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -724,7 +724,7 @@ void WebApplication::action_command_setLabel() QStringList hashes = request().posts["hashes"].split("|"); QString label = request().posts["label"].trimmed(); - if (!Utils::Fs::isValidFileSystemName(label)) { + if (!Utils::Fs::isValidFileSystemName(label) && !label.isEmpty()) { status(400, "Labels must not contain special characters"); return; } From cf25ed3d80742b417f72eee60fc2a3377a0de45c Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 13 Jan 2016 19:12:31 +0300 Subject: [PATCH 096/238] Fix reconfigure additional trackers Replace wrong QList::empty() call with QList::clear() --- src/base/bittorrent/session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index aeaf4dde8..a4bb4b64f 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -576,7 +576,7 @@ void Session::configure() m_nativeSession->set_pe_settings(encryptionSettings); // * Add trackers - m_additionalTrackers.empty(); + m_additionalTrackers.clear(); if (pref->isAddTrackersEnabled()) { foreach (QString tracker, pref->getTrackersList().split("\n")) { tracker = tracker.trimmed(); From 4965704b1025a8029a2fe98ce099dec173525d21 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 13 Jan 2016 19:36:02 +0300 Subject: [PATCH 097/238] Fix NetworkCookieJar::deleteCookie() behavior to match Qt5 one --- src/base/net/downloadmanager.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/base/net/downloadmanager.cpp b/src/base/net/downloadmanager.cpp index fa8288f88..408733394 100644 --- a/src/base/net/downloadmanager.cpp +++ b/src/base/net/downloadmanager.cpp @@ -79,8 +79,19 @@ namespace virtual bool deleteCookie(const QNetworkCookie &cookie) { auto myCookies = allCookies(); - myCookies.removeAll(cookie); - setAllCookies(myCookies); + + QList::Iterator it; + for (it = myCookies.begin(); it != myCookies.end(); ++it) { + if ((it->name() == cookie.name()) + && (it->domain() == cookie.domain()) + && (it->path() == cookie.path())) { + myCookies.erase(it); + setAllCookies(myCookies); + return true; + } + } + + return false; } #endif From c6ca877b72bb372fb6a29bb732999bb2063ab2e6 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Wed, 13 Jan 2016 19:42:58 +0300 Subject: [PATCH 098/238] Fix unitialized scalar fields --- src/base/rss/rssdownloadrule.cpp | 1 + src/gui/search/searchwidget.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/base/rss/rssdownloadrule.cpp b/src/base/rss/rssdownloadrule.cpp index a7ef0bb2d..b3a505b46 100644 --- a/src/base/rss/rssdownloadrule.cpp +++ b/src/base/rss/rssdownloadrule.cpp @@ -44,6 +44,7 @@ DownloadRule::DownloadRule() : m_enabled(false) , m_useRegex(false) , m_apstate(USE_GLOBAL) + , m_ignoreDays(0) { } diff --git a/src/gui/search/searchwidget.cpp b/src/gui/search/searchwidget.cpp index e7e403933..465ac2d53 100644 --- a/src/gui/search/searchwidget.cpp +++ b/src/gui/search/searchwidget.cpp @@ -72,6 +72,9 @@ SearchWidget::SearchWidget(MainWindow *mainWindow) : QWidget(mainWindow) , m_mainWindow(mainWindow) + , m_isNewQueryString(false) + , m_noSearchResults(true) + , m_nbSearchResults(0) { setupUi(this); From 9bdd26de43d95e62007920e5914335e590f206a9 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 15 Jan 2016 08:50:36 +0300 Subject: [PATCH 099/238] Simplify Log::Msg and Log::Peer Also fixes some unitialized scalar field bugs. --- src/base/logger.cpp | 29 ++--------------------------- src/base/logger.h | 4 ---- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/src/base/logger.cpp b/src/base/logger.cpp index 29fb88f2f..d0a1e1220 100644 --- a/src/base/logger.cpp +++ b/src/base/logger.cpp @@ -2,31 +2,6 @@ #include -namespace Log -{ - Msg::Msg() {} - - Msg::Msg(int id, MsgType type, const QString &message) - : id(id) - , timestamp(QDateTime::currentMSecsSinceEpoch()) - , type(type) - , message(message) - { - } - - Peer::Peer() {} - - Peer::Peer(int id, const QString &ip, bool blocked, const QString &reason) - : id(id) - , timestamp(QDateTime::currentMSecsSinceEpoch()) - , ip(ip) - , blocked(blocked) - , reason(reason) - { - } - -} - Logger* Logger::m_instance = 0; Logger::Logger() @@ -61,7 +36,7 @@ void Logger::addMessage(const QString &message, const Log::MsgType &type) { QWriteLocker locker(&lock); - Log::Msg temp(msgCounter++, type, message); + Log::Msg temp = { msgCounter++, QDateTime::currentMSecsSinceEpoch(), type, message }; m_messages.push_back(temp); if (m_messages.size() >= MAX_LOG_MESSAGES) @@ -74,7 +49,7 @@ void Logger::addPeer(const QString &ip, bool blocked, const QString &reason) { QWriteLocker locker(&lock); - Log::Peer temp(peerCounter++, ip, blocked, reason); + Log::Peer temp = { peerCounter++, QDateTime::currentMSecsSinceEpoch(), ip, blocked, reason }; m_peers.push_back(temp); if (m_peers.size() >= MAX_LOG_MESSAGES) diff --git a/src/base/logger.h b/src/base/logger.h index 5520353f5..aaccebbc1 100644 --- a/src/base/logger.h +++ b/src/base/logger.h @@ -20,8 +20,6 @@ namespace Log struct Msg { - Msg(); - Msg(int id, MsgType type, const QString &message); int id; qint64 timestamp; MsgType type; @@ -30,8 +28,6 @@ namespace Log struct Peer { - Peer(int id, const QString &ip, bool blocked, const QString &reason); - Peer(); int id; qint64 timestamp; QString ip; From ea8acf3bbd4caa7588221fb243438cb4097ef380 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 15 Jan 2016 09:44:10 +0300 Subject: [PATCH 100/238] Fix unitialized scalar field bugs --- src/base/bittorrent/torrentcreatorthread.cpp | 3 +++ src/base/net/smtp.cpp | 1 + src/webui/abstractwebapplication.cpp | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/base/bittorrent/torrentcreatorthread.cpp b/src/base/bittorrent/torrentcreatorthread.cpp index 548836500..ea82c44e1 100644 --- a/src/base/bittorrent/torrentcreatorthread.cpp +++ b/src/base/bittorrent/torrentcreatorthread.cpp @@ -60,6 +60,9 @@ bool fileFilter(const std::string &f) TorrentCreatorThread::TorrentCreatorThread(QObject *parent) : QThread(parent) + , m_private(false) + , m_pieceSize(0) + , m_abort(false) { } diff --git a/src/base/net/smtp.cpp b/src/base/net/smtp.cpp index e232beeb4..23485e18f 100644 --- a/src/base/net/smtp.cpp +++ b/src/base/net/smtp.cpp @@ -96,6 +96,7 @@ Smtp::Smtp(QObject *parent) : QObject(parent) , m_state(Init) , m_useSsl(false) + , m_authType(AuthPlain) { #ifndef QT_NO_OPENSSL m_socket = new QSslSocket(this); diff --git a/src/webui/abstractwebapplication.cpp b/src/webui/abstractwebapplication.cpp index 131dd2ee3..e9d88d754 100644 --- a/src/webui/abstractwebapplication.cpp +++ b/src/webui/abstractwebapplication.cpp @@ -68,6 +68,7 @@ struct WebSession WebSession(const QString& id) : id(id) { + updateTimestamp(); } void updateTimestamp() @@ -349,7 +350,6 @@ bool AbstractWebApplication::sessionStart() { if (session_ == 0) { session_ = new WebSession(generateSid()); - session_->updateTimestamp(); sessions_[session_->id] = session_; QNetworkCookie cookie(C_SID, session_->id.toUtf8()); From a203246e85023c3d71369419336a4f92bb9a65bc Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 15 Jan 2016 09:50:29 +0300 Subject: [PATCH 101/238] Fix unitialized pointer field --- src/gui/rss/feedlistwidget.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/rss/feedlistwidget.cpp b/src/gui/rss/feedlistwidget.cpp index 6f00ffcbd..28feef1d2 100644 --- a/src/gui/rss/feedlistwidget.cpp +++ b/src/gui/rss/feedlistwidget.cpp @@ -34,7 +34,11 @@ #include "guiiconprovider.h" #include "feedlistwidget.h" -FeedListWidget::FeedListWidget(QWidget *parent, const Rss::ManagerPtr& rssmanager): QTreeWidget(parent), m_rssManager(rssmanager) { +FeedListWidget::FeedListWidget(QWidget *parent, const Rss::ManagerPtr& rssmanager) + : QTreeWidget(parent) + , m_rssManager(rssmanager) + , m_currentFeed(nullptr) +{ setContextMenuPolicy(Qt::CustomContextMenu); setDragDropMode(QAbstractItemView::InternalMove); setSelectionMode(QAbstractItemView::ExtendedSelection); From a35cbdc4a9e1e40258fcb25c6c0b4759d5942037 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 15 Jan 2016 11:32:16 +0300 Subject: [PATCH 102/238] Fix unchecked dynamic_cast Replace some unnecessary (and slow) dynamic_cast with static_cast. --- src/gui/torrentcontentmodel.cpp | 9 ++++++--- src/gui/transferlistsortmodel.cpp | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index ac4269048..8faf800bd 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -167,9 +167,12 @@ TorrentContentModelItem::ItemType TorrentContentModel::itemType(const QModelInde int TorrentContentModel::getFileIndex(const QModelIndex& index) { - TorrentContentModelFile* item = dynamic_cast(static_cast(index.internalPointer())); - Q_ASSERT(item); - return item->fileIndex(); + TorrentContentModelItem *item = static_cast(index.internalPointer()); + if (item->itemType() == TorrentContentModelItem::FileType) + return static_cast(item)->fileIndex(); + + Q_ASSERT(item->itemType() == TorrentContentModelItem::FileType); + return -1; } QVariant TorrentContentModel::data(const QModelIndex& index, int role) const diff --git a/src/gui/transferlistsortmodel.cpp b/src/gui/transferlistsortmodel.cpp index 658563f37..4e7f97c92 100644 --- a/src/gui/transferlistsortmodel.cpp +++ b/src/gui/transferlistsortmodel.cpp @@ -191,7 +191,7 @@ bool TransferListSortModel::lessThan(const QModelIndex &left, const QModelIndex bool TransferListSortModel::lowerPositionThan(const QModelIndex &left, const QModelIndex &right) const { - const TorrentModel *model = dynamic_cast(sourceModel()); + const TorrentModel *model = static_cast(sourceModel()); // Sort according to TR_PRIORITY const int queueL = model->data(model->index(left.row(), TorrentModel::TR_PRIORITY)).toInt(); From e8789dcd0279ae581823b01ef05482cdc20aefa8 Mon Sep 17 00:00:00 2001 From: buinsky Date: Fri, 15 Jan 2016 16:36:33 +0300 Subject: [PATCH 103/238] WebUI: Remember last opened tab --- src/webui/www/public/scripts/client.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index 28bb878b9..0cb389998 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -532,6 +532,7 @@ window.addEvent('load', function () { $('prop_files').addClass("invisible"); $('prop_peers').addClass("invisible"); updatePropertiesPanel(); + localStorage.setItem('selected_tab', this.id); }); $('PropTrackersLink').addEvent('click', function(e){ @@ -541,6 +542,7 @@ window.addEvent('load', function () { $('prop_files').addClass("invisible"); $('prop_peers').addClass("invisible"); updatePropertiesPanel(); + localStorage.setItem('selected_tab', this.id); }); $('PropPeersLink').addEvent('click', function(e){ @@ -550,6 +552,7 @@ window.addEvent('load', function () { $('prop_webseeds').addClass("invisible"); $('prop_files').addClass("invisible"); updatePropertiesPanel(); + localStorage.setItem('selected_tab', this.id); }); $('PropWebSeedsLink').addEvent('click', function(e){ @@ -559,6 +562,7 @@ window.addEvent('load', function () { $('prop_files').addClass("invisible"); $('prop_peers').addClass("invisible"); updatePropertiesPanel(); + localStorage.setItem('selected_tab', this.id); }); $('PropFilesLink').addEvent('click', function(e){ @@ -568,11 +572,14 @@ window.addEvent('load', function () { $('prop_webseeds').addClass("invisible"); $('prop_peers').addClass("invisible"); updatePropertiesPanel(); + localStorage.setItem('selected_tab', this.id); }); $('propertiesPanel_collapseToggle').addEvent('click', function(e){ updatePropertiesPanel(); }); + + $(getLocalStorageItem('selected_tab', 'PropGeneralLink')).click(); }, column : 'mainColumn', height : prop_h From 4f016605912ab67f0a350f0b3a87eff3c799bd39 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Sun, 13 Dec 2015 15:38:19 +0300 Subject: [PATCH 104/238] Perform fastresume data saving in separate thread Closes #4315 --- src/base/base.pri | 2 + .../private/resumedatasavingmanager.cpp | 54 +++++++++++++++++++ .../private/resumedatasavingmanager.h | 50 +++++++++++++++++ src/base/bittorrent/session.cpp | 44 ++++++++------- src/base/bittorrent/session.h | 6 ++- 5 files changed, 132 insertions(+), 24 deletions(-) create mode 100644 src/base/bittorrent/private/resumedatasavingmanager.cpp create mode 100644 src/base/bittorrent/private/resumedatasavingmanager.h diff --git a/src/base/base.pri b/src/base/base.pri index b38caa601..e5edf06e4 100644 --- a/src/base/base.pri +++ b/src/base/base.pri @@ -36,6 +36,7 @@ HEADERS += \ $$PWD/bittorrent/private/bandwidthscheduler.h \ $$PWD/bittorrent/private/filterparserthread.h \ $$PWD/bittorrent/private/statistics.h \ + $$PWD/bittorrent/private/resumedatasavingmanager.h \ $$PWD/rss/rssmanager.h \ $$PWD/rss/rssfeed.h \ $$PWD/rss/rssfolder.h \ @@ -87,6 +88,7 @@ SOURCES += \ $$PWD/bittorrent/private/bandwidthscheduler.cpp \ $$PWD/bittorrent/private/filterparserthread.cpp \ $$PWD/bittorrent/private/statistics.cpp \ + $$PWD/bittorrent/private/resumedatasavingmanager.cpp \ $$PWD/rss/rssmanager.cpp \ $$PWD/rss/rssfeed.cpp \ $$PWD/rss/rssfolder.cpp \ diff --git a/src/base/bittorrent/private/resumedatasavingmanager.cpp b/src/base/bittorrent/private/resumedatasavingmanager.cpp new file mode 100644 index 000000000..17928eaff --- /dev/null +++ b/src/base/bittorrent/private/resumedatasavingmanager.cpp @@ -0,0 +1,54 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +#include +#include + +#include "base/utils/fs.h" +#include "resumedatasavingmanager.h" + +ResumeDataSavingManager::ResumeDataSavingManager(const QString &resumeFolderPath) + : m_resumeDataDir(resumeFolderPath) +{ +} + +void ResumeDataSavingManager::saveResumeData(QString infoHash, QByteArray data, int priority) const +{ + QStringList filters(QString("%1.fastresume.*").arg(infoHash)); + const QStringList files = m_resumeDataDir.entryList(filters, QDir::Files, QDir::Unsorted); + foreach (const QString &file, files) + Utils::Fs::forceRemove(m_resumeDataDir.absoluteFilePath(file)); + + QString filename = QString("%1.fastresume.%2").arg(infoHash).arg(priority); + QString filepath = m_resumeDataDir.absoluteFilePath(filename); + + qDebug() << "Saving resume data in" << filepath; + QFile resumeFile(filepath); + if (resumeFile.open(QIODevice::WriteOnly)) + resumeFile.write(data); +} diff --git a/src/base/bittorrent/private/resumedatasavingmanager.h b/src/base/bittorrent/private/resumedatasavingmanager.h new file mode 100644 index 000000000..dae12d40a --- /dev/null +++ b/src/base/bittorrent/private/resumedatasavingmanager.h @@ -0,0 +1,50 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 Vladimir Golovnev + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +#ifndef RESUMEDATASAVINGMANAGER_H +#define RESUMEDATASAVINGMANAGER_H + +#include +#include +#include + +class ResumeDataSavingManager: public QObject +{ + Q_OBJECT + +public: + explicit ResumeDataSavingManager(const QString &resumeFolderPath); + +public slots: + void saveResumeData(QString infoHash, QByteArray data, int priority) const; + +private: + QDir m_resumeDataDir; +}; + +#endif // RESUMEDATASAVINGMANAGER_H diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index a4bb4b64f..50b3a1964 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -43,6 +43,7 @@ using namespace BitTorrent; #include #include #include +#include #include #include @@ -80,6 +81,7 @@ using namespace BitTorrent; #include "private/filterparserthread.h" #include "private/statistics.h" #include "private/bandwidthscheduler.h" +#include "private/resumedatasavingmanager.h" #include "trackerentry.h" #include "tracker.h" #include "magneturi.h" @@ -205,6 +207,11 @@ Session::Session(QObject *parent) connect(&m_networkManager, SIGNAL(configurationRemoved(const QNetworkConfiguration&)), SLOT(networkConfigurationChange(const QNetworkConfiguration&))); connect(&m_networkManager, SIGNAL(configurationChanged(const QNetworkConfiguration&)), SLOT(networkConfigurationChange(const QNetworkConfiguration&))); + m_ioThread = new QThread(this); + m_resumeDataSavingManager = new ResumeDataSavingManager(m_resumeFolderPath); + m_resumeDataSavingManager->moveToThread(m_ioThread); + connect(m_ioThread, SIGNAL(finished()), m_resumeDataSavingManager, SLOT(deleteLater())); + m_ioThread->start(); m_resumeDataTimer->start(); // initialize PortForwarder instance @@ -282,6 +289,9 @@ Session::~Session() qDebug("Deleting the session"); delete m_nativeSession; + m_ioThread->quit(); + m_ioThread->wait(); + m_resumeFolderLock.close(); m_resumeFolderLock.remove(); } @@ -1710,7 +1720,17 @@ void Session::handleTorrentFinished(TorrentHandle *const torrent) void Session::handleTorrentResumeDataReady(TorrentHandle *const torrent, const libtorrent::entry &data) { --m_numResumeData; - writeResumeDataFile(torrent, data); + + // Separated thread is used for the blocking IO which results in slow processing of many torrents. + // Encoding data in parallel while doing IO saves time. Copying libtorrent::entry objects around + // isn't cheap too. + + QByteArray out; + libt::bencode(std::back_inserter(out), data); + + QMetaObject::invokeMethod(m_resumeDataSavingManager, "saveResumeData", + Q_ARG(QString, torrent->hash()), Q_ARG(QByteArray, out), + Q_ARG(int, torrent->queuePosition())); } void Session::handleTorrentResumeDataFailed(TorrentHandle *const torrent) @@ -2356,28 +2376,6 @@ bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, MagnetUr return true; } -bool Session::writeResumeDataFile(TorrentHandle *const torrent, const libt::entry &data) -{ - const QDir resumeDataDir(m_resumeFolderPath); - - QStringList filters(QString("%1.fastresume.*").arg(torrent->hash())); - const QStringList files = resumeDataDir.entryList(filters, QDir::Files, QDir::Unsorted); - foreach (const QString &file, files) - Utils::Fs::forceRemove(resumeDataDir.absoluteFilePath(file)); - - QString filename = QString("%1.fastresume.%2").arg(torrent->hash()).arg(torrent->queuePosition()); - QString filepath = resumeDataDir.absoluteFilePath(filename); - - qDebug("Saving resume data in %s", qPrintable(filepath)); - QFile resumeFile(filepath); - QVector out; - libt::bencode(std::back_inserter(out), data); - if (resumeFile.open(QIODevice::WriteOnly)) - return (resumeFile.write(&out[0], out.size()) == out.size()); - - return false; -} - void torrentQueuePositionUp(const libt::torrent_handle &handle) { try { diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index ee945512b..b7eb20b65 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -86,6 +86,7 @@ namespace libtorrent struct external_ip_alert; } +class QThread; class QTimer; class QStringList; class QString; @@ -95,6 +96,7 @@ template class QList; class FilterParserThread; class BandwidthScheduler; class Statistics; +class ResumeDataSavingManager; typedef QPair QStringPair; @@ -314,7 +316,6 @@ namespace BitTorrent void handleExternalIPAlert(libtorrent::external_ip_alert *p); void saveResumeData(); - bool writeResumeDataFile(TorrentHandle *const torrent, const libtorrent::entry &data); void dispatchAlerts(std::auto_ptr alertPtr); void getPendingAlerts(QVector &out, ulong time = 0); @@ -355,6 +356,9 @@ namespace BitTorrent QPointer m_bwScheduler; // Tracker QPointer m_tracker; + // fastresume data writing thread + QThread *m_ioThread; + ResumeDataSavingManager *m_resumeDataSavingManager; QHash m_loadedMetadata; QHash m_torrents; From a5780dd66ca45fbbd0f12218a12f774f7a7bb4e6 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Wed, 16 Dec 2015 17:08:27 +0300 Subject: [PATCH 105/238] Switch to using previous fastresume file names --- src/app/upgrade.h | 78 +++++++++++------- .../private/resumedatasavingmanager.cpp | 9 +-- .../private/resumedatasavingmanager.h | 2 +- src/base/bittorrent/session.cpp | 79 +++++++++++-------- src/base/bittorrent/torrenthandle.cpp | 1 + 5 files changed, 98 insertions(+), 71 deletions(-) diff --git a/src/app/upgrade.h b/src/app/upgrade.h index 82ea229fb..c92af216c 100644 --- a/src/app/upgrade.h +++ b/src/app/upgrade.h @@ -36,6 +36,7 @@ #include #include #include +#include #ifndef DISABLE_GUI #include #endif @@ -76,7 +77,7 @@ bool userAcceptsUpgrade() return false; } -bool upgradeResumeFile(const QString &filepath, const QVariantHash &oldTorrent, int &maxPrio) +bool upgradeResumeFile(const QString &filepath, const QVariantHash &oldTorrent = QVariantHash()) { QFile file1(filepath); if (!file1.open(QIODevice::ReadOnly)) @@ -93,19 +94,32 @@ bool upgradeResumeFile(const QString &filepath, const QVariantHash &oldTorrent, libtorrent::entry fastNew; fastNew = fastOld; - int priority = fastOld.dict_find_int_value("qBt-queuePosition"); - if (priority > maxPrio) - maxPrio = priority; + bool v3_3 = false; + int queuePosition = 0; + QString outFilePath = filepath; + QRegExp rx(QLatin1String("([A-Fa-f0-9]{40})\\.fastresume\\.(\\d+)$")); + if (rx.indexIn(filepath) != -1) { + // old v3.3.x format + queuePosition = rx.cap(2).toInt(); + v3_3 = true; + outFilePath.replace(QRegExp("\\.\\d+$"), ""); + } + else { + queuePosition = fastOld.dict_find_int_value("qBt-queuePosition", 0); + fastNew["qBt-name"] = Utils::String::toStdString(oldTorrent.value("name").toString()); + fastNew["qBt-tempPathDisabled"] = false; + } - fastNew["qBt-name"] = Utils::String::toStdString(oldTorrent.value("name").toString()); - fastNew["qBt-tempPathDisabled"] = false; + // in versions < 3.3 we have -1 for seeding torrents, so we convert it to 0 + fastNew["qBt-queuePosition"] = (queuePosition >= 0 ? queuePosition : 0); - QFile file2(QString("%1.%2").arg(filepath).arg(priority > 0 ? priority : 0)); + QFile file2(outFilePath); QVector out; libtorrent::bencode(std::back_inserter(out), fastNew); if (file2.open(QIODevice::WriteOnly)) { if (file2.write(&out[0], out.size()) == out.size()) { - Utils::Fs::forceRemove(filepath); + if (v3_3) + Utils::Fs::forceRemove(filepath); return true; } } @@ -118,26 +132,35 @@ bool upgrade(bool ask = true) // Move RSS cookies to common storage Preferences::instance()->moveRSSCookies(); + QString backupFolderPath = Utils::Fs::expandPathAbs(Utils::Fs::QDesktopServicesDataLocation() + "BT_backup"); + QDir backupFolderDir(backupFolderPath); + + // **************************************************************************************** + // Silently converts old v3.3.x .fastresume files + QStringList backupFiles_3_3 = backupFolderDir.entryList( + QStringList(QLatin1String("*.fastresume.*")), QDir::Files, QDir::Unsorted); + foreach (const QString &backupFile, backupFiles_3_3) + upgradeResumeFile(backupFolderDir.absoluteFilePath(backupFile)); + // **************************************************************************************** + QIniSettings *oldResumeSettings = new QIniSettings("qBittorrent", "qBittorrent-resume"); QString oldResumeFilename = oldResumeSettings->fileName(); QVariantHash oldResumeData = oldResumeSettings->value("torrents").toHash(); delete oldResumeSettings; - bool oldResumeWasEmpty = oldResumeData.isEmpty(); - if (oldResumeWasEmpty) + + if (oldResumeData.isEmpty()) { Utils::Fs::forceRemove(oldResumeFilename); + return true; + } - - QString backupFolderPath = Utils::Fs::expandPathAbs(Utils::Fs::QDesktopServicesDataLocation() + "BT_backup"); - QDir backupFolderDir(backupFolderPath); - QStringList backupFiles = backupFolderDir.entryList(QStringList() << QLatin1String("*.fastresume"), QDir::Files, QDir::Unsorted); - if (backupFiles.isEmpty() && oldResumeWasEmpty) return true; if (ask && !userAcceptsUpgrade()) return false; - int maxPrio = 0; + QStringList backupFiles = backupFolderDir.entryList( + QStringList(QLatin1String("*.fastresume")), QDir::Files, QDir::Unsorted); QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$")); foreach (QString backupFile, backupFiles) { if (rx.indexIn(backupFile) != -1) { - if (upgradeResumeFile(backupFolderDir.absoluteFilePath(backupFile), oldResumeData[rx.cap(1)].toHash(), maxPrio)) + if (upgradeResumeFile(backupFolderDir.absoluteFilePath(backupFile), oldResumeData[rx.cap(1)].toHash())) oldResumeData.remove(rx.cap(1)); else Logger::instance()->addMessage(QObject::tr("Couldn't migrate torrent with hash: %1").arg(rx.cap(1)), Log::WARNING); @@ -162,7 +185,10 @@ bool upgrade(bool ask = true) resumeData["qBt-seedStatus"] = oldTorrent.value("seed").toBool(); resumeData["qBt-tempPathDisabled"] = false; - QString filename = QString("%1.fastresume.%2").arg(hash).arg(++maxPrio); + int queuePosition = oldTorrent.value("priority", 0).toInt(); + resumeData["qBt-queuePosition"] = (queuePosition >= 0 ? queuePosition : 0); + + QString filename = QString("%1.fastresume").arg(hash); QString filepath = backupFolderDir.absoluteFilePath(filename); QFile resumeFile(filepath); @@ -173,17 +199,13 @@ bool upgrade(bool ask = true) } } - if (!oldResumeWasEmpty) { - int counter = 0; - QString backupResumeFilename = oldResumeFilename + ".bak"; - - while (QFile::exists(backupResumeFilename)) { - ++counter; - backupResumeFilename = oldResumeFilename + ".bak" + QString::number(counter); - } - - QFile::rename(oldResumeFilename, backupResumeFilename); + int counter = 0; + QString backupResumeFilename = oldResumeFilename + ".bak"; + while (QFile::exists(backupResumeFilename)) { + ++counter; + backupResumeFilename = oldResumeFilename + ".bak" + QString::number(counter); } + QFile::rename(oldResumeFilename, backupResumeFilename); return true; } diff --git a/src/base/bittorrent/private/resumedatasavingmanager.cpp b/src/base/bittorrent/private/resumedatasavingmanager.cpp index 17928eaff..c32a1f65a 100644 --- a/src/base/bittorrent/private/resumedatasavingmanager.cpp +++ b/src/base/bittorrent/private/resumedatasavingmanager.cpp @@ -37,14 +37,9 @@ ResumeDataSavingManager::ResumeDataSavingManager(const QString &resumeFolderPath { } -void ResumeDataSavingManager::saveResumeData(QString infoHash, QByteArray data, int priority) const +void ResumeDataSavingManager::saveResumeData(QString infoHash, QByteArray data) const { - QStringList filters(QString("%1.fastresume.*").arg(infoHash)); - const QStringList files = m_resumeDataDir.entryList(filters, QDir::Files, QDir::Unsorted); - foreach (const QString &file, files) - Utils::Fs::forceRemove(m_resumeDataDir.absoluteFilePath(file)); - - QString filename = QString("%1.fastresume.%2").arg(infoHash).arg(priority); + QString filename = QString("%1.fastresume").arg(infoHash); QString filepath = m_resumeDataDir.absoluteFilePath(filename); qDebug() << "Saving resume data in" << filepath; diff --git a/src/base/bittorrent/private/resumedatasavingmanager.h b/src/base/bittorrent/private/resumedatasavingmanager.h index dae12d40a..08bcfb0e2 100644 --- a/src/base/bittorrent/private/resumedatasavingmanager.h +++ b/src/base/bittorrent/private/resumedatasavingmanager.h @@ -41,7 +41,7 @@ public: explicit ResumeDataSavingManager(const QString &resumeFolderPath); public slots: - void saveResumeData(QString infoHash, QByteArray data, int priority) const; + void saveResumeData(QString infoHash, QByteArray data) const; private: QDir m_resumeDataDir; diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 50b3a1964..22c6ca099 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -97,7 +97,7 @@ namespace libt = libtorrent; using namespace BitTorrent; static bool readFile(const QString &path, QByteArray &buf); -static bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, MagnetUri &magnetUri); +static bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, int &prio, MagnetUri &magnetUri); static void torrentQueuePositionUp(const libt::torrent_handle &handle); static void torrentQueuePositionDown(const libt::torrent_handle &handle); @@ -1729,8 +1729,7 @@ void Session::handleTorrentResumeDataReady(TorrentHandle *const torrent, const l libt::bencode(std::back_inserter(out), data); QMetaObject::invokeMethod(m_resumeDataSavingManager, "saveResumeData", - Q_ARG(QString, torrent->hash()), Q_ARG(QByteArray, out), - Q_ARG(int, torrent->queuePosition())); + Q_ARG(QString, torrent->hash()), Q_ARG(QByteArray, out)); } void Session::handleTorrentResumeDataFailed(TorrentHandle *const torrent) @@ -1897,48 +1896,56 @@ void Session::startUpTorrents() const QDir resumeDataDir(m_resumeFolderPath); QStringList fastresumes = resumeDataDir.entryList( - QStringList(QLatin1String("*.fastresume.*")), QDir::Files, QDir::Unsorted); - - typedef QPair PrioHashPair; - typedef std::vector PrioHashVector; - typedef std::greater PrioHashGreater; - std::priority_queue torrentQueue; - // Fastresume file name format: - // .fastresume. - // E.g.: - // fc8a15a2faf2734dbb1dc5f7afdc5c9beaeb1f59.fastresume.2 - QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume\\.(\\d+)$")); - foreach (const QString &fastresume, fastresumes) { - if (rx.indexIn(fastresume) != -1) { - PrioHashPair p = qMakePair(rx.cap(2).toInt(), rx.cap(1)); - torrentQueue.push(p); - } - } + QStringList(QLatin1String("*.fastresume")), QDir::Files, QDir::Unsorted); QString filePath; Logger *const logger = Logger::instance(); - qDebug("Starting up torrents"); - qDebug("Priority queue size: %ld", (long)torrentQueue.size()); - // Resume downloads - while (!torrentQueue.empty()) { - const int prio = torrentQueue.top().first; - const QString hash = torrentQueue.top().second; - torrentQueue.pop(); + typedef struct + { + QString hash; + MagnetUri magnetUri; + AddTorrentData addTorrentData; + QByteArray data; + } TorrentResumeData; + qDebug("Starting up torrents"); + qDebug("Queue size: %d", fastresumes.size()); + // Resume downloads + QMap queuedResumeData; + QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$")); + foreach (const QString &fastresumeName, fastresumes) { + if (rx.indexIn(fastresumeName) == -1) continue; + + QString hash = rx.cap(1); QString fastresumePath = - resumeDataDir.absoluteFilePath(QString("%1.fastresume.%2").arg(hash).arg(prio)); + resumeDataDir.absoluteFilePath(fastresumeName); QByteArray data; AddTorrentData resumeData; MagnetUri magnetUri; - if (readFile(fastresumePath, data) && loadTorrentResumeData(data, resumeData, magnetUri)) { - filePath = resumeDataDir.filePath(QString("%1.torrent").arg(hash)); - qDebug("Starting up torrent %s ...", qPrintable(hash)); - if (!addTorrent_impl(resumeData, magnetUri, TorrentInfo::loadFromFile(filePath), data)) - logger->addMessage(tr("Unable to resume torrent '%1'.", "e.g: Unable to resume torrent 'hash'.") - .arg(Utils::Fs::toNativePath(hash)), Log::CRITICAL); + int queuePosition; + if (readFile(fastresumePath, data) && loadTorrentResumeData(data, resumeData, queuePosition, magnetUri)) { + if (queuePosition == 0) { + filePath = resumeDataDir.filePath(QString("%1.torrent").arg(hash)); + qDebug("Starting up torrent %s ...", qPrintable(hash)); + if (!addTorrent_impl(resumeData, magnetUri, TorrentInfo::loadFromFile(filePath), data)) + logger->addMessage(tr("Unable to resume torrent '%1'.", "e.g: Unable to resume torrent 'hash'.") + .arg(hash), Log::CRITICAL); + } + else { + queuedResumeData[queuePosition] = { hash, magnetUri, resumeData, data }; + } } } + + // starting up downloading torrents (queue position > 0) + foreach (const TorrentResumeData &torrentResumeData, queuedResumeData) { + filePath = resumeDataDir.filePath(QString("%1.torrent").arg(torrentResumeData.hash)); + qDebug("Starting up torrent %s ...", qPrintable(torrentResumeData.hash)); + if (!addTorrent_impl(torrentResumeData.addTorrentData, torrentResumeData.magnetUri, TorrentInfo::loadFromFile(filePath), torrentResumeData.data)) + logger->addMessage(tr("Unable to resume torrent '%1'.", "e.g: Unable to resume torrent 'hash'.") + .arg(torrentResumeData.hash), Log::CRITICAL); + } } quint64 Session::getAlltimeDL() const @@ -2351,7 +2358,7 @@ bool readFile(const QString &path, QByteArray &buf) return true; } -bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, MagnetUri &magnetUri) +bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, int &prio, MagnetUri &magnetUri) { out = AddTorrentData(); out.resumed = true; @@ -2373,6 +2380,8 @@ bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, MagnetUr out.addPaused = fast.dict_find_int_value("qBt-paused"); out.addForced = fast.dict_find_int_value("qBt-forced"); + prio = fast.dict_find_int_value("qBt-queuePosition"); + return true; } diff --git a/src/base/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp index 057f83a27..8aee9fff6 100644 --- a/src/base/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -1432,6 +1432,7 @@ void TorrentHandle::handleSaveResumeDataAlert(libtorrent::save_resume_data_alert resumeData["qBt-name"] = Utils::String::toStdString(m_name); resumeData["qBt-seedStatus"] = m_hasSeedStatus; resumeData["qBt-tempPathDisabled"] = m_tempPathDisabled; + resumeData["qBt-queuePosition"] = queuePosition(); m_session->handleTorrentResumeDataReady(this, resumeData); } From 245f424014d8a7c7bdc06e3b0dc3a6808bba73b0 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (qlassez)" Date: Thu, 17 Dec 2015 16:47:34 +0300 Subject: [PATCH 106/238] Optimize Session::startupTorrents() Reduce queue size by starting up initial items (torrents) when they are detected --- src/base/bittorrent/session.cpp | 39 +++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 22c6ca099..45b19f08f 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -1898,7 +1898,6 @@ void Session::startUpTorrents() QStringList fastresumes = resumeDataDir.entryList( QStringList(QLatin1String("*.fastresume")), QDir::Files, QDir::Unsorted); - QString filePath; Logger *const logger = Logger::instance(); typedef struct @@ -1909,28 +1908,41 @@ void Session::startUpTorrents() QByteArray data; } TorrentResumeData; + auto startupTorrent = [this, logger, resumeDataDir](const TorrentResumeData ¶ms) + { + QString filePath = resumeDataDir.filePath(QString("%1.torrent").arg(params.hash)); + qDebug() << "Starting up torrent" << params.hash << "..."; + if (!addTorrent_impl(params.addTorrentData, params.magnetUri, TorrentInfo::loadFromFile(filePath), params.data)) + logger->addMessage(tr("Unable to resume torrent '%1'.", "e.g: Unable to resume torrent 'hash'.") + .arg(params.hash), Log::CRITICAL); + }; + qDebug("Starting up torrents"); qDebug("Queue size: %d", fastresumes.size()); // Resume downloads QMap queuedResumeData; + int nextQueuePosition = 1; QRegExp rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$")); foreach (const QString &fastresumeName, fastresumes) { if (rx.indexIn(fastresumeName) == -1) continue; QString hash = rx.cap(1); - QString fastresumePath = - resumeDataDir.absoluteFilePath(fastresumeName); + QString fastresumePath = resumeDataDir.absoluteFilePath(fastresumeName); QByteArray data; AddTorrentData resumeData; MagnetUri magnetUri; int queuePosition; if (readFile(fastresumePath, data) && loadTorrentResumeData(data, resumeData, queuePosition, magnetUri)) { - if (queuePosition == 0) { - filePath = resumeDataDir.filePath(QString("%1.torrent").arg(hash)); - qDebug("Starting up torrent %s ...", qPrintable(hash)); - if (!addTorrent_impl(resumeData, magnetUri, TorrentInfo::loadFromFile(filePath), data)) - logger->addMessage(tr("Unable to resume torrent '%1'.", "e.g: Unable to resume torrent 'hash'.") - .arg(hash), Log::CRITICAL); + if (queuePosition <= nextQueuePosition) { + startupTorrent({ hash, magnetUri, resumeData, data }); + + if (queuePosition == nextQueuePosition) { + ++nextQueuePosition; + while (queuedResumeData.contains(nextQueuePosition)) { + startupTorrent(queuedResumeData.take(nextQueuePosition)); + ++nextQueuePosition; + } + } } else { queuedResumeData[queuePosition] = { hash, magnetUri, resumeData, data }; @@ -1939,13 +1951,8 @@ void Session::startUpTorrents() } // starting up downloading torrents (queue position > 0) - foreach (const TorrentResumeData &torrentResumeData, queuedResumeData) { - filePath = resumeDataDir.filePath(QString("%1.torrent").arg(torrentResumeData.hash)); - qDebug("Starting up torrent %s ...", qPrintable(torrentResumeData.hash)); - if (!addTorrent_impl(torrentResumeData.addTorrentData, torrentResumeData.magnetUri, TorrentInfo::loadFromFile(filePath), torrentResumeData.data)) - logger->addMessage(tr("Unable to resume torrent '%1'.", "e.g: Unable to resume torrent 'hash'.") - .arg(torrentResumeData.hash), Log::CRITICAL); - } + foreach (const TorrentResumeData &torrentResumeData, queuedResumeData) + startupTorrent(torrentResumeData); } quint64 Session::getAlltimeDL() const From 3a2bd3c9b1dacfa0d5f7a7ebd7711a513d273794 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 1 Jan 2016 16:17:10 +0300 Subject: [PATCH 107/238] Fix loading corrupted .fastresume file --- src/base/bittorrent/session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index a4bb4b64f..baa27a019 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -2340,7 +2340,7 @@ bool loadTorrentResumeData(const QByteArray &data, AddTorrentData &out, MagnetUr libt::lazy_entry fast; libt::error_code ec; libt::lazy_bdecode(data.constData(), data.constData() + data.size(), fast, ec); - if ((fast.type() != libt::lazy_entry::dict_t) && !ec) return false; + if (ec || (fast.type() != libt::lazy_entry::dict_t)) return false; out.savePath = Utils::Fs::fromNativePath(Utils::String::fromStdString(fast.dict_find_string_value("qBt-savePath"))); out.ratioLimit = Utils::String::fromStdString(fast.dict_find_string_value("qBt-ratioLimit")).toDouble(); From dbf430ac2ee5b36c3c70e5da65f1a259494ffc7b Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sun, 17 Jan 2016 10:11:55 +0300 Subject: [PATCH 108/238] Allow GeoIP in NoGUI builds --- src/src.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/src.pro b/src/src.pro index 73c537316..346757a01 100644 --- a/src/src.pro +++ b/src/src.pro @@ -21,7 +21,7 @@ os2: include(../os2conf.pri) nogui { QT -= gui - DEFINES += DISABLE_GUI DISABLE_COUNTRIES_RESOLUTION + DEFINES += DISABLE_GUI TARGET = qbittorrent-nox } else { QT += xml From 3df802cef7f8389aef9e1180096433adeddaea8c Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sun, 17 Jan 2016 10:12:55 +0300 Subject: [PATCH 109/238] Delete unused include --- src/base/bittorrent/session.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index a4bb4b64f..184c3f3c7 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -62,10 +62,6 @@ using namespace BitTorrent; #include //#include -#ifndef DISABLE_COUNTRIES_RESOLUTION -#include "base/net/geoipmanager.h" -#endif - #include "base/utils/misc.h" #include "base/utils/fs.h" #include "base/utils/string.h" From 3fa15eeb3590cd44961ea813fbcd9dba5861b3f6 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Tue, 19 Jan 2016 00:49:48 +0200 Subject: [PATCH 110/238] Sync translations from Transifex and run lupdate. --- src/lang/qbittorrent_ar.ts | 999 +++++------- src/lang/qbittorrent_be.ts | 1104 +++++--------- src/lang/qbittorrent_bg.ts | 2554 +++++++++++++++---------------- src/lang/qbittorrent_ca.ts | 1010 +++++------- src/lang/qbittorrent_cs.ts | 859 +++++------ src/lang/qbittorrent_da.ts | 821 +++++----- src/lang/qbittorrent_de.ts | 1121 +++++--------- src/lang/qbittorrent_el.ts | 825 +++++----- src/lang/qbittorrent_en.ts | 487 +++--- src/lang/qbittorrent_en_AU.ts | 821 +++++----- src/lang/qbittorrent_en_GB.ts | 821 +++++----- src/lang/qbittorrent_eo.ts | 914 +++++------ src/lang/qbittorrent_es.ts | 1122 +++++--------- src/lang/qbittorrent_eu.ts | 1120 +++++--------- src/lang/qbittorrent_fi.ts | 821 +++++----- src/lang/qbittorrent_fr.ts | 1253 +++++++-------- src/lang/qbittorrent_gl.ts | 1121 +++++--------- src/lang/qbittorrent_he.ts | 849 +++++------ src/lang/qbittorrent_hi_IN.ts | 781 +++++----- src/lang/qbittorrent_hr.ts | 2712 ++++++++++++++++----------------- src/lang/qbittorrent_hu.ts | 1021 +++++-------- src/lang/qbittorrent_hy.ts | 802 +++++----- src/lang/qbittorrent_id.ts | 1224 ++++++--------- src/lang/qbittorrent_it.ts | 1069 +++++-------- src/lang/qbittorrent_ja.ts | 1137 +++++--------- src/lang/qbittorrent_ka.ts | 788 +++++----- src/lang/qbittorrent_ko.ts | 1024 +++++-------- src/lang/qbittorrent_lt.ts | 1016 +++++------- src/lang/qbittorrent_nb.ts | 1120 +++++--------- src/lang/qbittorrent_nl.ts | 1120 +++++--------- src/lang/qbittorrent_pl.ts | 1346 +++++++--------- src/lang/qbittorrent_pt.ts | 1028 +++++-------- src/lang/qbittorrent_pt_BR.ts | 1026 +++++-------- src/lang/qbittorrent_ro.ts | 1228 ++++++--------- src/lang/qbittorrent_ru.ts | 1191 ++++++--------- src/lang/qbittorrent_sk.ts | 1022 +++++-------- src/lang/qbittorrent_sl.ts | 891 +++++------ src/lang/qbittorrent_sr.ts | 788 +++++----- src/lang/qbittorrent_sv.ts | 877 +++++------ src/lang/qbittorrent_tr.ts | 1124 +++++--------- src/lang/qbittorrent_uk.ts | 1024 +++++-------- src/lang/qbittorrent_vi.ts | 1085 ++++++------- src/lang/qbittorrent_zh.ts | 1120 +++++--------- src/lang/qbittorrent_zh_HK.ts | 1121 +++++--------- src/lang/qbittorrent_zh_TW.ts | 1120 +++++--------- 45 files changed, 19300 insertions(+), 29127 deletions(-) diff --git a/src/lang/qbittorrent_ar.ts b/src/lang/qbittorrent_ar.ts index bfe881947..f5d685e81 100644 --- a/src/lang/qbittorrent_ar.ts +++ b/src/lang/qbittorrent_ar.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] النمط المجهول [يعمل] - + Anonymous mode [OFF] النمط المجهول [متوقف] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] دعم اكتشاف القرناء المحليين [يعمل] - + Local Peer Discovery support [OFF] دعم اكتشاف القرناء المحليين [متوقف] - + Encryption support [ON] دعم التشفير [يعمل] - + Encryption support [FORCED] دعم التشفير [بالقوة] - + Encryption support [OFF] دعم التشفير [متوقف] - + Embedded Tracker [ON] المتتبع الداخلي [يعمل] - + Failed to start the embedded tracker! فشل محاولة تشغيل المتتبع الداخلي! - + Embedded Tracker [OFF] المتتبع الداخلي [متوقف] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE متصل - + OFFLINE غير متصل - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' لا يمكن حفظ '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... يجري تنزيل "%1"، يرجى الانتظار... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number تمت معالجة قائمة الحظر المعطاة بنجاح: %1 تم تطبيقها. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread غير مقروء @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link حمل تورنت من رابط او مغناطيس - + Only one link per line رابط واحد لكل سطر - + Download تنزيل - + Global upload rate limit must be greater than 0 or disabled. مُعدل حد الرفع العام يجب أن يكون أكبر من 0 أو معطل. - + Global download rate limit must be greater than 0 or disabled. مُعدل حد التنزيل العام يجب أن يكون أكبر من 0 أو معطل. - + Alternative upload rate limit must be greater than 0 or disabled. مُعدل حد الرفع البديل يجب أن يكون أكبر من 0 أو معطل. - + Alternative download rate limit must be greater than 0 or disabled. مُعدل حد التنزيل البديل يجب أن يكون أكبر من 0 أو معطل. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. أقصى عدد من الاتصالات يجب أن يكون أكبر من 0 أو معطل. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. أقصى عدد من الاتصالات لكل تورنت يجب أن يكون أكبر من 0 أو معطل. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. أقصى عدد من مقاطع الرفع لكل تورنت يجب أن يكون أكبر من 0 أو معطل. - + Unable to save program preferences, qBittorrent is probably unreachable. لا يمكن حفظ تفضيلات البرنامج, والسبب على الأرجح هو عدم إمكانية الوصول إلى البرنامج. - + Language اللغة - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. اسم مستخدم أو كلمة سر غير صحيحة. - + Password كلمة السر - + Login ولوج - + Upload Failed! فشل الرفع! - + Original authors المؤلفين الأصليين - + Upload limit: حد الرفع: - + Download limit: حد التنزيل: - + Apply تطبيق - + Add إضافة - + Upload Torrents رفع التورنتات - + All الكل - + Downloading التنزيل - + Seeding البذر - + Completed المكتمل - + Resumed المُستأنف - + Paused المُلبث - + Active النشط - + Inactive الغير نشط - + Save files to location: حفظ الملفات إلى المجلد: - + Label: التصنيف: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + كل يوم + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? تم تنزيله @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. خروج - + Upload local torrent رفع تورنت محلي - + Are you sure you want to delete the selected torrents from the transfer list? هل أنت متأكد من رغبتك في حذف التورنتات المختارة من قائمة النقل؟ - + The Web UI username must be at least 3 characters long. اسم المستخدم يجب ان يحتوي على 3 احرف على الاقل. - + The Web UI password must be at least 3 characters long. كلمة السر يجب أن تحتوي على 3 أحرف على الأقل. - + Save حفظ - + qBittorrent client is not reachable تعذّر الوصول إلى عميل كيوبت‎تورنت - + HTTP Server خادم HTTP - + The following parameters are supported: العوامل الآتية هي المدعومة: - + Torrent path مسار التورنت - + Torrent name اسم التورنت - + qBittorrent has been shutdown. تم اغلاق البرنامج @@ -2278,12 +2401,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - توجد إصدارة جديدة متاحة. -التحديث للإصدارة %1 ؟ - No updates available. @@ -2497,14 +2614,6 @@ Are you sure you want to quit qBittorrent? N/A غير موجود - - Asia/Pacific Region - آسيا / المحيط الهادئ - - - Europe - أوروبا - Andorra @@ -2540,10 +2649,6 @@ Are you sure you want to quit qBittorrent? Armenia أرمينيا - - Netherlands Antilles - جزر الأنتيل الهولندية - Angola @@ -2639,10 +2744,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam بروناي دار السلام - - Bolivia - بوليفيا - Brazil @@ -2708,10 +2809,6 @@ Are you sure you want to quit qBittorrent? Switzerland سويسرا - - Cote D'Ivoire - ساحل العاج - Cook Islands @@ -2867,10 +2964,6 @@ Are you sure you want to quit qBittorrent? France فرنسا - - France, Metropolitan - فرنسا، متروبوليتان - Gabon @@ -3156,10 +3249,6 @@ Are you sure you want to quit qBittorrent? Latvia لاتفيا - - Libyan Arab Jamahiriya - الجماهيرية العربية الليبية - Morocco @@ -3185,10 +3274,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands جزر مارشال - - Macedonia - مقدونيا - Mali @@ -3204,10 +3289,6 @@ Are you sure you want to quit qBittorrent? Mongolia منغوليا - - Macau - ماكاو - Northern Mariana Islands @@ -3368,19 +3449,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon سان بيار وميكلون - - Pitcairn Islands - جزر بيتكيرن - Puerto Rico بورتوريكو - - Palestinian Territory - الأراضي الفلسطينية - Portugal @@ -3451,10 +3524,6 @@ Are you sure you want to quit qBittorrent? Singapore سنغافورة - - Saint Helena - سانت هيلانة - Slovenia @@ -3695,10 +3764,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines سانت فنسنت وجزر غرينادين - - Venezuela - فنزويلا - Virgin Islands, British @@ -3709,10 +3774,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. جزر فيرجن الأمريكية. - - Vietnam - فيتنام - Vanuatu @@ -3763,10 +3824,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe زيمبابوي - - Other - أخرى - Aland Islands @@ -3792,10 +3849,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy سانت بارتيليمي - - Saint Martin - سانت مارتن - Could not uncompress GeoIP database file. @@ -3833,7 +3886,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4085,7 +4138,7 @@ Are you sure you want to quit qBittorrent? Search plugins - ملحقات البحث + @@ -4100,43 +4153,43 @@ Are you sure you want to quit qBittorrent? Version - الإصدارة + Url - الرابط + Enabled - ممكن + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - تستطيع الحصول على محركات بحث جديدة من هنا:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - تثبيت واحد جديد + Check for updates - ابحث عن تحديثات + Close - أغلق + Uninstall - إزالة + @@ -4156,69 +4209,67 @@ Are you sure you want to quit qBittorrent? Uninstall warning - تحذير إزالة + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - لا يمكن إزالة بعض الملحقات لأنها تأتي مضمنة في البرنامج. -يمكن إزالة الملحقات التي أضفتها بنفسك فقط.. -على كل حال، تم تعطيل هذه الملحقات. + Uninstall success - نجاح الإزالة + All selected plugins were uninstalled successfully - تمت إزالة جميع الملحقات المختارة بنجاح + New search engine plugin URL - رابط محرك بحث جديد + URL: - الرابط: + Invalid link - رابط غير صالح + The link doesn't seem to point to a search engine plugin. - الرابط لا يبدو أنه يشير إلى مُلحقة محرك بحث. + Select search plugins - اختر ملحقات البحث + qBittorrent search plugin - ملحقة بحث كيوبت‎تورنت + Search plugin update - تحديث ملحقات البحث + All your plugins are already up to date. - جميع ملحقات البحث حديثة. + @@ -4230,7 +4281,7 @@ Those plugins were disabled. Search plugin install - تثبيت ملحقات البحث + @@ -4260,22 +4311,22 @@ Those plugins were disabled. Plugin source - موقع مساعد البحث + Search plugin source: - موقع محرك البحث: + Local file - ملف محلي + Web link - رابط موقع + @@ -5013,17 +5064,17 @@ Those plugins were disabled. مسار المرشح (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5456,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. تم حظر عنوان الآي بي الخاص بك بعد الكثير محاولات الاستيثاق الفاشلة. @@ -5964,13 +6015,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - خطأ أثناء فتح الملف الذي تم تنزيله.عبر RSS - - RssSettingsDlg @@ -6039,121 +6083,9 @@ No further notices will be issued. Save Files to - - Download here - حمل هنا - - - Download path - مسار التنزيل - - - - SearchCategories - - All categories - الكل - - - Movies - افلام - - - TV shows - مسلسلات تلفزيونية - - - Music - موسيقى - - - Games - العاب - - - Anime - أنمي - - - Software - برامج - - - Pictures - صور - - - Books - كتب - SearchEngine - - Search - البحث - - - Please install Python to use the Search Engine. - برجاء تثبيت "بيثون" لتتمكن من استخدام محرّك البحث. - - - Empty search pattern - تفريغ نمط البحث - - - Please type a search pattern first - الرجاء كتابة نمط البحث اولا - - - Searching... - يجري البحث... - - - Stop - إيقاف - - - Search Engine - محرك البحث - - - Search has finished - انتهى البحث - - - An error occurred during search... - حدث خطأ أثناء البحث... - - - Search aborted - توقف البحث - - - All enabled - الكل مُفعّل - - - All engines - كل المحركات - - - Multiple... - متعدد... - - - Results <i>(%1)</i>: - i.e: Search results - النتائج <i>(%1)</i>: - - - Search returned no results - لم يُعثر على أي نتائج - - - Stopped - متوقف - Unknown search engine plugin file format. @@ -6189,47 +6121,47 @@ No further notices will be issued. All categories - الكل + Movies - افلام + TV shows - مسلسلات تلفزيونية + Music - موسيقى + Games - العاب + Anime - أنمي + Software - برامج + Pictures - صور + Books - كتب + @@ -6278,22 +6210,22 @@ No further notices will be issued. - - - + + + Search البحث Status: - الحالة: + - + Stopped - متوقف + @@ -6303,12 +6235,12 @@ No further notices will be issued. Go to description page - ذهاب إلى صفحة الوصف + Copy description page URL - نسخ رابط صفحة الوصف + @@ -6316,86 +6248,86 @@ No further notices will be issued. - + All enabled - الكل مُفعّل - - - - All plugins - + All plugins + + + + + Multiple... - متعدد... + - - - + + + Search Engine - محرك البحث + - + Please install Python to use the Search Engine. - برجاء تثبيت "بيثون" لتتمكن من استخدام محرّك البحث. + - + Empty search pattern - تفريغ نمط البحث + - + Please type a search pattern first - الرجاء كتابة نمط البحث اولا + - - + + Results <i>(%1)</i>: i.e: Search results - النتائج <i>(%1)</i>: - - - - Searching... - يجري البحث... + + Searching... + + + + Stop - إيقاف + - - + + Search has finished - انتهى البحث + - - + + Search aborted - توقف البحث + - + Search returned no results - لم يُعثر على أي نتائج + - + Search has failed - + An error occurred during search... - حدث خطأ أثناء البحث... + @@ -6861,10 +6793,6 @@ No further notices will be issued. Download Priority - - Priority - الأولوية - TorrentCreatorDlg @@ -8060,161 +7988,6 @@ No further notices will be issued. يرجى إدخال رابط واحد على الأقل. - - engineSelect - - Search plugins - ملحقات البحث - - - Installed search engines: - محركات البحث المثبتة: - - - Name - الاسم - - - Version - الإصدارة - - - Url - الرابط - - - Enabled - ممكن - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - تستطيع الحصول على محركات بحث جديدة من هنا:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - تثبيت واحد جديد - - - Check for updates - ابحث عن تحديثات - - - Close - أغلق - - - Uninstall - إزالة - - - - engineSelectDlg - - Uninstall warning - تحذير إزالة - - - Uninstall success - نجاح الإزالة - - - Invalid plugin - ملحقة غير صالحة - - - The search engine plugin is invalid, please contact the author. - ملحقة محرك بحث غير صالحة. برجاء التواصل مع المؤلف. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - يوجد نسخة أحدث من محرك البحث "%1" مثبتة بالفعل. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - لا يمكن تحديث ملحقة محرك البحث "%1"، تم الاحتفاظ بالنسخة القديمة. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - لا يمكن تثبيت ملحقة البحث '%1'. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - تم تحديث ملحقة البحث '%1' بنجاح. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - تم تثبيت ملحة البحث '%1' بنجاح. - - - The link doesn't seem to point to a search engine plugin. - الرابط لا يبدو أنه يشير إلى مُلحقة محرك بحث. - - - Select search plugins - اختر ملحقات البحث - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - عذرًا، فشل في تثبيت ملحقة البحث '%1'. - - - Search plugin install - تثبيت ملحقات البحث - - - Yes - نعم - - - No - لا - - - qBittorrent search plugin - ملحقة بحث كيوبت‎تورنت - - - Search plugin update - تحديث ملحقات البحث - - - Sorry, update server is temporarily unavailable. - عذرا، خادم التحديث غير متوفر مؤقتا. - - - All your plugins are already up to date. - جميع ملحقات البحث حديثة. - - - All selected plugins were uninstalled successfully - تمت إزالة جميع الملحقات المختارة بنجاح - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - لا يمكن إزالة بعض الملحقات لأنها تأتي مضمنة في البرنامج. -يمكن إزالة الملحقات التي أضفتها بنفسك فقط.. -على كل حال، تم تعطيل هذه الملحقات. - - - Invalid link - رابط غير صالح - - - New search engine plugin URL - رابط محرك بحث جديد - - - URL: - الرابط: - - errorDialog @@ -8342,192 +8115,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory إختر مكان للتصدير - - - - + + + + Choose a save directory اختر مجلد الحفظ - + Add directory to scan اضافة مكان الملفات المراد فحصها - + Supported parameters (case sensitive): العوامل المدعومة (حساس لحالة الأحرف): - + %N: Torrent name %N: اسم التورنت - + %L: Label %L: تصنيف - + %F: Content path (same as root path for multifile torrent) %F: مسار المحتوى (نفس مسار الجذر لملفات التورنت المتعددة) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: مسار الحفظ - + %C: Number of files - + %Z: Torrent size (bytes) %Z: حجم التونت (بالبايتات) - + %T: Current tracker - + %I: Info hash %I: معلومات التحقق من البيانات - + Folder is already being watched. المجلد يستعرض الآن. - + Folder does not exist. المجلد غير موجود. - + Folder is not readable. المجلد غير قابل للقراءة. - + Failure فشل - + Failed to add Scan Folder '%1': %2 فشل اضافة المجلد للفحص '%1: %2 - - + + Filters منقيات - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Parsing error - + Failed to parse the provided IP filter Failed to parse the provided IP filter - + Successfully refreshed التحديث ناجح - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number تمت معالجة قائمة الحظر المعطاة بنجاح: %1 تم تطبيقها. - + Invalid key مفتاح خاطئ - + This is not a valid SSL key. هذا مفتاح SSL خاطئ. - + Invalid certificate شهادة خاطئة - + This is not a valid SSL certificate. هذه شهادة SSL خاطئة. - + The start time and the end time can't be the same. لا يمكن أن يكون وقت البدء مطابق لوقت الانتهاء. - + Time Error خطأ في الوقت - - pluginSourceDlg - - Plugin source - موقع مساعد البحث - - - Search plugin source: - موقع محرك البحث: - - - Local file - ملف محلي - - - Web link - رابط موقع - - preview @@ -8551,35 +8305,4 @@ Those plugins were disabled. إلغاء - - search_engine - - Search - البحث - - - Status: - الحالة: - - - Stopped - متوقف - - - Download - تنزيل - - - Go to description page - ذهاب إلى صفحة الوصف - - - Copy description page URL - نسخ رابط صفحة الوصف - - - Search engines... - محركات البحث... - - diff --git a/src/lang/qbittorrent_be.ts b/src/lang/qbittorrent_be.ts index ee0b5520f..a8e486a4f 100644 --- a/src/lang/qbittorrent_be.ts +++ b/src/lang/qbittorrent_be.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID піра: - + HTTP User-Agent is '%1' HTTP User-Agent: '%1' - + Anonymous mode [ON] Ананімны рэжым [Укл] - + Anonymous mode [OFF] Ананімны рэжым [Адкл] - + PeX support [ON] Падтрымка PeX [Укл] - + PeX support [OFF] Падтрымка PeX [Адкл] - + Restart is required to toggle PeX support Змяненне стану PeX патрабуе перазапуску - + Local Peer Discovery support [ON] Выяўленне лакальных піраў [Укл] - + Local Peer Discovery support [OFF] Выяўленне лакальных піраў [Адкл] - + Encryption support [ON] Падтрымка шыфравання [Укл] - + Encryption support [FORCED] Падтрымка шыфравання [Прымусова] - + Encryption support [OFF] Падтрымка шыфравання [Адкл] - + Embedded Tracker [ON] Убудаваны трэкер [Укл] - + Failed to start the embedded tracker! Не выйшла запусціць убудаваны трэкер! - + Embedded Tracker [OFF] Убудаваны трэкер [Адкл] - + '%1' reached the maximum ratio you set. Removing... Стасунак '%1' дасягнуў зададзенага максімума. Выдаленне... - + '%1' reached the maximum ratio you set. Pausing... Стасунак '%1' дасягнуў зададзенага максімума. Спыненне... - + System network status changed to %1 e.g: System network status changed to ONLINE Стан сеткі сістэмы змяніўся на %1 - + ONLINE У СЕТЦЫ - + OFFLINE ПА-ЗА СЕТКАЙ - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Настáўленні сеткі %1 змяніліся, абнаўленне прывязкі сеансу - + Unable to decode '%1' torrent file. Не выйшла дэкадаваць торэнт-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' У торэнт '%2' убудавана рэкурсіўнае сцягванне файла '%1' - + Couldn't save '%1.torrent' Не выйшла захаваць '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. бо %1 адключаны. - + because %1 is disabled. this peer was blocked because TCP is disabled. бо %1 адключаны. - + URL seed lookup failed for URL: '%1', message: %2 Не знайшлося сіда па адрасе: '%1', паведамленне: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' выдалены са спісу перадач і цвёрдага дыску. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' выдалены са спісу перадач. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Сцягваецца '%1', чакайце... - + DHT support [ON] Падтрымка DHT [Укл] - + DHT support [OFF]. Reason: %1 Падтрымка DHT [Адкл]. Прычына: %1 - + DHT support [OFF] Падтрымка DHT [Адкл] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent спрабуе праслухоўваць любы порт інтэрфейсу: %1 - + The network interface defined is invalid: %1 Вызначаны сеткавы інтэрфэйс недапушчальны: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent спрабуе праслухоўваць інтэрфейс %1, порт: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent не знайшоў лакальны %1-адрас для праслухоўвання - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent не здолеў праслухоўваць любы порт інтэрфейсу %1 з прычыны: %2. - + Tracker '%1' was added to torrent '%2' Трэкер '%1' дададзены да торэнта '%2' - + Tracker '%1' was deleted from torrent '%2' Трэкер '%1' выдалены з торэнта '%2' - + URL seed '%1' was added to torrent '%2' Адрас сіда '%1' дададзены да торэнта '%2' - + URL seed '%1' was removed from torrent '%2' Адрас сіда '%1' выдалены з торэнта '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Не выйшла узнавіць торэнт '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP-фільтр паспяхова прачытаны: ужыта %1 правілаў. - + Error: Failed to parse the provided IP filter. Памылка: не выйшла прачытаць пададзены IP-фільтр. - + Couldn't add torrent. Reason: %1 Не выйшла дадаць торэнт з прычыны: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' узноўлены (хуткае ўзнаўленне) - + '%1' added to download list. 'torrent name' was added to download list. '%1' дададзены да спісу сцягванняў. - + An I/O error occurred, '%1' paused. %2 Памылка ўводу/вываду. '%1' спынены. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: не выйшла перанакіраваць порты, паведамленне: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: перанакіраванне партоў паспяхова адбылося, паведамленне: %1 - + due to IP filter. this peer was blocked due to ip filter. паводле IP-фільтра. - + due to port filter. this peer was blocked due to port filter. паводле порт-фільтра. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. паводле абмежаванняў змяшанага рэжыму i2p. - + because it has a low port. this peer was blocked because it has a low port. бо ён меў малы нумар парта. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent паспяхова праслухоўваецца на інтэрфэйсе %1, порт: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent не здолеў праслухоўвацца на інтэрфейсе %1, порт: %2/%3 з прычыны: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Вонкавы IP: %1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-стужкі - + Unread Не прачытана @@ -1378,211 +1378,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Сцягваць торэнты з іх URL ці Magnet-спасылак - + Only one link per line Адна спасылка на радок - + Download Сцягнуць - + Global upload rate limit must be greater than 0 or disabled. Агульнае абмежаванне хуткасці раздачы мусіць быць болей за 0 або адключана. - + Global download rate limit must be greater than 0 or disabled. Агульнае абмежаванне хуткасці сцягвання мусіць быць болей за 0 або адключана. - + Alternative upload rate limit must be greater than 0 or disabled. Альтэрнатыўнае абмежаванне хуткасці раздачы мусіць быць болей за 0 або адключана. - + Alternative download rate limit must be greater than 0 or disabled. Агульнае абмежаванне хуткасці сцягвання мусіць быць болей за 0 або адключана. - + Maximum active downloads must be greater than -1. Максімум актыўных сцягванняў мусіць быць болей за -1. - + Maximum active uploads must be greater than -1. Максімум актыўных раздач мусіць быць болей за -1. - + Maximum active torrents must be greater than -1. Максімум актыўных торэнтаў мусіць быць болей за -1. - + Maximum number of connections limit must be greater than 0 or disabled. Максімальная колькасць злучэнняў мусіць быць болей за 0 або адключана. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Максімальная колькасць злучэнняў на торэнт мусіць быць болей за 0 або адключана. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Максімальная колькасць слотаў раздачы на торэнт мусіць быць болей за 0 або адключана. - + Unable to save program preferences, qBittorrent is probably unreachable. Не выйшла захаваць настáўленні. Магчыма, qBittorrent недасяжны. - + Language Мова - + The port used for incoming connections must be between 1 and 65535. Порт для ўваходных злучэнняў мусіць быць паміж 1 і 65535. - + The port used for the Web UI must be between 1 and 65535. Порт для вэб-інтэрфейсу мусіць быць паміж 1 і 65535. - + Unable to log in, qBittorrent is probably unreachable. Немагчыма ўвайсці. Выглядае, што qBittorrent недасяжны. - + Invalid Username or Password. Нядзейсныя імя карыстальніка ці пароль. - + Password Пароль - + Login Логін - + Upload Failed! Зацягнуць не выйшла! - + Original authors Першапачатковыя аўтары - + Upload limit: Абмежаванне раздачы: - + Download limit: Абмежаванне сцягвання: - + Apply Ужыць - + Add Дадаць - + Upload Torrents Раздаваць торэнты - + All Усе - + Downloading Сцягваецца - + Seeding Раздаецца - + Completed Скончана - + Resumed Узноўлены - + Paused Спынены - + Active Актыўныя - + Inactive Неактыўныя - + Save files to location: Захоўваць файлы сюды: - + Label: Цэтлік: - + Cookie: Кукі: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Кожны дзень + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Сцягнуты @@ -1593,57 +1716,57 @@ You should get this information from your Web browser preferences. Выйсці - + Upload local torrent Зацягнуць лакальны торэнт - + Are you sure you want to delete the selected torrents from the transfer list? Выдаліць вылучаныя торэнты са спісу перадач? - + The Web UI username must be at least 3 characters long. Імя карыстальніка web-інтэрфейсу мусіць мець прынамсі 3 сімвалы. - + The Web UI password must be at least 3 characters long. Пароль web-інтэрфейсу мусіць мець прынамсі 3 сімвалы. - + Save Захаваць - + qBittorrent client is not reachable Кліент qBittorrent недасяжны - + HTTP Server HTTP-сервер - + The following parameters are supported: Падтрымліваюцца наступныя параметры: - + Torrent path Шлях торэнта - + Torrent name Назва торэнта - + qBittorrent has been shutdown. qBittorrent быў закрыты. @@ -2216,7 +2339,8 @@ Do you want to associate qBittorrent to torrent files and Magnet links? A new version is available. Do you want to download %1? - + Ёсць новая версія. +Жадаеце сцягнуць %1? @@ -2281,12 +2405,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. Для выкарыстання пашукавіка патрабуецца Python, але выглядае, што ён не ўсталяваны. - - A new version is available. -Update to version %1? - Ёсць новая версія. -Абнавіцца да версіі %1? - No updates available. @@ -2489,12 +2607,12 @@ Are you sure you want to quit qBittorrent? Venezuela, Bolivarian Republic of - + Венесуэла, Баліварыянская Рэспубліка Viet Nam - + В'етнам @@ -2502,14 +2620,6 @@ Are you sure you want to quit qBittorrent? N/A Н/Д - - Asia/Pacific Region - Азіяцка-Ціхаакіянскі рэгіён - - - Europe - Еўропа - Andorra @@ -2545,10 +2655,6 @@ Are you sure you want to quit qBittorrent? Armenia Арменія - - Netherlands Antilles - Нідэрландскія Антыльскія выспы - Angola @@ -2644,10 +2750,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam Бруней-Даруссалам - - Bolivia - Балівія - Brazil @@ -2713,10 +2815,6 @@ Are you sure you want to quit qBittorrent? Switzerland Швейцарыя - - Cote D'Ivoire - Кот д'Івуар - Cook Islands @@ -2760,7 +2858,7 @@ Are you sure you want to quit qBittorrent? Curacao - + Кюрасаа @@ -2872,10 +2970,6 @@ Are you sure you want to quit qBittorrent? France Францыя - - France, Metropolitan - Францыя, Метраполія - Gabon @@ -3161,10 +3255,6 @@ Are you sure you want to quit qBittorrent? Latvia Латвія - - Libyan Arab Jamahiriya - Лівійская Арабская Джамахірыя - Morocco @@ -3190,10 +3280,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands Маршалавы выспы - - Macedonia - Македонія - Mali @@ -3209,10 +3295,6 @@ Are you sure you want to quit qBittorrent? Mongolia Манголія - - Macau - Макао - Northern Mariana Islands @@ -3373,19 +3455,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon Сен-П'ер і Мікелон - - Pitcairn Islands - Піткэрн - Puerto Rico Пуэрта-Рыка - - Palestinian Territory - Палестынская тэрыторыя - Portugal @@ -3456,10 +3530,6 @@ Are you sure you want to quit qBittorrent? Singapore Сінгапур - - Saint Helena - Выспа Святой Алены - Slovenia @@ -3578,62 +3648,62 @@ Are you sure you want to quit qBittorrent? Bolivia, Plurinational State of - + Балівія, Шматнацыянальная Дзяржава Bonaire, Sint Eustatius and Saba - + Банайрэ, Сінт-Эстаціус і Саба Cote d'Ivoire - + Кот-д'Івуар Libya - + Лівія Saint Martin (French part) - + Святога Марціна, выспа (французская частка) Macedonia, The Former Yugoslav Republic of - + Македонія, Былая Югаслаўская Рэспубліка Macao - + Макаа Pitcairn - + Піткэрн, выспы Palestine, State of - + Палестына Saint Helena, Ascension and Tristan da Cunha - + Выспы Святой Алены, Ушэсця і Трыстан-да-Кунья South Sudan - + Паўднёвы Судан Sint Maarten (Dutch part) - + Святога Марціна, выспа (нідэрландская частка) @@ -3700,10 +3770,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines Сэнт-Вінсэнт і Грэнадыны - - Venezuela - Венесуэла - Virgin Islands, British @@ -3714,10 +3780,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. Віргінскія выспы, ЗША - - Vietnam - В'етнам - Vanuatu @@ -3768,18 +3830,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe Зімбабвэ - - Anonymous Proxy - Ананімны проксі - - - Satellite Provider - Спадарожнікавы правайдар - - - Other - Іншае - Aland Islands @@ -3805,10 +3855,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy Сен-Бартэльмі - - Saint Martin - Сен-Мартэн - Could not uncompress GeoIP database file. @@ -3846,7 +3892,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Памылка паведамлення на email: @@ -3992,7 +4038,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + Файлы @@ -4098,65 +4144,65 @@ Are you sure you want to quit qBittorrent? Search plugins - Пошукавыя ўбудовы + Пошукавыя плагіны Installed search plugins: - + Усталяваныя пошукавыя плагіны: Name - Назва + Назва Version - Версія + Версія Url - Спасылка + Адрас Enabled - Уключаны + Уключаны You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Новыя пошукавыя ўбудовы можна атрымаць тут:: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Тут можна знайсці новыя пошукавыя плагіны: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Усталяваць новую + Усталяваць новы Check for updates - Праверыць абнаўленні + Праверыць абнаўленні Close - Закрыць + Закрыць Uninstall - Выдаліць + Выдаліць Yes - Так + Так @@ -4164,107 +4210,107 @@ Are you sure you want to quit qBittorrent? No - Не + Не Uninstall warning - Папярэджанне пры выдаленні + Папярэджанне пра выдаленне Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Некаторыя ўбудовы немагчыма выдаліць, бо яны ёсць часткай qBittorrent. Выдаліць можна толькі тыя, што вы ўсталёўвалі самастойна. -Яны былі адключаны. + Некаторыя плагіны нельга выдаліць, бо яны - частка qBittorrent. Можна выдаліць толькі дададзеныя вамі. +Гэтыя плагіны будуць адключаныя. Uninstall success - Выдаленне выканана + Выдалена All selected plugins were uninstalled successfully - Усе вылучаныя ўбудовы паспяхова выдалены + Усе вылучаныя плагіны паспяхова выдалены New search engine plugin URL - URL новай пошукавай убудовы + URL новага пошукавага плагіна URL: - URL: + Адрас: Invalid link - Памылковая спасылка + Памылковая спасылка The link doesn't seem to point to a search engine plugin. - Не падобна, каб гэтая спасылка вяла да пошукавай убудовы. + Гэтая спасылка не вядзе да пошукавага плагіна. Select search plugins - Пазначце пошукавыя ўбудовы + Пазначце пошукавыя плагіны qBittorrent search plugin - Пошукавая ўбудова qBittorrent + Пошукавы плагін qBittorrent Search plugin update - Абнаўленне пошукавай убудовы + Абнаўленне пошукавага плагіна All your plugins are already up to date. - Усе вашыя ўбудовы ўжо і так апошніх версій. + Усе вашыя плагіны ўжо і так апошніх версій. Sorry, couldn't check for plugin updates. %1 - + Выбачце, не выйшла праверыць абнаўленні плагіна. %1 Search plugin install - Усталяванне пошукавай убудовы + Усталяванне пошукавага плагіна "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + Пошукавы плагін "%1" паспяхова ўсталяваны. Couldn't install "%1" search engine plugin. %2 - + Немагчыма ўсталяваць пошукавы плагін "%1". %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + Пошукавы плагін "%1" паспяхова абноўлены. Couldn't update "%1" search engine plugin. %2 - + Немагчыма абнавіць пошукавы плагін "%1". %2 @@ -4272,22 +4318,22 @@ Those plugins were disabled. Plugin source - Крыніца ўбудовы + Крыніца плагіна Search plugin source: - Крыніца пошукавай убудовы: + Крыніца пошукавага плагіна: Local file - Лакальны файл + Лакальны файл Web link - Web-спасылка + Web-спасылка @@ -4657,7 +4703,7 @@ Those plugins were disabled. Inhibit system sleep when torrents are active - Не прыпыняць і не спыняць кампутар, калі ёсць актыўныя торэнты + Не прыпыняць і не спыняць камп'ютар, калі ёсць актыўныя торэнты @@ -5025,17 +5071,17 @@ Those plugins were disabled. Шлях да фільтраў (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Выяўлены некарэктны выхад з праграмы. Спроба выкарыстаць рэзервовы файл, каб аднавіць настáўленні. - + An access error occurred while trying to write the configuration file. Здарылася памылка доступу падчас спробы запісу файла канфігурацыі. - + A format error occurred while trying to write the configuration file. Здарылася памылка фарматавання падчас спробы запісу файла канфігурацыі. @@ -5468,7 +5514,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. Ваш IP-адрас быў заблакаваны пасля занадта шматлікіх няўдалых спробаў аўтэнтыфікацыі. @@ -5959,12 +6005,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Не выйшла аўтаматычна сцягнуць '%1' з RSS-стужкі '%2', бо ён не змяшчае торэнта ці магнет-спасылкі... + Не выйшла аўтаматычна сцягнуць "%1" з RSS-стужкі "%2", бо яна не змяшчае торэнта ці магнет-спасылкі... Automatically downloading '%1' torrent from '%2' RSS feed... - Аўтаматычнае сцягванне торэнта '%1' з RSS-стужкі '%2'... + Аўтаматычна сцягнуць торэнт "%1" з RSS-стужкі "%2"... @@ -5972,29 +6018,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Не выйшла аўтаматычна сцягнуць '%1' з RSS-стужкі '%2', бо ён не змяшчае торэнта ці магнет-спасылкі... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Аўтаматычнае сцягванне торэнта '%1' з RSS-стужкі '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Не выйшла адкрыць сцягнуты файл RSS. - - - Invalid RSS feed at '%1'. - Нядзейсная RSS-стужка '%1'. + Нядзейсны RSS канал. @@ -6065,121 +6089,9 @@ No further notices will be issued. Save Files to - - Download here - Сцягваць сюды - - - Download path - Шлях сцягвання - - - - SearchCategories - - All categories - Усе катэгорыі - - - Movies - Кіно - - - TV shows - Тэлеперадачы - - - Music - Музыка - - - Games - Гульні - - - Anime - Анімэ - - - Software - Софт - - - Pictures - Выявы - - - Books - Кнігі - SearchEngine - - Search - Пошук - - - Please install Python to use the Search Engine. - Каб скарыстацца пашукавіком, усталюйце Python. - - - Empty search pattern - Спустошыць шаблон пошуку - - - Please type a search pattern first - Спачатку ўвядзіце шаблон пошуку - - - Searching... - Ідзе пошук... - - - Stop - Стоп - - - Search Engine - Пашукавік - - - Search has finished - Пошук скончаны - - - An error occurred during search... - Падчас пошуку ўзнікла памылка... - - - Search aborted - Пошук перапынены - - - All enabled - Усе ўключаны - - - All engines - Усе пашукавікі - - - Multiple... - Множны... - - - Results <i>(%1)</i>: - i.e: Search results - Вынікі <i>(%1)</i>: - - - Search returned no results - Пошук не даў вынікаў - - - Stopped - Спынена - Unknown search engine plugin file format. @@ -6194,7 +6106,7 @@ No further notices will be issued. Plugin is not supported. - + Плагін не падтрымліваецца. @@ -6215,47 +6127,47 @@ No further notices will be issued. All categories - Усе катэгорыі + Усе катэгорыі Movies - Кіно + Кіно TV shows - Тэлеперадачы + Тэлеперадачы Music - Музыка + Музыка Games - Гульні + Гульні Anime - Анімэ + Анімэ Software - Софт + Софт Pictures - Выявы + Выявы Books - Кнігі + Кнігі @@ -6304,124 +6216,124 @@ No further notices will be issued. - - - + + + Search - Пошук + Пошук Status: - Стан: + Стан: - + Stopped - Спынена + Спынена Download - Сцягнуць + Сцягнуць Go to description page - Перайсці да старонкі з апісаннем + Перайсці да старонкі з апісаннем Copy description page URL - Скапіяваць адрас старонкі з апісаннем + Капіяваць адрас старонкі з апісаннем Search plugins... - + Пошукавыя плагіны... - + All enabled - Усе ўключаны - - - - All plugins - + Усе ўключаны - + All plugins + Усе плагіны + + + + Multiple... - Множны... + Множны... - - - + + + Search Engine - Пашукавік + Пашукавік - + Please install Python to use the Search Engine. - Каб скарыстацца пашукавіком, усталюйце Python. + Каб скарыстацца пашукавіком, усталюйце Python. - + Empty search pattern - Спустошыць шаблон пошуку + Спустошыць шаблон пошуку - + Please type a search pattern first - Спачатку ўвядзіце шаблон пошуку + Спачатку ўвядзіце шаблон пошуку - - + + Results <i>(%1)</i>: i.e: Search results - Вынікі <i>(%1)</i>: - - - - Searching... - Ідзе пошук... + Вынікі <i>(%1)</i>: + Searching... + Ідзе пошук... + + + Stop - Стоп + Стоп - - + + Search has finished - Пошук скончаны + Пошук скончаны - - + + Search aborted - Пошук перапынены + Пошук перапынены - + Search returned no results - Пошук не даў вынікаў + Пошук не даў вынікаў - + Search has failed - + Памылка пошуку - + An error occurred during search... - Падчас пошуку ўзнікла памылка... + Падчас пошуку ўзнікла памылка... @@ -6454,17 +6366,17 @@ No further notices will be issued. The computer will now be switched off unless you cancel within the next %1 seconds. - Кампутар зараз адключыцца, калі вы не скасуеце гэта ў наступныя %1 секунд. + Камп'ютар зараз адключыцца, калі вы не скасуеце гэта ў наступныя %1 секунд. The computer will now go to sleep mode unless you cancel within the next %1 seconds. - Кампутар зараз прыпыніцца, калі вы не скасуеце гэта ў наступныя %1 секунд. + Камп'ютар зараз прыпыніцца, калі вы не скасуеце гэта ў наступныя %1 секунд. The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - Кампутар зараз засне, калі вы не скасуеце гэта ў наступныя %1 секунд. + Камп'ютар зараз засне, калі вы не скасуеце гэта ў наступныя %1 секунд. @@ -6885,11 +6797,7 @@ No further notices will be issued. Download Priority - - - - Priority - Прыярытэт + Прыярытэт сцягвання @@ -8086,160 +7994,6 @@ No further notices will be issued. Увядзіце прынамсі адзін URL. - - engineSelect - - Search plugins - Пошукавыя ўбудовы - - - Installed search engines: - Усталяваныя пашукавікі: - - - Name - Назва - - - Version - Версія - - - Url - Спасылка - - - Enabled - Уключаны - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Новыя пошукавыя ўбудовы можна атрымаць тут:: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Усталяваць новую - - - Check for updates - Праверыць абнаўленні - - - Close - Закрыць - - - Uninstall - Выдаліць - - - - engineSelectDlg - - Uninstall warning - Папярэджанне пры выдаленні - - - Uninstall success - Выдаленне выканана - - - Invalid plugin - Нядзейсная ўбудова - - - The search engine plugin is invalid, please contact the author. - Пошукавая ўбудова нядзейсная, напішыце аўтару. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Больш новая версія ўбудовы '%1' ужо ўсталявана. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Пошукавая ўбудова '%1' не можа быць абноўлена, пакінута старая версія. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Пошукавая ўбудова '%1' не можа быць усталявана. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Пошукавая ўбудова '%1' паспяхова абноўлена. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Пошукавая ўбудова '%1' паспяхова ўсталяваная. - - - The link doesn't seem to point to a search engine plugin. - Не падобна, каб гэтая спасылка вяла да пошукавай убудовы. - - - Select search plugins - Пазначце пошукавыя ўбудовы - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Выбачайце, не выйшла ўсталяваць убудову '%1'. - - - Search plugin install - Усталяванне пошукавай убудовы - - - Yes - Так - - - No - Не - - - qBittorrent search plugin - Пошукавая ўбудова qBittorrent - - - Search plugin update - Абнаўленне пошукавай убудовы - - - Sorry, update server is temporarily unavailable. - Выбачайце, сервер абнаўленняў часова недаступны. - - - All your plugins are already up to date. - Усе вашыя ўбудовы ўжо і так апошніх версій. - - - All selected plugins were uninstalled successfully - Усе вылучаныя ўбудовы паспяхова выдалены - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Некаторыя ўбудовы немагчыма выдаліць, бо яны ёсць часткай qBittorrent. Выдаліць можна толькі тыя, што вы ўсталёўвалі самастойна. -Яны былі адключаны. - - - Invalid link - Памылковая спасылка - - - New search engine plugin URL - URL новай пошукавай убудовы - - - URL: - URL: - - errorDialog @@ -8329,7 +8083,7 @@ Those plugins were disabled. qBittorrent will shutdown the computer now because all downloads are complete. - Зараз qBittorrent адключыць кампутар, таму што ўсе сцягванні скончаны. + Зараз qBittorrent адключыць камп'ютар, бо ўсе сцягванні скончаны. @@ -8367,192 +8121,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory Пазначце каталог для экспарту - - - - + + + + Choose a save directory Пазначце каталог для захавання - + Add directory to scan Дадайце каталог для сачэння - + Supported parameters (case sensitive): Падтрымліваюцца параметры (рэгістр улічваецца): - + %N: Torrent name %N: Назва торэнта - + %L: Label %L: Цэтлік - + %F: Content path (same as root path for multifile torrent) %F: Шлях прызначэння (тое ж, што і каранёвы шлях для шматфайлавага торэнта) - + %R: Root path (first torrent subdirectory path) %R: Каранёвы шлях (галоўны шлях для падкаталога торэнта) - + %D: Save path %D: Шлях захавання - + %C: Number of files %C: Колькасць файлаў - + %Z: Torrent size (bytes) %Z: Памер торэнта (у байтах) - + %T: Current tracker %T: Дзейны трэкер - + %I: Info hash %I: Хэш - + Folder is already being watched. qBittorrent ужо сочыць за гэтым каталогам. - + Folder does not exist. Каталог не існуе. - + Folder is not readable. Каталог не прыдатны да чытання. - + Failure Няўдача - + Failed to add Scan Folder '%1': %2 Не выйшла дадаць каталог для сачэння '%1': %2 - - + + Filters Фільтры - - + + Choose an IP filter file Пазначце файл IP-фільтру - + SSL Certificate SSL-сертыфікат - + SSL Key SSL-ключ - + Parsing error Памылка разбору - + Failed to parse the provided IP filter Не выйшла прачытаць гэты IP-фільтр - + Successfully refreshed Паспяхова абноўлены - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP фільтр паспяхова прачытаны: ужыта %1 правілаў. - + Invalid key Нядзейсны ключ - + This is not a valid SSL key. Гэты SSL-ключ нядзейсны. - + Invalid certificate Нядзейсны сертыфікат - + This is not a valid SSL certificate. Гэты SSL-сертыфікат нядзейсны. - + The start time and the end time can't be the same. Час пачатку і час сканчэння не могуць супадаць. - + Time Error Памылка часу - - pluginSourceDlg - - Plugin source - Крыніца ўбудовы - - - Search plugin source: - Крыніца пошукавай убудовы: - - - Local file - Лакальны файл - - - Web link - Web-спасылка - - preview @@ -8576,35 +8311,4 @@ Those plugins were disabled. Скасаваць - - search_engine - - Search - Пошук - - - Status: - Стан: - - - Stopped - Спынена - - - Download - Сцягнуць - - - Go to description page - Перайсці да старонкі з апісаннем - - - Copy description page URL - Скапіяваць адрас старонкі з апісаннем - - - Search engines... - Пашукавікі... - - diff --git a/src/lang/qbittorrent_bg.ts b/src/lang/qbittorrent_bg.ts index 3136e5a4c..8a723a847 100644 --- a/src/lang/qbittorrent_bg.ts +++ b/src/lang/qbittorrent_bg.ts @@ -127,7 +127,7 @@ Set as default label - + Задаване като етикет по подразбиране @@ -152,7 +152,7 @@ Info Hash: - + Информационен Отпечатък: @@ -231,18 +231,18 @@ Torrent is already in download list. Trackers were merged. - + Торентът е вече в списъка за сваляне. Тракерите бяха обединени. Cannot add torrent - + Не може да се добави торент Cannot add this torrent. Perhaps it is already in adding state. - + Не може да се добави този торент. Може би вече е в стадий на добавяне. @@ -252,12 +252,12 @@ Magnet link is already in download list. Trackers were merged. - + Магнитният линк вече е в списъка за сваляне. Тракерите бяха обединени. Cannot add this torrent. Perhaps it is already in adding. - + Не може да се добави този торент. Може би вече е в стадий на добавяне. @@ -327,7 +327,7 @@ Invalid metadata - + Не валидни метаданни @@ -342,7 +342,7 @@ Download Error - + Грешка при сваляне @@ -408,7 +408,7 @@ Disk cache expiry interval - + Продължителност на дисковия кеш @@ -424,12 +424,12 @@ Resolve peer countries (GeoIP) - Намери държавата на двойката (GeoIP) + Намиране на държавата на участниците (GeoIP) Resolve peer host names - Намери имената на получаващата двойка + Намиране името на хоста на участниците @@ -449,12 +449,12 @@ Confirm torrent recheck - + Потвърждаване на проверка на торент Exchange trackers with other peers - Обмен на тракери с други двойки + Обмен на тракери с други участници @@ -471,12 +471,12 @@ Save resume data interval How often the fastresume file is saved. - + Интервал на запис на данните за продължаване. Maximum number of half-open connections [0: Unlimited] - + Максимален брой полуотворени връзки [0: Без ограничение] @@ -515,7 +515,7 @@ qBittorrent %1 started qBittorrent v3.2.0alpha started - + qBittorrent %1 стартиран @@ -525,27 +525,27 @@ To control qBittorrent, access the Web UI at http://localhost:%1 - + За контролиране на qBittorrent, посетете Web UI на адрес http://localhost:%1 The Web UI administrator user name is: %1 - + Администраторското потребителско име на Web UI е: %1 The Web UI administrator password is still the default one: %1 - + Администраторската парола на Web UI е все още тази по подразбиране: %1 This is a security risk, please consider changing your password from program preferences. - + Това е риск в сигурността, моля обмислете смяната на вашата парола в програмните настройки. Saving torrent progress... - + Прогрес на записване на торент... @@ -558,58 +558,58 @@ RSS Downloader - + RSS Сваляч... Enable Automated RSS Downloader - + Включи автоматичния RSS Сваляч Download Rules - + Правила за Сваляне Rule Definition - + Дефиниция на Правилото Use Regular Expressions - + Използване на Регулярни Изрази Must Contain: - + Трябва Да Съдържа: Must Not Contain: - + Трябва Да Не Съдържа: Episode Filter: - + Филтър за Епизод: Assign Label: - + Прикачи Етикет: Save to a Different Directory - + Съхрани в Друга Директория Ignore Subsequent Matches for (0 to Disable) ... X days - + Игнориране на Последващи Съвпадения за (0 за деактивиране) @@ -624,37 +624,37 @@ Use global settings - + Използвай общите настройки Always - + Винаги Never - Никога + Никога Apply Rule to Feeds: - + Прилагане на Правила към Каналите: Matching RSS Articles - + Съответстващи RSS Статии &Import... - + &Импортиране... &Export... - + &Експортиране... @@ -685,7 +685,7 @@ Episode number is a mandatory non-zero value - + Номерът на епизода е задължително да няма стойност нула @@ -695,32 +695,32 @@ Three range types for episodes are supported: - + Три типа диапазони за епизоди се поддържат: Single number: <b>1x25;</b> matches episode 25 of season one - + Едно число: <b>1x25;</b> съответства на епизод 25 на първи сезон Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Нормален диапазон: <b>1x25-40;</b> съответства на епизоди 25 до 40 на първи сезон Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Безкраен диапазон: <b>1x25-;</b> съответства епизодите от 25 до края на първи сезон Last Match: %1 days ago - + Последно Съвпадение: преди %1 дни Last Match: Unknown - + Последно Съвпадение: Неизвестно @@ -747,7 +747,7 @@ Are you sure you want to remove the download rule named '%1'? - + Сигурни ли сте че искате да изтриете правилото с име '%1'? @@ -863,319 +863,319 @@ BitTorrent::Session - + Peer ID: - + ID на Участника: - + HTTP User-Agent is '%1' - + HTTP User-Agent е '%1' - + Anonymous mode [ON] - + Анонимен режим [ВКЛ] - + Anonymous mode [OFF] - + Анонимен режим [ИЗКЛ] + + + + PeX support [ON] + PeX поддръжка [ВКЛ] + + + + PeX support [OFF] + PeX поддръжка [ИЗКЛ] - PeX support [ON] - - - - - PeX support [OFF] - - - - Restart is required to toggle PeX support - + Рестартиране е наложително при включване/изключване на PeX поддръжката. + + + + Local Peer Discovery support [ON] + Поддръжка на Откриване на Локални участници [ВКЛ] - Local Peer Discovery support [ON] - - - - Local Peer Discovery support [OFF] - + Поддръжка на Откриване на Локални участници [ИЗКЛ] - + Encryption support [ON] - + Поддръжка кодиране [ВКЛ] - + Encryption support [FORCED] - + Поддръжка кодиране [ЗАДЪЛЖИТЕЛНО] - + Encryption support [OFF] - + Поддръжка кодиране [ИЗКЛ] - + Embedded Tracker [ON] - + Вграден Тракер [ВКЛ] - + Failed to start the embedded tracker! - + Неуспешен старт на вградения тракер! - + Embedded Tracker [OFF] - + Вграден Тракер [ИЗКЛ] - + '%1' reached the maximum ratio you set. Removing... - + '%1' достигна зададеното от вас максимално съотношение. Изтриване... - + '%1' reached the maximum ratio you set. Pausing... - + '%1' достигна максималната зададена от вас скорост. Поставяне в пауза... - + System network status changed to %1 e.g: System network status changed to ONLINE - + Състоянието на мрежата на системата се промени на %1 - + ONLINE - + ОНЛАЙН - + OFFLINE - + ОФЛАЙН - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Мрежовата конфигурация на %1 е била променена, опресняване на сесийното обвързване - + Unable to decode '%1' torrent file. - + Не възможност да се декодира '%1' торент файла. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Рекурсивно сваляне на файл '%1' вграден в торент '%2' - + Couldn't save '%1.torrent' - + Не може да се запише '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + защото %1 е деактивиран. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + защото %1 е деактивиран. - + URL seed lookup failed for URL: '%1', message: %2 - + Търсенето на URL споделяне бе неуспешно: '%1', съобщение: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' бе премахнат от списъка за прехвърляне и от твърдия диск. - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + '%1' бе премахнат от списъка за прехвърляне. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + Сваляне на '%1', моля изчакайте... - + DHT support [ON] - + DHT поддръжка [ВКЛ] - + DHT support [OFF]. Reason: %1 - + DHT поддръжка [ИЗКЛ]. Причина: %1 - + DHT support [OFF] DHT поддръжка [ИЗКЛ] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + qBittorrent се опитва да слуша на всеки интерфейсен порт: %1 - + The network interface defined is invalid: %1 - + Дефинираният мрежови интерфейс е невалиден: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent се опитва да слуша на интерфейс %1 порт %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent не намери %1 локален адрес, на който да слуша - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + qBittorrent не успя да слуша на всеки интерфейсен порт: %1. Причина: %2. - + Tracker '%1' was added to torrent '%2' - + Тракер '%1' бе добавен към торент '%2' - + Tracker '%1' was deleted from torrent '%2' - + Тракер '%1' бе изтрит от торент '%2' - + URL seed '%1' was added to torrent '%2' - + URL споделяне '%1' бе добавено към торент '%2' - + URL seed '%1' was removed from torrent '%2' - + URL споделяне '%1' бе изтрито от торент '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Невъзможност за продължаване на торент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - Успешно вмъкване на дадения IP филтър: %1 правила бяха добавени. + Успешно обработване на дадения IP филтър: %1 правила бяха приложени. - + Error: Failed to parse the provided IP filter. - + Грешка: Неуспешно обработване на дадения IP филтър. - + Couldn't add torrent. Reason: %1 - + Не може да се добави торента. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' продължен. (бързо продължаване) - + '%1' added to download list. 'torrent name' was added to download list. - + '%1' добавен в списъка за сваляне. - + An I/O error occurred, '%1' paused. %2 - + В/И грешка възникна, '%1' е в пауза. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Неуспешно пренасочване на портовете, съобщение: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + UPnP/NAT-PMP: Пренасочването на портовете е успешно, съобщение: %1 - + due to IP filter. this peer was blocked due to ip filter. - + поради IP филтър. - + due to port filter. this peer was blocked due to port filter. - + поради портов филтър. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + поради ограничения на i2p смесен режим. - + because it has a low port. this peer was blocked because it has a low port. - + защото има порт с ниска стойност. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent успешно слуша на интерфейс %1 порт: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent не успя да слуша на интерфейс %1 порт: %2/%3. Причина: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 - + Външно IP: %1 @@ -1183,17 +1183,17 @@ Could not move torrent: '%1'. Reason: %2 - + Не може да се премести торент: '%1'. Причина: %2 File sizes mismatch for torrent '%1', pausing it. - + Размера на файла не съвпада за торент '%1', поставя се в пауза. Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - + Данните за бързо продължаване бяха отхвърлени за торент '%1'. Причина: %2. Проверка отново... @@ -1219,7 +1219,8 @@ Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - + Обичайните клавиши за бисквитки са: '%1', '%2' . +Трябва да вземете тази информация от настройките на вашия уеб браузер. @@ -1228,13 +1229,13 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + Сигурни ли сте, че искате да изтриете '%1' от списъка за трансфер? Are you sure you want to delete these %1 torrents from the transfer list? Are you sure you want to delete these 5 torrents from the transfer list? - + Сигурни ли сте, че искате да изтриете тези %1 торенти от списъка за трансфер? @@ -1242,17 +1243,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + Бяло: Липсващи части Green: Partial pieces - + Зелено: Непълни части Blue: Completed pieces - + Синьо: Приключени части @@ -1271,24 +1272,24 @@ You should get this information from your Web browser preferences. <font color='red'>%1</font> was blocked %2 x.y.z.w was blocked - + <font color='red'>%1</font> бе блокиран %2 <font color='red'>%1</font> was banned x.y.z.w was banned - + <font color='red'>%1</font> беше отхвърлен FeedListWidget - + RSS feeds RSS канали - + Unread Непрочетен @@ -1300,7 +1301,7 @@ You should get this information from your Web browser preferences. I/O Error: Could not open ip filter file in read mode. - + В/И Грешка: Не може да се отвори файл на ip филтър в режим за четене. @@ -1311,7 +1312,7 @@ You should get this information from your Web browser preferences. Parsing Error: The filter file is not a valid PeerGuardian P2B file. - + Грешка при обработване: Файлът на филтъра не е валиден PeerGuardian P2B файл. @@ -1320,42 +1321,42 @@ You should get this information from your Web browser preferences. Unsupported database file size. - + Неподдържан размер за файл на базата данни. Metadata error: '%1' entry not found. - + Грешка в метаинформацията: '%1' елемент не е намерен. Metadata error: '%1' entry has invalid type. - + Грешка в метаинформацията: '%1' елемент има невалиден тип. Unsupported database version: %1.%2 - + Неподдържана версия на базата данни: %1.%2 Unsupported IP version: %1 - + Неподдържана IP версия: %1 Unsupported record size: %1 - + Неподдържан размер на запис: %1 Invalid database type: %1 - + Невалиден тип на базата данни: %1 Database corrupted: no data section found. - + Базата данни е развалена: няма намерена информационна секция. @@ -1377,211 +1378,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Сваляне на Торенти от техния URL или Magnet link - + Only one link per line Само един линк на реда - + Download Свали - - - Global upload rate limit must be greater than 0 or disabled. - - - Global download rate limit must be greater than 0 or disabled. - + Global upload rate limit must be greater than 0 or disabled. + Глобалното ограничение за скорост на качване трябва да е по-голямо от 0 или изключено. - Alternative upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. + Глобалното ограничение за скорост на сваляне трябва да е по-голямо от 0 или изключено. - Alternative download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. + Алтернативното ограничение за скорост на качване трябва да е по-голямо от 0 или изключено. - Maximum active downloads must be greater than -1. - + Alternative download rate limit must be greater than 0 or disabled. + Алтернативното ограничение за скорост на сваляне трябва да е по-голямо от 0 или изключено. - Maximum active uploads must be greater than -1. - + Maximum active downloads must be greater than -1. + Максимумът за активни сваляния трябва да бъде по-голям от -1. - Maximum active torrents must be greater than -1. - + Maximum active uploads must be greater than -1. + Максимумът за активни качвания трябва да бъде по-голям от -1. + Maximum active torrents must be greater than -1. + Максимумът за активни торенти трябва да бъде по-голям от -1. + + + Maximum number of connections limit must be greater than 0 or disabled. Ограничението за максимален брой връзки трябва да е по-голямо от 0 или изключено. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Ограничението за максимален брой връзки на торент трябва да е по-голямо от 0 или изключено. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Ограничението за максимален брой слотове на торент трябва да е по-голямо от 0 или изключено. - + Unable to save program preferences, qBittorrent is probably unreachable. Не мога да съхраня предпочитанията за програмата, qBittorrent е вероятно недостъпен. - + Language Език - - - The port used for incoming connections must be between 1 and 65535. - - - The port used for the Web UI must be between 1 and 65535. - + The port used for incoming connections must be between 1 and 65535. + Портът, който се използва за входящи връзки трябва да бъде между 1 и 65535. - - Unable to log in, qBittorrent is probably unreachable. - + + The port used for the Web UI must be between 1 and 65535. + Портът, който се използва за Web UI трябва да бъде между 1 и 65535. + Unable to log in, qBittorrent is probably unreachable. + Невъзможност за логване, qBittorrent вероятно е недостъпен. + + + Invalid Username or Password. Невалидно потребителско име или парола. - + Password Парола - + Login Вход - + Upload Failed! Качването е неуспешно! - - - Original authors - - - Upload limit: - + Original authors + Оригинален автори - Download limit: - + Upload limit: + Ограничение на качване: - Apply - + Download limit: + Ограничение на сваляне: - Add - + Apply + Прилагане - Upload Torrents - + Add + Добавяне - All - + Upload Torrents + Качване на Торенти - Downloading - Сваляне + All + Всички - Seeding - Споделяне + Downloading + Свалящи се - Completed - + Seeding + Споделящи се - Resumed - + Completed + Завършени - Paused - Пауза + Resumed + Продължени - Active - + Paused + В Пауза - Inactive - + Active + Активни - Save files to location: - Съхрани файловете в: + Inactive + Неактивни - Label: - Етикет: + Save files to location: + Съхрани файловете на място: - Cookie: - + Label: + Етикет: - Type folder here - + Cookie: + Бисквитка: - Other... + Type folder here + Напишете директория тук + + + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Запис на файловете в + + + + Watch Folder + Наблюдаване на Директория + + + + Default Folder + Директория по подразбиране + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Всеки ден + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Свалени @@ -1589,60 +1713,60 @@ You should get this information from your Web browser preferences. Logout - + Излизане - + Upload local torrent - + Качване на локален торент - + Are you sure you want to delete the selected torrents from the transfer list? - + Сигурни ли сте, че искате да изтриете избраните торенти от списъка за трансфер? - + The Web UI username must be at least 3 characters long. Потребителското име на Web UI трябва да е поне от три букви. - + The Web UI password must be at least 3 characters long. Паролата на Web UI трябва да е поне от три букви. - + Save Съхрани - + qBittorrent client is not reachable qBittorrent клиента е недостъпен - + HTTP Server Сървър HTTP - + The following parameters are supported: Поддържат се следните параметри: - + Torrent path Торент път - + Torrent name Торент име - + qBittorrent has been shutdown. qBittorrent се изключва. @@ -1653,19 +1777,19 @@ You should get this information from your Web browser preferences. All (0) this is for the label filter - + Всички (0) Unlabeled (0) - + Без етикети (0) All (%1) this is for the label filter - + Всички (%1) @@ -1673,64 +1797,64 @@ You should get this information from your Web browser preferences. Unlabeled (%1) - + Без етикети (%1) %1 (%2) label_name (10) - %1 (%2) + %1 (%2) Add label... - + Добавяне на етикет... Remove label - + Изтриване на етикет Remove unused labels - + Изтриване на неизползваните етикети Resume torrents - Продължи торентите + Продължаване на торенти Pause torrents - Пауза на торентите + Пауза на торенти Delete torrents - Изтрий торентите + Изтриване на торенти New Label - Нов етикет + Нов етикет Label: - Етикет: + Етикет: Invalid label name - Невалидно име на етикет + Невалидно име за етикет Please don't use any special characters in the label name. - Моля, не ползвайте специални символи в името на етикета. + Моля не използвайте никакви специални знаци в името на етикета. @@ -1779,7 +1903,7 @@ You should get this information from your Web browser preferences. On Downloads &Done - + При &Приключване на Свалянията: @@ -1799,103 +1923,103 @@ You should get this information from your Web browser preferences. Torrent &Creator - + Торент &Създател Set Upload Limit... - + Определяне на Лимит за Качване... Set Download Limit... - + Определяне на Лимит за Сваляне... Set Global Download Limit... - + Определяне на Глобален Лимит за Сваляне... Set Global Upload Limit... - + Определяне на Глобален Лимит за Качване... Minimum Priority - + Минимален Приоритет Top Priority - + Най-висок Приоритет Decrease Priority - + Намаляване на Приоритета Increase Priority - + Увеличаване на Приоритета Alternative Speed Limits - + Алтернативни Лимити за Скорост &Top Toolbar - + &Горна Лента с Инструменти Display Top Toolbar - + Показване на Горна Лента с Инструменти S&peed in Title Bar - + С&корост в Заглавната Лента Show Transfer Speed in Title Bar - + Показване на Скорост на Трансфер в Заглавната Лента &RSS Reader - + &RSS Четец Search &Engine - + Програма за &Търсене L&ock qBittorrent - + З&аключи qBittorrent &Import Existing Torrent... - + &Импортиране на Съществуващ Торент... Import Torrent... - + Импортиране на Торент... Do&nate! - + Да&ри! @@ -1905,47 +2029,47 @@ You should get this information from your Web browser preferences. &Log - + &Журнал &Exit qBittorrent - + &Изход от qBittorrent &Suspend System - + &Приспиване на Системата &Hibernate System - + &Хибернация на Системата S&hutdown System - + И&зклюване на Системата &Disabled - + &Деактивиран &Statistics - + &Статистики Check for Updates - + Проверка за Обновления Check for Program Updates - + Проверка за Обновяване на Програмата @@ -1970,22 +2094,22 @@ You should get this information from your Web browser preferences. &Add Torrent File... - + &Добавяне Торент Файл... Open - + Отваряне E&xit - + И&зход Open URL - + Отваряне URL @@ -1995,7 +2119,7 @@ You should get this information from your Web browser preferences. Lock - + Заключване @@ -2011,7 +2135,7 @@ You should get this information from your Web browser preferences. Add Torrent &Link... - + Добавяне &Линк на Торент @@ -2037,12 +2161,12 @@ You should get this information from your Web browser preferences. &Set Password - + &Задаване на Парола &Clear Password - + &Изчистване на Парола @@ -2064,27 +2188,27 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Icons Only - + Само Икони Text Only - + Само Текст Text Alongside Icons - + Текст Успоредно с Икони Text Under Icons - + Текст Под Икони Follow System Style - + Следване на Стила на Системата @@ -2133,12 +2257,12 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Error - + Грешка Failed to add torrent: %1 - + Неуспешно добавяне на торент: %1 @@ -2184,54 +2308,55 @@ Do you want to associate qBittorrent to torrent files and Magnet links? &No - &Не + &Не &Yes - &Да + &Да &Always Yes - + &Винаги Да Python found in %1 - + Python намерен в %1 Old Python Interpreter - + Стар Python Интерпретатор qBittorrent Update Available - + Обновление на qBittorrent е Налично A new version is available. Do you want to download %1? - + Нова версия е налична. +Искате ли да свалите %1? Already Using the Latest qBittorrent Version - + Вече се Използва Последната Версия на qBittorrent Undetermined Python version - + Неопределена версия на Python '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + '%1' завърши свалянето. @@ -2239,27 +2364,28 @@ Do you want to download %1? Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + В/И грешка възникна за торент '%1'. +Причина: %2 The torrent '%1' contains torrent files, do you want to proceed with their download? - + Торентът '%'1 съдържа торент файлове, искате ли да продължите с тяхното сваляне? Couldn't download file at URL '%1', reason: %2. - + Не може да се свали файл на URL '%1', причина: %2. Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Вашата версия %1 на Python е стара. Моля обновете до последната версия, за да могат търсачките да работят. Задължителен минимум: 2.7.0/3.3.0. Couldn't determine your Python version (%1). Search engine disabled. - + Не може да се определи вашата версия (%1) на Python. Търсачката е деактивирана. @@ -2271,28 +2397,30 @@ Do you want to download %1? Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python е необходим за употребата на търсачката, но изглежда не е инсталиран. +Искате ли да го инсталирате сега? Python is required to use the search engine but it does not seem to be installed. - + Python е необходим за употребата на търсачката, но изглежда не е инсталиран. No updates available. You are already using the latest version. - + Няма обновления. +Вече използвате последната версия. &Check for Updates - + &Проверка за Обновление Checking for Updates... - + Проверяване за Обновление... @@ -2302,18 +2430,19 @@ You are already using the latest version. Python found in '%1' - + Python намерен в '%1' Download error - Грешка при сваляне + Грешка при сваляне Python setup could not be downloaded, reason: %1. Please install it manually. - + Инсталаторът на Python не може да се свали, причина: %1. +Моля инсталирайте го ръчно. @@ -2325,12 +2454,12 @@ Please install it manually. RSS (%1) - + RSS (%1) URL download error - + URL грешка при сваляне @@ -2342,20 +2471,20 @@ Please install it manually. DL speed: %1 e.g: Download speed: 10 KiB/s - + СВ скорост: %1 UP speed: %1 e.g: Upload speed: 10 KiB/s - + КЧ скорост: %1 [D: %1, U: %2] qBittorrent %3 D = Download; U = Upload; %3 is qBittorrent version - + [С: %1, К: %2] qBittorrent %3 @@ -2394,52 +2523,52 @@ Are you sure you want to quit qBittorrent? Your dynamic DNS was successfully updated. - + Вашата динамична DNS бе успешно обновена. Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Грешка от Динамичната DNS: Услугата е временно недостъпна, повторен опит след 30 минути. Dynamic DNS error: hostname supplied does not exist under specified account. - + Грешка от Динамичната DNS: името на хоста не съществува в определената регистрация. Dynamic DNS error: Invalid username/password. - + Грешка от Динамичната DNS: Невалидно потребителско име/парола. Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Грешка от Динамичната DNS: qBittorrent е в черния списък на услугата, моля съобщете за бъг на http://bugs.qbittorrent.org. Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Грешка от Динамичната DNS: %1 бе отговорено за тази услуга, моля съобщете за бъг на http://bugs.qbittorrent.org. Dynamic DNS error: Your username was blocked due to abuse. - + Грешка от Динамичната DNS: Вашето потребителско име е било блокирано заради злоупотреба. Dynamic DNS error: supplied domain name is invalid. - + Грешка от Динамичната DNS: зададеното домейн име е невалидно. Dynamic DNS error: supplied username is too short. - + Грешка от Динамичната DNS: зададеното потребителско име е твърде късо. Dynamic DNS error: supplied password is too short. - + Грешка от Динамичната DNS: зададената парола е твърде къса. @@ -2447,17 +2576,17 @@ Are you sure you want to quit qBittorrent? I/O Error - + В/И Грешка The file size is %1. It exceeds the download limit of %2. - + Размерът на файла е %1. Той надвишава лимита от %2 за сваляне . Unexpected redirect to magnet URI. - + Неочаквано пренасочване към магнитен URI. @@ -2466,1284 +2595,1284 @@ Are you sure you want to quit qBittorrent? GeoIP database loaded. Type: %1. Build time: %2. - + GeoIP базата данни е заредена. Тип: %1. Време на изграждане: %2. Couldn't load GeoIP database. Reason: %1 - + Не може да се зареди GeoIP базата данни. Причина: %1 Venezuela, Bolivarian Republic of - + Боливарска република Венесуела Viet Nam - + Виетнам N/A - + Няма Andorra - + Андора United Arab Emirates - + Обединени Арабски Емирства Afghanistan - + Афганистан Antigua and Barbuda - + Антигуа и Барбуда Anguilla - + Ангуила Albania - + Албания Armenia - + Армения Angola - + Ангола Antarctica - + Антарктида Argentina - + Аржентина American Samoa - + Американска Самоа Austria - + Австрия Australia - + Австралия Aruba - + Аруба Azerbaijan - + Азербайджан Bosnia and Herzegovina - + Босна и Херцеговина Barbados - + Барбадос Bangladesh - + Бангладеш Belgium - + Белгия Burkina Faso - + Буркина Фасо Bulgaria - + България Bahrain - + Бахрейн Burundi - + Бурунди Benin - + Бенин Bermuda - + Бермудски острови Brunei Darussalam - + Бруней Brazil - + Бразилия Bahamas - + Бахамски острови Bhutan - + Бутан Bouvet Island - + Остров Буве Botswana - + Ботсвана Belarus - + Беларус Belize - + Белиз Canada - + Канада Cocos (Keeling) Islands - + Кокосови (Килинг) острови Congo, The Democratic Republic of the - + Демократична Република Конго Central African Republic - + Централна Африканска Република Congo - + Конго Switzerland - + Швейцария Cook Islands - + Острови Кук Chile - + Чили Cameroon - + Камерун China - + Китай Colombia - + Колумбия Costa Rica - + Коста Рика Cuba - + Куба Cape Verde - + Кабо Верде Curacao - + Кюрасао Christmas Island - + Остров Рождество Cyprus - + Кипър Czech Republic - + Чешка Република Germany - + Германия Djibouti - + Джибути Denmark - + Дания Dominica - + Доминика Dominican Republic - + Доминиканска Република Algeria - + Алжир Ecuador - + Еквадор Estonia - + Естония Egypt - + Египет Western Sahara - + Западна Сахара Eritrea - + Еритрея Spain - + Испания Ethiopia - + Етиопия Finland - + Финландия Fiji - + Фиджи Falkland Islands (Malvinas) - + Фолкландски (Малвинкси) острови Micronesia, Federated States of - + Федерални щати на Микронезия Faroe Islands - + Фарьорски острови France - Франция + Франция Gabon - + Габон United Kingdom - + Великобритания Grenada - + Гренада Georgia - + Грузия French Guiana - + Френска Гвиана Ghana - + Гана Gibraltar - + Гибралтар Greenland - + Гренландия Gambia - + Гамбия Guinea - + Гвинея Guadeloupe - + Гваделупа Equatorial Guinea - + Екваториална Гвинея Greece - Гърция + Гърция South Georgia and the South Sandwich Islands - + Южна Джорджия и Южни Сандвичеви острови Guatemala - + Гватемала Guam - + Гуам Guinea-Bissau - + Гвинея-Бисау Guyana - + Гвиана Hong Kong - + Хонконг Heard Island and McDonald Islands - + Острови Хърд и Макдоналд Honduras - + Хондурас Croatia - + Хърватия Haiti - + Хайти Hungary - + Унгария Indonesia - + Индонезия Ireland - + Ирландия Israel - + Израел India - + Индия British Indian Ocean Territory - + Британска индоокеанска територия Iraq - + Ирак Iran, Islamic Republic of - + Ислямска Република Иран Iceland - + Исландия Italy - + Италия Jamaica - + Ямайка Jordan - + Йордан Japan - + Япония Kenya - + Кения Kyrgyzstan - + Киргизстан Cambodia - + Камбоджа Kiribati - + Кирибати Comoros - + Коморски острови Saint Kitts and Nevis - + Сейнт Китс и Невис Korea, Democratic People's Republic of - + Демократична Република Кореа Korea, Republic of - + Република Кореа Kuwait - + Кувейт Cayman Islands - + Кайманови острови Kazakhstan - + Казахстан Lao People's Democratic Republic - + Народнодемократична Република Лаос Lebanon - + Ливан Saint Lucia - + Сейнт Лусия Liechtenstein - + Лихтенщайн Sri Lanka - + Шри Ланка Liberia - + Либерия Lesotho - + Лесото Lithuania - + Литва Luxembourg - + Люксембург Latvia - + Латвия Morocco - + Мароко Monaco - + Монако Moldova, Republic of - + Република Молдова Madagascar - + Мадагаскар Marshall Islands - + Маршалови острови Mali - + Мали Myanmar - + Мианмар Mongolia - + Монголия Northern Mariana Islands - + Северни Мариански острови Martinique - + Мартиника Mauritania - + Мавритания Montserrat - + Монсерат Malta - + Малта Mauritius - + Мавриций Maldives - + Малдиви Malawi - + Малави Mexico - + Мексико Malaysia - + Малайзия Mozambique - + Мозамбик Namibia - + Намибия New Caledonia - + Нова Каледония Niger - + Нигер Norfolk Island - + Остров Норфолк Nigeria - + Нигерия Nicaragua - + Никарагуа Netherlands - + Нидерландия Norway - + Норвегия Nepal - + Непал Nauru - + Науру Niue - + Ниуе New Zealand - + Нова Зеландия Oman - + Оман Panama - + Панама Peru - + Перу French Polynesia - + Френска Полинезия Papua New Guinea - + Папуа Нова Гвинея Philippines - + Филипини Pakistan - + Пакистан Poland - + Полша Saint Pierre and Miquelon - + Сен Пиер и Микелон Puerto Rico - + Пуерто Рико Portugal - + Португалия Palau - + Палау Paraguay - + Парагвай Qatar - + Катар Reunion - + Реюнион Romania - + Румъния Russian Federation - + Русия Rwanda - + Руанда Saudi Arabia - + Саудитска Арабия Solomon Islands - + Соломонови острови Seychelles - + Сейшели Sudan - + Судан Sweden - + Швеция Singapore - + Сингапур Slovenia - + Словения Svalbard and Jan Mayen - + Свалбард и Ян Майен Slovakia - + Словакия Sierra Leone - + Сиера Леоне San Marino - + Сан Марино Senegal - + Сенегал Somalia - + Сомалия Suriname - + Суринам Sao Tome and Principe - + Сао Томе и Принсипи El Salvador - + Салвадор Syrian Arab Republic - + Република Сирия Swaziland - + Свазиленд Turks and Caicos Islands - + Търкс и Кайкос Chad - + Чад French Southern Territories - + Френски южни и антарктически територии Togo - + Того Thailand - + Тайланд Tajikistan - + Таджикистан Tokelau - + Токелау Turkmenistan - + Туркменистан Tunisia - + Тунис Tonga - + Тонга Timor-Leste - + Източен Тимор Bolivia, Plurinational State of - + Многонационална държава Боливия Bonaire, Sint Eustatius and Saba - + Бонер, Сейнт Естасиус и Саба Cote d'Ivoire - + Кот д'Ивоар Libya - + Либия Saint Martin (French part) - + Сен Мартен (Френска част) Macedonia, The Former Yugoslav Republic of - + Македония Macao - + Макао Pitcairn - + Питкерн Palestine, State of - + Палестина Saint Helena, Ascension and Tristan da Cunha - + Света Елена, Възнесение и Тристан да Куня South Sudan - + Южен Судан Sint Maarten (Dutch part) - + Синт Мартен (Нидерландска част) Turkey - + Турция Trinidad and Tobago - + Тринидад и Тобаго Tuvalu - + Тувалу Taiwan - + Тайван Tanzania, United Republic of - + Обединена Република Танзания Ukraine - + Украйна Uganda - + Уганда United States Minor Outlying Islands - + Малки далечни острови на САЩ United States - + Съединени американски щати Uruguay - + Уругвай Uzbekistan - + Узбекистан Holy See (Vatican City State) - + Светия Престол (Ватиканска Град Държава) Saint Vincent and the Grenadines - + Сейнт Винсент и Гренадини Virgin Islands, British - + Британски Вирджински острови Virgin Islands, U.S. - + Американски Вирджински острови Vanuatu - + Вануату Wallis and Futuna - + Уолис и Футуна Samoa - + Самоа Yemen - + Йемен Mayotte - + Майот Serbia - + Сърбия South Africa - + Южна Африка Zambia - + Замбия Montenegro - + Черна гора Zimbabwe - + Зимбабве Aland Islands - + Оландски острови Guernsey - + Гърнзи Isle of Man - + Остров Ман Jersey - + Джърси Saint Barthelemy - + Сен Бартелми Could not uncompress GeoIP database file. - + Не може да се декомпресира файла на GeoIP базата данни. Couldn't save downloaded GeoIP database file. - + Не може да се запази сваленият файл на GeoIP базата данни. Successfully updated GeoIP database. - + Успешно е обновена GeoIP базата данни. Couldn't download GeoIP database file. Reason: %1 - + Не може да се свали файлът на GeoIP базата данни. Причина: %1 @@ -3751,20 +3880,20 @@ Are you sure you want to quit qBittorrent? UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP поддръжка [ВКЛ] UPnP / NAT-PMP support [OFF] - + UPnP / NAT-PMP поддръжка [ИЗКЛ] Net::Smtp - + Email Notification Error: - + Грешка при известяването по e-mail: @@ -3772,72 +3901,72 @@ Are you sure you want to quit qBittorrent? interested(local) and choked(peer) - + заинтересуван (клиент) и запушен (участник) interested(local) and unchoked(peer) - + заинтересуван (клиент) и незапушен (участник) interested(peer) and choked(local) - + заинтересуван (участник) и запушен (клиент) interested(peer) and unchoked(local) - + заинтересуван (участник) и незапушен (клиент) optimistic unchoke - + оптимистично отпушване peer snubbed - + неактивен участник incoming connection - + входяща връзка not interested(local) and unchoked(peer) - + незаинтересуван (клиент) и незапушен (участник) not interested(peer) and unchoked(local) - + незаинтересуван (участник) и незапушен (клиент) peer from PEX - + участник от PEX peer from DHT - + участник от DHT encrypted traffic - + кодиран трафик encrypted handshake - + криптирано уговаряне peer from LSD - + участник от LSD @@ -3850,7 +3979,7 @@ Are you sure you want to quit qBittorrent? Port - + Порт @@ -3902,65 +4031,65 @@ Are you sure you want to quit qBittorrent? Relevance i.e: How relevant this peer is to us. How many pieces it has that we don't. - + Уместност Files i.e. files that are being downloaded right now - + Файлове Add a new peer... - Добави нова двойка... + Добави нов участник... Copy selected - + Копиране на избраните Ban peer permanently - Спри двойката завинаги + Блокиране на участника за постоянно Manually adding peer '%1'... - + Ръчно добавяне на участник '%1'... The peer '%1' could not be added to this torrent. - + Участникът '%1' не може да бъден добавен към този торент. Manually banning peer '%1'... - + Ръчно блокиране на участник '%1'... Peer addition - Добавяне на двойка + Добавяне на участник Some peers could not be added. Check the Log for details. - + Някои участници не можаха да се добавят. Проверете Журнала за детайли. The peers were added to this torrent. - + Участниците бяха добавени към този торент. Are you sure you want to ban permanently the selected peers? - Сигурни ли сте че искате да спрете завинаги избраните двойки? + Сигурни ли сте че искате да блокирате за постоянно избраните участници? @@ -3978,22 +4107,22 @@ Are you sure you want to quit qBittorrent? No peer entered - + Няма въведен участник Please type at least one peer. - + Моля въведете поне един участник. Invalid peer - + Невалиден участник The peer '%1' is invalid. - + Участникът '%1' е невалиден. @@ -4001,12 +4130,12 @@ Are you sure you want to quit qBittorrent? White: Unavailable pieces - + Бяло: Неналични части Blue: Available pieces - + Синьо: Налични части @@ -4014,65 +4143,65 @@ Are you sure you want to quit qBittorrent? Search plugins - Търси добавки + Добавки за търсене Installed search plugins: - + Инсталирани добавки за търсене: Name - Име + Име Version - Версия + Версия Url - Url + Url Enabled - Включено + Активирано You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Можете да вземете нови добавки за търсачката тук: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Може да вземете нови добавки за търсене оттук: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Инсталирай нов + Инсталиране нова Check for updates - Провери за обновяване + Проверка за обновления Close - Затвори + Затваряне Uninstall - Деинсталирай + Деинсталиране Yes - Да + Да @@ -4080,106 +4209,107 @@ Are you sure you want to quit qBittorrent? No - Не + Не Uninstall warning - Предупреждение за деинсталиране + Предупреждение при деинсталиране Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - + Някои добавки не могат да бъдат деинсталирани, защото за вградени в qBittorrent. Само тези, които вие самите сте добавили могат да бъдат деинсталирани. +Тези добавки бяха деактивирани. Uninstall success - Успешно деинсталиране + Успешно деинсталиране All selected plugins were uninstalled successfully - Всички избрани добавки бяха успешно деинсталирани + Всички избрани добавки бяха успешно деинсталирани New search engine plugin URL - Нов URL за добавки на търсачката + Нов URL за добавки на търсачката URL: - URL: + URL: Invalid link - Невалиден адрес + Невалиден линк The link doesn't seem to point to a search engine plugin. - Връзката изглежда не води към добавката за търсачката. + Изглежда, че линкът не води към добавка за търсене. Select search plugins - Избери добавки за търсене + Избери добавки за търсене qBittorrent search plugin - + qBittorrent добавка за търсене Search plugin update - Добавката за търсене е обновена + Обновяване на добавката за търсене All your plugins are already up to date. - Всички ваши добавки са вече обновени. + Всички ваши добавки са вече обновени. Sorry, couldn't check for plugin updates. %1 - + Извинявайте, не може да се провери за обновления на добавката. %1 Search plugin install - Инсталиране на добавка за търсене + Инсталиране на добавка за търсене "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" добавката за търсене бе успешно инсталирана. Couldn't install "%1" search engine plugin. %2 - + Не може да се инсталира "%1" добавка за търсене. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" добавката за търсене бе успешно обновена. Couldn't update "%1" search engine plugin. %2 - + Не може да се обнови "%1" добавката за търсене. %2 @@ -4187,22 +4317,22 @@ Those plugins were disabled. Plugin source - Източник на добавката + Код на добавката Search plugin source: - Търсене на източници на добавки: + Код на добавката за търсене: Local file - Локален файл + Локален файл Web link - Web линк + Web линк @@ -4294,18 +4424,18 @@ Those plugins were disabled. From: from (time1 to time2) - + От: To: time1 to time2 - + До: Enable Local Peer Discovery to find more peers - Включи Откриване на локална връзка за намиране на повече връзки + Активиране на Откриване на Локални Участници за намиране на повече участници @@ -4370,7 +4500,7 @@ Those plugins were disabled. Run external program on torrent completion - + Изпълняване на външна програма при завършване на торент @@ -4430,7 +4560,7 @@ Those plugins were disabled. Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - Обмени двойки със съвместими Битторент клиенти (µTorrent, Vuze, ...) + Обмени участници със съвместими Битторент клиенти (µTorrent, Vuze, ...) @@ -4532,7 +4662,7 @@ Those plugins were disabled. Confirm when deleting torrents - + Потвърждаване при изтриването на торенти @@ -4542,7 +4672,7 @@ Those plugins were disabled. Confirmation on exit when torrents are active - + Потвърждаване при изход, когато има активни торенти. @@ -4583,7 +4713,7 @@ Those plugins were disabled. Bring torrent dialog to the front - + Изнасяне на диалога за добавяне на торент най-отпред @@ -4663,7 +4793,7 @@ Those plugins were disabled. Global maximum number of upload slots: - + Глобален максимален брой слотове за качване: @@ -4678,22 +4808,22 @@ Those plugins were disabled. Disable connections not supported by proxies - + Деактивиране на връзките, които не се поддържат от проксита. Use proxy only for torrents - + Използване на прокси само за торентите RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + RSS канали, търсачка, софтуерни обновления или всичко друго освен торент трансфери и свързаните с тях операции (като обмяна на участници) ще използва директна връзка Info: The password is saved unencrypted - + Информация: Паролата е запазена некриптирана @@ -4708,12 +4838,12 @@ Those plugins were disabled. Apply to trackers - + Прилагане към тракери Apply rate limit to peers on LAN - + Прилагане на пределна скорост за участници от локалната мрежа @@ -4723,27 +4853,27 @@ Those plugins were disabled. Weekdays - + Дни през седмицата Weekends - + Почивни дни Rate Limits Settings - + Настройки на Пределни Скорости Enable µTP protocol - + Активиране на µTP протокола Apply rate limit to µTP protocol - + Прилагане на пределна скорост за µTP протокола @@ -4753,22 +4883,22 @@ Those plugins were disabled. Enable DHT (decentralized network) to find more peers - Включи мрежа DHT (децентрализирана) за намиране на повече връзки + Включи DHT (децентрализирана мрежа) за намиране на повече участници Enable Peer Exchange (PeX) to find more peers - Включи Peer Exchange (PeX) за намиране на повече връзки + Включи Peer Exchange (PeX) за намиране на повече участници Look for peers on your local network - Търси връзки на твоята локална мрежа + Търси участници на твоята локална мрежа Enable when using a proxy or a VPN connection - + Активиране при използване на прокси или VPN връзка @@ -4803,7 +4933,7 @@ Those plugins were disabled. Automatically add these trackers to new downloads: - + Автоматично добавяне на тези тракери към нови сваляния: @@ -4833,7 +4963,7 @@ Those plugins were disabled. Alternative Rate Limits - + Алтернативни Пределни Скорости @@ -4940,19 +5070,19 @@ Those plugins were disabled. Филтър път (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + Открит е некоректен изход от програмата. За възстановяване на настройките се използва резервен файл. - + An access error occurred while trying to write the configuration file. - + Грешка за достъп възникна при опита за запис на конфигурационния файл. - + A format error occurred while trying to write the configuration file. - + Грешка за формат възникна при опита за запис на конфигурационния файл. @@ -5035,7 +5165,7 @@ Those plugins were disabled. Peers - Двойки + Участници @@ -5050,7 +5180,7 @@ Those plugins were disabled. Speed - Скорост + Скорост @@ -5068,7 +5198,7 @@ Those plugins were disabled. Progress: - Изпълнение: + Напредък: @@ -5079,12 +5209,12 @@ Those plugins were disabled. Time Active: Time (duration) the torrent is active (not paused) - + Време на активност: ETA: - + Оставащо време: @@ -5094,32 +5224,32 @@ Those plugins were disabled. Seeds: - + Споделящи: Download Speed: - + Скорост на Сваляне: Upload Speed: - + Скорост на Качване: Peers: - + Участници: Download Limit: - + Ограничение на Сваляне: Upload Limit: - + Ограничение на Качване: @@ -5164,57 +5294,57 @@ Those plugins were disabled. Share Ratio: - + Съотношение на Споделяне: Reannounce In: - + Повторно анонсиране В: Last Seen Complete: - + Последно Видян Приключен: Total Size: - + Общ Размер: Pieces: - + Части: Created By: - + Създаден От: Added On: - + Добавен На: Completed On: - + Завършен На: Created On: - + Създаден На: Torrent Hash: - + Сигнатура на Торента: Save Path: - + Местоположение за Запис: @@ -5230,7 +5360,7 @@ Those plugins were disabled. Never - Никога + Никога @@ -5242,43 +5372,43 @@ Those plugins were disabled. %1 (%2 this session) - + %1 (%2 тази сесия) %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (споделян за %2) %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (%2 макс.) %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - + %1 (%2 общо) %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (%2 средно) Open - + Отваряне Open Containing Folder - + Отваряне на Съдържащата Директория @@ -5293,22 +5423,22 @@ Those plugins were disabled. New Web seed - + Ново Web споделяне Remove Web seed - + Изтриване на Web споделяне Copy Web seed URL - + Копиране URL на Web споделяне Edit Web seed URL - + Редактиране URL на Web споделяне @@ -5350,145 +5480,146 @@ Those plugins were disabled. Filter files... - + Филтриране на файловете... New URL seed New HTTP source - + Ново URL споделяне New URL seed: - + Ново URL споделяне: This URL seed is already in the list. - + Това URL споделяне е вече в списъка. Web seed editing - + Редактиране на Web споделяне Web seed URL: - + URL на Web споделяне: QObject - + Your IP address has been banned after too many failed authentication attempts. - + Вашия IP адрес беше блокиран след многократни неуспешни опити за удостоверяване. Error: '%1' is not a valid torrent file. - + Грешка: '%1' не е валиден торент файл. + Error: Could not add torrent to session. - + Грешка: Не може да се добави торент към сесията. I/O Error: Could not create temporary file. - + В/И Грешка: Не може да се създаде временен файл. %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - + %1 е непознат параметър на командния ред. %1 must be the single command line parameter. - + %1 трябва да бъде единствен параметър на командния ред. %1 must specify the correct port (1 to 65535). - + %1 трябва да определя правилния порт (1 до 65535). You cannot use %1: qBittorrent is already running for this user. - + Не можете да използвате %1: qBittorrent вече работи за този потребител. Usage: - + Ползване: Options: - + Настройки: Displays program version - + Показване на версията на програмата Displays this help message - + Показване на това помощно съобщение Changes the Web UI port (current: %1) - + Променя порта на Web UI (сегашен: %1) Disable splash screen - + Деактивиране на начален екран Run in daemon-mode (background) - + Стартиране в режим на услуга (фонов процес) Downloads the torrents passed by the user - + Сваля торентите дадени от потребителя. Help - Помощ + Помощ Run application with -h option to read about command line parameters. - + Стартирайте програмата с параметър -h, за да получите информация за параметрите на командния ред. Bad command line - + Некоректен команден ред Bad command line: - + Некоректен команден ред: Legal Notice - + Юридическа бележка @@ -5496,194 +5627,196 @@ Those plugins were disabled. qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility. No further notices will be issued. - + qBittorrent е програма за обмяна на файлове. Когато стартирате торент, данните му ще са достъпни за останалите посредством споделяне. Носите персонална отговорност за всяка информация, която споделяте. + +Последващи предупреждения няма да бъдат правени. Press %1 key to accept and continue... - + Натиснете клавиш %1, че приемате и за продължение... Legal notice - + Юридическа бележка Cancel - Прекъсни + Отказване I Agree - + Съгласен съм Torrent name: %1 - + Име но торент: %1 Torrent size: %1 - + Размер на торент: %1 Save path: %1 - + Местоположение за запис: %1 The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + Торентът бе свален за %1. Thank you for using qBittorrent. - + Благодарим Ви за ползването на qBittorrent. [qBittorrent] '%1' has finished downloading - + [qBittorrent] '%1' завърши свалянето The remote host name was not found (invalid hostname) - + Името на отдалечения хост не бе намерено (невалидно име на хост) The operation was canceled - + Операцията бе прекъсната The remote server closed the connection prematurely, before the entire reply was received and processed - + Отдалечения сървър затвори връзката преждевременно, преди пълният отговор да е получен и обработен The connection to the remote server timed out - + Времето за връзка към отдалечения сървър изтече SSL/TLS handshake failed - + Неуспешно SSL/TLS уговаряне The remote server refused the connection - + Отдалеченият сървър отхвърли връзката The connection to the proxy server was refused - + Връзката с прокси сървъра бе отхвърлена The proxy server closed the connection prematurely - + Прокси сървърът затвори връзката преждевременно The proxy host name was not found - + Името на прокси хоста не бе намерено The connection to the proxy timed out or the proxy did not reply in time to the request sent - + Времето за връзка с проксито изтече или проксито не отговори своевременно на изпратеното запитване The proxy requires authentication in order to honor the request but did not accept any credentials offered - + Проксито изисква удостоверяване, за да уважи запитването, но не прие никакви предложени акредитации The access to the remote content was denied (401) - + Достъпът до отдалеченото съдържание бе отказан (401) The operation requested on the remote content is not permitted - + Изискваната операция върху отдалеченото съдържание не е позволена The remote content was not found at the server (404) - + Отдалеченото съдържание не бе намерено на сървъра (404) The remote server requires authentication to serve the content but the credentials provided were not accepted - + Отдалеченият сървър изисква удостоверяване, за да предостави съдържанието, но дадените акредитации не бяха приети The Network Access API cannot honor the request because the protocol is not known - + API-то за мрежов достъп не може да уважи запитването, защото протокола е непознат. The requested operation is invalid for this protocol - + Изискваната операция е невалидна за този протокол An unknown network-related error was detected - + Непозната свързана с мрежата грешка бе установена An unknown proxy-related error was detected - + Непозната свързана с проксито грешка бе установена An unknown error related to the remote content was detected - + Непозната свързана със отдалеченото съдържание грешка бе установена A breakdown in protocol was detected - + Повреда в протокола бе установена Unknown error - + Непозната грешка Upgrade - + Обновяване You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + Обновихте по-стара версия, която записва нещата различно. Трябва да преминете към по-новата записваща система. Не ще можете да използвате по-стара версия от v.3.3.0 отново. Продължаване? [да/не] You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Обновихте по-стара версия, която записва нещата различно. Трябва да преминете към по-новата записваща система. Ако продължите, не ще можете да използвате по-стара версия от v.3.3.0 отново. Couldn't migrate torrent with hash: %1 - + Не може да се мигрира торент с отпечатък: %1 Couldn't migrate torrent. Invalid fastresume file name: %1 - + Не може да се мигрира торента. Невалидно име на файла за бързо продължаване: %1 @@ -5723,7 +5856,7 @@ No further notices will be issued. Torrents: (double-click to download) - + Торенти: (двойно кликване за сваляне) @@ -5799,12 +5932,12 @@ No further notices will be issued. Please type a RSS stream URL - + Моля въведете URL на RSS поток This RSS feed is already in the list. - + Този RSS канал е вече в списъка. @@ -5824,12 +5957,12 @@ No further notices will be issued. Deletion confirmation - + Потвърждение за изтриване Are you sure you want to delete the selected RSS feeds? - + Сигурни ли сте, че искате да изтриете избраните RSS канали? @@ -5872,12 +6005,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Автоматичното сваляне на '%1' от '%2' RSS канал е неуспешно, защото не съдържа торент или магнитен линк... Automatically downloading '%1' torrent from '%2' RSS feed... - + Автоматично сваляне на '%1' торент от '%2' RSS канал... @@ -5885,7 +6018,7 @@ No further notices will be issued. Invalid RSS feed. - + Невалиден RSS канал. @@ -5916,22 +6049,22 @@ No further notices will be issued. Watch Folder - + Наблюдаване на Директория Default Folder - + Директория по подразбиране Browse... - Преглед... + Преглед... Choose save path - Избери път за съхранение + Избери местоположение за съхранение @@ -5939,12 +6072,12 @@ No further notices will be issued. Watch Folder - + Наблюдаване на Директория Default Folder - + Директория по подразбиране @@ -5954,170 +6087,87 @@ No further notices will be issued. Save Files to - - - - Download here - Свали тук - - - - SearchCategories - - All categories - Всички категории - - - Movies - Филми - - - TV shows - TV шоу - - - Music - Музика - - - Games - Игри - - - Anime - Анимация - - - Software - Софтуер - - - Pictures - Снимки - - - Books - Книги + Запис на файловете в SearchEngine - - Search - Търси - - - Empty search pattern - Празен образец за търсене - - - Please type a search pattern first - Моля първо въведете образец за търсене - - - Searching... - Търсене... - - - Stop - Спиране - - - Search Engine - Търсачка - - - Search has finished - Търсенето завърши - - - An error occurred during search... - Намерена грешка при търсенето... - - - Search aborted - Търсенето е прекъснато - - - Search returned no results - Търсене завършено без резултат - Unknown search engine plugin file format. - + Непознат формат на файла за добавката за търсене. A more recent version of this plugin is already installed. - + По-нова версия на тази добавка е вече инсталирана. Plugin is not supported. - + Добавката не се поддържа. Update server is temporarily unavailable. %1 - + Сървърът за обновления е временно недостъпен. %1 Failed to download the plugin file. %1 - + Неуспешно сваляне на файла на добавката. %1 An incorrect update info received. - + Неправилна информация за обновление е получена. All categories - Всички категории + Всички категории Movies - Филми + Филми TV shows - TV шоу + TV шоута Music - Музика + Музика Games - Игри + Игри Anime - Анимация + Анимация Software - Софтуер + Софтуер Pictures - Снимки + Снимки Books - Книги + Книги @@ -6126,7 +6176,7 @@ No further notices will be issued. Unknown - Неизвестен + Неизвестни @@ -6166,124 +6216,124 @@ No further notices will be issued. - - - + + + Search - Търси + Търсене Status: - Състояние: + Състояние: - + Stopped - Спрян + Спрян Download - Свали + Сваляне Go to description page - Отиди в страницата с описанието + Отиди на страницата с описанието Copy description page URL - + Копиране на URL на страницата с описанието Search plugins... - + Търсене на добавки... - + All enabled - - - - - All plugins - + Всички активирани - + All plugins + Всички добавки + + + + Multiple... - + Множество... - - - + + + Search Engine - Търсачка + Търсачка - + Please install Python to use the Search Engine. - + Моля инсталирайте Python, за да ползвате Търсачката. - + Empty search pattern - Празен образец за търсене + Празен шаблон за търсене - + Please type a search pattern first - Моля първо въведете образец за търсене + Моля въведете първо шаблон за търсене - - + + Results <i>(%1)</i>: i.e: Search results - - - - - Searching... - Търсене... + Резултати <i>(%1)</i>: + Searching... + Търсене... + + + Stop - Спиране + Спиране - - + + Search has finished - Търсенето завърши + Търсенето завърши - - + + Search aborted - Търсенето е прекъснато + Търсенето е прекъснато - + Search returned no results - Търсене завършено без резултат + Търсене завърши без резултат - + Search has failed - + Търсенето бе неуспешно - + An error occurred during search... - Намерена грешка при търсенето... + Възникна грешка при търсенето... @@ -6291,12 +6341,12 @@ No further notices will be issued. Exit confirmation - + Потвърждение за изход Exit now - + Изход сеа @@ -6306,27 +6356,27 @@ No further notices will be issued. Shutdown now - + Изключване сега qBittorrent will now exit unless you cancel within the next %1 seconds. - + qBittorrent сега ще приключи, освен ако откажете изхода в следващите %1 секунди. The computer will now be switched off unless you cancel within the next %1 seconds. - + Компютърът сега ще бъде загасен, освен ако не откажете изгасянето в следващите %1 секунди. The computer will now go to sleep mode unless you cancel within the next %1 seconds. - + Компютъра сега ще влезе в режим сън, освен ако не откажете операцията в следващите %1 секунди. The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - + Компютърът сега ще влезне в режим на хибернация, освен ако не откажете операцията в следващите %1 секунди. @@ -6342,52 +6392,52 @@ No further notices will be issued. Total Upload - + Общо Качени Total Download - + Общо Свалени Payload Upload - + Полезни данни Качени Payload Download - + Полезни данни Свалени Overhead Upload - + Служебни данни Качени Overhead Download - + Служебни данни Свалени DHT Upload - + DHT Качване DHT Download - + DHT Сваляне Tracker Upload - + Качване чрез Тракер Tracker Download - + Сваляне чрез Тракер @@ -6395,82 +6445,82 @@ No further notices will be issued. Period: - + Период: 1 Minute - + 1 Минута 5 Minutes - + 5 Минути 30 Minutes - + 30 Минути 6 Hours - + 6 Часа Select Graphs - + Избиране на Графики Total Upload - + Общо Качени Total Download - + Общо Свалени Payload Upload - + Полезни данни Качени Payload Download - + Полезни данни Свалени Overhead Upload - + Служебни данни Качени Overhead Download - + Служебни данни Свалени DHT Upload - + DHT Качване DHT Download - + DHT Сваляне Tracker Upload - + Качване чрез Тракер Tracker Download - + Сваляне чрез Тракер @@ -6478,37 +6528,37 @@ No further notices will be issued. Statistics - + Статистики User statistics - + Потребителски статистики Total peer connections: - + Общ брой взаимни връзки: Global ratio: - + Глобален коефициент: Alltime download: - + Свалени за цялото време: Alltime upload: - + Качени за цялото време: Total waste (this session): - + Общо пропиляване (тази сесия): @@ -6543,7 +6593,7 @@ No further notices will be issued. Average time in queue (ms): - + Осреднено време на опашка (мс): @@ -6605,7 +6655,7 @@ No further notices will be issued. Online - Свързан + Онлайн @@ -6620,7 +6670,7 @@ No further notices will be issued. Manual change of rate limits mode. The scheduler is disabled. - + Ръчна промяна на режима на ограниченията на скорост. Планировчикът е деактивиран. @@ -6639,92 +6689,92 @@ No further notices will be issued. All (0) this is for the status filter - + Всички (0) Downloading (0) - + Свалящи се (0) Seeding (0) - + Споделящи се (0) Completed (0) - + Приключени (0) Resumed (0) - + Продължени (0) Paused (0) - + В Пауза (0) Active (0) - + Активни (0) Inactive (0) - + Неактивни (0) Errored (0) - + С грешки (0) All (%1) - + Всички (%1) Downloading (%1) - + Свалящи се (%1) Seeding (%1) - + Споделящи се (%1) Completed (%1) - + Приключени (%1) Paused (%1) - + В Пауза (%1) Resumed (%1) - + Продължени (%1) Active (%1) - + Активни (%1) Inactive (%1) - + Неактивни (%1) Errored (%1) - + С грешки (%1) @@ -6747,11 +6797,7 @@ No further notices will be issued. Download Priority - - - - Priority - Предимство + Приоритет на Сваляне @@ -6784,13 +6830,13 @@ No further notices will be issued. Torrent Files (*.torrent) - + Торент файлове (*.torrent) Torrent was created successfully: %1 %1 is the path of the torrent - + Торентът бе създаден успешно: %1 @@ -6861,13 +6907,13 @@ No further notices will be issued. '%1' Files %1 is a file extension (e.g. PDF) - + '%1' Файлове Please provide the location of '%1' %1 is a file name - + Моля посочете местоположението на '%1' @@ -6921,7 +6967,7 @@ No further notices will be issued. Peers i.e. partial sources (often untranslated) - Двойки + Участници @@ -6997,13 +7043,13 @@ No further notices will be issued. Session Download Amount of data downloaded since program open (e.g. in MB) - + Сваляне в Сесията Session Upload Amount of data uploaded since program open (e.g. in MB) - + Качване в Сесията @@ -7033,7 +7079,7 @@ No further notices will be issued. Ratio Limit Upload share ratio limit - + Ограничение на Коефицента @@ -7060,28 +7106,28 @@ No further notices will be issued. All (0) this is for the label filter - + Всички (0) Trackerless (0) - + Без тракери (0) Error (0) - + Грешки (0) Warning (0) - + Предупреждения (0) Trackerless (%1) - + Без тракери (%1) @@ -7105,17 +7151,17 @@ No further notices will be issued. Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Не може да се разкодира favicon-а за URL '%1'. Опитва се да се свали favicon-а в PNG формат. Couldn't decode favicon for URL '%1'. - + Не може да се декодира favicon-а за URL '%1'. Couldn't download favicon for URL '%1'. Reason: %2 - + Не може да се свали favicon-а за URL '%1'. Причина: %2 @@ -7137,7 +7183,7 @@ No further notices will be issued. All (%1) this is for the tracker filter - + Всички (%1) @@ -7155,7 +7201,7 @@ No further notices will be issued. Peers - Двойки + Участници @@ -7227,22 +7273,22 @@ No further notices will be issued. Copy tracker URL - + Копиране на URL на тракер Edit selected tracker URL - + Редактиране на избрания URL на тракера Force reannounce to selected trackers - + Принудително повторно анонсиране към избраните тракери Force reannounce to all trackers - + Принудително анонсиране към всички тракери @@ -7315,7 +7361,7 @@ No further notices will be issued. Allocating qBittorrent is allocating the files on disk - + Заделяне @@ -7344,13 +7390,13 @@ No further notices will be issued. [F] Downloading used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Сваляне [F] Seeding used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Споделяне @@ -7362,13 +7408,13 @@ No further notices will be issued. Queued for checking i.e. torrent is queued for hash checking - + Поставен на опашка за проверка Checking resume data used when loading the torrents from disk after qbt is launched. It checks the correctness of the .fastresume file. Normally it is completed in a fraction of a second, unless loading many many torrents. - + Проверка на данните за продължаване @@ -7384,13 +7430,13 @@ No further notices will be issued. Errored torrent status, the torrent has an error - + С грешки %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (споделян за %2) @@ -7447,12 +7493,12 @@ No further notices will be issued. Recheck confirmation - + Потвърждение за повторна проверка Are you sure you want to recheck the selected torrent(s)? - + Сигурни ли сте, че искате повторно да проверите избрания торент(и)? @@ -7494,7 +7540,7 @@ No further notices will be issued. Force Resume Force Resume/start the torrent - + Насилствено Продължение @@ -7565,7 +7611,7 @@ No further notices will be issued. Copy name - + Копиране на име @@ -7650,12 +7696,12 @@ No further notices will be issued. The Web UI is listening on port %1 - + Web UI слуша на порт %1 Web UI Error - Unable to bind Web UI to port %1 - + Web UI грешка - Не може да се обвърже Web UI с порта %1 @@ -7663,12 +7709,12 @@ No further notices will be issued. An advanced BitTorrent client programmed in <nobr>C++</nobr>, based on Qt toolkit and libtorrent-rasterbar. - + Разширен BitTorrent клиент написан на <nobr>C++</nobr>, базиран на Qt toolkit и Copyright %1 2006-2015 The qBittorrent project - + Авторски права %1 2006-2015 The qBittorrent project @@ -7696,17 +7742,17 @@ No further notices will be issued. Add Peers - + Добавяне на Участници List of peers to add (one per line): - + Списък от участници (по един на ред): Format: IPv4:port / [IPv6]:port - + Формат: IPv4:порт / [IPv6]:порт @@ -7817,7 +7863,7 @@ No further notices will be issued. You can separate tracker tiers / groups with an empty line. A tracker tier is a group of trackers, consisting of a main tracker and its mirrors. - + Можете да разделите тракер комплекти / групи с празен ред. @@ -7897,7 +7943,7 @@ No further notices will be issued. Ignore share ratio limits for this torrent - + Игнориране на коефициента на споделяне за този торент @@ -7948,112 +7994,6 @@ No further notices will be issued. Моля въведете поне един URL. - - engineSelect - - Search plugins - Търси добавки - - - Installed search engines: - Инсталирани търсачки: - - - Name - Име - - - Version - Версия - - - Url - Url - - - Enabled - Включено - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Можете да вземете нови добавки за търсачката тук: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Инсталирай нов - - - Check for updates - Провери за обновяване - - - Close - Затвори - - - Uninstall - Деинсталирай - - - - engineSelectDlg - - Uninstall warning - Предупреждение за деинсталиране - - - Uninstall success - Успешно деинсталиране - - - The link doesn't seem to point to a search engine plugin. - Връзката изглежда не води към добавката за търсачката. - - - Select search plugins - Избери добавки за търсене - - - Search plugin install - Инсталиране на добавка за търсене - - - Yes - Да - - - No - Не - - - Search plugin update - Добавката за търсене е обновена - - - Sorry, update server is temporarily unavailable. - Съжалявам, сървъра за обновяване е временно недостъпен. - - - All your plugins are already up to date. - Всички ваши добавки са вече обновени. - - - All selected plugins were uninstalled successfully - Всички избрани добавки бяха успешно деинсталирани - - - Invalid link - Невалиден адрес - - - New search engine plugin URL - Нов URL за добавки на търсачката - - - URL: - URL: - - errorDialog @@ -8109,7 +8049,7 @@ No further notices will be issued. Python not detected - + Python не е намерен. @@ -8181,192 +8121,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Изберете Директория за Експорт - - - - + + + + Choose a save directory Изберете директория за съхранение - + Add directory to scan Добави директория за сканиране - - - Supported parameters (case sensitive): - - - - - %N: Torrent name - - - - - %L: Label - - - %F: Content path (same as root path for multifile torrent) - + Supported parameters (case sensitive): + Поддържани параметри (чувствителност към регистъра) - %R: Root path (first torrent subdirectory path) - + %N: Torrent name + %N: Име на торент - %D: Save path - + %L: Label + %L: Етикет - %C: Number of files - + %F: Content path (same as root path for multifile torrent) + %F: Местоположение на съдържанието (същото като местоположението на основната директория за торент с множество файлове) - %Z: Torrent size (bytes) - + %R: Root path (first torrent subdirectory path) + %R: Местоположение на основната директория (местоположението на първата поддиректория за торент) - %T: Current tracker - + %D: Save path + %D: Местоположение за запис - %I: Info hash - + %C: Number of files + %C: Брой на файловете - + + %Z: Torrent size (bytes) + %Z: Размер на торента (байтове) + + + + %T: Current tracker + %T: Сегашен тракер + + + + %I: Info hash + %I: Информационен отпечатък + + + Folder is already being watched. Папката вече се наблюдава. - + Folder does not exist. Папката не съществува. - + Folder is not readable. Папката не се чете. - + Failure Грешка - + Failed to add Scan Folder '%1': %2 Грешка при добавяне Папка за Сканиране '%1': %2 - - + + Filters Филтри - - + + Choose an IP filter file - + Избиране файл на IP филтъра - + SSL Certificate SSL сертификат - + SSL Key SSL ключ - + Parsing error Грешка при вмъкване - + Failed to parse the provided IP filter Неуспешно вмъкване на дадения IP филтър - + Successfully refreshed Успешно обновен - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успешно вмъкване на дадения IP филтър: %1 правила бяха добавени. - + Invalid key Невалиден ключ - + This is not a valid SSL key. Това е невалиден SSL-ключ. - + Invalid certificate Невалиден сертификат - + This is not a valid SSL certificate. Това не е валиден SSL сертификат. - + The start time and the end time can't be the same. Времето на стартиране и приключване не може да бъде едно и също. - + Time Error Грешка във времето - - pluginSourceDlg - - Plugin source - Източник на добавката - - - Search plugin source: - Търсене на източници на добавки: - - - Local file - Локален файл - - - Web link - Web линк - - preview @@ -8390,31 +8311,4 @@ No further notices will be issued. Прекъсни - - search_engine - - Search - Търси - - - Status: - Състояние: - - - Stopped - Спрян - - - Download - Свали - - - Go to description page - Отиди в страницата с описанието - - - Search engines... - Търсачки... - - diff --git a/src/lang/qbittorrent_ca.ts b/src/lang/qbittorrent_ca.ts index 04381d2ce..317788f94 100644 --- a/src/lang/qbittorrent_ca.ts +++ b/src/lang/qbittorrent_ca.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Identitat del parell: - + HTTP User-Agent is '%1' La HTTP de l'usuari és %1 - + Anonymous mode [ON] Mode anònim [Encès] - + Anonymous mode [OFF] Mode anònim [Apagat] - + PeX support [ON] Suport per a PeX [Encès] - + PeX support [OFF] Suport PeX [Apagat] - + Restart is required to toggle PeX support És necessari reiniciar per activar suport PeX - + Local Peer Discovery support [ON] Suport per a trobar parells locals [Encès] - + Local Peer Discovery support [OFF] Suport per trobar parells locals [Apagat] - + Encryption support [ON] Suport per a l'encriptació [Encès] - + Encryption support [FORCED] Suport per a l'encriptació [Forçat] - + Encryption support [OFF] Suport per a l'encriptació [Apagat] - + Embedded Tracker [ON] Rastrejador integrat [Encès] - + Failed to start the embedded tracker! Error en iniciar el rastrejador integratt! - + Embedded Tracker [OFF] Rastrejador integrat [Apagat] - + '%1' reached the maximum ratio you set. Removing... %1 ha assolit el ràtio màxim establert. Eliminant... - + '%1' reached the maximum ratio you set. Pausing... %1 ha assolit el ràtio màxim establert. Pausant... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. No s'han pogut descodificar '%1' arxius Torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descàrrega recursiva d'arxiu %1 integrada al Torrent %2 - + Couldn't save '%1.torrent' No s'ha pogut desar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. perquè %1 es troba inhabilitat. - + because %1 is disabled. this peer was blocked because TCP is disabled. perquè %1 es troba inhabilitat. - + URL seed lookup failed for URL: '%1', message: %2 Ha fallat la cerca de llavor per a la URL: %1, missatge: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' ha estat eliminat de la llista de transferència i del disc. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' ha estat eliminat de la llista de transferència. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Baixant '%1', espereu... - + DHT support [ON] Suport DHT [Encès] - + DHT support [OFF]. Reason: %1 Suport DHT [Apagat]. Raó: %1 - + DHT support [OFF] Suport DHT [Encès] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent està intentant contactar a algun port interfície: %1 - + The network interface defined is invalid: %1 La interfície de la xarxa definida no és vàlida:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent està intentant contactar a l'interfície %1 del port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent no ha trobat una adreça local %1 per a contactar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' El rastrejador '%1' ha estat afegit al Torrent '%2' - + Tracker '%1' was deleted from torrent '%2' El rastrejador '%1' ha estat eliminat del Torrent '%2' - + URL seed '%1' was added to torrent '%2' La llavor URL '%1' ha estat afegida al Torrent '%2' - + URL seed '%1' was removed from torrent '%2' La llavor URL '%1' ha estat eliminada del Torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossible reprendre el Torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analitzat satisfactòriament el filtre IP: %1 regles han estat aplicades. - + Error: Failed to parse the provided IP filter. Error: Ha fallat l'anàlisi del filtre IP proporcionat. - + Couldn't add torrent. Reason: %1 No s'ha pogut afegir el Torrent: '%1'. Raó: %2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' reprès. (represa ràpida) - + '%1' added to download list. 'torrent name' was added to download list. '%1' afegit a la llista de baixades. - + An I/O error occurred, '%1' paused. %2 S'ha produït un error d'entrada-sortida, '%1' pausat. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Ha fallat el mapatge del port, missatge: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapatge del port reeixit, missatge: %1 - + due to IP filter. this peer was blocked due to ip filter. degut al filtre IP. - + due to port filter. this peer was blocked due to port filter. degut al filtre de ports. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. degut a restriccions mixtes i2p. - + because it has a low port. this peer was blocked because it has a low port. perquè te un port baix. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent està contactant satisfactòriament en la interfície %1 del port: %2%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 IP externa: %1 @@ -1284,12 +1284,12 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< FeedListWidget - + RSS feeds Canals RSS - + Unread No llegits @@ -1378,211 +1378,334 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Baixa Torrents des d'URL o enllaç imant - + Only one link per line Només un enllaç per línia - + Download Baixa - + Global upload rate limit must be greater than 0 or disabled. El límit de pujada ha de ser major que 0 o estar inhabilitat. - + Global download rate limit must be greater than 0 or disabled. El límit de baixada ha de ser major que 0 o estar inhabilitat. - + Alternative upload rate limit must be greater than 0 or disabled. El límit de pujada alternatiu ha de ser major que 0 o estar inhabilitat. - + Alternative download rate limit must be greater than 0 or disabled. El límit de baixada alternativa ha de ser major que 0 o estar inhabilitat. - + Maximum active downloads must be greater than -1. El màxim de baixades actives ha de ser major de -1. - + Maximum active uploads must be greater than -1. El màxim de pujades actives ha de ser major de -1. - + Maximum active torrents must be greater than -1. El màxim de Torrents actius ha de ser major de -1. - + Maximum number of connections limit must be greater than 0 or disabled. El nombre màxim del limiti de connexions ha de ser major que 0 o estar inhabilitat. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. El nombre màxim del limit de connexions per Torrent ha de ser major que 0 o estar inhabilitat. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. El nombre màxim de pujades de ranures per Torrent ha de ser major que 0 o estar inhabilitat. - + Unable to save program preferences, qBittorrent is probably unreachable. No es poden desar les preferències del programa, probablement qBittorrent no és accessible. - + Language Idioma - + The port used for incoming connections must be between 1 and 65535. El port utilitzat per a connexions entrants ha de ser major de 1024 i menor de 65535. - + The port used for the Web UI must be between 1 and 65535. El port utilitzat per a la interfície d'usuari web ha de ser major de 1024 i menor de 65535. - + Unable to log in, qBittorrent is probably unreachable. No ha estat possible iniciar sessió, qBittorrent deu estar il·localitzable en aquests moments. - + Invalid Username or Password. Nom d'usuari o contrasenya incorrectes. - + Password Contrasenya - + Login Inicia sessió - + Upload Failed! Pujada fallida! - + Original authors Autors originals - + Upload limit: Límit de pujada: - + Download limit: Límit de baixada: - + Apply Aplica - + Add Afegeix - + Upload Torrents Puja Torrents - + All Tots - + Downloading Baixant - + Seeding Sembrant - + Completed Completats - + Resumed Represos - + Paused Pausats - + Active Actius - + Inactive Inactius - + Save files to location: Desa els arxius en la seva ubicació: - + Label: Etiqueta: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Tots + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Baixat @@ -1593,57 +1716,57 @@ Podeu obtenir aquesta informació a les preferències del vostre navegador web.< Tanca la sessió - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? Esteu segur que voleu eliminar els Torrent seleccionats de la llista de transferències? - + The Web UI username must be at least 3 characters long. El nom d'Interfície d'Usuari web ha de ser d'almenys 3 caràcters. - + The Web UI password must be at least 3 characters long. La contrasenya d'Interfície d'Usuari Web ha de ser d'almenys 3 caràcters. - + Save Desa - + qBittorrent client is not reachable El client qBittorrent no és accessible - + HTTP Server Servidor HTTP - + The following parameters are supported: Els següents paràmetres són compatibles: - + Torrent path Ruta Torrent - + Torrent name Nom del Torrent - + qBittorrent has been shutdown. qBittorrent s'ha apagat. @@ -2281,12 +2404,6 @@ Voleu instal·lar-lo ara? Python is required to use the search engine but it does not seem to be installed. Es requereix Python per a fer servir el motor de cerca i sembla que no el teniu instal·lat. - - A new version is available. -Update to version %1? - Hi ha una nova versió disponible. -Voleu actualitzar a la versió %1? - No updates available. @@ -2502,14 +2619,6 @@ Esteu segur que voleu tancar qBittorrent? N/A No disponible - - Asia/Pacific Region - Regió Àsia-Pacífic - - - Europe - Europa - Andorra @@ -2545,10 +2654,6 @@ Esteu segur que voleu tancar qBittorrent? Armenia Armènia - - Netherlands Antilles - Antilles Neerlandeses - Angola @@ -2644,10 +2749,6 @@ Esteu segur que voleu tancar qBittorrent? Brunei Darussalam Brunei - - Bolivia - Bolívia - Brazil @@ -2713,10 +2814,6 @@ Esteu segur que voleu tancar qBittorrent? Switzerland Suïssa - - Cote D'Ivoire - Costa d'Ivori - Cook Islands @@ -2872,10 +2969,6 @@ Esteu segur que voleu tancar qBittorrent? France França - - France, Metropolitan - França metropolitana - Gabon @@ -3161,10 +3254,6 @@ Esteu segur que voleu tancar qBittorrent? Latvia Letònia - - Libyan Arab Jamahiriya - Líbia - Morocco @@ -3190,10 +3279,6 @@ Esteu segur que voleu tancar qBittorrent? Marshall Islands Illes Marshall - - Macedonia - Macedònia - Mali @@ -3209,10 +3294,6 @@ Esteu segur que voleu tancar qBittorrent? Mongolia Mongòlia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3454,11 @@ Esteu segur que voleu tancar qBittorrent? Saint Pierre and Miquelon Saint-Pierre i Miquelon - - Pitcairn Islands - Illes Pitcairn - Puerto Rico Puerto Rico - - Palestinian Territory - Palestina - Portugal @@ -3456,10 +3529,6 @@ Esteu segur que voleu tancar qBittorrent? Singapore Singapur - - Saint Helena - Santa Helena - Slovenia @@ -3700,10 +3769,6 @@ Esteu segur que voleu tancar qBittorrent? Saint Vincent and the Grenadines Saint Vincent i les Grenadines - - Venezuela - Veneçuela - Virgin Islands, British @@ -3714,10 +3779,6 @@ Esteu segur que voleu tancar qBittorrent? Virgin Islands, U.S. Illes Verges Nord-americanes - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3829,6 @@ Esteu segur que voleu tancar qBittorrent? Zimbabwe Zimbabwe - - Anonymous Proxy - Servidor intermediari anònim - - - Satellite Provider - Proveïdor satèl·lit - - - Other - Altres - Aland Islands @@ -3805,10 +3854,6 @@ Esteu segur que voleu tancar qBittorrent? Saint Barthelemy Saint-Barthélemy - - Saint Martin - Sant Martí - Could not uncompress GeoIP database file. @@ -3846,7 +3891,7 @@ Esteu segur que voleu tancar qBittorrent? Net::Smtp - + Email Notification Error: Error de notificació de correu electrònic: @@ -4098,7 +4143,7 @@ Esteu segur que voleu tancar qBittorrent? Search plugins - Cerca plugins + @@ -4113,43 +4158,43 @@ Esteu segur que voleu tancar qBittorrent? Version - Versió + Url - Url + Enabled - Habilitat + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pots obtenir nous plugins de motors de cerca aquí <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Instal-lar-ne un de nou + Check for updates - Cerca actualitzacions + Close - Tancar + Uninstall - Desinstal-lar + @@ -4169,68 +4214,67 @@ Esteu segur que voleu tancar qBittorrent? Uninstall warning - Alerta de desinstal-lació + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alguns connectors no s'han pogut instal·lar perquè ja són inclosos al qBittorrent. Només els que has afegit tu mateix poden ser desinstal·lats. -De totes maneres, aquests connectors han estat inhabilitats. + Uninstall success - Desinstal-lació correcta + All selected plugins were uninstalled successfully - Tots els plugins seleccionats van ser instal-lats reeixidament + New search engine plugin URL - URL del nou plugin de motor de cerca + URL: - URL: + Invalid link - Enllaç invàlid + The link doesn't seem to point to a search engine plugin. - L'enllaç no sembla portar a un connector de motor de cerca. + Select search plugins - Seleccioni els plugins de recerca + qBittorrent search plugin - Connector de cerca qBittorrent + Search plugin update - Actualització del plugin de recerca + All your plugins are already up to date. - Tots els teus plugins ja estan actualitzats. + @@ -4242,7 +4286,7 @@ De totes maneres, aquests connectors han estat inhabilitats. Search plugin install - Instal-lar plugin de recerca + @@ -4272,22 +4316,22 @@ De totes maneres, aquests connectors han estat inhabilitats. Plugin source - Font del plugin + Search plugin source: - Font del plugin de recerca: + Local file - Arxiu local + Web link - Vincle web + @@ -5025,17 +5069,17 @@ De totes maneres, aquests connectors han estat inhabilitats. Ruta de Filtre (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5468,7 +5512,7 @@ De totes maneres, aquests connectors han estat inhabilitats. QObject - + Your IP address has been banned after too many failed authentication attempts. La vostra adreça IP ha estat bandejada després de masses intents d'autentificació fallits. @@ -5960,12 +6004,12 @@ No es mostraran més avisos. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - La baixada automàtica de '%1' de la font 'RSS' %2 ha fallat perquè no conté un Torrent o enllaç imant... + Automatically downloading '%1' torrent from '%2' RSS feed... - Baixant automàticament '%1' Torrent de '%2' fonts RSS... + @@ -5976,28 +6020,6 @@ No es mostraran més avisos. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - La baixada automàtica de '%1' de la font 'RSS' %2 ha fallat perquè no conté un Torrent o enllaç imant... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Baixant automàticament '%1' Torrent de '%2' fonts RSS... - - - - RssParser - - Failed to open downloaded RSS file. - No s'ha pogut obrir l'arxiu RSS baixat. - - - Invalid RSS feed at '%1'. - Proveïdor d'RSS invàlid en '%1'. - - RssSettingsDlg @@ -6066,117 +6088,9 @@ No es mostraran més avisos. Save Files to - - Download here - Descarregar Torrent aquí - - - - SearchCategories - - All categories - Totes les categories - - - Movies - Vídeos - - - TV shows - Programes TV - - - Music - Música - - - Games - Jocs - - - Anime - Anime - - - Software - Programes - - - Pictures - Imatges - - - Books - Llibres - SearchEngine - - Search - Cerca - - - Please install Python to use the Search Engine. - Instal·leu Python per a fer servir el motor de cerca. - - - Empty search pattern - Patró de recerca buit - - - Please type a search pattern first - Si us plau escrigui un patró de recerca primer - - - Searching... - Buscant... - - - Stop - Atura - - - Search Engine - Motor de cerca - - - Search has finished - Recerca acabada - - - An error occurred during search... - Va ocórrer un error durant la recerca... - - - Search aborted - Recerca avortada - - - All enabled - Tot habilitat - - - All engines - Tots els motors - - - Multiple... - Múltiple... - - - Results <i>(%1)</i>: - i.e: Search results - Resulats <i>(%1)</i>: - - - Search returned no results - La recerca no va tornar resultats - - - Stopped - Detinguts - Unknown search engine plugin file format. @@ -6212,47 +6126,47 @@ No es mostraran més avisos. All categories - Totes les categories + Movies - Vídeos + TV shows - Programes TV + Music - Música + Games - Jocs + Anime - Anime + Software - Programes + Pictures - Imatges + Books - Llibres + @@ -6301,20 +6215,20 @@ No es mostraran més avisos. - - - + + + Search Cerca Status: - Estat: + - + Stopped @@ -6326,12 +6240,12 @@ No es mostraran més avisos. Go to description page - Pàgina de descripció + Copy description page URL - Copia la pàgina URL de descripció + @@ -6339,86 +6253,86 @@ No es mostraran més avisos. - + All enabled - Tot habilitat - - - - All plugins - + All plugins + + + + + Multiple... - Múltiple... + - - - + + + Search Engine - Motor de cerca + - + Please install Python to use the Search Engine. - Instal·leu Python per a fer servir el motor de cerca. + - + Empty search pattern - Patró de recerca buit + - + Please type a search pattern first - Si us plau escrigui un patró de recerca primer + - - + + Results <i>(%1)</i>: i.e: Search results - Resulats <i>(%1)</i>: - - - - Searching... - Buscant... + + Searching... + + + + Stop - Atura + - - + + Search has finished - Recerca acabada + - - + + Search aborted - Recerca avortada + - + Search returned no results - La recerca no va tornar resultats + - + Search has failed - + An error occurred during search... - Va ocórrer un error durant la recerca... + @@ -6884,10 +6798,6 @@ No es mostraran més avisos. Download Priority - - Priority - Prioritat - TorrentCreatorDlg @@ -8083,152 +7993,6 @@ No es mostraran més avisos. Si us plau escriu almenys una URL. - - engineSelect - - Search plugins - Cerca plugins - - - Installed search engines: - Motors de cerca instal-lats: - - - Name - Nom - - - Version - Versió - - - Url - Url - - - Enabled - Habilitat - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pots obtenir nous plugins de motors de cerca aquí <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instal-lar-ne un de nou - - - Check for updates - Cerca actualitzacions - - - Close - Tancar - - - Uninstall - Desinstal-lar - - - - engineSelectDlg - - Uninstall warning - Alerta de desinstal-lació - - - Uninstall success - Desinstal-lació correcta - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Una versió més recent del connector de motor de cerca '%1' ja està instal·lada. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - El connector de motor de cerca '%1' no s'ha pogut actualitzar, es mantindrà la versió antiga. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - El connector de motor de cerca '%1' no ha pogut ser instal·lat. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - El connector de motor de cerca '%1' ha estat actualitzat reeixidament. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - El connector de motor de cerca '%1' ha estat instal·lat reeixidament. - - - The link doesn't seem to point to a search engine plugin. - L'enllaç no sembla portar a un connector de motor de cerca. - - - Select search plugins - Seleccioni els plugins de recerca - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - La instal·lació del connector de cerca '%1' ha fallat. - - - Search plugin install - Instal-lar plugin de recerca - - - Yes - - - - No - No - - - qBittorrent search plugin - Connector de cerca qBittorrent - - - Search plugin update - Actualització del plugin de recerca - - - Sorry, update server is temporarily unavailable. - Ho sento, el servidor d'actualització aquesta temporalment no disponible. - - - All your plugins are already up to date. - Tots els teus plugins ja estan actualitzats. - - - All selected plugins were uninstalled successfully - Tots els plugins seleccionats van ser instal-lats reeixidament - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Alguns connectors no s'han pogut instal·lar perquè ja són inclosos al qBittorrent. Només els que has afegit tu mateix poden ser desinstal·lats. -De totes maneres, aquests connectors han estat inhabilitats. - - - Invalid link - Enllaç invàlid - - - New search engine plugin URL - URL del nou plugin de motor de cerca - - - URL: - URL: - - errorDialog @@ -8356,192 +8120,173 @@ De totes maneres, aquests connectors han estat inhabilitats. options_imp - - + + Choose export directory Seleccioni directori d'exportació - - - - + + + + Choose a save directory Seleccioneu un directori per a desar - + Add directory to scan Afegir directori per escanejar - + Supported parameters (case sensitive): Paràmetres suportats - + %N: Torrent name %N: Nom del Torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Camí de desada - + %C: Number of files %C: Nombre de files - + %Z: Torrent size (bytes) %Z Mida del Torrent (bytes) - + %T: Current tracker %T: Rastrejador actual - + %I: Info hash %I: Informació de la funció resum (hash) - + Folder is already being watched. Aquesta carpeta ja està seleccionada per escanejar. - + Folder does not exist. La carpeta no existeix. - + Folder is not readable. La carpeta no és llegible. - + Failure Error - + Failed to add Scan Folder '%1': %2 No es pot escanejar aquesta carpetes '%1':%2 - - + + Filters Filtres - - + + Choose an IP filter file Seleccioneu un arxiu de filtre de IP - + SSL Certificate Certificat SSL - + SSL Key Clau SSL - + Parsing error Error d'anàlisi - + Failed to parse the provided IP filter No s'ha pogut analitzar el filtratge IP - + Successfully refreshed Actualitzat amb èxit - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analitzat satisfactòriament el filtre IP: %1 regla ha estat aplicada. - + Invalid key Clau no vàlida - + This is not a valid SSL key. Aquesta no és una clau SSL vàlida. - + Invalid certificate Certificat no vàlid - + This is not a valid SSL certificate. Aquest no és un Certificat SSL vàlid. - + The start time and the end time can't be the same. Els temps d'inici i d'acabament no poden ser els mateixos. - + Time Error Error de temps - - pluginSourceDlg - - Plugin source - Font del plugin - - - Search plugin source: - Font del plugin de recerca: - - - Local file - Arxiu local - - - Web link - Vincle web - - preview @@ -8565,35 +8310,4 @@ De totes maneres, aquests connectors han estat inhabilitats. Cancel·la - - search_engine - - Search - Cerca - - - Status: - Estat: - - - Stopped - Detingut - - - Download - Descarregar - - - Go to description page - Pàgina de descripció - - - Copy description page URL - Copia la pàgina URL de descripció - - - Search engines... - Motors de cerca... - - diff --git a/src/lang/qbittorrent_cs.ts b/src/lang/qbittorrent_cs.ts index 81dc016d6..44e2cf64e 100644 --- a/src/lang/qbittorrent_cs.ts +++ b/src/lang/qbittorrent_cs.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID protějšku: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] Anonymní režim [ZAP] - + Anonymous mode [OFF] Anonymní režim [VYP] - + PeX support [ON] Podpora PeX [ZAP] - + PeX support [OFF] Podpora PeX [VYP] - + Restart is required to toggle PeX support Kvůli přepnutí podpory PEX je nutný restart - + Local Peer Discovery support [ON] Podpora Local Peer Discovery [ZAP] - + Local Peer Discovery support [OFF] Podpora Local Peer Discovery [VYP] - + Encryption support [ON] Podpora šifrování [ZAP] - + Encryption support [FORCED] Podpora šifrování [VYNUCENO] - + Encryption support [OFF] Podpora šifrování [VYP] - + Embedded Tracker [ON] Vestavěný tracker [ZAP] - + Failed to start the embedded tracker! Start vestavěného trackeru selhal! - + Embedded Tracker [OFF] Vestavěný tracker [VYP] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' byl odstraněn ze seznamu i z pevného disku. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' byl odstraněn ze seznamu přenosů. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Stahuji '%1', prosím čekejte... - + DHT support [ON] Podpora DHT [ZAP] - + DHT support [OFF]. Reason: %1 Podpora DHT [VYP]. Důvod: %1 - + DHT support [OFF] Podpora DHT [VYP] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent se pokouší naslouchat na jakémkoli rozhraní, portu: %1 - + The network interface defined is invalid: %1 Nastavené síťové rozhraní je neplatné: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent se pokouší naslouchat na rozhraní %1, portu: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nenalezl místní adresu %1 na které by měl naslouchat - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' Tracker '%1' byl přidán do torrentu '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' byl odebrán z torrentu '%2' - + URL seed '%1' was added to torrent '%2' URL zdroj '%1' byl přidán do torrentu '%2' - + URL seed '%1' was removed from torrent '%2' URL zdroj '%1' byl odebrán z torrentu '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nelze obnovit torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP filter byl úspěšně zpracován: bylo aplikováno %1 pravidel. - + Error: Failed to parse the provided IP filter. Chyba: Nepovedlo se zpracovat poskytnutý IP filtr. - + Couldn't add torrent. Reason: %1 Nelze přidat torrent. Důvod: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' obnoven. (rychlé obnovení) - + '%1' added to download list. 'torrent name' was added to download list. '%1' přidán do seznamu stahování. - + An I/O error occurred, '%1' paused. %2 Došlo k chybě I/O, '%1' je pozastaven. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Namapování portů selhalo, zpráva: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Namapování portů bylo úspěšné, zpráva: %1 - + due to IP filter. this peer was blocked due to ip filter. kvůli IP filtru. - + due to port filter. this peer was blocked due to port filter. kvůli port filtru. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. kvůli omezením i2p mixed módu. - + because it has a low port. this peer was blocked because it has a low port. kvůli nízkému portu. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent naslouchá na rozhraní %1, portu: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 Externí IP: %1 @@ -1284,12 +1284,12 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. FeedListWidget - + RSS feeds RSS kanály - + Unread Nepřečtené @@ -1378,211 +1378,334 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Stahovat torrenty z jejich URL nebo Magnet odkazu - + Only one link per line Pouze jeden odkaz na řádek - + Download Stahování - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Maximální počet spojení musí být větší než 0 nebo vypnut. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Maximální počet spojení na torrent musí být větší než 0 nebo vypnut. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Limit maximálního počtu slotů na torrent musí být větší než 0 nebo vypnut. - + Unable to save program preferences, qBittorrent is probably unreachable. Nelze uložit nastavení programu, qBittorrent klient je pravděpodobně nedostupný. - + Language Jazyk - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. Nelze se přihlásit, qBittorrent je pravděpodobně nedostupný - + Invalid Username or Password. Neplatné jméno nebo heslo - + Password Heslo - + Login Přihlášení - + Upload Failed! Nahrávání selhalo! - + Original authors Původní autoři - + Upload limit: Omezení odesílání: - + Download limit: Omezení stahování: - + Apply Použít - + Add Přidat - + Upload Torrents Nahrát torrenty - + All Vše - + Downloading Stahuji - + Seeding Sdílím - + Completed Dokončeno - + Resumed Obnoveno - + Paused Pozastaveno - + Active Aktivní - + Inactive Neaktivní - + Save files to location: Ukládat soubory do umístění: - + Label: Štítek: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Každý den + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Staženo @@ -1593,57 +1716,57 @@ Tyto informace by měly jít získat z nastavení webového prohlížeče.Odhlásit - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? Opravdu chcete smazat vybrané torrenty ze seznamu přenosů? - + The Web UI username must be at least 3 characters long. Uživatelské jméno pro webové rozhraní musí být nejméně 3 znaky dlouhé. - + The Web UI password must be at least 3 characters long. Heslo pro webové rozhraní musí být nejméně 3 znaky dlouhé. - + Save Uložit - + qBittorrent client is not reachable Klient qBittorrent není dostupný - + HTTP Server HTTP Server - + The following parameters are supported: Podporovány jsou následující parametry: - + Torrent path Cesta k torrentu - + Torrent name Název torrentu - + qBittorrent has been shutdown. qBittorrent byl ukončen. @@ -2279,12 +2402,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - Je k dispozici nová verze. -Aktualizovat na verzi %1? - No updates available. @@ -3772,7 +3889,7 @@ Opravdu chcete ukončit qBittorrent? Net::Smtp - + Email Notification Error: Chyba upozornění e-mailem: @@ -4024,7 +4141,7 @@ Opravdu chcete ukončit qBittorrent? Search plugins - Zásuvné moduly pro vyhledávání + @@ -4039,43 +4156,43 @@ Opravdu chcete ukončit qBittorrent? Version - Verze + Url - URL + Enabled - Zapnuto + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nové vyhledávače můžete získat zde: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Nainstalovat nový + Check for updates - Zkontrolovat aktualizace + Close - Zavřít + Uninstall - Odinstalovat + @@ -4095,7 +4212,7 @@ Opravdu chcete ukončit qBittorrent? Uninstall warning - Upozornění na odstranění + @@ -4106,56 +4223,56 @@ Those plugins were disabled. Uninstall success - Odstranění bylo úspěšné + All selected plugins were uninstalled successfully - Všechny zásuvné moduly byly úspěšně odstraněny + New search engine plugin URL - URL nového vyhledávacího modulu + URL: - URL: + Invalid link - Neplatný odkaz + The link doesn't seem to point to a search engine plugin. - Odkaz zřejmě neodkazuje na zásuvný modul vyhledávače. + Select search plugins - Vybrat vyhledávače + qBittorrent search plugin - qBittorrent - vyhledávače + Search plugin update - Aktualizovat vyhledávač + All your plugins are already up to date. - Všechny zásuvné moduly jsou aktuální. + @@ -4167,7 +4284,7 @@ Those plugins were disabled. Search plugin install - Nainstalovat vyhledávač + @@ -4197,22 +4314,22 @@ Those plugins were disabled. Plugin source - Zdroj zásuvného modulu + Search plugin source: - Hledat zdroj zásuvného modulu: + Local file - Místní soubor + Web link - Webový odkaz + @@ -4950,17 +5067,17 @@ Those plugins were disabled. Cesta k filtru (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5393,7 +5510,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. Vaše IP adresa byla zablokována kvůli vysokém počtu neúspěšných pokusů o přihlášení. @@ -5901,13 +6018,6 @@ Další upozornění již nebudou zobrazena. - - RssParser - - Failed to open downloaded RSS file. - Selhalo otevření staženého RSS souboru. - - RssSettingsDlg @@ -5976,104 +6086,9 @@ Další upozornění již nebudou zobrazena. Save Files to - - Download here - Stáhnout zde - - - - SearchCategories - - All categories - Všechny kategorie - - - Movies - Filmy - - - TV shows - TV seriály - - - Music - Hudba - - - Games - Hry - - - Anime - Anime - - - Software - Software - - - Pictures - Obrázky - - - Books - Knihy - SearchEngine - - Search - Hledat - - - Empty search pattern - Prázdný hledaný řetězec - - - Please type a search pattern first - Nejdříve prosím napište hledaný řetězec - - - Searching... - Hledám... - - - Stop - Zastavit - - - Search Engine - Vyhledávač - - - Search has finished - Hledání ukončeno - - - An error occurred during search... - Během hledání nastala chyba... - - - Search aborted - Hledání přerušeno - - - All enabled - Vše zapnuto - - - All engines - Všechny vyhledávače - - - Multiple... - Vícenásobný... - - - Search returned no results - Nebyly nalezeny žádné výsledky - Unknown search engine plugin file format. @@ -6109,47 +6124,47 @@ Další upozornění již nebudou zobrazena. All categories - Všechny kategorie + Movies - Filmy + TV shows - TV seriály + Music - Hudba + Games - Hry + Anime - Anime + Software - Software + Pictures - Obrázky + Books - Knihy + @@ -6198,22 +6213,22 @@ Další upozornění již nebudou zobrazena. - - - + + + Search Hledat Status: - Status: + - + Stopped - Zastaveno + @@ -6223,7 +6238,7 @@ Další upozornění již nebudou zobrazena. Go to description page - Přejít na stránku s popisem + @@ -6236,86 +6251,86 @@ Další upozornění již nebudou zobrazena. - + All enabled - Vše zapnuto - - - - All plugins - + All plugins + + + + + Multiple... - Vícenásobný... + - - - + + + Search Engine - Vyhledávač + - + Please install Python to use the Search Engine. - + Empty search pattern - Prázdný hledaný řetězec + - + Please type a search pattern first - Nejdříve prosím napište hledaný řetězec + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Hledám... - + Searching... + + + + Stop - Zastavit + - - + + Search has finished - Hledání ukončeno + - - + + Search aborted - Hledání přerušeno + - + Search returned no results - Nebyly nalezeny žádné výsledky + - + Search has failed - + An error occurred during search... - Během hledání nastala chyba... + @@ -6781,10 +6796,6 @@ Další upozornění již nebudou zobrazena. Download Priority - - Priority - Priorita - TorrentCreatorDlg @@ -7980,116 +7991,6 @@ Další upozornění již nebudou zobrazena. Prosím napište alespoň jedno URL. - - engineSelect - - Search plugins - Zásuvné moduly pro vyhledávání - - - Installed search engines: - Nainstalované vyhledávače: - - - Name - Název - - - Version - Verze - - - Url - URL - - - Enabled - Zapnuto - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nové vyhledávače můžete získat zde: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Nainstalovat nový - - - Check for updates - Zkontrolovat aktualizace - - - Close - Zavřít - - - Uninstall - Odinstalovat - - - - engineSelectDlg - - Uninstall warning - Upozornění na odstranění - - - Uninstall success - Odstranění bylo úspěšné - - - The link doesn't seem to point to a search engine plugin. - Odkaz zřejmě neodkazuje na zásuvný modul vyhledávače. - - - Select search plugins - Vybrat vyhledávače - - - Search plugin install - Nainstalovat vyhledávač - - - Yes - Ano - - - No - Ne - - - qBittorrent search plugin - qBittorrent - vyhledávače - - - Search plugin update - Aktualizovat vyhledávač - - - Sorry, update server is temporarily unavailable. - Omlouváme se, server s aktualizacemi je dočasně nedostupný. - - - All your plugins are already up to date. - Všechny zásuvné moduly jsou aktuální. - - - All selected plugins were uninstalled successfully - Všechny zásuvné moduly byly úspěšně odstraněny - - - Invalid link - Neplatný odkaz - - - New search engine plugin URL - URL nového vyhledávacího modulu - - - URL: - URL: - - errorDialog @@ -8217,192 +8118,173 @@ Další upozornění již nebudou zobrazena. options_imp - - + + Choose export directory Vyberte adresář pro export - - - - + + + + Choose a save directory Vyberte adresář pro ukládání - + Add directory to scan Přidat adresář ke sledování - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Adresář je již sledován. - + Folder does not exist. Adresář neexistuje. - + Folder is not readable. Adresář nelze přečíst. - + Failure Chyba - + Failed to add Scan Folder '%1': %2 Nelze přidat adresář ke sledování '%1': %2 - - + + Filters Filtry - - + + Choose an IP filter file Vyberte soubor s IP filtry - + SSL Certificate SSL certifikát - + SSL Key SSL klíč - + Parsing error Chyba zpracování - + Failed to parse the provided IP filter Nepovedlo se zpracovat poskytnutý IP filtr - + Successfully refreshed Úspěšně obnoveno - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP filter byl úspěšně zpracován: bylo aplikováno %1 pravidel. - + Invalid key Neplatný klíč - + This is not a valid SSL key. Toto není platný SSL klíč. - + Invalid certificate Neplatný certifikát - + This is not a valid SSL certificate. Toto není platný SSL certifikát. - + The start time and the end time can't be the same. Časy začátku a konce nemůžou být stejné. - + Time Error Chyba času - - pluginSourceDlg - - Plugin source - Zdroj zásuvného modulu - - - Search plugin source: - Hledat zdroj zásuvného modulu: - - - Local file - Místní soubor - - - Web link - Webový odkaz - - preview @@ -8426,31 +8308,4 @@ Další upozornění již nebudou zobrazena. Zrušit - - search_engine - - Search - Hledat - - - Status: - Status: - - - Stopped - Zastaveno - - - Download - Stahování - - - Go to description page - Přejít na stránku s popisem - - - Search engines... - Vyhledávače... - - diff --git a/src/lang/qbittorrent_da.ts b/src/lang/qbittorrent_da.ts index d5da3ec3f..8c73da44d 100644 --- a/src/lang/qbittorrent_da.ts +++ b/src/lang/qbittorrent_da.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread Ulæst @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Download Torrents fra deres URL eller Magnet link - + Only one link per line Kun et link per linje - + Download Download - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Grænsen for det maksimale antal forbindelser skal være større end 0 eller slået fra. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Grænsen for det maksimale antal forbindelser per torrent skal være større end 0 eller slået fra. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Grænsen for det maksimale antal upload slots per torrent skal være større end 0 eller slået fra. - + Unable to save program preferences, qBittorrent is probably unreachable. Kunne ikke gemme program indstillinger, qBittorrent kan sikkert ikke nåes. - + Language Sprog - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login Login - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Downloader - + Seeding Seeder - + Completed Færdig - + Resumed - + Paused Pauset - + Active - + Inactive - + Save files to location: Gem .torrents i: - + Label: Mærkat: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Hver dag + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Hentet @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. Web UI brugernavnet skal være mindst 3 karakter langt. - + The Web UI password must be at least 3 characters long. Web UI adgangskoden skal være mindst 3 karakter langt. - + Save Gem - + qBittorrent client is not reachable qBittorrent klienten kunne ikke nås - + HTTP Server HTTP Server - + The following parameters are supported: Følgende parametre er understøttet: - + Torrent path Torrent sti - + Torrent name Torrent navn - + qBittorrent has been shutdown. qBittorrent er blevet afsluttet. @@ -3764,7 +3887,7 @@ Er du sikker på at du vil afslutte qBittorrent? Net::Smtp - + Email Notification Error: @@ -4016,7 +4139,7 @@ Er du sikker på at du vil afslutte qBittorrent? Search plugins - Søge plugins + @@ -4036,38 +4159,38 @@ Er du sikker på at du vil afslutte qBittorrent? Url - Url + Enabled - Slået til + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan finde nye søgetjenester her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Installer en ny + Check for updates - Tjek for opdateringer + Close - Luk + Uninstall - Afinstaller + @@ -4087,7 +4210,7 @@ Er du sikker på at du vil afslutte qBittorrent? Uninstall warning - Afindstallations advarsel + @@ -4098,39 +4221,39 @@ Those plugins were disabled. Uninstall success - Afindstallationen lykkedes + All selected plugins were uninstalled successfully - Afindstallationen af alle valgte plugins lykkedes + New search engine plugin URL - Ny søgemaskine plugin URL + URL: - URL: + Invalid link - Ugyldigt link + The link doesn't seem to point to a search engine plugin. - Dette link lader ikke til at henvise til et søgemaskine plugin. + Select search plugins - Vælg søge plugin + @@ -4142,12 +4265,12 @@ Those plugins were disabled. Search plugin update - Søge plugin opdatering + All your plugins are already up to date. - Alle dine plugins er af nyeste udgave. + @@ -4159,7 +4282,7 @@ Those plugins were disabled. Search plugin install - Søge plugin indstallation + @@ -4189,22 +4312,22 @@ Those plugins were disabled. Plugin source - Plugin kilde + Search plugin source: - Søgemaskine plugin kilde: + Local file - Lokal fil + Web link - Web link + @@ -4942,17 +5065,17 @@ Those plugins were disabled. Filter sti (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5385,7 +5508,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5890,13 +6013,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Kunne ikke åbne RSS fil. - - RssSettingsDlg @@ -5965,92 +6081,9 @@ No further notices will be issued. Save Files to - - Download here - Hent hertil - - - - SearchCategories - - All categories - Alle kategorier - - - Movies - Film - - - TV shows - TV serier - - - Music - Musik - - - Games - Spil - - - Anime - Anime - - - Software - Programmer - - - Pictures - Billeder - - - Books - Bøger - SearchEngine - - Search - Søg - - - Empty search pattern - Tomt søge kriterie - - - Please type a search pattern first - Indtast venligst et søge kriterie først - - - Searching... - Søger... - - - Stop - Stop - - - Search Engine - Søgemaskine - - - Search has finished - Søgningen er færdig - - - An error occurred during search... - Der opstod en fejl under søgningen... - - - Search aborted - Søgning afbrudt - - - Search returned no results - Søgningen gav intet resultat - Unknown search engine plugin file format. @@ -6086,47 +6119,47 @@ No further notices will be issued. All categories - Alle kategorier + Movies - Film + TV shows - TV serier + Music - Musik + Games - Spil + Anime - Anime + Software - Programmer + Pictures - Billeder + Books - Bøger + @@ -6175,22 +6208,22 @@ No further notices will be issued. - - - + + + Search Søg Status: - Status: + - + Stopped - Stoppet + @@ -6200,7 +6233,7 @@ No further notices will be issued. Go to description page - Gå til beskrivelse + @@ -6213,86 +6246,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Søgemaskine + - + Please install Python to use the Search Engine. - + Empty search pattern - Tomt søge kriterie + - + Please type a search pattern first - Indtast venligst et søge kriterie først + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Søger... - + Searching... + + + + Stop - Stop + - - + + Search has finished - Søgningen er færdig + - - + + Search aborted - Søgning afbrudt + - + Search returned no results - Søgningen gav intet resultat + - + Search has failed - + An error occurred during search... - Der opstod en fejl under søgningen... + @@ -6758,10 +6791,6 @@ No further notices will be issued. Download Priority - - Priority - Prioritet - TorrentCreatorDlg @@ -7957,108 +7986,6 @@ No further notices will be issued. Indtast venligst mindst en URL. - - engineSelect - - Search plugins - Søge plugins - - - Installed search engines: - Indstallerede søgemaskiner: - - - Name - Navn - - - Url - Url - - - Enabled - Slået til - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan finde nye søgetjenester her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Installer en ny - - - Check for updates - Tjek for opdateringer - - - Close - Luk - - - Uninstall - Afinstaller - - - - engineSelectDlg - - Uninstall warning - Afindstallations advarsel - - - Uninstall success - Afindstallationen lykkedes - - - The link doesn't seem to point to a search engine plugin. - Dette link lader ikke til at henvise til et søgemaskine plugin. - - - Select search plugins - Vælg søge plugin - - - Search plugin install - Søge plugin indstallation - - - Yes - Ja - - - No - Nej - - - Search plugin update - Søge plugin opdatering - - - Sorry, update server is temporarily unavailable. - Beklager, opdaterings-serveren er midlertidigt utilgængelig. - - - All your plugins are already up to date. - Alle dine plugins er af nyeste udgave. - - - All selected plugins were uninstalled successfully - Afindstallationen af alle valgte plugins lykkedes - - - Invalid link - Ugyldigt link - - - New search engine plugin URL - Ny søgemaskine plugin URL - - - URL: - URL: - - errorDialog @@ -8186,192 +8113,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Vælg eksport mappe - - - - + + + + Choose a save directory Vælg en standard mappe - + Add directory to scan Tilføj mappe til skanning - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Mappe bliver allerede overvåget. - + Folder does not exist. Mappen eksistere ikke. - + Folder is not readable. Mappen kan ikke læses. - + Failure Fejlede - + Failed to add Scan Folder '%1': %2 Kunne ikke skanne mappe '%1': %2 - - + + Filters Filtre - - + + Choose an IP filter file - + SSL Certificate SSL Certifikat - + SSL Key SSL nøgle - + Parsing error - + Failed to parse the provided IP filter - + Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Ugyldig nøgle - + This is not a valid SSL key. Dette er ikke en gyldig SSL nøgle. - + Invalid certificate Ugyldigt certifikat - + This is not a valid SSL certificate. Dette er ikke gyldigt SSL certifikat - + The start time and the end time can't be the same. Start og slut tiden kan ikke være ens. - + Time Error Tid Fejl - - pluginSourceDlg - - Plugin source - Plugin kilde - - - Search plugin source: - Søgemaskine plugin kilde: - - - Local file - Lokal fil - - - Web link - Web link - - preview @@ -8395,31 +8303,4 @@ No further notices will be issued. Annuller - - search_engine - - Search - Søg - - - Status: - Status: - - - Stopped - Stoppet - - - Download - Download - - - Go to description page - Gå til beskrivelse - - - Search engines... - Søgemskiner... - - diff --git a/src/lang/qbittorrent_de.ts b/src/lang/qbittorrent_de.ts index 686d687dd..178474177 100644 --- a/src/lang/qbittorrent_de.ts +++ b/src/lang/qbittorrent_de.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Peer-ID: - + HTTP User-Agent is '%1' HTTP Benutzer-Agent ist '%1' - + Anonymous mode [ON] Anonymer Modus [EIN] - + Anonymous mode [OFF] Anonymer Modus [AUS] - + PeX support [ON] PeX-Unterstützung [EIN] - + PeX support [OFF] PeX-Unterstützung [AUS] - + Restart is required to toggle PeX support Neustart erforderlich, um PeX-Unterstützung umzuschalten - + Local Peer Discovery support [ON] Lokale Peer Suche (LSD) [EIN] - + Local Peer Discovery support [OFF] Lokale Peer Suche (LSD) [AUS] - + Encryption support [ON] Verschlüsselungsunterstützung [EIN] - + Encryption support [FORCED] Verschlüsselungsunterstützung [ERZWUNGEN] - + Encryption support [OFF] Verschlüsselungsunterstützung [AUS] - + Embedded Tracker [ON] Eingebetteter Tracker [EIN] - + Failed to start the embedded tracker! Starten des eingebetteten Trackers fehlgeschlagen! - + Embedded Tracker [OFF] Eingebetteter Tracker [AUS] - + '%1' reached the maximum ratio you set. Removing... '%1' hat das gesetzte maximale Verhältnis erreicht. Wird entfernt ... - + '%1' reached the maximum ratio you set. Pausing... '%1' hat das gesetzte maximale Verhältnis erreicht. Wird angehalten ... - + System network status changed to %1 e.g: System network status changed to ONLINE Systemnetzwerkstatus auf %1 geändert - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Die Netzwerk-Konfiguration von %1 hat sich geändert - die Sitzungsbindung wird erneuert - + Unable to decode '%1' torrent file. '%1' Torrentdatei kann nicht dekodiert werden. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursiver Download von Datei '%1', eingebettet in Torrent '%2' - + Couldn't save '%1.torrent' '%1.torrent' konnte nicht gespeichert werden - + because %1 is disabled. this peer was blocked because uTP is disabled. weil %1 deaktiviert ist. - + because %1 is disabled. this peer was blocked because TCP is disabled. weil %1 deaktiviert ist. - + URL seed lookup failed for URL: '%1', message: %2 URL Überprüfung für die Seed-URL '%1' ist fehlgeschlagen; Grund: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' wurde von der Transferliste und von der Festplatte entfernt. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' wurde von der Übertragungsliste entfernt. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Herunterladen von '%1' - bitte warten ... - + DHT support [ON] DHT-Unterstützung [EIN] - + DHT support [OFF]. Reason: %1 DHT-Unterstützung [AUS]. Grund: %1 - + DHT support [OFF] DHT-Unterstützung [AUS] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent versucht auf allen beliebigen Ports zu lauschen: %1 - + The network interface defined is invalid: %1 Das angegebene Netzwerkinterface ist ungültig: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent versucht auf Interface %1 Port %2 zu lauschen - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent konnte auf die zu lauschende lokale Adresse %1 nicht finden - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent konnte auf keinen Interface Ports lauschen: %1. Grund: %2. - + Tracker '%1' was added to torrent '%2' Tracker '%1' wurde dem Torrent '%2' hinzugefügt - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' wurde vom Torrent '%2' entfernt - + URL seed '%1' was added to torrent '%2' URL Seed '%1' wurde dem Torrent '%2' hinzugefügt - + URL seed '%1' was removed from torrent '%2' URL Seed '%1' wurde vom Torrent '%2' entfernt - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Konnte Torrent %1 nicht fortsetzen. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Der IP-Filter wurde erfolgreich analysiert. Es wurden %1 Regeln angewendet. - + Error: Failed to parse the provided IP filter. Fehler: IP-Filter konnte nicht analysiert werden. - + Couldn't add torrent. Reason: %1 Konnte den Torrent nicht hinzufügen. Grund: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' fortgesetzt. (Schnelles Fortsetzen) - + '%1' added to download list. 'torrent name' was added to download list. '%1' der Downloadliste hinzugefügt. - + An I/O error occurred, '%1' paused. %2 Ein I/O Fehler ist aufgetreten, '%1' angehalten. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Fehler beim Portmapping, Meldung: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Portmapping erfolgreich, Meldung: %1 - + due to IP filter. this peer was blocked due to ip filter. wegen IP-Filter. - + due to port filter. this peer was blocked due to port filter. wegen Port-Filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. auf Grund von Beschränkungen für den gemischten i2p-Modus. - + because it has a low port. this peer was blocked because it has a low port. weil der Port niedrig ist. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent lauscht erfolgreich auf Interface %1 Port %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent konnte nicht auf Interface %1 Port %2/%3 lauschen. Grund: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Externe IP: %1 @@ -1284,12 +1284,12 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. FeedListWidget - + RSS feeds RSS-Feeds - + Unread Ungelesen @@ -1378,211 +1378,338 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Lade Torrents von URL oder Magnet-Link - + Only one link per line Nur ein Link pro Zeile - + Download Herunterladen - + Global upload rate limit must be greater than 0 or disabled. Die globale Begrenzung der Uploadrate muss größer als 0 sein oder deaktiviert werden. - + Global download rate limit must be greater than 0 or disabled. Die globale Begrenzung der Downloadrate muss größer als 0 sein oder deaktiviert werden. - + Alternative upload rate limit must be greater than 0 or disabled. Die alternative Begrenzung der Uploadrate muss größer als 0 sein oder deaktiviert werden. - + Alternative download rate limit must be greater than 0 or disabled. Die alternative Begrenzung der Downloadrate muss größer als 0 sein oder deaktiviert werden. - + Maximum active downloads must be greater than -1. Die Anzahl der maximal aktiven Downloads muss mindestens 0 sein. - + Maximum active uploads must be greater than -1. Die Anzahl der maximal aktiven Uploads muss mindestens 0 sein. - + Maximum active torrents must be greater than -1. Die Anzahl der maximal aktiven Torrents muss mindestens 0 sein. - + Maximum number of connections limit must be greater than 0 or disabled. Maximale Anzahl der Verbindungen muss größer als 0 sein oder deaktiviert werden. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Maximale Anzahl der Verbindungen pro Torrent muss größer als 0 sein oder deaktiviert werden. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Maximale Anzahle der Upload-Slots muss größer als 0 sein oder deaktiviert werden. - + Unable to save program preferences, qBittorrent is probably unreachable. Konnte Programmeinstellungen nicht speichern - qBittorrent ist vermutlich nicht erreichbar. - + Language Sprache - + The port used for incoming connections must be between 1 and 65535. Der Port für eingehende Verbindungen muss zwischen 1 und 65535 liegen. - + The port used for the Web UI must be between 1 and 65535. Der Port für das Webinterface muss zwischen 1 und 65535 liegen. - + Unable to log in, qBittorrent is probably unreachable. Konnte nicht einloggen - vermutlich ist qBittorrent nicht erreichbar. - + Invalid Username or Password. Ungültiger Benutzername oder Passwort. - + Password Passwort - + Login Anmelden - + Upload Failed! Hochladen fehlgeschlagen! - + Original authors Ursprüngliche Entwickler - + Upload limit: Grenze für Upload: - + Download limit: Grenze für Download: - + Apply Anwenden - + Add Hinzufügen - + Upload Torrents Torrents hochladen - + All Alle - + Downloading Lade - + Seeding Seede - + Completed Abgeschlossen - + Resumed Fortgesetzt - + Paused Pausiert - + Active Aktiv - + Inactive Inaktiv - + Save files to location: Datei(en) hierhin speichern: - + Label: Label: - + Cookie: Cookie: - + Type folder here + Verzeichnisnamen eingeben + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Dateien speichern in + + + + Watch Folder + Überwache Verzeichnis + + + + Default Folder + Standard-Verzeichnis + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Andere ... + + + + Every day + Schedule the use of alternative rate limits on ... + Jeden Tag + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Andere ... + + + Downloaded Is the file downloaded or not? Heruntergeladen @@ -1593,57 +1720,57 @@ Diese Information sollte in den Voreinstellungen des Webbrowsers enthalten sein. Abmelden - + Upload local torrent Lade lokalen Torrent hoch - + Are you sure you want to delete the selected torrents from the transfer list? Sollen die die ausgewählten Torrents wirklich aus der Transfer-Liste gelöscht werden? - + The Web UI username must be at least 3 characters long. Der Benutzername für das Webinterface muss mindestens 3 Zeichen lang sein. - + The Web UI password must be at least 3 characters long. Das Passwort für das Webinterface muss mindestens 3 Zeichen lang sein. - + Save Speichern - + qBittorrent client is not reachable qBittorrent-Programm ist nicht erreichbar - + HTTP Server HTTP-Server - + The following parameters are supported: Folgende Parameter werden unterstützt: - + Torrent path Torrent-Pfad - + Torrent name Torrent-Name - + qBittorrent has been shutdown. qBittorrent wurde beendet. @@ -2216,7 +2343,8 @@ Sollen Torrent-Dateien und Magnet-Links immer mit qBittorent geöffnet werden? A new version is available. Do you want to download %1? - + Eine neue Version ist verfügbar. +Auf Version %1 aktualisieren? @@ -2281,12 +2409,6 @@ Soll Python jetzt installiert werden? Python is required to use the search engine but it does not seem to be installed. Python wird benötigt um die Suchmaschine benutzen zu können, scheint aber nicht installiert zu sein. - - A new version is available. -Update to version %1? - Eine neue Version ist verfügbar. -Auf Version %1 aktualisieren? - No updates available. @@ -2489,12 +2611,12 @@ Soll qBittorrent wirklich beendet werden? Venezuela, Bolivarian Republic of - + Venezuela, Bolivarische Republik Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Soll qBittorrent wirklich beendet werden? N/A N/V - - Asia/Pacific Region - Asien/Pazifikraum - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Soll qBittorrent wirklich beendet werden? Armenia Armenien - - Netherlands Antilles - Niederländische Antillen - Angola @@ -2644,10 +2754,6 @@ Soll qBittorrent wirklich beendet werden? Brunei Darussalam Brunei - - Bolivia - Bolivien - Brazil @@ -2713,10 +2819,6 @@ Soll qBittorrent wirklich beendet werden? Switzerland Schweiz - - Cote D'Ivoire - Elfenbeinküste - Cook Islands @@ -2760,7 +2862,7 @@ Soll qBittorrent wirklich beendet werden? Curacao - + Curacao @@ -2872,10 +2974,6 @@ Soll qBittorrent wirklich beendet werden? France Frankreich - - France, Metropolitan - Metropolitan-Frankreich - Gabon @@ -3161,10 +3259,6 @@ Soll qBittorrent wirklich beendet werden? Latvia Lettland - - Libyan Arab Jamahiriya - Libyen - Morocco @@ -3190,10 +3284,6 @@ Soll qBittorrent wirklich beendet werden? Marshall Islands Marshallinseln - - Macedonia - Mazedonien - Mali @@ -3209,10 +3299,6 @@ Soll qBittorrent wirklich beendet werden? Mongolia Mongolei - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Soll qBittorrent wirklich beendet werden? Saint Pierre and Miquelon Saint-Pierre und Miquelon - - Pitcairn Islands - Pitcairninseln - Puerto Rico Puerto Rico - - Palestinian Territory - Palästinensische Autonomiegebiete - Portugal @@ -3456,10 +3534,6 @@ Soll qBittorrent wirklich beendet werden? Singapore Singapur - - Saint Helena - St. Helena - Slovenia @@ -3578,62 +3652,62 @@ Soll qBittorrent wirklich beendet werden? Bolivia, Plurinational State of - + Bolivien, Plurinationaler Staat Bonaire, Sint Eustatius and Saba - + Besondere Gemeinden (Niederlande) Cote d'Ivoire - + Elfenbeinküste Libya - + Libyen Saint Martin (French part) - + Saint-Martin (französischer Teil) Macedonia, The Former Yugoslav Republic of - + Mazedonien, ehemalige jugoslawische Republik Macao - + Macau Pitcairn - + Pitcairn Palestine, State of - + Palästina Saint Helena, Ascension and Tristan da Cunha - + St. Helena, Ascension und Tristan da Cunha South Sudan - + Südsudan Sint Maarten (Dutch part) - + Sint Maarten (niederländischer Teil) @@ -3700,10 +3774,6 @@ Soll qBittorrent wirklich beendet werden? Saint Vincent and the Grenadines St. Vincent und die Grenadinen - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Soll qBittorrent wirklich beendet werden? Virgin Islands, U.S. Amerikanische Jungferninseln - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Soll qBittorrent wirklich beendet werden? Zimbabwe Simbabwe - - Anonymous Proxy - Anonymer Proxy - - - Satellite Provider - Satelliten-Provider - - - Other - Andere - Aland Islands @@ -3805,10 +3859,6 @@ Soll qBittorrent wirklich beendet werden? Saint Barthelemy Saint-Barthélemy - - Saint Martin - St. Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Soll qBittorrent wirklich beendet werden? Net::Smtp - + Email Notification Error: E-Mail-Benachrichtigungsfehler: @@ -3992,7 +4042,7 @@ Soll qBittorrent wirklich beendet werden? Files i.e. files that are being downloaded right now - + Dateien @@ -4098,65 +4148,65 @@ Soll qBittorrent wirklich beendet werden? Search plugins - Suchplugins + Suchplugins Installed search plugins: - + Installierte Suchplugins: Name - + Name Version - Version + Version Url - URL + URL Enabled - Aktiviert + Aktiviert You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Intalliere eine Neue + Intalliere eine Neue Check for updates - Auf Updates prüfen + Auf Updates prüfen Close - Schließen + Schließen Uninstall - Deinstallieren + Deinstallieren Yes - Ja + Ja @@ -4164,108 +4214,108 @@ Soll qBittorrent wirklich beendet werden? No - Nein + Nein Uninstall warning - Deinstallations-Warnung + Deinstallations-Warnung Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Einige Plugins konnten nicht deinstalliert werden, da sie ein fester Bestandteil von qBittorrent sind. + Einige Plugins konnten nicht deinstalliert werden, da sie ein fester Bestandteil von qBittorrent sind. Nur Plugins, die auch selber installiert wurden können auch wieder entfernt werden. Die Plugins wurden jedoch deaktiviert. Uninstall success - Deinstallation erfolgreich + Deinstallation erfolgreich All selected plugins were uninstalled successfully - Alle ausgewählten Plugins wurden erfolgreich deinstalliert + Alle ausgewählten Plugins wurden erfolgreich deinstalliert New search engine plugin URL - Neue Suchmaschinen-Plugin-URL + Neue Suchmaschinen-Plugin-URL URL: - URL: + URL: Invalid link - Ungültiger Link + Ungültiger Link The link doesn't seem to point to a search engine plugin. - Der Link scheint auf kein Suchmaschinen-Plugin zu weisen. + Der Link scheint nicht auf ein Suchmaschinen Plugin zu verweisen. Select search plugins - Wähle Suchplugin + Wähle Suchplugins qBittorrent search plugin - qBittorrent Suchplugin + qBittorrent Suchplugin Search plugin update - Such-Plugin update + Such-Plugin update All your plugins are already up to date. - Alle Plugins sind auf dem neuesten Stand. + Alle Plugins sind auf dem neuesten Stand. Sorry, couldn't check for plugin updates. %1 - + Konnte nicht nach Plugin-Updates suchen. %1 Search plugin install - Suchplugin installieren + Suchplugin installieren "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" Suchmaschinen-Plugin wurde erfolgreich installiert. Couldn't install "%1" search engine plugin. %2 - + Konnte das Suchmaschinen-Plugin "%1" nicht installieren. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + '%1' Suchmaschinen-Plugin wurde erfolgreich aktualisiert. Couldn't update "%1" search engine plugin. %2 - + Konnte Suchmaschinen-Plugin "%1" nicht aktualisieren. %2 @@ -4273,22 +4323,22 @@ Die Plugins wurden jedoch deaktiviert. Plugin source - Plugin Quelle + Plugin Quelle Search plugin source: - Such Plugin Quelle: + Such Plugin Quelle: Local file - Lokale Datei + Lokale Datei Web link - Web Link + Web Link @@ -5026,18 +5076,18 @@ Die Plugins wurden jedoch deaktiviert. Pfad zur Filterdatei (.dat, .p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. Es wurde ein fehlerhaftes Beenden von qBittorrent festgestellt. Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwendet. - + An access error occurred while trying to write the configuration file. Es ist ein Zugriffsfehler beim Schreiben der Sicherungsdatei aufgetreten. - + A format error occurred while trying to write the configuration file. Es ist ein Formatfehler beim Schreiben der Sicherungsdatei aufgetreten. @@ -5470,7 +5520,7 @@ Es wird daher eine Sicherungsdatei zur Wiederherstellung der Einstellungen verwe QObject - + Your IP address has been banned after too many failed authentication attempts. Die IP-Adresse wurde wegen zu vieler Authentifizierungsversuche gebannt. @@ -5962,12 +6012,12 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... + Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... Automatically downloading '%1' torrent from '%2' RSS feed... - Lade Torrent '%1' automatisch von RSS-Feed '%2' ... + Lade Torrent '%1' automatisch von RSS-Feed '%2' ... @@ -5975,29 +6025,7 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatischer Download von '%1' vom RSS-Feed '%2' ist fehlgeschlagen weil er keinen Torrent oder Magnet-Link enthält ... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Lade Torrent '%1' automatisch von RSS-Feed '%2' ... - - - - RssParser - - Failed to open downloaded RSS file. - Fehler beim Öffnen der geladenen RSS-Datei. - - - Invalid RSS feed at '%1'. - Ungültiger RSS-Feed unter '%1'. + Ungültiger RSS-Feed. @@ -6028,22 +6056,22 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Watch Folder - + Überwache Verzeichnis Default Folder - + Standard-Verzeichnis Browse... - Durchsuchen ... + Durchsuchen ... Choose save path - + Speicherpfad auswählen @@ -6051,12 +6079,12 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Watch Folder - + Überwache Verzeichnis Default Folder - + Standard-Verzeichnis @@ -6066,199 +6094,87 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Save Files to - - - - Download here - Hier herunterladen - - - Download path - Downloadpfad - - - - SearchCategories - - All categories - Alle Kategorien - - - Movies - Filme - - - TV shows - TV-Sendungen - - - Music - Musik - - - Games - Spiele - - - Anime - Anime - - - Software - Software - - - Pictures - Bilder - - - Books - Bücher + Dateien speichern in SearchEngine - - Search - Suche - - - Please install Python to use the Search Engine. - Python bitte installieren um die Suchmaschine benützen zu können. - - - Empty search pattern - Leere Suchanfrage - - - Please type a search pattern first - Bitte zuerst eine Suchanfrage eingeben - - - Searching... - Suche ... - - - Stop - Stopp - - - Search Engine - Suchmaschine - - - Search has finished - Suche abgeschlossen - - - An error occurred during search... - Während der Suche ist ein Fehler aufgetreten ... - - - Search aborted - Suche abgebrochen - - - All enabled - Alle aktiviert - - - All engines - Alle Suchmaschinen - - - Multiple... - Mehrfach ... - - - Results <i>(%1)</i>: - i.e: Search results - Resultate <i>(%1)</i>: - - - Search returned no results - Suche lieferte keine Ergebnisse - - - Stopped - Angehalten - Unknown search engine plugin file format. - + Unbekanntes Dateiformat des Suchmaschinen-Plugins. A more recent version of this plugin is already installed. - + Eine neuere Version dieses Plugins ist bereits installiert. Plugin is not supported. - + Plugin wird nicht unterstützt. Update server is temporarily unavailable. %1 - + Update-Server vorübergehend nicht erreichbar. %1 Failed to download the plugin file. %1 - + Fehler beim Herunterladen der Plugin-Datei. %1 An incorrect update info received. - + Ungültige Aktualisierungsinformation erhalten. All categories - Alle Kategorien + Alle Kategorien Movies - Filme + Filme TV shows - TV-Sendungen + TV-Sendungen Music - Musik + Musik Games - Spiele + Spiele Anime - Anime + Anime Software - Software + Software Pictures - Bilder + Bilder Books - Bücher + Bücher @@ -6307,124 +6223,124 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw - - - + + + Search - Suche + Suche Status: - Status: + Status: - + Stopped - Angehalten + Angehalten Download - + Download Go to description page - Zur Beschreibungsseite wechseln + Zur Beschreibungsseite wechseln Copy description page URL - Kopiere Beschreibungsseiten-URL + Kopiere Beschreibungsseiten-URL Search plugins... - + Suchplugins ... - + All enabled - Alle aktiviert - - - - All plugins - + Alle aktiviert - + All plugins + Alle Plugins + + + + Multiple... - Mehrfach ... + Mehrfach ... - - - + + + Search Engine - Suchmaschine + Suchmaschine - + Please install Python to use the Search Engine. - Python bitte installieren um die Suchmaschine benützen zu können. + Python bitte installieren um die Suchmaschine benützen zu können. - + Empty search pattern - Leere Suchanfrage + Leere Suchanfrage - + Please type a search pattern first - Bitte zuerst eine Suchanfrage eingeben + Bitte zuerst eine Suchanfrage eingeben - - + + Results <i>(%1)</i>: i.e: Search results - Resultate <i>(%1)</i>: - - - - Searching... - Suche ... + Ergebnisse <i>(%1)</i>: + Searching... + Suche ... + + + Stop - Stopp + Stopp - - + + Search has finished - Suche abgeschlossen + Suche abgeschlossen - - + + Search aborted - Suche abgebrochen + Suche abgebrochen - + Search returned no results - Suche lieferte keine Ergebnisse + Suche lieferte keine Ergebnisse - + Search has failed - + Suche fehlgeschlagen - + An error occurred during search... - Während der Suche ist ein Fehler aufgetreten ... + Während der Suche ist ein Fehler aufgetreten ... @@ -6888,11 +6804,7 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Download Priority - - - - Priority - Priorität + Download-Priorität @@ -8089,161 +8001,6 @@ Selbstverständlich geschieht dieses Teilen jeglicher Inhalte auf eigene Verantw Bitte mindestens eine URL angeben. - - engineSelect - - Search plugins - Suchplugins - - - Installed search engines: - Installierte Suchmaschinen: - - - Name - Name - - - Version - Version - - - Url - URL - - - Enabled - Aktiviert - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Neue Suchmaschinen-Plugins können hier heruntergeladen werden: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Intalliere eine Neue - - - Check for updates - Auf Updates prüfen - - - Close - Schließen - - - Uninstall - Deinstallieren - - - - engineSelectDlg - - Uninstall warning - Deinstallations-Warnung - - - Uninstall success - Deinstallation erfolgreich - - - Invalid plugin - Ungültiges Plugin - - - The search engine plugin is invalid, please contact the author. - Das Suchmaschinen-Plugin ist ungültig - bitte den Author kontaktieren. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Eine neuere Version des Suchmaschinen-Plugins '%1' ist bereits installiert. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' Suchmaschinen-Plugin konnte nicht aktualisiert werden - behalte alte Version. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' Suchmaschinen-Plugin konnte nicht installiert werden. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' Suchmaschinen-Plugin wurde erfolgreich aktualisiert. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' Suchmaschinen-Plugin wurde erfolgreich installiert. - - - The link doesn't seem to point to a search engine plugin. - Der Link scheint auf kein Suchmaschinen-Plugin zu weisen. - - - Select search plugins - Wähle Suchplugin - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Installation des Suchmaschinen-Plugins '%1' fehlgeschlagen. - - - Search plugin install - Suchplugin installieren - - - Yes - Ja - - - No - Nein - - - qBittorrent search plugin - qBittorrent Suchplugin - - - Search plugin update - Such-Plugin update - - - Sorry, update server is temporarily unavailable. - Update-Server vorübergehend nicht erreichbar. - - - All your plugins are already up to date. - Alle Plugins sind auf dem neuesten Stand. - - - All selected plugins were uninstalled successfully - Alle ausgewählten Plugins wurden erfolgreich deinstalliert - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Einige Plugins konnten nicht deinstalliert werden, da sie ein fester Bestandteil von qBittorrent sind. -Nur Plugins, die auch selber installiert wurden können auch wieder entfernt werden. -Die Plugins wurden jedoch deaktiviert. - - - Invalid link - Ungültiger Link - - - New search engine plugin URL - Neue Suchmaschinen-Plugin-URL - - - URL: - URL: - - errorDialog @@ -8371,192 +8128,173 @@ Die Plugins wurden jedoch deaktiviert. options_imp - - + + Choose export directory Export-Verzeichnis wählen - - - - + + + + Choose a save directory Verzeichnis zum Speichern auswählen - + Add directory to scan Verzeichnis zum Scannen hinzufügen - + Supported parameters (case sensitive): Unterstützte Parameter (Groß-/Kleinschreibung beachten): - + %N: Torrent name %N: Name des Torrent - + %L: Label %L: Label - + %F: Content path (same as root path for multifile torrent) %F: Inhaltspfad (gleich wie der Hauptpfad für Mehrdateien-Torrent) - + %R: Root path (first torrent subdirectory path) %R: Hauptpfad (erster Pfad für das Torrent-Unterverzeichnis) - + %D: Save path %D: Speicherpfad - + %C: Number of files %C: Anzahl der Dateien - + %Z: Torrent size (bytes) %Z: Größe des Torrent (in Bytes) - + %T: Current tracker %T: aktueller Tracker - + %I: Info hash %I: Info-Hash - + Folder is already being watched. Ordner wird bereits beobachtet. - + Folder does not exist. Verzeichnis existiert nicht. - + Folder is not readable. Verzeichnis kann nicht gelesen werden. - + Failure Fehler - + Failed to add Scan Folder '%1': %2 Konnte Scan-Verzeichnis '%1' nicht hinzufügen: %2 - - + + Filters Filter - - + + Choose an IP filter file IP-Filter-Datei wählen - + SSL Certificate SSL-Zertifikat - + SSL Key SSL-Schlüssel - + Parsing error Fehler beim Analysieren - + Failed to parse the provided IP filter Fehler beim Analysieren der IP-Filter - + Successfully refreshed Erfolgreich aktualisiert - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Der IP-Filter wurde erfolgreich analysiert. Es wurden %1 Regeln angewendet. - + Invalid key Ungültiger Schlüssel - + This is not a valid SSL key. Dies ist kein gültiger SSL-Schlüssel. - + Invalid certificate Ungültiges Zertifikat - + This is not a valid SSL certificate. Dies ist kein gültiges SSL-Zertifikat. - + The start time and the end time can't be the same. Die Startzeit und die Endzeit können nicht gleich sein. - + Time Error Zeitfehler - - pluginSourceDlg - - Plugin source - Plugin Quelle - - - Search plugin source: - Such Plugin Quelle: - - - Local file - Lokale Datei - - - Web link - Web Link - - preview @@ -8580,35 +8318,4 @@ Die Plugins wurden jedoch deaktiviert. Abbrechen - - search_engine - - Search - Suche - - - Status: - Status: - - - Stopped - Angehalten - - - Download - Lade - - - Go to description page - Zur Beschreibungsseite wechseln - - - Copy description page URL - Kopiere Beschreibungsseiten-URL - - - Search engines... - Suchmaschinen ... - - diff --git a/src/lang/qbittorrent_el.ts b/src/lang/qbittorrent_el.ts index adee92ac7..a29ea5478 100644 --- a/src/lang/qbittorrent_el.ts +++ b/src/lang/qbittorrent_el.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Επιτυχής ανάλυση του παρεχόμενου φίλτρου IP: %1 κανόνες εφαρμόστηκαν. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds Τροφοδοσίες RSS - + Unread Μη αναγνωσμένα @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Λήψη torrent από το URL τους ή από σύνδεσμο Magnet - + Only one link per line Μόνο ένας σύνδεσμος ανά γραμμή - + Download Λήψη - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Το όριο μέγιστου αριθμού συνδέσεων πρέπει να είναι μεγαλύτερο από 0 ή απενεργοποιημένο. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Το όριο μέγιστου αριθμού συνδέσεων ανά torrent πρέπει να είναι μεγαλύτερο από 0 ή απενεργοποιημένο. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Το όριο μέγιστου αριθμού θυρίδων αποστολής ανά torrent πρέπει να είναι μεγαλύτερο από 0 ή απενεργοποιημένο. - + Unable to save program preferences, qBittorrent is probably unreachable. Δεν είναι δυνατή η αποθήκευση των προτιμήσεων του προγράμματος, το qBittorrent είναι πιθανώς απρόσιτο. - + Language Γλώσσα - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. Αδυναμία σύνδεσης, το qBittorrent είναι πιθανώς απρόσιτο. - + Invalid Username or Password. Μη έγκυρο Όνομα Χρήστη ή Κωδικός Πρόσβασης. - + Password Κωδικός Πρόσβασης - + Login Σύνδεση - + Upload Failed! Αποτυχία Αποστολής! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Γίνεται λήψη - + Seeding Γίνεται Διαμοιρασμός - + Completed - + Resumed - + Paused Σε Παύση - + Active - + Inactive - + Save files to location: Αποθήκευση αρχείων στην τοποθεσία: - + Label: Ετικέτα: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Κάθε μέρα + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Έγινε Λήψη @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. Το όνομα χρήστη του Περιβάλλοντος Χρήστη Ιστού πρέπει να έχει μήκος τουλάχιστον 3 χαρακτήρες. - + The Web UI password must be at least 3 characters long. Ο κωδικός πρόσβασης του Περιβάλλοντος Χρήστη Ιστού πρέπει να έχει μήκος τουλάχιστον 3 χαρακτήρες. - + Save Αποθήκευση - + qBittorrent client is not reachable Ο πελάτης qBittorrent δεν είναι προσιτός - + HTTP Server Διακομιστής HTTP - + The following parameters are supported: Υποστηρίζονται οι ακόλουθες παράμετροι: - + Torrent path Διαδρομή torrent - + Torrent name Όνομα torrent - + qBittorrent has been shutdown. Το qBittorrent τερματίστηκε. @@ -3332,10 +3455,6 @@ Are you sure you want to quit qBittorrent? Puerto Rico - - Palestinian Territory - Περιοχή της Παλαιστίνης - Portugal @@ -3768,7 +3887,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4020,7 +4139,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Πρόσθετα αναζήτησης + @@ -4040,38 +4159,38 @@ Are you sure you want to quit qBittorrent? Url - Url + Enabled - Ενεργοποιημένο + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Μπορείτε να βρείτε νέα πρόσθετα μηχανών αναζήτησης εδώ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Εγκατάσταση ενός νέου + Check for updates - Έλεγχος για ενημερώσεις + Close - Κλείσιμο + Uninstall - Απεγκατάσταση + @@ -4091,7 +4210,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Προειδοποίηση απεγκατάστασης + @@ -4102,39 +4221,39 @@ Those plugins were disabled. Uninstall success - Επιτυχής απεγκατάσταση + All selected plugins were uninstalled successfully - Όλα τα επιλεγμένα πρόσθετα απεγκαταστάθηκαν επιτυχώς + New search engine plugin URL - Νέο URL πρόσθετου μηχανής αναζήτησης + URL: - URL: + Invalid link - Άκυρος σύνδεσμος + The link doesn't seem to point to a search engine plugin. - Ο σύνδεσμος δεν φαίνεται να οδηγεί σε πρόσθετο μηχανής αναζήτησης. + Select search plugins - Επιλέξτε πρόσθετα αναζήτησης + @@ -4146,12 +4265,12 @@ Those plugins were disabled. Search plugin update - Ενημέρωση πρόσθετου αναζήτησης + All your plugins are already up to date. - Όλα τα πρόσθετά σας είναι ήδη ενημερωμένα. + @@ -4163,7 +4282,7 @@ Those plugins were disabled. Search plugin install - Εγκατάσταση πρόσθετου αναζήτησης + @@ -4193,22 +4312,22 @@ Those plugins were disabled. Plugin source - Πηγή πρόσθετου + Search plugin source: - Πηγή πρόσθετου αναζήτησης: + Local file - Τοπικό αρχείο + Web link - Σύνδεσμος Ιστού + @@ -4946,17 +5065,17 @@ Those plugins were disabled. Διαδρομή φίλτρου (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5389,7 +5508,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. Η IP σας διεύθυνση έχει απαγορευτεί μετά από πάρα πολλές αποτυχημένες προσπάθειες ελέγχου ταυτότητας. @@ -5897,13 +6016,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Αποτυχία ανοίγματος του ληφθέντος RSS αρχείου. - - RssSettingsDlg @@ -5972,92 +6084,9 @@ No further notices will be issued. Save Files to - - Download here - Λήψη εδώ - - - - SearchCategories - - All categories - Όλες οι κατηγορίες - - - Movies - Ταινίες - - - TV shows - Τηλεοπτικές σειρές - - - Music - Μουσική - - - Games - Παιχνίδια - - - Anime - Ανιμέ - - - Software - Λογισμικό - - - Pictures - Εικόνες - - - Books - Βιβλία - SearchEngine - - Search - Αναζήτηση - - - Empty search pattern - Κενό πρότυπο αναζήτησης - - - Please type a search pattern first - Παρακαλώ πληκτρολογήστε ένα πρότυπο αναζήτησης πρώτα - - - Searching... - Αναζήτηση... - - - Stop - Διακοπή - - - Search Engine - Μηχανή Αναζήτησης - - - Search has finished - Η αναζήτηση ολοκληρώθηκε - - - An error occurred during search... - Παρουσιάστηκε σφάλμα κατά τη διάρκεια της αναζήτησης... - - - Search aborted - Η αναζήτηση ματαιώθηκε - - - Search returned no results - Η αναζήτηση δεν επέστρεψε κάποιο αποτέλεσμα - Unknown search engine plugin file format. @@ -6093,47 +6122,47 @@ No further notices will be issued. All categories - Όλες οι κατηγορίες + Movies - Ταινίες + TV shows - Τηλεοπτικές σειρές + Music - Μουσική + Games - Παιχνίδια + Anime - Ανιμέ + Software - Λογισμικό + Pictures - Εικόνες + Books - Βιβλία + @@ -6182,22 +6211,22 @@ No further notices will be issued. - - - + + + Search Αναζήτηση Status: - Κατάσταση: + - + Stopped - Σταματημένο + @@ -6207,7 +6236,7 @@ No further notices will be issued. Go to description page - Μετάβαση στη σελίδα περιγραφής + @@ -6220,86 +6249,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Μηχανή Αναζήτησης + - + Please install Python to use the Search Engine. - + Empty search pattern - Κενό πρότυπο αναζήτησης + - + Please type a search pattern first - Παρακαλώ πληκτρολογήστε ένα πρότυπο αναζήτησης πρώτα + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Αναζήτηση... - + Searching... + + + + Stop - Διακοπή + - - + + Search has finished - Η αναζήτηση ολοκληρώθηκε + - - + + Search aborted - Η αναζήτηση ματαιώθηκε + - + Search returned no results - Η αναζήτηση δεν επέστρεψε κάποιο αποτέλεσμα + - + Search has failed - + An error occurred during search... - Παρουσιάστηκε σφάλμα κατά τη διάρκεια της αναζήτησης... + @@ -6765,10 +6794,6 @@ No further notices will be issued. Download Priority - - Priority - Προτεραιότητα - TorrentCreatorDlg @@ -7964,108 +7989,6 @@ No further notices will be issued. Παρακαλώ πληκτρολογήστε τουλάχιστον ένα URL. - - engineSelect - - Search plugins - Πρόσθετα αναζήτησης - - - Installed search engines: - Εγκατεστημένες μηχανές αναζήτησης: - - - Name - Όνομα - - - Url - Url - - - Enabled - Ενεργοποιημένο - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Μπορείτε να βρείτε νέα πρόσθετα μηχανών αναζήτησης εδώ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Εγκατάσταση ενός νέου - - - Check for updates - Έλεγχος για ενημερώσεις - - - Close - Κλείσιμο - - - Uninstall - Απεγκατάσταση - - - - engineSelectDlg - - Uninstall warning - Προειδοποίηση απεγκατάστασης - - - Uninstall success - Επιτυχής απεγκατάσταση - - - The link doesn't seem to point to a search engine plugin. - Ο σύνδεσμος δεν φαίνεται να οδηγεί σε πρόσθετο μηχανής αναζήτησης. - - - Select search plugins - Επιλέξτε πρόσθετα αναζήτησης - - - Search plugin install - Εγκατάσταση πρόσθετου αναζήτησης - - - Yes - Ναι - - - No - Όχι - - - Search plugin update - Ενημέρωση πρόσθετου αναζήτησης - - - Sorry, update server is temporarily unavailable. - Λυπούμαστε, ο διακομιστής ενημέρωσης είναι προσωρινά μη διαθέσιμος. - - - All your plugins are already up to date. - Όλα τα πρόσθετά σας είναι ήδη ενημερωμένα. - - - All selected plugins were uninstalled successfully - Όλα τα επιλεγμένα πρόσθετα απεγκαταστάθηκαν επιτυχώς - - - Invalid link - Άκυρος σύνδεσμος - - - New search engine plugin URL - Νέο URL πρόσθετου μηχανής αναζήτησης - - - URL: - URL: - - errorDialog @@ -8193,192 +8116,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Επιλέξτε κατάλογο εξαγωγής - - - - + + + + Choose a save directory Επιλέξτε κατάλογο αποθήκευσης - + Add directory to scan Προσθήκη καταλόγου για σάρωση - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Αυτός ο φάκελος ήδη παρακολουθείται. - + Folder does not exist. Αυτός ο φάκελος δεν υπάρχει. - + Folder is not readable. Αυτός ο φάκελος δεν είναι αναγνώσιμος. - + Failure Αποτυχία - + Failed to add Scan Folder '%1': %2 Αποτυχία προσθήκης Φακέλου για Σάρωση '%1': %2 - - + + Filters Φίλτρα - - + + Choose an IP filter file - + SSL Certificate Πιστοποιητικό SSL - + SSL Key Κλειδί SSL - + Parsing error Σφάλμα ανάλυσης - + Failed to parse the provided IP filter Αποτυχία ανάλυσης του παρεχόμενου φίλτρου IP - + Successfully refreshed Επιτυχής ανανέωση - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Επιτυχής ανάλυση του παρεχόμενου φίλτρου IP: %1 κανόνες εφαρμόστηκαν. - + Invalid key Άκυρο κλειδί - + This is not a valid SSL key. Αυτό δεν είναι έγκυρο κλειδί SSL. - + Invalid certificate Άκυρο πιστοποιητικό - + This is not a valid SSL certificate. Αυτό δεν είναι έγκυρο πιστοποιητικό SSL. - + The start time and the end time can't be the same. Η ώρα έναρξης και η ώρα λήξης δεν μπορούν να είναι ίδιες. - + Time Error Σφάλμα Ώρας - - pluginSourceDlg - - Plugin source - Πηγή πρόσθετου - - - Search plugin source: - Πηγή πρόσθετου αναζήτησης: - - - Local file - Τοπικό αρχείο - - - Web link - Σύνδεσμος Ιστού - - preview @@ -8402,31 +8306,4 @@ No further notices will be issued. Άκυρο - - search_engine - - Search - Αναζήτηση - - - Status: - Κατάσταση: - - - Stopped - Σταματημένο - - - Download - Λήψη - - - Go to description page - Μετάβαση στη σελίδα περιγραφής - - - Search engines... - Μηχανές αναζήτησης... - - diff --git a/src/lang/qbittorrent_en.ts b/src/lang/qbittorrent_en.ts index 9daf9c62d..94b58d297 100644 --- a/src/lang/qbittorrent_en.ts +++ b/src/lang/qbittorrent_en.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds - + Unread @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. - Download Torrents from their URL or Magnet link + Exit qBittorrent + Download Torrents from their URL or Magnet link + + + + Only one link per line - + Download - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. - + Unable to save program preferences, qBittorrent is probably unreachable. - + Language - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading - + Seeding - + Completed - + Resumed - + Paused - + Active - + Inactive - + Save files to location: - + Label: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. - + The Web UI password must be at least 3 characters long. - + Save - + qBittorrent client is not reachable - + HTTP Server - + The following parameters are supported: - + Torrent path - + Torrent name - + qBittorrent has been shutdown. @@ -3761,7 +3884,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4939,17 +5062,17 @@ Those plugins were disabled. - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5382,7 +5505,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -6082,9 +6205,9 @@ No further notices will be issued. - - - + + + Search @@ -6095,7 +6218,7 @@ No further notices will be issued. - + Stopped @@ -6120,84 +6243,84 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - + Please install Python to use the Search Engine. - + Empty search pattern - + Please type a search pattern first - - + + Results <i>(%1)</i>: i.e: Search results - + Searching... - + Stop - - + + Search has finished - - + + Search aborted - + Search returned no results - + Search has failed - + An error occurred during search... @@ -7987,169 +8110,169 @@ No further notices will be issued. options_imp - - + + Choose export directory - - - - + + + + Choose a save directory - + Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. - + Folder does not exist. - + Folder is not readable. - + Failure - + Failed to add Scan Folder '%1': %2 - - + + Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error - + Failed to parse the provided IP filter - + Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key - + This is not a valid SSL key. - + Invalid certificate - + This is not a valid SSL certificate. - + The start time and the end time can't be the same. - + Time Error diff --git a/src/lang/qbittorrent_en_AU.ts b/src/lang/qbittorrent_en_AU.ts index 9bb195239..7673aac9a 100644 --- a/src/lang/qbittorrent_en_AU.ts +++ b/src/lang/qbittorrent_en_AU.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread Unread @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Download Torrents from their URL or Magnet link - + Only one link per line Only one link per line - + Download Download - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Maximum number of connections limit must be greater than 0 or disabled. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Maximum number of connections per torrent limit must be greater than 0 or disabled. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Maximum number of upload slots per torrent limit must be greater than 0 or disabled. - + Unable to save program preferences, qBittorrent is probably unreachable. Unable to save program preferences, qBittorrent is probably unreachable. - + Language Language - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login Login - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Downloading - + Seeding Seeding - + Completed - + Resumed - + Paused Paused - + Active - + Inactive - + Save files to location: Save files to location: - + Label: Label: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Every day + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Downloaded @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. The Web UI username must be at least 3 characters long. - + The Web UI password must be at least 3 characters long. The Web UI password must be at least 3 characters long. - + Save Save - + qBittorrent client is not reachable qBittorrent client is not reachable - + HTTP Server HTTP Server - + The following parameters are supported: The following parameters are supported: - + Torrent path Torrent path - + Torrent name Torrent name - + qBittorrent has been shutdown. qBittorrent has been shutdown. @@ -3763,7 +3886,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4015,7 +4138,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Search plug-ins + @@ -4035,38 +4158,38 @@ Are you sure you want to quit qBittorrent? Url - URL + Enabled - Enabled + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Install a new one + Check for updates - Check for updates + Close - Close + Uninstall - Uninstall + @@ -4086,7 +4209,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Uninstall warning + @@ -4097,39 +4220,39 @@ Those plugins were disabled. Uninstall success - Uninstall success + All selected plugins were uninstalled successfully - All selected plug-ins were uninstalled successfully + New search engine plugin URL - New search engine plug-in URL + URL: - URL: + Invalid link - Invalid link + The link doesn't seem to point to a search engine plugin. - The link doesn't seem to point to a search engine plug-in. + Select search plugins - Select search plug-ins + @@ -4141,12 +4264,12 @@ Those plugins were disabled. Search plugin update - Search plug-in update + All your plugins are already up to date. - All your plug-ins are already up to date. + @@ -4158,7 +4281,7 @@ Those plugins were disabled. Search plugin install - Search plug-in install + @@ -4188,22 +4311,22 @@ Those plugins were disabled. Plugin source - Plug-in source + Search plugin source: - Search plug-in source: + Local file - Local file + Web link - Web link + @@ -4941,17 +5064,17 @@ Those plugins were disabled. Filter path (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5384,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5889,13 +6012,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Failed to open downloaded RSS file. - - RssSettingsDlg @@ -5964,92 +6080,9 @@ No further notices will be issued. Save Files to - - Download here - Download here - - - - SearchCategories - - All categories - All categories - - - Movies - Movies - - - TV shows - TV shows - - - Music - Music - - - Games - Games - - - Anime - Anime - - - Software - Software - - - Pictures - Pictures - - - Books - Books - SearchEngine - - Search - Search - - - Empty search pattern - Empty search pattern - - - Please type a search pattern first - Please type a search pattern first - - - Searching... - Searching... - - - Stop - Stop - - - Search Engine - Search Engine - - - Search has finished - Search has finished - - - An error occurred during search... - An error occurred during search... - - - Search aborted - Search aborted - - - Search returned no results - Search returned no results - Unknown search engine plugin file format. @@ -6085,47 +6118,47 @@ No further notices will be issued. All categories - All categories + Movies - Movies + TV shows - TV shows + Music - Music + Games - Games + Anime - Anime + Software - Software + Pictures - Pictures + Books - Books + @@ -6174,22 +6207,22 @@ No further notices will be issued. - - - + + + Search Search Status: - Status: + - + Stopped - Stopped + @@ -6199,7 +6232,7 @@ No further notices will be issued. Go to description page - Go to description page + @@ -6212,86 +6245,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Search Engine + - + Please install Python to use the Search Engine. - + Empty search pattern - Empty search pattern + - + Please type a search pattern first - Please type a search pattern first + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Searching... - + Searching... + + + + Stop - Stop + - - + + Search has finished - Search has finished + - - + + Search aborted - Search aborted + - + Search returned no results - Search returned no results + - + Search has failed - + An error occurred during search... - An error occurred during search... + @@ -6757,10 +6790,6 @@ No further notices will be issued. Download Priority - - Priority - Priority - TorrentCreatorDlg @@ -7956,108 +7985,6 @@ No further notices will be issued. Please type at least one URL. - - engineSelect - - Search plugins - Search plug-ins - - - Installed search engines: - Installed search engines: - - - Name - Name - - - Url - URL - - - Enabled - Enabled - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Install a new one - - - Check for updates - Check for updates - - - Close - Close - - - Uninstall - Uninstall - - - - engineSelectDlg - - Uninstall warning - Uninstall warning - - - Uninstall success - Uninstall success - - - The link doesn't seem to point to a search engine plugin. - The link doesn't seem to point to a search engine plug-in. - - - Select search plugins - Select search plug-ins - - - Search plugin install - Search plug-in install - - - Yes - Yes - - - No - No - - - Search plugin update - Search plug-in update - - - Sorry, update server is temporarily unavailable. - Sorry, update server is temporarily unavailable. - - - All your plugins are already up to date. - All your plug-ins are already up to date. - - - All selected plugins were uninstalled successfully - All selected plug-ins were uninstalled successfully - - - Invalid link - Invalid link - - - New search engine plugin URL - New search engine plug-in URL - - - URL: - URL: - - errorDialog @@ -8185,192 +8112,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Choose export directory - - - - + + + + Choose a save directory Choose a save directory - + Add directory to scan Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Folder is already being watched. - + Folder does not exist. Folder does not exist. - + Folder is not readable. Folder is not readable. - + Failure Failure - + Failed to add Scan Folder '%1': %2 Failed to add Scan Folder '%1': %2 - - + + Filters Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Parsing error - + Failed to parse the provided IP filter Failed to parse the provided IP filter - + Successfully refreshed Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Invalid key Invalid key - + This is not a valid SSL key. This is not a valid SSL key. - + Invalid certificate Invalid certificate - + This is not a valid SSL certificate. This is not a valid SSL certificate. - + The start time and the end time can't be the same. The start time and the end time can't be the same. - + Time Error Time Error - - pluginSourceDlg - - Plugin source - Plug-in source - - - Search plugin source: - Search plug-in source: - - - Local file - Local file - - - Web link - Web link - - preview @@ -8394,31 +8302,4 @@ No further notices will be issued. Cancel - - search_engine - - Search - Search - - - Status: - Status: - - - Stopped - Stopped - - - Download - Download - - - Go to description page - Go to description page - - - Search engines... - Search engines... - - diff --git a/src/lang/qbittorrent_en_GB.ts b/src/lang/qbittorrent_en_GB.ts index 9f390ad3a..63419b40b 100644 --- a/src/lang/qbittorrent_en_GB.ts +++ b/src/lang/qbittorrent_en_GB.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread Unread @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Download Torrents from their URL or Magnet link - + Only one link per line Only one link per line - + Download Download - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Maximum number of connections limit must be greater than 0 or disabled. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Maximum number of connections per torrent limit must be greater than 0 or disabled. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Maximum number of upload slots per torrent limit must be greater than 0 or disabled. - + Unable to save program preferences, qBittorrent is probably unreachable. Unable to save program preferences, qBittorrent is probably unreachable. - + Language Language - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login Login - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Downloading - + Seeding Seeding - + Completed - + Resumed - + Paused Paused - + Active - + Inactive - + Save files to location: Save files to location: - + Label: Label: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Every day + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Downloaded @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. The Web UI username must be at least 3 characters long. - + The Web UI password must be at least 3 characters long. The Web UI password must be at least 3 characters long. - + Save Save - + qBittorrent client is not reachable qBittorrent client is not reachable - + HTTP Server HTTP Server - + The following parameters are supported: The following parameters are supported: - + Torrent path Torrent path - + Torrent name Torrent name - + qBittorrent has been shutdown. qBittorrent has been shutdown. @@ -3763,7 +3886,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4015,7 +4138,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Search plug-ins + @@ -4035,38 +4158,38 @@ Are you sure you want to quit qBittorrent? Url - URL + Enabled - Enabled + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Install a new one + Check for updates - Check for updates + Close - Close + Uninstall - Uninstall + @@ -4086,7 +4209,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Uninstall warning + @@ -4097,39 +4220,39 @@ Those plugins were disabled. Uninstall success - Uninstall success + All selected plugins were uninstalled successfully - All selected plug-ins were uninstalled successfully + New search engine plugin URL - New search engine plug-in URL + URL: - URL: + Invalid link - Invalid link + The link doesn't seem to point to a search engine plugin. - The link doesn't seem to point to a search engine plug-in. + Select search plugins - Select search plug-ins + @@ -4141,12 +4264,12 @@ Those plugins were disabled. Search plugin update - Search plug-in update + All your plugins are already up to date. - All your plug-ins are already up to date. + @@ -4158,7 +4281,7 @@ Those plugins were disabled. Search plugin install - Search plug-in install + @@ -4188,22 +4311,22 @@ Those plugins were disabled. Plugin source - Plug-in source + Search plugin source: - Search plug-in source: + Local file - Local file + Web link - Web link + @@ -4941,17 +5064,17 @@ Those plugins were disabled. Filter path (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5384,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5889,13 +6012,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Failed to open downloaded RSS file. - - RssSettingsDlg @@ -5964,92 +6080,9 @@ No further notices will be issued. Save Files to - - Download here - Download here - - - - SearchCategories - - All categories - All categories - - - Movies - Movies - - - TV shows - TV shows - - - Music - Music - - - Games - Games - - - Anime - Anime - - - Software - Software - - - Pictures - Pictures - - - Books - Books - SearchEngine - - Search - Search - - - Empty search pattern - Empty search pattern - - - Please type a search pattern first - Please type a search pattern first - - - Searching... - Searching... - - - Stop - Stop - - - Search Engine - Search Engine - - - Search has finished - Search has finished - - - An error occurred during search... - An error occurred during search... - - - Search aborted - Search aborted - - - Search returned no results - Search returned no results - Unknown search engine plugin file format. @@ -6085,47 +6118,47 @@ No further notices will be issued. All categories - All categories + Movies - Movies + TV shows - TV shows + Music - Music + Games - Games + Anime - Anime + Software - Software + Pictures - Pictures + Books - Books + @@ -6174,22 +6207,22 @@ No further notices will be issued. - - - + + + Search Search Status: - Status: + - + Stopped - Stopped + @@ -6199,7 +6232,7 @@ No further notices will be issued. Go to description page - Go to description page + @@ -6212,86 +6245,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Search Engine + - + Please install Python to use the Search Engine. - + Empty search pattern - Empty search pattern + - + Please type a search pattern first - Please type a search pattern first + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Searching... - + Searching... + + + + Stop - Stop + - - + + Search has finished - Search has finished + - - + + Search aborted - Search aborted + - + Search returned no results - Search returned no results + - + Search has failed - + An error occurred during search... - An error occurred during search... + @@ -6757,10 +6790,6 @@ No further notices will be issued. Download Priority - - Priority - Priority - TorrentCreatorDlg @@ -7956,108 +7985,6 @@ No further notices will be issued. Please type at least one URL. - - engineSelect - - Search plugins - Search plug-ins - - - Installed search engines: - Installed search engines: - - - Name - Name - - - Url - URL - - - Enabled - Enabled - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - You can get new search engine plug-ins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Install a new one - - - Check for updates - Check for updates - - - Close - Close - - - Uninstall - Uninstall - - - - engineSelectDlg - - Uninstall warning - Uninstall warning - - - Uninstall success - Uninstall success - - - The link doesn't seem to point to a search engine plugin. - The link doesn't seem to point to a search engine plug-in. - - - Select search plugins - Select search plug-ins - - - Search plugin install - Search plug-in install - - - Yes - Yes - - - No - No - - - Search plugin update - Search plug-in update - - - Sorry, update server is temporarily unavailable. - Sorry, update server is temporarily unavailable. - - - All your plugins are already up to date. - All your plug-ins are already up to date. - - - All selected plugins were uninstalled successfully - All selected plug-ins were uninstalled successfully - - - Invalid link - Invalid link - - - New search engine plugin URL - New search engine plug-in URL - - - URL: - URL: - - errorDialog @@ -8185,192 +8112,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Choose export directory - - - - + + + + Choose a save directory Choose a save directory - + Add directory to scan Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Folder is already being watched. - + Folder does not exist. Folder does not exist. - + Folder is not readable. Folder is not readable. - + Failure Failure - + Failed to add Scan Folder '%1': %2 Failed to add Scan Folder '%1': %2 - - + + Filters Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Parsing error - + Failed to parse the provided IP filter Failed to parse the provided IP filter - + Successfully refreshed Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Successfully parsed the provided IP filter: %1 rules were applied. - + Invalid key Invalid key - + This is not a valid SSL key. This is not a valid SSL key. - + Invalid certificate Invalid certificate - + This is not a valid SSL certificate. This is not a valid SSL certificate. - + The start time and the end time can't be the same. The start time and the end time can't be the same. - + Time Error Time Error - - pluginSourceDlg - - Plugin source - Plug-in source - - - Search plugin source: - Search plug-in source: - - - Local file - Local file - - - Web link - Web link - - preview @@ -8394,31 +8302,4 @@ No further notices will be issued. Cancel - - search_engine - - Search - Search - - - Status: - Status: - - - Stopped - Stopped - - - Download - Download - - - Go to description page - Go to description page - - - Search engines... - Search engines... - - diff --git a/src/lang/qbittorrent_eo.ts b/src/lang/qbittorrent_eo.ts index d00ee7a02..42cd5543b 100644 --- a/src/lang/qbittorrent_eo.ts +++ b/src/lang/qbittorrent_eo.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Samtavolano-identigilo: - + HTTP User-Agent is '%1' HTTP-uzantagento estas '%1' - + Anonymous mode [ON] Sennoma reĝimo [ŜALTITA] - + Anonymous mode [OFF] Sennoma reĝimo [MALŜALTITA] - + PeX support [ON] Subteno de PeX [ŜALTITA] - + PeX support [OFF] Subteno de PeX [MALŜALTITA] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] Subteno de Local Peer Discovery [ŜALTITA] - + Local Peer Discovery support [OFF] Subteno de Local Peer Discovery [MALŜALTITA] - + Encryption support [ON] Subteno de ĉifrado [ŜALTITA] - + Encryption support [FORCED] Subteno de ĉifrado [TRUDITA] - + Encryption support [OFF] Subteno de ĉifrado [MALŜALTITA] - + Embedded Tracker [ON] Enigita spurilo [ŜALTITA] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] Enigita spurilo [MALŜALTITA] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE KONEKTITA - + OFFLINE MALKONEKTITA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Ne eblas malkodi la torentdosieron '%1' - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' Ne eblis konservi dosieron '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. ĉar %1 estas malebligita. - + because %1 is disabled. this peer was blocked because TCP is disabled. ĉar %1 estas malebligita. - + URL seed lookup failed for URL: '%1', message: %2 URL-fonta elserĉo malsukcesis kun la URL-adreso: '%1', mesaĝo: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' estis forigita de la transmetlisto kaj diskilo. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' foriĝis de la transmetlisto. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' estas elŝutata, bonvolu atendi... - + DHT support [ON] Subteno de DHT [ŜALTITA] - + DHT support [OFF]. Reason: %1 Subteno de DHT [MALŜALTITA]. Kial: %1 - + DHT support [OFF] Subteno de DHT [MALŜALTITA] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 La difinita reta interfaco malvalidas: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent provantas aŭskulti per interfaco %1 pordo: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent ne trovis lokan adreson de %1 por aŭskulti - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent ne eblis aŭskulti per iu ajn interfaco pordo: %1. Kialo: %2 - + Tracker '%1' was added to torrent '%2' Spurilo '%1' aldoniĝis al la torento '%2' - + Tracker '%1' was deleted from torrent '%2' Spurilo '%1' foriĝis de la torento '%2' - + URL seed '%1' was added to torrent '%2' URL-fonto '%1' aldoniĝis al la torento '%2' - + URL seed '%1' was removed from torrent '%2' URL-fonto '%1' foriĝis de torento '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ne eblas reaktivigi la torenton '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 Ne eblis aldoni la torenton. Kial: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' reaktiviĝis. (rapida reaktiviĝo) - + '%1' added to download list. 'torrent name' was added to download list. '%1' aldoniĝis al la elŝutlisto. - + An I/O error occurred, '%1' paused. %2 Eneliga eraro okazis, '%1' paŭzis. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. pro IP-filtrilo. - + due to port filter. this peer was blocked due to port filter. pro porda filtrilo. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. ĉar ĝi havas malaltan pordon. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent sukcese aŭskultantas per interfaco %1 pordo: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent ne eblis aŭskulti per interfaco %1 pordo: %2/%3. Kialo: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Ekstera IP-adreso: %1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-fluoj - + Unread Nelegita @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Elŝuti torentojn de ties URL-ligiloj aŭ magnet-ligiloj - + Only one link per line Nur po unu ligilo por linio - + Download Elŝuti - + Global upload rate limit must be greater than 0 or disabled. La malloka alŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. - + Global download rate limit must be greater than 0 or disabled. La malloka elŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. - + Alternative upload rate limit must be greater than 0 or disabled. La alternativa alŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. - + Alternative download rate limit must be greater than 0 or disabled. La alternativa elŝutrapidlimo nepras esti aŭ pli ol 0 aŭ malebligita. - + Maximum active downloads must be greater than -1. La maksimumo de aktivaj elŝutoj nepras esti pli ol -1. - + Maximum active uploads must be greater than -1. La maksimumo de aktivaj alŝutoj nepras esti pli ol -1. - + Maximum active torrents must be greater than -1. La maksimumo de aktivaj torentoj nepras esti pli ol -1. - + Maximum number of connections limit must be greater than 0 or disabled. La maksimuma limo de la nombro da konektoj nepras esti aŭ pli ol 0 aŭ malebligita. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. La maksimuma limo de la nombro da konektoj por torento nepras esti aŭ pli ol 0 aŭ malebligita. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. - + Unable to save program preferences, qBittorrent is probably unreachable. - + Language Lingvo - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. Malvalida uzantnomo aŭ pasvorto. - + Password Pasvorto - + Login Ensaluti - + Upload Failed! Alŝuto malsukcesis! - + Original authors Originalaj aŭtoroj - + Upload limit: Alŝutlimo: - + Download limit: Elŝutlimo: - + Apply Apliki - + Add Aldoni - + Upload Torrents Alŝuti Torentojn - + All Ĉio - + Downloading Elŝutante - + Seeding Fontsendanta - + Completed Finita - + Resumed Reaktiviĝita - + Paused Paŭzinta - + Active Aktiva - + Inactive Malaktiva - + Save files to location: Konservi dosierojn al la loko: - + Label: Etikedo: - + Cookie: Kuketo: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Ĉiutage + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Elŝutita @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. Elsaluti - + Upload local torrent Alŝuti lokan torenton - + Are you sure you want to delete the selected torrents from the transfer list? Ĉu vi certas, ke vi volas forigi la elektitajn torentojn de la transmetlisto? - + The Web UI username must be at least 3 characters long. La uzantnomo por TTT-UI nepras esti almenaŭ 3 signojn longa. - + The Web UI password must be at least 3 characters long. La pasvorto por TTT-UI nepras esti almenaŭ 3 signojn longa. - + Save Konservi - + qBittorrent client is not reachable La qBittorrent-kliento ne atingiĝeblas. - + HTTP Server TTT-servilo - + The following parameters are supported: La jenaj parametroj estas subtenataj: - + Torrent path Torentindiko - + Torrent name Nomo de la torento - + qBittorrent has been shutdown. @@ -2279,12 +2402,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. Pitono estas bezona por uzi la serĉilon, sed ŝajnas, ke ĝi ne estas instalita. - - A new version is available. -Update to version %1? - Nova versio disponeblas. -Ĉu ĝisdatigu al la versio %1? - No updates available. @@ -2499,14 +2616,6 @@ Are you sure you want to quit qBittorrent? N/A N/A - - Asia/Pacific Region - Azio/Pacifika Regiono - - - Europe - Eŭropo - Andorra @@ -2542,10 +2651,6 @@ Are you sure you want to quit qBittorrent? Armenia Armenujo - - Netherlands Antilles - Nederlandaj Antiloj - Angola @@ -2641,10 +2746,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam Brunejo - - Bolivia - Bolivio - Brazil @@ -2710,10 +2811,6 @@ Are you sure you want to quit qBittorrent? Switzerland Svislando - - Cote D'Ivoire - Ebur-Bordo - Cook Islands @@ -2869,10 +2966,6 @@ Are you sure you want to quit qBittorrent? France Francujo - - France, Metropolitan - Francujo Ĉeflanda - Gabon @@ -3158,10 +3251,6 @@ Are you sure you want to quit qBittorrent? Latvia Latvujo - - Libyan Arab Jamahiriya - Libio - Morocco @@ -3187,10 +3276,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands Marŝaloj - - Macedonia - Makedonujo - Mali @@ -3206,10 +3291,6 @@ Are you sure you want to quit qBittorrent? Mongolia Mongolujo - - Macau - Makao - Northern Mariana Islands @@ -3370,19 +3451,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon Sankta Petro kaj Mikelono - - Pitcairn Islands - Pitkarna Insularo - Puerto Rico Portoriko - - Palestinian Territory - Palestina Aŭtonomio - Portugal @@ -3453,10 +3526,6 @@ Are you sure you want to quit qBittorrent? Singapore Singapuro - - Saint Helena - Sankta Heleno - Slovenia @@ -3697,10 +3766,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines Sankta Vincento kaj Grenadinoj - - Venezuela - Venezuelo - Virgin Islands, British @@ -3711,10 +3776,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. Usonaj Virgulininsuloj - - Vietnam - Vjetnamujo - Vanuatu @@ -3765,18 +3826,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe Zimbabvo - - Anonymous Proxy - Sennoma prokurilo - - - Satellite Provider - Artsatelita provizanto - - - Other - Alia - Aland Islands @@ -3802,10 +3851,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy Sankta Bartolomeo - - Saint Martin - Sankta Marteno - Could not uncompress GeoIP database file. @@ -3843,7 +3888,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Retpoŝt-atentiga eraro: @@ -4095,7 +4140,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Serĉi kromprogramojn + @@ -4110,18 +4155,18 @@ Are you sure you want to quit qBittorrent? Version - Versio + Url - URL + Enabled - Ebligita + @@ -4131,22 +4176,22 @@ Are you sure you want to quit qBittorrent? Install a new one - Instali novan + Check for updates - Kontroli ĝisdatigadon + Close - Fermi + Uninstall - Malinstali + @@ -4166,19 +4211,18 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Averto de malinstalo + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Kelkaj kromprogramoj ne eblis malinstali, ĉar ili estas inkluzivitaj en qBittorrent. Nur malinstaleblas tiuj, kiuj vi aldonis. -Tiuj kromprogramoj malebliĝis. + Uninstall success - Malinstalo sukcesis + @@ -4195,12 +4239,12 @@ Tiuj kromprogramoj malebliĝis. URL: - URL-adreso: + Invalid link - Malvalida ligilo + @@ -4210,7 +4254,7 @@ Tiuj kromprogramoj malebliĝis. Select search plugins - Elektu serĉilajn kromprogramojn + @@ -4279,12 +4323,12 @@ Tiuj kromprogramoj malebliĝis. Local file - Loka dosiero + Web link - TTT-ligilo + @@ -5022,17 +5066,17 @@ Tiuj kromprogramoj malebliĝis. Filtri la dosierindikon (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5465,7 +5509,7 @@ Tiuj kromprogramoj malebliĝis. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5971,17 +6015,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Ne eblis malfermi la elŝutitan RSS-dosieron. - - - Invalid RSS feed at '%1'. - Malvalida RSS-fluo ĉe '%1'. - - RssSettingsDlg @@ -6050,109 +6083,9 @@ No further notices will be issued. Save Files to - - Download here - Elŝuti ĉi tien - - - Download path - Elŝutindiko - - - - SearchCategories - - All categories - Ĉiuj kategorioj - - - Movies - Filmoj - - - TV shows - Televidserioj - - - Music - Muziko - - - Games - Ludoj - - - Anime - Animeo - - - Software - Programaroj - - - Pictures - Bildoj - - - Books - Libroj - SearchEngine - - Search - Serĉi - - - Please install Python to use the Search Engine. - Bonvolu instali Pitonon por uzi la Serĉilon. - - - Empty search pattern - Malplena serĉa ŝablono - - - Searching... - Ŝerĉante... - - - Stop - Halti - - - Search Engine - Serĉilo - - - Search has finished - Serĉo finiĝis - - - All enabled - Ĉiuj ebligitaj - - - All engines - Ĉiuj serĉiloj - - - Multiple... - Pluraj... - - - Results <i>(%1)</i>: - i.e: Search results - Rezultoj <i>(%1)</i>: - - - Search returned no results - Serĉo reportis neniun rezulton - - - Stopped - Haltinta - Unknown search engine plugin file format. @@ -6188,47 +6121,47 @@ No further notices will be issued. All categories - Ĉiuj kategorioj + Movies - Filmoj + TV shows - Televidserioj + Music - Muziko + Games - Ludoj + Anime - Animeo + Software - Programaroj + Pictures - Bildoj + Books - Libroj + @@ -6277,37 +6210,37 @@ No further notices will be issued. - - - + + + Search Status: - Stato: + - + Stopped - Haltinta + Download - + Elŝuti Go to description page - Iru al la priskribpaĝo + Copy description page URL - Kopiu la URLon de la priskribpaĝo + @@ -6315,84 +6248,84 @@ No further notices will be issued. - + All enabled - Ĉiuj ebligitaj - - - - All plugins - + All plugins + + + + + Multiple... - Pluraj... + - - - + + + Search Engine - Serĉilo + - + Please install Python to use the Search Engine. - Bonvolu instali Pitonon por uzi la Serĉilon. + - + Empty search pattern - Malplena serĉa ŝablono + - + Please type a search pattern first - - + + Results <i>(%1)</i>: i.e: Search results - Rezultoj <i>(%1)</i>: - - - - Searching... - Ŝerĉante... + + Searching... + + + + Stop - Halti + - - + + Search has finished - Serĉo finiĝis + - - + + Search aborted - + Search returned no results - Serĉo reportis neniun rezulton + - + Search has failed - + An error occurred during search... @@ -6860,10 +6793,6 @@ No further notices will be issued. Download Priority - - Priority - Prioritato - TorrentCreatorDlg @@ -8059,109 +7988,6 @@ No further notices will be issued. Bonvolu tajpi almenaŭ unu URL-adreson. - - engineSelect - - Search plugins - Serĉi kromprogramojn - - - Installed search engines: - Instalitaj serĉiloj: - - - Name - Nomo - - - Version - Versio - - - Url - URL - - - Enabled - Ebligita - - - Install a new one - Instali novan - - - Check for updates - Kontroli ĝisdatigadon - - - Close - Fermi - - - Uninstall - Malinstali - - - - engineSelectDlg - - Uninstall warning - Averto de malinstalo - - - Uninstall success - Malinstalo sukcesis - - - Invalid plugin - Malvalida kromprogramo - - - The search engine plugin is invalid, please contact the author. - La serĉila kromprogramo malvalidas, bonvolu kontakti la aŭtoron. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - La serĉila kromprogramo '%1' ne eblis instaliĝi. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - La serĉila kromprogramo '%1' ĝisdatiĝis sukcese. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - La serĉila kromprogramo '%1' instaliĝis sukcese. - - - Select search plugins - Elektu serĉilajn kromprogramojn - - - Yes - Jes - - - No - Ne - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Kelkaj kromprogramoj ne eblis malinstali, ĉar ili estas inkluzivitaj en qBittorrent. Nur malinstaleblas tiuj, kiuj vi aldonis. -Tiuj kromprogramoj malebliĝis. - - - Invalid link - Malvalida ligilo - - - URL: - URL-adreso: - - errorDialog @@ -8289,184 +8115,173 @@ Tiuj kromprogramoj malebliĝis. options_imp - - + + Choose export directory Elektu la elportan dosierujon - - - - + + + + Choose a save directory Elektu konservan dosierujon - + Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name %N: Torenta nomo - + %L: Label %L: Etikedo - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Konserva dosierindiko - + %C: Number of files %C: Nombro de dosieroj - + %Z: Torrent size (bytes) %Z: Grando de la torento (bitoj) - + %T: Current tracker %T: Aktuala spurilo - + %I: Info hash %I: Informhaketaĵo - + Folder is already being watched. La dosierujo jam estas rigardata. - + Folder does not exist. La dosierujo ne ekzistas. - + Folder is not readable. La dosierujo ne legeblas. - + Failure Malsukceso - + Failed to add Scan Folder '%1': %2 Ne eblis aldoni Traserĉan Dosierujon '%1': %2 - - + + Filters Filtriloj - - + + Choose an IP filter file Elektu IP-filtrildosieron - + SSL Certificate SSL-atestilo - + SSL Key SSL-ŝlosilo - + Parsing error Sintaksanaliza eraro - + Failed to parse the provided IP filter - + Successfully refreshed Sukcese aktualigita - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Malvalida ŝlosilo - + This is not a valid SSL key. Tio ne estas valida SSL-ŝlosilo. - + Invalid certificate Malvalida atestigilo - + This is not a valid SSL certificate. Tio ne estas valida SSL-atestigilo. - + The start time and the end time can't be the same. La komenctempo kaj la fintempo ne povas esti la samaj. - + Time Error Tempa Eraro - - pluginSourceDlg - - Local file - Loka dosiero - - - Web link - TTT-ligilo - - preview @@ -8490,35 +8305,4 @@ Tiuj kromprogramoj malebliĝis. Nuligu - - search_engine - - Search - Serĉu - - - Status: - Stato: - - - Stopped - Haltinta - - - Download - Elŝutu - - - Go to description page - Iru al la priskribpaĝo - - - Copy description page URL - Kopiu la URLon de la priskribpaĝo - - - Search engines... - Serĉiloj... - - diff --git a/src/lang/qbittorrent_es.ts b/src/lang/qbittorrent_es.ts index 9ff511120..3872328a3 100644 --- a/src/lang/qbittorrent_es.ts +++ b/src/lang/qbittorrent_es.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID del Par: - + HTTP User-Agent is '%1' El User-Agent HTTP es '%1' - + Anonymous mode [ON] Modo anónimo [Activado] - + Anonymous mode [OFF] Modo anónimo [Desactivado] - + PeX support [ON] Soporte PeX [Activado] - + PeX support [OFF] Soporte PeX [Desactivado] - + Restart is required to toggle PeX support Es necesario reiniciar para cambiar el soporte PeX - + Local Peer Discovery support [ON] Buscar pares locales [Activado] - + Local Peer Discovery support [OFF] Buscar pares locales [Desactivado] - + Encryption support [ON] Soporte para cifrado [Activado] - + Encryption support [FORCED] Soporte para cifrado [Forzado] - + Encryption support [OFF] Sopote para cifrado [Desactivado] - + Embedded Tracker [ON] Tracker integrado [Activado] - + Failed to start the embedded tracker! Error al iniciar el tracker integrado! - + Embedded Tracker [OFF] Tracker integrado [Desactivado] - + '%1' reached the maximum ratio you set. Removing... '%1' alcanzó el ratio máximo establecido. Eliminandolo... - + '%1' reached the maximum ratio you set. Pausing... '%1' alcanzó el ratio máximo establecido. Pausandolo... - + System network status changed to %1 e.g: System network status changed to ONLINE El estado de la red de sistema cambió a %1 - + ONLINE EN LÍNEA - + OFFLINE FUERA DE LÍNEA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding La configuración de red de %1 ha cambiado, refrescando la sesión - + Unable to decode '%1' torrent file. No se pudo decodificar el torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descarga recursiva del archivo '%1' incluido en el torrent '%2' - + Couldn't save '%1.torrent' No se pudo guardar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. porque %1 está deshabilitado. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque %1 está deshabilitado. - + URL seed lookup failed for URL: '%1', message: %2 Falló la búsqueda de la semilla Url: '%1', mensaje: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' Fue eliminado de la lista de transferencias y del disco. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' Fue eliminado de la lista de transferencias. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', por favor espere... - + DHT support [ON] Soporte para DHT [Activado] - + DHT support [OFF]. Reason: %1 Soporte para DHT [Desactivado]. Razón: %1 - + DHT support [OFF] Soporte para DHT [Desactivado] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tratando de escuchar en cualquier interfaz, puerto: %1 - + The network interface defined is invalid: %1 La interfaz de red definida no es válida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent está tratando de escuchar en la interfaz %1 puerto: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent no encuentra una dirección local %1 para escuchar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent falló tratando de escuchar en cualquier interfaz, Puerto: %1. Razón: %2 - + Tracker '%1' was added to torrent '%2' El tracker '%1' se agregó al torrent '%2' - + Tracker '%1' was deleted from torrent '%2' El tracker '%1' se eliminó del torrent '%2' - + URL seed '%1' was added to torrent '%2' La semilla URL '%1' se agregó al torrent '%2' - + URL seed '%1' was removed from torrent '%2' La semilla URL '%1' se eliminó del torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. No se pudo continuar el torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro IP analizado correctamente: %1 reglas aplicadas. - + Error: Failed to parse the provided IP filter. Error: Falló el análisis del filtro IP. - + Couldn't add torrent. Reason: %1 No se pudo agregar el torrent. Razón: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' continuado. (continuación rápida) - + '%1' added to download list. 'torrent name' was added to download list. '%1' agregado a la lista de descargas. - + An I/O error occurred, '%1' paused. %2 Ocurrió un error de Entrada/Salida (I/O), '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Falló el mapeo del puerto, mensaje: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Puerto mapeado correctamente, mensaje: %1 - + due to IP filter. this peer was blocked due to ip filter. por el filtro IP. - + due to port filter. this peer was blocked due to port filter. por el filtro de puertos. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. por restricciones del modo mixto i2p. - + because it has a low port. this peer was blocked because it has a low port. por tener un puerto bajo. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent está escuchando en la interfaz %1 puerto: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent falló al escuchar en la interfaz %1 puerto: %2/%3. Razón: %4 - + External IP: %1 e.g. External IP: 192.168.0.1 IP Externa: %1 @@ -1284,12 +1284,12 @@ Debe obtener esta información de las preferencias de su navegador Web. FeedListWidget - + RSS feeds Canales RSS - + Unread No leídos @@ -1378,211 +1378,338 @@ Debe obtener esta información de las preferencias de su navegador Web. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Descargar torrents desde URL o enlace magnet - + Only one link per line Solamente un enlace por línea - + Download Descargar - + Global upload rate limit must be greater than 0 or disabled. El límite de la tasa de subida debe ser mayor que 0 o estar inhabilitado. - + Global download rate limit must be greater than 0 or disabled. El límite de la tasa de descarga debe ser mayor que 0 o estar inhabilitado. - + Alternative upload rate limit must be greater than 0 or disabled. El límite alternativo de la tasa de subida debe ser mayor que 0 o estar inhabilitado. - + Alternative download rate limit must be greater than 0 or disabled. El límite alternativo de la tasa de descarga debe ser mayor que 0 o estar inhabilitado. - + Maximum active downloads must be greater than -1. El número máximo de descargas activas debe ser mayor que -1. - + Maximum active uploads must be greater than -1. El número máximo de subidas activas debe ser mayor que -1. - + Maximum active torrents must be greater than -1. El número máximo de torrents activos debe ser mayor que -1. - + Maximum number of connections limit must be greater than 0 or disabled. El número máximo del limite de conexiones debe ser mayor que 0 o estar inhabilitado. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. El número máximo del limite de conexiones por torrent debe ser mayor que 0 o estar inhabilitado. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. El número máximo de puestos de subida por torrent debe ser mayor que 0 o estar inhabilitado. - + Unable to save program preferences, qBittorrent is probably unreachable. Error al guardar las preferencias del programa, imposible conectar a qBittorrent. - + Language Idioma - + The port used for incoming connections must be between 1 and 65535. El puerto utilizado para conexiones entrantes debe estar comprendido entre 1 y 65535. - + The port used for the Web UI must be between 1 and 65535. El puerto utilizado para la interfaz Web debe estar comprendido entre 1 y 65535. - + Unable to log in, qBittorrent is probably unreachable. Error al iniciar sesión, imposible conectar a qBittorrent. - + Invalid Username or Password. Nombre de usuario o contraseña inválidos. - + Password Contraseña - + Login Iniciar sesión - + Upload Failed! Fallo al subir! - + Original authors Autores originales - + Upload limit: Límite de subida: - + Download limit: Límite de descarga: - + Apply Aplicar - + Add Agregar - + Upload Torrents Subir Torrents - + All Todos - + Downloading Descargando - + Seeding Sembrando - + Completed Completados - + Resumed Reanudados - + Paused Pausados - + Active Activos - + Inactive Inactivos - + Save files to location: Guardar los archivos en: - + Label: Etiqueta: - + Cookie: Cookie: - + Type folder here + Escribir carpeta aquí + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Guardar los archivos en: + + + + Watch Folder + Carpeta vigilada + + + + Default Folder + Carpeta predeterminada + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Otro... + + + + Every day + Schedule the use of alternative rate limits on ... + Todos los días + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Otro... + + + Downloaded Is the file downloaded or not? Bajado @@ -1593,57 +1720,57 @@ Debe obtener esta información de las preferencias de su navegador Web.Salir - + Upload local torrent Subir torrent local - + Are you sure you want to delete the selected torrents from the transfer list? ¿Seguro que desea eliminar los torrents seleccionados de la lista de transferencias? - + The Web UI username must be at least 3 characters long. El nombre de usuario de la interfaz Web debe ser de al menos 3 caracteres. - + The Web UI password must be at least 3 characters long. La contraseña de Interfaz de Usuario Web debe ser de al menos 3 caracteres. - + Save Guardar - + qBittorrent client is not reachable Imposible conectar a qBittorrent - + HTTP Server Servidor HTTP - + The following parameters are supported: Están soportados los siguientes parámetros: - + Torrent path Ruta del torrent - + Torrent name Nombre del torrent - + qBittorrent has been shutdown. qBittorrent se ha cerrado. @@ -2216,7 +2343,8 @@ Do you want to associate qBittorrent to torrent files and Magnet links? A new version is available. Do you want to download %1? - + Hay una nueva versión disponible. +¿Desea descargar %1? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. Python es necesario para utilizar el motor de búsqueda pero no parece que esté instalado. - - A new version is available. -Update to version %1? - Hay una nueva versión disponible. -¿Desea actualizar qBittorrent a la versión %1? - No updates available. @@ -2489,12 +2611,12 @@ Are you sure you want to quit qBittorrent? Venezuela, Bolivarian Republic of - + Venezuela Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Are you sure you want to quit qBittorrent? N/A N/A - - Asia/Pacific Region - Región de Asia-Pacífico - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Are you sure you want to quit qBittorrent? Armenia Armenia - - Netherlands Antilles - Antillas Neerlandesas - Angola @@ -2644,10 +2754,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam Brunéi Darussalam - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Are you sure you want to quit qBittorrent? Switzerland Suiza - - Cote D'Ivoire - Costa de Marfil - Cook Islands @@ -2760,7 +2862,7 @@ Are you sure you want to quit qBittorrent? Curacao - + Curazao @@ -2872,10 +2974,6 @@ Are you sure you want to quit qBittorrent? France Francia - - France, Metropolitan - Francia metropolitana - Gabon @@ -3161,10 +3259,6 @@ Are you sure you want to quit qBittorrent? Latvia Letonia - - Libyan Arab Jamahiriya - Libia - Morocco @@ -3190,10 +3284,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands Islas Marshall - - Macedonia - Macedonia - Mali @@ -3209,10 +3299,6 @@ Are you sure you want to quit qBittorrent? Mongolia Mongolia - - Macau - Macao - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon San Pedro y Miquelón - - Pitcairn Islands - Islas Pitcairn - Puerto Rico Puerto Rico - - Palestinian Territory - Territorios Palestinos - Portugal @@ -3456,10 +3534,6 @@ Are you sure you want to quit qBittorrent? Singapore Singapur - - Saint Helena - Isla Santa Elena - Slovenia @@ -3578,62 +3652,62 @@ Are you sure you want to quit qBittorrent? Bolivia, Plurinational State of - + Bolivia Bonaire, Sint Eustatius and Saba - + Bonaire Cote d'Ivoire - + Costa de Marfil Libya - + Libia Saint Martin (French part) - + San Martín (Parte Francesa) Macedonia, The Former Yugoslav Republic of - + Macedonia Macao - + Macao Pitcairn - + Pitcairn Palestine, State of - + Palestina Saint Helena, Ascension and Tristan da Cunha - + Santa Elena, Ascensión y Tristán de Acuña South Sudan - + Sudán del Sur Sint Maarten (Dutch part) - + Sint Maarten (Parte neerlandesa) @@ -3700,10 +3774,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines San Vicente y las Granadinas - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. Islas Vírgenes de los Estados Unidos - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe Zimbabue - - Anonymous Proxy - Proxy Anónimo - - - Satellite Provider - Proveedor Satélital - - - Other - Otro - Aland Islands @@ -3805,10 +3859,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy San Bartolomé - - Saint Martin - Isla de San Martín - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Error en la notificación por E-mail: @@ -3992,7 +4042,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + Archivos @@ -4018,7 +4068,7 @@ Are you sure you want to quit qBittorrent? The peer '%1' could not be added to this torrent. - El par '%1' no se ha podido agregar al torrent. + El par no se pudo agregar al torrent. @@ -4098,65 +4148,65 @@ Are you sure you want to quit qBittorrent? Search plugins - Plugins de búsqueda + Plugins de búsqueda Installed search plugins: - + Plugins de búsqueda instalados: Name - Nombre + Nombre Version - Versión + Versión Url - URL + URL Enabled - Habilitado + Habilitado You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Puedes obtener nuevos motores de búsqueda aquí: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Puedes obtener nuevos plugins de motores de búsqueda aquí <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Instalar uno nuevo + Instalar uno nuevo Check for updates - Buscar actualizaciones + Buscar actualizaciones Close - Cerrar + Cerrar Uninstall - Desinstalar + Desinstalar Yes - + @@ -4164,107 +4214,107 @@ Are you sure you want to quit qBittorrent? No - No + No Uninstall warning - Advertencia de desinstalación + Advertencia de desinstalación Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Algunos plugins no pudieron ser desinstalados porque están incluidos en qBittorrent. Solamente pueden ser desinstalados los que han sido agregados por ti. + Algunos plugins no pudieron ser desinstalados porque están incluidos en qBittorrent. Solamente pueden ser desinstalados los que han sido agregados por ti. En su lugar, esos plugins fueron deshabilitados. Uninstall success - Desinstalación correcta + Desinstalación correcta All selected plugins were uninstalled successfully - Todos los plugins seleccionados fueron instalados correctamente + Todos los plugins seleccionados fueron instalados correctamente New search engine plugin URL - URL del nuevo plugin de motor de búsqueda + URL del nuevo plugin de motor de búsqueda URL: - URL: + URL: Invalid link - Enlace inválido + Enlace inválido The link doesn't seem to point to a search engine plugin. - El enlace no parece contener un plugin de búsqueda. + El enlace no parece llevar a un plugin de búsqueda. Select search plugins - Seleccione los plugins de búsqueda + Seleccione los plugins de búsqueda qBittorrent search plugin - Plugin de búsqueda de qBittorrent + Plugin de búsqueda de qBittorrent Search plugin update - Actualización del plugin de búsqueda + Actualización del plugin de búsqueda All your plugins are already up to date. - Todos tus plugins ya están actualizados. + Todos los plugins ya están actualizados. Sorry, couldn't check for plugin updates. %1 - + No se pudo buscar actualizaciones de plugins. %1 Search plugin install - Instalar plugin de búsqueda + Instalar plugin de búsqueda "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + El plugin de motor de búsqueda %1 fue instalado correctamente. Couldn't install "%1" search engine plugin. %2 - + No se pudo instalar el plugin "%1". %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + El plugin de motor de búsqueda %1 fue actualizado correctamente. Couldn't update "%1" search engine plugin. %2 - + No se pudo actualizar el plugin "%1". %2 @@ -4272,22 +4322,22 @@ En su lugar, esos plugins fueron deshabilitados. Plugin source - Fuente del plugin + Fuente del plugin Search plugin source: - Fuente del plugin de búsqueda: + Fuente del plugin de búsqueda: Local file - Archivo local + Archivo local Web link - Enlace web + Enlace web @@ -5025,18 +5075,18 @@ En su lugar, esos plugins fueron deshabilitados. Ruta del filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Se ha detectado un cierre inesperado. Usando el archivo de respaldo para restaurar la configuración. - + An access error occurred while trying to write the configuration file. Ocurrió un error de acceso tratando de escribir el archivo de configuración. - + A format error occurred while trying to write the configuration file. Ocurrió un error de formato tratando de escribir el archivo de configuración. @@ -5469,7 +5519,7 @@ Usando el archivo de respaldo para restaurar la configuración. QObject - + Your IP address has been banned after too many failed authentication attempts. Su dirección IP ha sido bloqueada debido a demasiados intentos fallados de autenticación. @@ -5961,12 +6011,12 @@ No se le volverá a notificar sobre esto. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... + La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... Automatically downloading '%1' torrent from '%2' RSS feed... - Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... + Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... @@ -5974,29 +6024,7 @@ No se le volverá a notificar sobre esto. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - La descarga automática '%1' del canal RSS '%2' falló debido a que no contiene un torrent o un enlace magnet... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Descargando automáticamente el torrent '%1'. desde el Canal RSS '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Fallo al abrir el archivo descargado del RSS. - - - Invalid RSS feed at '%1'. - Canal RSS inválido en '%1'. + Canal RSS inválido @@ -6027,22 +6055,22 @@ No se le volverá a notificar sobre esto. Watch Folder - + Carpeta vigilada Default Folder - + Carpeta predeterminada Browse... - Examinar... + Examinar... Choose save path - + Seleccione una ruta de destino @@ -6050,12 +6078,12 @@ No se le volverá a notificar sobre esto. Watch Folder - + Carpeta vigilada Default Folder - + Carpeta predeterminada @@ -6065,199 +6093,87 @@ No se le volverá a notificar sobre esto. Save Files to - - - - Download here - Descargar aquí - - - Download path - Ruta de descarga - - - - SearchCategories - - All categories - Todas las categorías - - - Movies - Vídeos - - - TV shows - Programas de TV - - - Music - Música - - - Games - Juegos - - - Anime - Anime - - - Software - Software - - - Pictures - Imágenes - - - Books - Libros + Guardar los archivos en: SearchEngine - - Search - Buscar - - - Please install Python to use the Search Engine. - Por favor instala Python para usar el motor de búsqueda. - - - Empty search pattern - Patrón de búsqueda vacío - - - Please type a search pattern first - Por favor escriba primero un patrón de búsqueda - - - Searching... - Buscando... - - - Stop - Detener - - - Search Engine - Motor de búsqueda - - - Search has finished - La búsqueda ha terminado - - - An error occurred during search... - Ocurrió un error durante la búsqueda... - - - Search aborted - Búsqueda abortada - - - All enabled - Todos los habilitados - - - All engines - Todos los motores - - - Multiple... - Múltiples... - - - Results <i>(%1)</i>: - i.e: Search results - Resultados <i>(%1)</i>: - - - Search returned no results - La búsqueda no devolvió resultados - - - Stopped - Detenido - Unknown search engine plugin file format. - + Formato de plugin de motor de búsqueda desconocido. A more recent version of this plugin is already installed. - + Una versión más reciente del plugin ya está instalada. Plugin is not supported. - + Plugin no soportado. Update server is temporarily unavailable. %1 - + El servidor de actualizaciones no está disponible temporalmente. %1 Failed to download the plugin file. %1 - + Fallo al descargar el plugin. %1 An incorrect update info received. - + La Información de actualización recibida es incorrecta All categories - Todas las categorías + Todas las categorías Movies - Vídeos + Películas TV shows - Programas de TV + Programas de TV Music - Música + Música Games - Juegos + Juegos Anime - Anime + Anime Software - Software + Software Pictures - Imágenes + Imágenes Books - Libros + Libros @@ -6306,124 +6222,124 @@ No se le volverá a notificar sobre esto. - - - + + + Search - Buscar + Buscar Status: - Estado: + Estado: - + Stopped - Detenido + Detenido Download - Descargar + Descargar Go to description page - Ir a la página de descripción + Ir a la página de descripción Copy description page URL - Copiar URL de la página de descripción + Copiar URL de la página de descripción Search plugins... - + Plugins de búsqueda... - + All enabled - Todos los habilitados - - - - All plugins - + Todos los habilitados - + All plugins + Todos los motores + + + + Multiple... - Múltiples... + Múltiples... - - - + + + Search Engine - Motor de búsqueda + Motor de búsqueda - + Please install Python to use the Search Engine. - Por favor instala Python para usar el motor de búsqueda. + Por favor instala Python para usar el motor de búsqueda. - + Empty search pattern - Patrón de búsqueda vacío + Patrón de búsqueda vacío - + Please type a search pattern first - Por favor escriba primero un patrón de búsqueda + Por favor escriba un patrón de búsqueda primero - - + + Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: - - - - Searching... - Buscando... + Resultados <i>(%1)</i>: + Searching... + Buscando... + + + Stop - Detener + Detener - - + + Search has finished - La búsqueda ha terminado + La búsqueda ha terminado - - + + Search aborted - Búsqueda abortada + Búsqueda abortada - + Search returned no results - La búsqueda no devolvió resultados + La búsqueda no devolvió resultados - + Search has failed - + La búsqueda falló - + An error occurred during search... - Ocurrió un error durante la búsqueda... + Ocurrió un error durante la búsqueda... @@ -6887,11 +6803,7 @@ No se le volverá a notificar sobre esto. Download Priority - - - - Priority - Prioridad + Prioridad de descarga @@ -8088,160 +8000,6 @@ No se le volverá a notificar sobre esto. Por favor introduce al menos una URL. - - engineSelect - - Search plugins - Plugins de búsqueda - - - Installed search engines: - Motores de búsqueda instalados: - - - Name - Nombre - - - Version - Versión - - - Url - URL - - - Enabled - Habilitado - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Puedes obtener nuevos motores de búsqueda aquí: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instalar uno nuevo - - - Check for updates - Buscar actualizaciones - - - Close - Cerrar - - - Uninstall - Desinstalar - - - - engineSelectDlg - - Uninstall warning - Advertencia de desinstalación - - - Uninstall success - Desinstalación correcta - - - Invalid plugin - Plugin inválido - - - The search engine plugin is invalid, please contact the author. - El plugin de motor de busqueda es inválido, por favor contacte al autor. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Una versión más reciente del plugin de motor de búsqueda '%1' ya está instalada. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - El plugin de motor de búsqueda '%1' no pudo ser actualizado, se mantendrá la versión antigua. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - El plugin de motor de búsqueda '%1' no pudo ser instalado. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - El plugin de motor de búsqueda '%1' fue actualizado correctamente. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - El plugin de motor de búsqueda '%1' fue instalado correctamente. - - - The link doesn't seem to point to a search engine plugin. - El enlace no parece contener un plugin de búsqueda. - - - Select search plugins - Seleccione los plugins de búsqueda - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Lo sentimos, la instalación del plugin de búsqueda '%1' ha fallado. - - - Search plugin install - Instalar plugin de búsqueda - - - Yes - - - - No - No - - - qBittorrent search plugin - Plugin de búsqueda de qBittorrent - - - Search plugin update - Actualización del plugin de búsqueda - - - Sorry, update server is temporarily unavailable. - El servidor de actualizaciones no está disponible temporalmente. - - - All your plugins are already up to date. - Todos tus plugins ya están actualizados. - - - All selected plugins were uninstalled successfully - Todos los plugins seleccionados fueron instalados correctamente - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Algunos plugins no pudieron ser desinstalados porque están incluidos en qBittorrent. Solamente pueden ser desinstalados los que han sido agregados por ti. -En su lugar, esos plugins fueron deshabilitados. - - - Invalid link - Enlace inválido - - - New search engine plugin URL - URL del nuevo plugin de motor de búsqueda - - - URL: - URL: - - errorDialog @@ -8369,192 +8127,173 @@ En su lugar, esos plugins fueron deshabilitados. options_imp - - + + Choose export directory Selecciona una ruta de exportación - - - - + + + + Choose a save directory Seleccione una ruta para guardar - + Add directory to scan Agregar una ruta para escanear - + Supported parameters (case sensitive): Parámetros soportados (sensible a mayúsculas): - + %N: Torrent name %N: Nombre del torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: Ruta del contenido (misma ruta que la raíz para torrents muilti-archivo) - + %R: Root path (first torrent subdirectory path) %R: Ruta Raíz (primer subdirectorio del torrent) - + %D: Save path %D: Ruta de destino - + %C: Number of files %C: Cantidad de archivos - + %Z: Torrent size (bytes) %Z: Tamaño del torrent (bytes) - + %T: Current tracker %T: Tracker actual - + %I: Info hash %I: Info hash - + Folder is already being watched. Esta carpeta ya está en seleccionada para escanear. - + Folder does not exist. La carpeta no existe. - + Folder is not readable. La carpeta no es legible. - + Failure Error - + Failed to add Scan Folder '%1': %2 No se pudo escanear esta carpeta '%1': %2 - - + + Filters Filtros - - + + Choose an IP filter file Seleccione un archivo de filtro IP - + SSL Certificate Certificado SSL - + SSL Key Clave SSL - + Parsing error Error de análisis - + Failed to parse the provided IP filter No se ha podido analizar el filtro IP proporcionado - + Successfully refreshed Actualizado correctamente - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro IP analizado correctamente: %1 reglas fueron aplicadas. - + Invalid key Clave no válida - + This is not a valid SSL key. Esta no es una clave SSL válida. - + Invalid certificate Certificado no válido - + This is not a valid SSL certificate. Este no es un Certificado SSL válido. - + The start time and the end time can't be the same. Los tiempos de inicio y finalización no pueden ser iguales. - + Time Error Error de tiempo - - pluginSourceDlg - - Plugin source - Fuente del plugin - - - Search plugin source: - Fuente del plugin de búsqueda: - - - Local file - Archivo local - - - Web link - Enlace web - - preview @@ -8578,35 +8317,4 @@ En su lugar, esos plugins fueron deshabilitados. Cancelar - - search_engine - - Search - Buscar - - - Status: - Estado: - - - Stopped - Detenido - - - Download - Descargar - - - Go to description page - Ir a la página de descripción - - - Copy description page URL - Copiar URL de la página de descripción - - - Search engines... - Motores de búsqueda... - - diff --git a/src/lang/qbittorrent_eu.ts b/src/lang/qbittorrent_eu.ts index 3b7eba90e..8b89182ce 100644 --- a/src/lang/qbittorrent_eu.ts +++ b/src/lang/qbittorrent_eu.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Hartzaile ID-a: - + HTTP User-Agent is '%1' HTTP Erabiltzaile-Ordezkaria da, '%1' - + Anonymous mode [ON] Izengabeko modua [BAI] - + Anonymous mode [OFF] Izengabeko modua [EZ] - + PeX support [ON] HaX sostengua [BAI] - + PeX support [OFF] HaX sostengua [EZ] - + Restart is required to toggle PeX support Berrabiaraztea beharrezkoa HaX sostengua aldatzeko - + Local Peer Discovery support [ON] Tokiko Hartzaile Aurkikuntza sostengua [BAI] - + Local Peer Discovery support [OFF] Tokiko Hartzaile Aurkikuntza sostengua [EZ] - + Encryption support [ON] Enkripataketa sostengua [BAI] - + Encryption support [FORCED] Enkripataketa sostengua [BEHARTUTA] - + Encryption support [OFF] Enkripataketa sostengua [EZ] - + Embedded Tracker [ON] Barneratutako Aztarnaria [BAI] - + Failed to start the embedded tracker! Hutsegitea barneratutako aztarnaria abiaraztean! - + Embedded Tracker [OFF] Barneratutako Aztarnaria [EZ] - + '%1' reached the maximum ratio you set. Removing... %1 ezarri duzun gehienezko maila erdietsita. Kentzen... - + '%1' reached the maximum ratio you set. Pausing... %1 ezarri duzun gehienezko maila erdietsita. Pausatzen... - + System network status changed to %1 e.g: System network status changed to ONLINE Sistemaren sare egoera %1-ra aldatu da - + ONLINE ONLINE - + OFFLINE LINEAZ-KANPO - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1-ren sare itxurapena aldatu egin da, saio lotura berritzen - + Unable to decode '%1' torrent file. Ezinezkoa '%1' torrent agiria dekodeatzea. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' '%1' agiriaren jeisketa mugagabea '%2' torrentean barneratuta - + Couldn't save '%1.torrent' Ezinezkoa '%1.torrent' gordetzea - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 ezgaituta dagoelako. - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 ezgaituta dagoelako. - + URL seed lookup failed for URL: '%1', message: %2 Url emaritza bigizta hutsegitea url honetan: '%1', mezua: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' eskualdaketa zerrendatik eta diska gogorretik kendu da. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' eskualdaketa zerrendatik kendu da. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' jeisten, mesedez itxaron... - + DHT support [ON] DHT sostengua [BAI] - + DHT support [OFF]. Reason: %1 DHT sostengua [EZ]. Zergaitia: %1 - + DHT support [OFF] DHT sostengua [EZ] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent interfazearen edozein atakan aditzen saiatzen ari da: %1 - + The network interface defined is invalid: %1 Zehaztutako sare interfazea baliogabea da: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent aditzen saiatzen ari da %1 interfazean, ataka: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent-ek ez du %1 tokiko helbide bat aurkitu aditzeko - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent-ek huts egin du edozein interfaze atakan aditzerakoan: %1. Zergaitia: %2 - + Tracker '%1' was added to torrent '%2' '%1' aztarnaria '%2' torrentera gehitu da. - + Tracker '%1' was deleted from torrent '%2' '%1' aztarnaria '%2' torrentetik kendu da - + URL seed '%1' was added to torrent '%2' '%1' emaritza URL-a '%2' torrentera gehitu da - + URL seed '%1' was removed from torrent '%2' '%1' aztarnaria '%2' torrentetik kendu da - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ezinezkoa %1 torrenta berrekitea. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Emandako IP iragazkia ongi aztertu da: %1 araua ezarri dira. - + Error: Failed to parse the provided IP filter. Akatsa: Hutsegitea emandako IP iragazkia aztertzerakoan. - + Couldn't add torrent. Reason: %1 Ezinezkoa torrenta gehitzea. Zergaitia: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' berrekinda. (berrekite azkarra) - + '%1' added to download list. 'torrent name' was added to download list. '%1' jeisketa zerrendara gehituta. - + An I/O error occurred, '%1' paused. %2 S/I akats bat gertatu da, '%1' pausatuta. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Ataka mapaketa hutsegitea, mezua: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Ataka mapaketa ongi burutu da, mezua: %1 - + due to IP filter. this peer was blocked due to ip filter. IP iragazkiagaitik. - + due to port filter. this peer was blocked due to port filter. ataka iragazkiagaitik. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p modu nahasi murrizpenengaitik. - + because it has a low port. this peer was blocked because it has a low port. ataka apala delako. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent ongi aditzen ari da %1 interfazean, ataka: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent-ek huts egin du %1 interfazean aditzean, ataka: %2/%3. Zergaitia: %4 - + External IP: %1 e.g. External IP: 192.168.0.1 Kanpoko IP-a: %1 @@ -1284,12 +1284,12 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. FeedListWidget - + RSS feeds RSS harpidetzak - + Unread Irakurri gabeak @@ -1378,211 +1378,338 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Jeitsi Torrenta bere URL edo Magnet loturatik - + Only one link per line Lotura bakar bat lerroko - + Download Jeitsi - + Global upload rate limit must be greater than 0 or disabled. Igoera neurri muga 0 baino handiagoa edo ezgaituta izan behar da. - + Global download rate limit must be greater than 0 or disabled. Jeisketa neurri muga 0 baino handiagoa edo ezgaituta izan behar da. - + Alternative upload rate limit must be greater than 0 or disabled. Aukerazko igoera neurri muga 0 baino handiagoa edo ezgaituta izan behar da. - + Alternative download rate limit must be greater than 0 or disabled. Aukerazko jeisketa neurri muga 0 baino handiagoa edo ezgaituta izan behar da. - + Maximum active downloads must be greater than -1. Gehienezko jeisketa eraginda -1 baino handiagoa izan behar da. - + Maximum active uploads must be greater than -1. Gehienezko igoera eraginda -1 baino handiagoa izan behar da. - + Maximum active torrents must be greater than -1. Gehienezko torrent eraginda -1 baino handiagoa izan behar da. - + Maximum number of connections limit must be greater than 0 or disabled. Gehienezko elkarketa zenbateko muga 0 baino handiagoa edo ezgaituta izan behar da. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Gehienezko elkarketa zenbatekoa torrent bakoitzeko muga 0 baino handiagoa edo ezgaituta izan behar da. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Gehienezko igoera aho zenbatekoa torrent bakoitzeko muga 0 baino handiagoa edo ezgaituta izan behar da. - + Unable to save program preferences, qBittorrent is probably unreachable. Ezinezkoa programa hobespenak gordetzea, qBittorrent zihurrenik erdietsiezina da. - + Language Hizkuntza - + The port used for incoming connections must be between 1 and 65535. Barrurako elkarketetarako erabilitzeko ataka 1 eta 65535 artekoa izan behar da. - + The port used for the Web UI must be between 1 and 65535. Web EI-ak erabiltzeko ataka 1024 eta 65535 artekoa izan behar da. - + Unable to log in, qBittorrent is probably unreachable. Ezinezkoa saioa hastea, qBittorrent zihurrenik eskuraezina dago. - + Invalid Username or Password. Erabiltzaile-izen edo Sarhitz baliogabea. - + Password Sarhitza - + Login Hasi Saioa - + Upload Failed! Igoera Hutsegitea! - + Original authors Jatorrizko egileak - + Upload limit: Igoera muga: - + Download limit: Jeisketa muga: - + Apply Ezarri - + Add Gehitu - + Upload Torrents Igo Torrentak - + All Denak - + Downloading Jeisten - + Seeding Emaritzan - + Completed Osatuta - + Resumed Berrekin - + Paused Pausatuta - + Active Ekinean - + Inactive Jardungabe - + Save files to location: Gorde agiriak kokaleku honetan: - + Label: Etiketa: - + Cookie: Cookiea: - + Type folder here + Idatzi agiritegia hemen + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Gorde agiriak hemen + + + + Watch Folder + Begiratutako Agiritegia + + + + Default Folder + Berezko Agiritegia + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Besterik... + + + + Every day + Schedule the use of alternative rate limits on ... + Egunero + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Besterik... + + + Downloaded Is the file downloaded or not? Jeitsita @@ -1593,57 +1720,57 @@ Argibide hauek zure Web nabigatzaile hobespenetan lortu ditzakezu. Amaitu saioa - + Upload local torrent Igo tokiko torrenta - + Are you sure you want to delete the selected torrents from the transfer list? Zihur zaude hautaturiko torrentak ezabatzea nahi dituzula eskualdaketa zerrendatik? - + The Web UI username must be at least 3 characters long. Web EI erabiltzaile-izenak gutxienez 3 hizkirriko luzera izan behar du. - + The Web UI password must be at least 3 characters long. Web EI sarhitzak gutxienez 3 hizkirriko luzera izan behar du. - + Save Gorde - + qBittorrent client is not reachable qBittorrent bezeroa erdietsiezina da - + HTTP Server HTTP Zerbitzaria - + The following parameters are supported: Hurrengo parametroak sostengatzen dira: - + Torrent path Torrentaren helburua - + Torrent name Torrentaren izena - + qBittorrent has been shutdown. qBittorrent itzali egin da. @@ -2216,7 +2343,8 @@ Nahi duzu qBittorrent elkartzea torrent agiriekin eta Magnet loturekin? A new version is available. Do you want to download %1? - + Bertsio berri bat eskuragarri dago. +Nahi duzu %1 jeistea? @@ -2281,12 +2409,6 @@ Orain ezartzea nahi duzu? Python is required to use the search engine but it does not seem to be installed. Python beharrezkoa da bilaketa gailua erabiltzeko baina ez dirudi ezarrita dagoenik. - - A new version is available. -Update to version %1? - Bertsio berri bat eskuragarri dago. -Eguneratu %1 bertsiora? - No updates available. @@ -2489,12 +2611,12 @@ Zihur zaude qBittorrent uztea nahi duzula? Venezuela, Bolivarian Republic of - + Venezuela, Bolibariar Herkalderria Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Zihur zaude qBittorrent uztea nahi duzula? N/A E/G - - Asia/Pacific Region - Asia/Pazifikoa Eskualdea - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Armenia Armenia - - Netherlands Antilles - Antilla Herbeherearrak - Angola @@ -2644,10 +2754,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Brunei Darussalam Brunei Darussalam - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Switzerland Suitza - - Cote D'Ivoire - Boli Kosta - Cook Islands @@ -2760,7 +2862,7 @@ Zihur zaude qBittorrent uztea nahi duzula? Curacao - + Curacao @@ -2872,10 +2974,6 @@ Zihur zaude qBittorrent uztea nahi duzula? France Frantzia - - France, Metropolitan - Frantzia, Metropolitarra - Gabon @@ -3161,10 +3259,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Latvia Letonia - - Libyan Arab Jamahiriya - Libiako Arabiar Jamahiriya - Morocco @@ -3190,10 +3284,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Marshall Islands Marshall Uharteak - - Macedonia - Mazedonia - Mali @@ -3209,10 +3299,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Mongolia Mongolia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Zihur zaude qBittorrent uztea nahi duzula? Saint Pierre and Miquelon Saint Pierre eta Mikelon - - Pitcairn Islands - Pitcairn Uharteak - Puerto Rico Puerto Rico - - Palestinian Territory - Palestinar Lurraldea - Portugal @@ -3456,10 +3534,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Singapore Singapur - - Saint Helena - Saint Helena - Slovenia @@ -3578,62 +3652,62 @@ Zihur zaude qBittorrent uztea nahi duzula? Bolivia, Plurinational State of - + Bolivia, Nazioanitzeko Estatua Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius eta Saba Cote d'Ivoire - + Boli Kosta Libya - + Libia Saint Martin (French part) - + Saint Martin (Frantziar aldea) Macedonia, The Former Yugoslav Republic of - + Mazedonia, Yugoslaviar Herkalderria Ohia Macao - + Macao Pitcairn - + Pitcairn Palestine, State of - + Palestina, Estatua Saint Helena, Ascension and Tristan da Cunha - + Saint Helena, Ascension eta Tristan da Cunha South Sudan - + Hego Sudan Sint Maarten (Dutch part) - + Sint Maarten (Herbeherear aldea) @@ -3700,10 +3774,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Saint Vincent and the Grenadines Saint Vincent eta Granadinak - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Virgin Islands, U.S. Virgin Uharteak, AEB - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Zimbabwe Zimbabwe - - Anonymous Proxy - Izengabeko Proxya - - - Satellite Provider - Satelite Hornitzailea - - - Other - Besterik - Aland Islands @@ -3805,10 +3859,6 @@ Zihur zaude qBittorrent uztea nahi duzula? Saint Barthelemy Saint Bartolome - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Zihur zaude qBittorrent uztea nahi duzula? Net::Smtp - + Email Notification Error: Post@ Jakinarazpen Akatsa: @@ -3992,7 +4042,7 @@ Zihur zaude qBittorrent uztea nahi duzula? Files i.e. files that are being downloaded right now - + Agiriak @@ -4098,65 +4148,65 @@ Zihur zaude qBittorrent uztea nahi duzula? Search plugins - Bilatu pluginak + Bilatu pluginak Installed search plugins: - + Ezarritako pluginen bilaketa: Name - Izena + Izena Version - Bertsioa + Bertsioa Url - Url-a + Url-a Enabled - Gaituta + Gaituta You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Bilaketa gailu plugin berriak lortu ditzakezu hemen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Bilaketa gailu plugin berriak lortu ditzakezu hemen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Ezarri berri bat + Ezarri berri bat Check for updates - Egiaztatu eguneraketak + Egiaztatu eguneraketarik dagoen Close - Itxi + Itxi Uninstall - Kendu + Kendu Yes - Bai + Bai @@ -4164,107 +4214,107 @@ Zihur zaude qBittorrent uztea nahi duzula? No - Ez + Ez Uninstall warning - Kentze oharra + Kentze oharra Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Zenbait plugin ezin dira kendu qBittorrenten barnekoak direlako. Zeuk gehitutakoak bakarrik kendu daitezke. + Zenbait plugin ezin dira kendu qBittorrenten barnekoak direlako. Zeuk gehitutakoak bakarrik kendu daitezke. Plugin hauek ezgaituta daude. Uninstall success - Kentzea eginda + Kentzea eginda All selected plugins were uninstalled successfully - Hautatutako plugin guztiak ongi kendu dira + Hautatutako plugin guztiak ongi kendu dira New search engine plugin URL - Bilaketa gailu plugin URL berria + Bilaketa gailu plugin URL berria URL: - URL-a: + URL-a: Invalid link - Lotura baliogabea + Lotura baliogabea The link doesn't seem to point to a search engine plugin. - Loturak ez dirudi bilaketa gailu plugin batera zuzentzen duenik. + Loturak ez dirudi bilaketa gailu plugin batera zuzentzen duenik. Select search plugins - Hautatu bilaketa pluginak + Hautatu bilaketa pluginak qBittorrent search plugin - qBittorrent bilaketa plugina + qBittorrent bilaketa plugina Search plugin update - Bilaketa plugin eguneraketa + Bilaketa plugin eguneraketa All your plugins are already up to date. - Zure plugin guztiak jadanik eguneratuta daude. + Zure plugin guztiak jadanik eguneratuta daude. Sorry, couldn't check for plugin updates. %1 - + Barkatu, ezin da pluginare eguneraketarik dagoen egiaztatu. %1 Search plugin install - Bilaketa plugin ezarpena + Bilaketa plugin ezarpena "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" bilaketa gailu plugina ongi ezarri da. Couldn't install "%1" search engine plugin. %2 - + Ezinezkoa "%1" bilaketa gailu plugina ezartzea. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + %1 bilaketa gailu plugina ongi eguneratu da. Couldn't update "%1" search engine plugin. %2 - + Ezinezkoa "%1" bilaketa gailu plugina eguneratzea. %2 @@ -4272,22 +4322,22 @@ Plugin hauek ezgaituta daude. Plugin source - Pluginaren iturburua + Pluginaren iturburua Search plugin source: - Bilatu pluginaren iturburua: + Bilatu pluginaren iturburua: Local file - Tokiko agiria + Tokiko agiria Web link - Web lotura + Web lotura @@ -5025,17 +5075,17 @@ Plugin hauek ezgaituta daude. Iragazki helburua (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Programatik irtetze ezgarbia atzeman da. Atzera egitea erabiltzen ezarpenak leheneratzeko. - + An access error occurred while trying to write the configuration file. Sarbide akats bat gertatu da itxurapen agiria idazten saiatzerakoan. - + A format error occurred while trying to write the configuration file. Heuskarri akats bat gertatu da itxurapen agiria idazten saiatzerakoan. @@ -5468,7 +5518,7 @@ Plugin hauek ezgaituta daude. QObject - + Your IP address has been banned after too many failed authentication attempts. Zure IP helbidea eragotzia izan da egiaztapen saiakera hutsegite askoren ondoren. @@ -5960,12 +6010,12 @@ Ez dira jakinarazpen gehiago egingo. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... + Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... Automatically downloading '%1' torrent from '%2' RSS feed... - '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... + '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... @@ -5973,29 +6023,7 @@ Ez dira jakinarazpen gehiago egingo. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Hutsegitea '%1' torrenta %2 RSS harpidetzatik berezgaitasunez jeistean ez duelako torrent bat edo magnet lotura bat... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - '%1' torrenta berezgaitasunez jeisten %2 RSS harpidetzatik... - - - - RssParser - - Failed to open downloaded RSS file. - Hutsegitea jeitsitako RSS agiria irekitzerakoan. - - - Invalid RSS feed at '%1'. - Baliogabeko RSS harpidetza: '%1'. + Baliogabeko RSS harpidetza. @@ -6026,22 +6054,22 @@ Ez dira jakinarazpen gehiago egingo. Watch Folder - + Begiratutako Agiritegia Default Folder - + Berezko Agiritegia Browse... - Bilatu... + Bilatu... Choose save path - + Hautatu gordetzeko helburua @@ -6049,12 +6077,12 @@ Ez dira jakinarazpen gehiago egingo. Watch Folder - + Begiratutako Agiritegia Default Folder - + Berezko Agiritegia @@ -6064,199 +6092,87 @@ Ez dira jakinarazpen gehiago egingo. Save Files to - - - - Download here - Jeitsi hemen - - - Download path - Jeitsiera helburua - - - - SearchCategories - - All categories - Kategoria guztiak - - - Movies - Filmak - - - TV shows - TB saioak - - - Music - Musika - - - Games - Jolasak - - - Anime - Animazioa - - - Software - Softwarea - - - Pictures - Argazkiak - - - Books - Liburuak + Gorde agiriak hemen SearchEngine - - Search - Bilatu - - - Please install Python to use the Search Engine. - Mesedez ezarri Python Bilaketa Gailua erabiltzeko. - - - Empty search pattern - Bilaketa eredua hutsik - - - Please type a search pattern first - Mesedez idatzi bilaketa eredua lehenik - - - Searching... - Bilatzen... - - - Stop - Gelditu - - - Search Engine - Bilaketa Gailua - - - Search has finished - Bilaketa amaitu da - - - An error occurred during search... - Akats bat gertatu da bilaketan... - - - Search aborted - Bilaketa utzita - - - All enabled - Guztiak gaituta - - - All engines - Gailu guztiak - - - Multiple... - Anitza... - - - Results <i>(%1)</i>: - i.e: Search results - Emaitzak <i>(%1)</i>: - - - Search returned no results - Bilaketak ez du emaitzik itzuli - - - Stopped - Geldituta - Unknown search engine plugin file format. - + Bilaketa gailu plugin agiri heuskarri ezezaguna. A more recent version of this plugin is already installed. - + Jadanik ezarrita dago bilaketa plugin honen bertsio berriago bat. Plugin is not supported. - + Plugina ez dago sostengatua Update server is temporarily unavailable. %1 - + Eguneraketa zerbitzaria aldibatez eskuraezina dago. %1 Failed to download the plugin file. %1 - + Hutsegitea plugin agiria jeisterakoan. %1 An incorrect update info received. - + Eguneraketa argibide okerrak jaso dira. All categories - Kategoria guztiak + Kategoria guztiak Movies - Filmak + Filmak TV shows - TB saioak + Telesailak Music - Musika + Musika Games - Jolasak + Jolasak Anime - Animazioa + Animazioa Software - Softwarea + Softwarea Pictures - Argazkiak + Argazkiak Books - Liburuak + Liburuak @@ -6305,124 +6221,124 @@ Ez dira jakinarazpen gehiago egingo. - - - + + + Search - + Bilaketa Status: - Egoera: + Egoera: - + Stopped - Geldituta + Geldituta Download - Jeitsi + Jeitsi Go to description page - Joan azalpen orrialdera + Joan azalpen orrialdera Copy description page URL - Kopiatu azalpen orrialdearen URL-a + Kopiatu azalpen orrialdearen URL-a Search plugins... - + Bilatu pluginak... - + All enabled - Guztiak gaituta - - - - All plugins - + Guztiak gaituta - + All plugins + Plugin guztiak + + + + Multiple... - Anitza... + Anitza... - - - + + + Search Engine - Bilaketa Gailua + Bilaketa Gailua - + Please install Python to use the Search Engine. - Mesedez ezarri Python Bilaketa Gailua erabiltzeko. + Mesedez ezarri Python Bilaketa Gailua erabiltzeko. - + Empty search pattern - Bilaketa eredua hutsik + Bilaketa eredua hutsik - + Please type a search pattern first - Mesedez idatzi bilaketa eredua lehenik + Mesedez idatzi bilaketa eredua lehenik - - + + Results <i>(%1)</i>: i.e: Search results - Emaitzak <i>(%1)</i>: - - - - Searching... - Bilatzen... + Emaitzak <i>(%1)</i>: + Searching... + Bilatzen... + + + Stop - Gelditu + Gelditu - - + + Search has finished - Bilaketa amaitu da + Bilaketa amaitu da - - + + Search aborted - Bilaketa utzita + Bilaketa utzita - + Search returned no results - Bilaketak ez du emaitzik itzuli + Bilaketak ez du emaitzik itzuli - + Search has failed - + Bilaketak huts egin du - + An error occurred during search... - Akats bat gertatu da bilaketan... + Akats bat gertatu da bilaketan... @@ -6886,11 +6802,7 @@ Ez dira jakinarazpen gehiago egingo. Download Priority - - - - Priority - Lehentasuna + Jeitsiera Lehentasuna @@ -8087,160 +7999,6 @@ Ez dira jakinarazpen gehiago egingo. Mesedez idatzi URL bat gutxinez. - - engineSelect - - Search plugins - Bilatu pluginak - - - Installed search engines: - Ezarritako bilaketa gailuak: - - - Name - Izena - - - Version - Bertsioa - - - Url - Url-a - - - Enabled - Gaituta - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Bilaketa gailu plugin berriak lortu ditzakezu hemen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Ezarri berri bat - - - Check for updates - Egiaztatu eguneraketak - - - Close - Itxi - - - Uninstall - Kendu - - - - engineSelectDlg - - Uninstall warning - Kentze oharra - - - Uninstall success - Kentzea eginda - - - Invalid plugin - Plugin baliogabea - - - The search engine plugin is invalid, please contact the author. - Bilaketa plugin hau baliogabea da, mesedez jarri harremanetan egilearekin. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Jadanik ezarrita dago '%1' bilaketa pluginaren bertsio berriago bat. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' bilaketa gailu plugina ezin da eguneratu, bertsio zaharrari heusten. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' bilaketa gailu plugina ezin da ezarri. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' bilaketa gailu plugina ongi eguneratu da. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' bilaketa gailu plugina ongi ezarri da. - - - The link doesn't seem to point to a search engine plugin. - Loturak ez dirudi bilaketa gailu plugin batera zuzentzen duenik. - - - Select search plugins - Hautatu bilaketa pluginak - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Barkatu, '%1' bilaketa pluginaren ezartze hutsegitea. - - - Search plugin install - Bilaketa plugin ezarpena - - - Yes - Bai - - - No - Ez - - - qBittorrent search plugin - qBittorrent bilaketa plugina - - - Search plugin update - Bilaketa plugin eguneraketa - - - Sorry, update server is temporarily unavailable. - Barkatu, eguneraketa zerbitzaria aldibatez eskuraezina dago. - - - All your plugins are already up to date. - Zure plugin guztiak jadanik eguneratuta daude. - - - All selected plugins were uninstalled successfully - Hautatutako plugin guztiak ongi kendu dira - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Zenbait plugin ezin dira kendu qBittorrenten barnekoak direlako. Zeuk gehitutakoak bakarrik kendu daitezke. -Plugin hauek ezgaituta daude. - - - Invalid link - Lotura baliogabea - - - New search engine plugin URL - Bilaketa gailu plugin URL berria - - - URL: - URL-a: - - errorDialog @@ -8368,192 +8126,173 @@ Plugin hauek ezgaituta daude. options_imp - - + + Choose export directory Hautatu esportatzeko zuzenbidea - - - - + + + + Choose a save directory Hautatu gordetzeko zuzenbide bat - + Add directory to scan Gehitu zuzenbidea mihaketara - + Supported parameters (case sensitive): Sostengatutako parametroak (hizki xehe-larriak bereiziz) - + %N: Torrent name %N: Torrentaren izena - + %L: Label %L: Etiketa - + %F: Content path (same as root path for multifile torrent) %F: Eduki helburua (torrent anitzerako erro helburua bezala) - + %R: Root path (first torrent subdirectory path) %R: Erro helburua (lehen torrent azpizuzenbide helburua) - + %D: Save path %D: Gordetze helburua - + %C: Number of files %C: Agiri zenbatekoa - + %Z: Torrent size (bytes) %Z: Torrentaren neurria (byte) - + %T: Current tracker %T: Oraingo aztarnaria - + %I: Info hash %I: Info hasha - + Folder is already being watched. Agiritegia jadanik ikuskatuta dago. - + Folder does not exist. Agiritegia ez dago. - + Folder is not readable. Agiritegia ez da irakurgarria. - + Failure Hutsegitea - + Failed to add Scan Folder '%1': %2 Hutsegitea Agiritegi Mihaketa gehitzean '%1': %2 - - + + Filters Iragazkiak - - + + Choose an IP filter file Hautatu IP iragazki agiri bat - + SSL Certificate SSL Egiaztagiria - + SSL Key SSL Giltza - + Parsing error Azterketa akatsa - + Failed to parse the provided IP filter Hutsegitea emandako IP iragazkia aztertzerakoan - + Successfully refreshed Ongi berrituta - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Emandako IP iragazkia ongi aztertu da: %1 araua ezarri dira. - + Invalid key Giltza baliogabea - + This is not a valid SSL key. Hau ez da baliozko SSL giltza bat. - + Invalid certificate Egiaztagiri baliogabea - + This is not a valid SSL certificate. Hau ez da baliozko SSL egiaztagiri bat. - + The start time and the end time can't be the same. Hasiera ordua eta amaiera ordua ezin dira berdinak izan. - + Time Error Ordu Akatsa - - pluginSourceDlg - - Plugin source - Pluginaren iturburua - - - Search plugin source: - Bilatu pluginaren iturburua: - - - Local file - Tokiko agiria - - - Web link - Web lotura - - preview @@ -8577,35 +8316,4 @@ Plugin hauek ezgaituta daude. Ezeztatu - - search_engine - - Search - Bilatu - - - Status: - Egoera: - - - Stopped - Geldituta - - - Download - Jeitsi - - - Go to description page - Joan azalpen orrialdera - - - Copy description page URL - Kopiatu azalpen orrialdearen URL-a - - - Search engines... - Bilaketa gailuak... - - diff --git a/src/lang/qbittorrent_fi.ts b/src/lang/qbittorrent_fi.ts index af2f4acef..59ebe477d 100644 --- a/src/lang/qbittorrent_fi.ts +++ b/src/lang/qbittorrent_fi.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-syötteet - + Unread Lukematon @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Lataa torrentit URL:ista tai magnet-linkistä - + Only one link per line Yksi linkki riville - + Download Lataa - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Yhteyksien enimmäismäärän pitää olla suurempi kuin 0 tai poistettu käytöstä. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Yhteyksien torrenttikohtaisen maksimimäärän pitää olla suurempi kuin 0 tai poistettu käytöstä. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Lähetyslohkojen torrenttikohtaisen enimmäismäärän pitää olla suurempi kuin 0 tai poistettu käytöstä. - + Unable to save program preferences, qBittorrent is probably unreachable. Asetuksia ei voitu tallentaa, qBittorrenttiin ei todennäköisesti saada yhteyttä. - + Language Kieli - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. Kirjautuminen epäonnistui, qBittorrent ei luultavasti ole tavoitettavissa. - + Invalid Username or Password. Virheellinen käyttäjätunnus tai salasana. - + Password Salasana - + Login Kirjaudu - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply Toteuta - + Add Lisää - + Upload Torrents - + All Kaikki - + Downloading Ladataan - + Seeding Jaetaan - + Completed Valmistunut - + Resumed Palautettu - + Paused Keskeytetty - + Active Aktiiviset - + Inactive Toimettomat - + Save files to location: Tallenna tiedostot kohteeseen: - + Label: Nimike: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + joka päivä + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Ladattu @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. Kirjaudu ulos - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? Haluatko varmasti poistaa valitut torrentit siirtolistalta? - + The Web UI username must be at least 3 characters long. Web-käyttöliittymän käyttäjätunnuksen pitää olla vähintään kolme merkkiä pitkä. - + The Web UI password must be at least 3 characters long. Web-käyttöliittymän salasanan pitää olla vähintään kolme merkkiä pitkä. - + Save Tallenna - + qBittorrent client is not reachable qBittorrent ei ole tavoitettavissa - + HTTP Server HTTP-palvelin - + The following parameters are supported: Seuraavat parametrit ovat tuettuja: - + Torrent path Torrentin polku - + Torrent name Torrentin nimi - + qBittorrent has been shutdown. qBittorrent on sammutettu. @@ -3764,7 +3887,7 @@ Haluatko varmasti lopettaa qBittorrentin? Net::Smtp - + Email Notification Error: @@ -4016,7 +4139,7 @@ Haluatko varmasti lopettaa qBittorrentin? Search plugins - Hakuliitännäiset + @@ -4036,38 +4159,38 @@ Haluatko varmasti lopettaa qBittorrentin? Url - Verkko-osoite + Enabled - Käytössä + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Voit hakea uusia hakukoneliitännäisiä täältä: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Asenna uusi + Check for updates - Tarkista päivitykset + Close - Sulje + Uninstall - Poista + @@ -4087,7 +4210,7 @@ Haluatko varmasti lopettaa qBittorrentin? Uninstall warning - Poistovaroitus + @@ -4098,39 +4221,39 @@ Those plugins were disabled. Uninstall success - Poisto onnistui + All selected plugins were uninstalled successfully - Kaikki valitut liitännäiset poistettiin + New search engine plugin URL - Uusi hakukoneliitännäisen osoite + URL: - Verkko-osoite: + Invalid link - Virheellinen linkki + The link doesn't seem to point to a search engine plugin. - Linkki ei vaikuta osoittavan hakukoneliitännäiseen. + Select search plugins - Valitse hakuliitännäiset + @@ -4142,12 +4265,12 @@ Those plugins were disabled. Search plugin update - Hakuliitännäisen päivitys + All your plugins are already up to date. - Kaikki liitännäiset ovat ajan tasalla. + @@ -4159,7 +4282,7 @@ Those plugins were disabled. Search plugin install - Hakuliitännäisen asennus + @@ -4189,22 +4312,22 @@ Those plugins were disabled. Plugin source - Lähde + Search plugin source: - Lähde: + Local file - Paikallinen tiedosto + Web link - Web-linkki + @@ -4942,17 +5065,17 @@ Those plugins were disabled. Suodatustiedoston sijainti (.dat, .p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5385,7 +5508,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5891,13 +6014,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Ladatun RSS-tiedoston avaaminen epäonnistui. - - RssSettingsDlg @@ -5966,92 +6082,9 @@ No further notices will be issued. Save Files to - - Download here - Lataa tänne - - - - SearchCategories - - All categories - Kaikki luokat - - - Movies - Elokuvat - - - TV shows - TV-ohjelmat - - - Music - Musiikki - - - Games - Pelit - - - Anime - Anime - - - Software - Ohjelmat - - - Pictures - Kuvat - - - Books - Kirjat - SearchEngine - - Search - Etsi - - - Empty search pattern - Tyhjä hakulauseke - - - Please type a search pattern first - Kirjoita ensin hakulauseke - - - Searching... - Etsitään... - - - Stop - Pysäytä - - - Search Engine - Hakupalvelu - - - Search has finished - Haku on päättynyt - - - An error occurred during search... - Haun aikana tapahtui virhe... - - - Search aborted - Haku keskeytetty - - - Search returned no results - Haku ei palauttanut tuloksia - Unknown search engine plugin file format. @@ -6087,47 +6120,47 @@ No further notices will be issued. All categories - Kaikki luokat + Movies - Elokuvat + TV shows - TV-ohjelmat + Music - Musiikki + Games - Pelit + Anime - Anime + Software - Ohjelmat + Pictures - Kuvat + Books - Kirjat + @@ -6176,22 +6209,22 @@ No further notices will be issued. - - - + + + Search Etsi Status: - Tila: + - + Stopped - Pysäytetty + @@ -6201,7 +6234,7 @@ No further notices will be issued. Go to description page - Siirry kuvaussivulle + @@ -6214,86 +6247,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Hakupalvelu + - + Please install Python to use the Search Engine. - + Empty search pattern - Tyhjä hakulauseke + - + Please type a search pattern first - Kirjoita ensin hakulauseke + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Etsitään... - + Searching... + + + + Stop - Pysäytä + - - + + Search has finished - Haku on päättynyt + - - + + Search aborted - Haku keskeytetty + - + Search returned no results - Haku ei palauttanut tuloksia + - + Search has failed - + An error occurred during search... - Haun aikana tapahtui virhe... + @@ -6759,10 +6792,6 @@ No further notices will be issued. Download Priority - - Priority - Prioriteetti - TorrentCreatorDlg @@ -7958,108 +7987,6 @@ No further notices will be issued. Anna vähintään yksi verkko-osoite. - - engineSelect - - Search plugins - Hakuliitännäiset - - - Installed search engines: - Asennetut hakuliitännäiset: - - - Name - Nimi - - - Url - Verkko-osoite - - - Enabled - Käytössä - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Voit hakea uusia hakukoneliitännäisiä täältä: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Asenna uusi - - - Check for updates - Tarkista päivitykset - - - Close - Sulje - - - Uninstall - Poista - - - - engineSelectDlg - - Uninstall warning - Poistovaroitus - - - Uninstall success - Poisto onnistui - - - The link doesn't seem to point to a search engine plugin. - Linkki ei vaikuta osoittavan hakukoneliitännäiseen. - - - Select search plugins - Valitse hakuliitännäiset - - - Search plugin install - Hakuliitännäisen asennus - - - Yes - Kyllä - - - No - Ei - - - Search plugin update - Hakuliitännäisen päivitys - - - Sorry, update server is temporarily unavailable. - Päivityspalvelin ei ole tällä hetkellä saavutettavissa. - - - All your plugins are already up to date. - Kaikki liitännäiset ovat ajan tasalla. - - - All selected plugins were uninstalled successfully - Kaikki valitut liitännäiset poistettiin - - - Invalid link - Virheellinen linkki - - - New search engine plugin URL - Uusi hakukoneliitännäisen osoite - - - URL: - Verkko-osoite: - - errorDialog @@ -8187,192 +8114,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Valitse vientihakemisto - - - - + + + + Choose a save directory Valitse tallennuskansio - + Add directory to scan Lisää seurattava hakemisto - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Kansio on jo seurannassa. - + Folder does not exist. Kansiota ei ole. - + Folder is not readable. Kansiota ei voida lukea. - + Failure Virhe - + Failed to add Scan Folder '%1': %2 Kansiota "%1" ei voitu lisätä seurattavien joukkoon: %2 - - + + Filters Suotimet - - + + Choose an IP filter file - + SSL Certificate SSL-varmenne - + SSL Key SSL-avain - + Parsing error Jäsennysvirhe - + Failed to parse the provided IP filter - + Successfully refreshed Päivitetty onnistuneesti - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Virheellinen avain - + This is not a valid SSL key. Tämä ei ole kelvollinen SSL-avain. - + Invalid certificate Virheellinen varmenne - + This is not a valid SSL certificate. Tämä ei ole kelvollinen SSL-varmenne. - + The start time and the end time can't be the same. Aloitus- ja päättymisaika eivät voi olla samoja. - + Time Error Aikavirhe - - pluginSourceDlg - - Plugin source - Lähde - - - Search plugin source: - Lähde: - - - Local file - Paikallinen tiedosto - - - Web link - Web-linkki - - preview @@ -8396,31 +8304,4 @@ No further notices will be issued. Peru - - search_engine - - Search - Etsi - - - Status: - Tila: - - - Stopped - Pysäytetty - - - Download - Lataa - - - Go to description page - Siirry kuvaussivulle - - - Search engines... - Hakukoneet... - - diff --git a/src/lang/qbittorrent_fr.ts b/src/lang/qbittorrent_fr.ts index 06ca19355..d7715b257 100644 --- a/src/lang/qbittorrent_fr.ts +++ b/src/lang/qbittorrent_fr.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID du pair : - + HTTP User-Agent is '%1' Le User-Agent HTTP est '%1' - + Anonymous mode [ON] Mode anonyme [ACTIVE] - + Anonymous mode [OFF] Mode anonyme [DESACTIVE] - + PeX support [ON] Prise en charge de PeX [ACTIVÉE] - + PeX support [OFF] Prise en charge de PeX [DÉSACTIVÉE] - + Restart is required to toggle PeX support Un redémarrage est nécessaire pour changer le support PeX - + Local Peer Discovery support [ON] Découverte de pairs sur le réseau local [ACTIVÉE] - + Local Peer Discovery support [OFF] Découverte de pairs sur le réseau local [DÉSACTIVÉE] - + Encryption support [ON] Support de cryptage [ACTIVE] - + Encryption support [FORCED] Support de cryptage [FORCE] - + Encryption support [OFF] Support de cryptage [DESACTIVE] - + Embedded Tracker [ON] Tracker intégré [ACTIVÉ] - + Failed to start the embedded tracker! Impossible de démarrer le tracker intégré ! - + Embedded Tracker [OFF] Tracker intégré [DÉSACTIVÉ] - + '%1' reached the maximum ratio you set. Removing... '%1' a atteint le ratio maximum que vous avez défini. Suppression... - + '%1' reached the maximum ratio you set. Pausing... '%1' a atteint le ratio maximum que vous avez défini. Mise en pause... - + System network status changed to %1 e.g: System network status changed to ONLINE Statut réseau du système changé en %1 - + ONLINE EN LIGNE - + OFFLINE HORS LIGNE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Impossible de décoder le fichier torrent '%1' - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Téléchargement récursif du fichier '%1' au sein du torrent '%2' - + Couldn't save '%1.torrent' Impossible de sauvegarder '%1.torrent" - + because %1 is disabled. this peer was blocked because uTP is disabled. parce que '%1' est désactivé - + because %1 is disabled. this peer was blocked because TCP is disabled. parce que '%1' est désactivé - + URL seed lookup failed for URL: '%1', message: %2 Le contact de la source URL a échoué pour l'URL : '%1', message : %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' a été supprimé de la liste de transferts et du disque. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' a été supprimé de la liste de transferts. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Téléchargement de '%1', veuillez patienter... - + DHT support [ON] Prise en charge de DHT [ACTIVÉE] - + DHT support [OFF]. Reason: %1 Prise en charge de DHT [DÉSACTIVÉE]. Motif : %1 - + DHT support [OFF] Prise en charge de DHT [DÉSACTIVÉE] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent tente d'écouter un port d'interface : %1 - + The network interface defined is invalid: %1 L'interface réseau définie est invalide : %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent tente d'écouter sur le port %2 de l'interface %1 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent n’a pas trouvé d'adresse locale %1 sur laquelle écouter - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' Tracker '%1' ajouté au torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' retiré du torrent '%2' - + URL seed '%1' was added to torrent '%2' URL de partage '%1' ajoutée au torrent '%2' - + URL seed '%1' was removed from torrent '%2' URL de partage '%1' retirée du torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossible de résumer le torrent "%1". - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Le filtre IP a été correctement chargé : %1 règles ont été appliquées. - + Error: Failed to parse the provided IP filter. Erreur : impossible d'analyser le filtre IP fourni. - + Couldn't add torrent. Reason: %1 Impossible d'ajouter le torrent. Motif : %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' a été relancé. (relancement rapide) - + '%1' added to download list. 'torrent name' was added to download list. '%1' ajouté à la liste de téléchargement. - + An I/O error occurred, '%1' paused. %2 Une erreur E/S s'est produite, '%1' a été mis en pause. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP : impossible de rediriger le port, message : %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP : la redirection du port a réussi, message : %1 - + due to IP filter. this peer was blocked due to ip filter. à cause du filtrage IP. - + due to port filter. this peer was blocked due to port filter. à cause du filtrage de ports. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. à cause des restrictions du mode mixte d'i2p. - + because it has a low port. this peer was blocked because it has a low port. parce que son numéro de port est trop bas. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent écoute correctement sur le port %2/%3 de l'interface %1 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 IP externe : %1 @@ -1284,12 +1284,12 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na FeedListWidget - + RSS feeds Flux RSS - + Unread Non lu @@ -1378,211 +1378,338 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Téléchargement de torrents depuis leur URL ou lien magnet - + Only one link per line Un seul lien par ligne - + Download Télécharger - + Global upload rate limit must be greater than 0 or disabled. La limite globale pour la vitesse d'envoi doit être supérieure à 0 ou désactivée. - + Global download rate limit must be greater than 0 or disabled. La limite globale pour la vitesse de réception doit être supérieure à 0 ou désactivée. - + Alternative upload rate limit must be greater than 0 or disabled. La limite alternative pour la vitesse d'envoi doit être supérieure à 0 ou désactivée. - + Alternative download rate limit must be greater than 0 or disabled. La limite alternative pour la vitesse de réception doit être supérieure à 0 ou désactivée. - + Maximum active downloads must be greater than -1. Le nombre maximum de téléchargements actifs doit être supérieur à -1. - + Maximum active uploads must be greater than -1. Le nombre maximum d'envois actifs doit être supérieur à -1. - + Maximum active torrents must be greater than -1. Le nombre maximum de torrents actifs doit être supérieur à -1. - + Maximum number of connections limit must be greater than 0 or disabled. Le nombre maximum de connexions doit être supérieur à 0 ou désactivé. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Le nombre maximum de connexions par torrent doit être supérieur à 0 ou désactivé. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Le nombre maximum de slots d'envoi par torrent doit être supérieur à 0 ou désactivé. - + Unable to save program preferences, qBittorrent is probably unreachable. Impossible de sauvegarder les préférences, qBittorrent est probablement injoignable. - + Language Langue - + The port used for incoming connections must be between 1 and 65535. Le port utilisé pour les connexions entrantes doit être compris entre 1 et 65535. - + The port used for the Web UI must be between 1 and 65535. Le port utilisé pour l'interface Web doit être compris entre 1024 et 65535. - + Unable to log in, qBittorrent is probably unreachable. Impossible de se connecter, qBittorrent est probablement inaccessible. - + Invalid Username or Password. Nom d'utilisateur ou mot de passe invalide. - + Password Mot de passe - + Login Identifiant - + Upload Failed! Le transfert a échoué ! - + Original authors Auteurs originaux - + Upload limit: Limite d'envoi : - + Download limit: Limite de téléchargement : - + Apply Appliquer - + Add Ajouter - + Upload Torrents Téléverser des torrents - + All Tous - + Downloading En téléchargement - + Seeding En partage - + Completed Complétés - + Resumed Continués - + Paused En pause - + Active Actifs - + Inactive Inactifs - + Save files to location: Sauvegarder les fichiers dans : - + Label: Catégorie : - + Cookie: Cookie : - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Autre… + + + + Every day + Schedule the use of alternative rate limits on ... + Tous les jours + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Autre… + + + Downloaded Is the file downloaded or not? Téléchargé @@ -1593,57 +1720,57 @@ Vous pouvez récupérer ces informations à partir des préférences de votre na Se déconnecter - + Upload local torrent Transférer un torrent local - + Are you sure you want to delete the selected torrents from the transfer list? Voulez-vous vraiment supprimer les torrents sélectionnés de la liste de transfert ? - + The Web UI username must be at least 3 characters long. Le nom d'utilisateur pour l'interface eb doit contenir au moins trois caractères. - + The Web UI password must be at least 3 characters long. Le mot de passe pour l'interface web doit contenir au moins trois caractères. - + Save Sauvegarder - + qBittorrent client is not reachable Le logiciel qBittorrent n'est pas accessible - + HTTP Server Serveur HTTP - + The following parameters are supported: Les paramètres suivants sont pris en charge : - + Torrent path Chemin du torrent - + Torrent name Nom du torrent - + qBittorrent has been shutdown. qBittorrent a été arrêté. @@ -2281,12 +2408,6 @@ Voulez-vous l'installer maintenant ? Python is required to use the search engine but it does not seem to be installed. Python est nécessaire afin d'utiliser le moteur de recherche mais il ne semble pas être installé. - - A new version is available. -Update to version %1? - Une nouvelle version est disponible. -Mettre à jour vers la version %1 ? - No updates available. @@ -2502,10 +2623,6 @@ Are you sure you want to quit qBittorrent? N/A N/A - - Europe - Europe - Andorra @@ -2534,17 +2651,17 @@ Are you sure you want to quit qBittorrent? Albania - + Albanie Armenia - + Arménie Angola - + Angola @@ -2559,7 +2676,7 @@ Are you sure you want to quit qBittorrent? American Samoa - + Samoa Américaines @@ -2574,7 +2691,7 @@ Are you sure you want to quit qBittorrent? Aruba - + Aruba @@ -2584,12 +2701,12 @@ Are you sure you want to quit qBittorrent? Bosnia and Herzegovina - + Bosnie Herzégovine Barbados - + Barbade @@ -2614,12 +2731,12 @@ Are you sure you want to quit qBittorrent? Bahrain - + Bahreïn Burundi - + Burundi @@ -2629,16 +2746,12 @@ Are you sure you want to quit qBittorrent? Bermuda - + Bermudes Brunei Darussalam - - - - Bolivia - Bolivie + Brunei @@ -2648,12 +2761,12 @@ Are you sure you want to quit qBittorrent? Bahamas - + Bahamas Bhutan - + Bhoutan @@ -2663,17 +2776,17 @@ Are you sure you want to quit qBittorrent? Botswana - + Botswana Belarus - + Biélorussie Belize - + Bélize @@ -2705,14 +2818,10 @@ Are you sure you want to quit qBittorrent? Switzerland Suiss - - Cote D'Ivoire - Côte d'Ivoire - Cook Islands - + Îles Cook @@ -2722,7 +2831,7 @@ Are you sure you want to quit qBittorrent? Cameroon - + Cameroun @@ -2747,7 +2856,7 @@ Are you sure you want to quit qBittorrent? Cape Verde - + Cap-Vert @@ -2767,7 +2876,7 @@ Are you sure you want to quit qBittorrent? Czech Republic - + République Tchèque @@ -2777,7 +2886,7 @@ Are you sure you want to quit qBittorrent? Djibouti - + Djibouti @@ -2787,7 +2896,7 @@ Are you sure you want to quit qBittorrent? Dominica - + Dominique @@ -2797,12 +2906,12 @@ Are you sure you want to quit qBittorrent? Algeria - + Algérie Ecuador - + Equateur @@ -2822,7 +2931,7 @@ Are you sure you want to quit qBittorrent? Eritrea - + Érythrée @@ -2842,7 +2951,7 @@ Are you sure you want to quit qBittorrent? Fiji - + Fidji @@ -2852,22 +2961,18 @@ Are you sure you want to quit qBittorrent? Micronesia, Federated States of - + Micronésie Faroe Islands - + Îles Féroé France France - - France, Metropolitan - France métropolitaine - Gabon @@ -2881,7 +2986,7 @@ Are you sure you want to quit qBittorrent? Grenada - + Grenade @@ -2901,7 +3006,7 @@ Are you sure you want to quit qBittorrent? Gibraltar - + Gibraltar @@ -2941,17 +3046,17 @@ Are you sure you want to quit qBittorrent? Guatemala - + Guatemala Guam - + Guam Guinea-Bissau - + Guinée-Bissau @@ -2971,7 +3076,7 @@ Are you sure you want to quit qBittorrent? Honduras - + Honduras @@ -2981,7 +3086,7 @@ Are you sure you want to quit qBittorrent? Haiti - + Haïti @@ -3041,7 +3146,7 @@ Are you sure you want to quit qBittorrent? Jordan - + Jordanie @@ -3056,42 +3161,42 @@ Are you sure you want to quit qBittorrent? Kyrgyzstan - + Kirghizstan Cambodia - + Cambodge Kiribati - + Kiribati Comoros - + Comores Saint Kitts and Nevis - + Saint-Christophe-et-Niévès Korea, Democratic People's Republic of - + Corée du Nord Korea, Republic of - + Corée du Sud Kuwait - + Koweït @@ -3101,82 +3206,82 @@ Are you sure you want to quit qBittorrent? Kazakhstan - + Kazakhstan Lao People's Democratic Republic - + Laos Lebanon - + Liban Saint Lucia - + Sainte-Lucie Liechtenstein - + Liechtenstein Sri Lanka - + Sri Lanka Liberia - + Liberia Lesotho - + Lesotho Lithuania - + Lituanie Luxembourg - + Luxembourg Latvia - + Lettonie Morocco - + Maroc Monaco - + Monaco Moldova, Republic of - + Moldavie Madagascar - + Madagascar Marshall Islands - + Îles Marshall @@ -3186,12 +3291,12 @@ Are you sure you want to quit qBittorrent? Myanmar - + Birmanie Mongolia - + Mongolie @@ -3201,12 +3306,12 @@ Are you sure you want to quit qBittorrent? Martinique - + Martinique Mauritania - + Mauritanie @@ -3216,52 +3321,52 @@ Are you sure you want to quit qBittorrent? Malta - + Malte Mauritius - + Maurice Maldives - + Maldives Malawi - + Malawi Mexico - + Mexique Malaysia - + Malaisie Mozambique - + Mozambique Namibia - + Namibie New Caledonia - + Nouvelle-Calédonie Niger - + Niger @@ -3271,17 +3376,17 @@ Are you sure you want to quit qBittorrent? Nigeria - + Nigeria Nicaragua - + Nicaragua Netherlands - + Pays-Bas @@ -3291,37 +3396,37 @@ Are you sure you want to quit qBittorrent? Nepal - + Népal Nauru - + Nauru Niue - + Niue New Zealand - + Nouvelle-Zélande Oman - + Oman Panama - + Panama Peru - + Pérou @@ -3331,27 +3436,27 @@ Are you sure you want to quit qBittorrent? Papua New Guinea - + Papouasie - Nouvelle-Guinée Philippines - + Philippines Pakistan - + Pakistan Poland - + Pologne Saint Pierre and Miquelon - + Saint Pierre et Miquelon @@ -3361,37 +3466,37 @@ Are you sure you want to quit qBittorrent? Portugal - + Portugal Palau - + Palau Paraguay - + Paraguay Qatar - + Qatar Reunion - + Réunion Romania - + Roumanie Russian Federation - + Russie @@ -3401,22 +3506,22 @@ Are you sure you want to quit qBittorrent? Saudi Arabia - + Arabie Saoudite Solomon Islands - + Îles Salomon Seychelles - + Seychelles Sudan - + Soudan @@ -3426,7 +3531,7 @@ Are you sure you want to quit qBittorrent? Singapore - + Singapour @@ -3451,37 +3556,37 @@ Are you sure you want to quit qBittorrent? San Marino - + Saint-Marin Senegal - + Sénégal Somalia - + Somalie Suriname - + Suriname Sao Tome and Principe - + Sao Tomé-et-Principe El Salvador - + El Salvador Syrian Arab Republic - + Syrie @@ -3496,7 +3601,7 @@ Are you sure you want to quit qBittorrent? Chad - + Tchad @@ -3506,17 +3611,17 @@ Are you sure you want to quit qBittorrent? Togo - + Togo Thailand - + Thaïlande Tajikistan - + Tadjikistan @@ -3526,27 +3631,27 @@ Are you sure you want to quit qBittorrent? Turkmenistan - + Turkménistan Tunisia - + Tunisie Tonga - + Tonga Timor-Leste - + Timor Oriental Bolivia, Plurinational State of - + Bolivie @@ -3556,12 +3661,12 @@ Are you sure you want to quit qBittorrent? Cote d'Ivoire - + Côte d'Ivoire Libya - + Libye @@ -3571,7 +3676,7 @@ Are you sure you want to quit qBittorrent? Macedonia, The Former Yugoslav Republic of - + Macédoine @@ -3596,7 +3701,7 @@ Are you sure you want to quit qBittorrent? South Sudan - + Soudan du Sud @@ -3606,17 +3711,17 @@ Are you sure you want to quit qBittorrent? Turkey - + Turquie Trinidad and Tobago - + Trinidad et Tobago Tuvalu - + Tuvalu @@ -3626,17 +3731,17 @@ Are you sure you want to quit qBittorrent? Tanzania, United Republic of - + Tanzanie Ukraine - + Ukraine Uganda - + Ouganda @@ -3651,22 +3756,22 @@ Are you sure you want to quit qBittorrent? Uruguay - + Uruguay Uzbekistan - + Ouzbékistan Holy See (Vatican City State) - + Vatican Saint Vincent and the Grenadines - + Saint-Vincent-et-les-Grenadines @@ -3681,27 +3786,27 @@ Are you sure you want to quit qBittorrent? Vanuatu - + Vanuatu Wallis and Futuna - + Wallis et Futuna Samoa - + Samoa Yemen - + Yémen Mayotte - + Mayotte @@ -3716,29 +3821,17 @@ Are you sure you want to quit qBittorrent? Zambia - + Zambie Montenegro - + Monténégro Zimbabwe - - - - Anonymous Proxy - Proxy anonyme - - - Satellite Provider - Fournisseur par satellite - - - Other - Autre + Zimbabwe @@ -3802,7 +3895,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -3948,7 +4041,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + Fichiers @@ -4054,7 +4147,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Greffons de recherche + @@ -4064,55 +4157,55 @@ Are you sure you want to quit qBittorrent? Name - Nom + Nom Version - Version + Version Url - URL + URL Enabled - Activé + Activé You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - D’avantage de greffons de recherche ici : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Installer un nouveau + Check for updates - Mettre à jour + Close - Fermer + Fermer Uninstall - Désinstaller + Désinstaller Yes - Oui + Oui @@ -4120,73 +4213,72 @@ Are you sure you want to quit qBittorrent? No - Non + Non Uninstall warning - Désinstallation + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Certains greffons n'ont pas pu être désinstallés car ils sont intégrés à qBittorrent. Seuls ceux que vous avez installés par vous-même peuvent être désinstallés. -Ces greffons ont été désactivés. + Uninstall success - Désinstallation réussie + All selected plugins were uninstalled successfully - Tous les greffons sélectionnés ont été désinstallés avec succès + New search engine plugin URL - Adresse du nouveau greffon de recherche + URL: - Adresse : + URL: Invalid link - Lien invalide + Lien invalide The link doesn't seem to point to a search engine plugin. - Le lien ne semble pas pointer sur un plugin de moteur de recherche. + Select search plugins - Sélectionnez les greffons + qBittorrent search plugin - Greffon de recherche qBittorrent + Search plugin update - Mise à jour du greffon de recherche + All your plugins are already up to date. - Tous vos greffons de recherche sont déjà à jour. + @@ -4198,7 +4290,7 @@ Ces greffons ont été désactivés. Search plugin install - Installation d'un greffon de recherche + @@ -4228,22 +4320,22 @@ Ces greffons ont été désactivés. Plugin source - Source du greffon + Search plugin source: - Source du greffon de recherche : + Local file - Fichier local + Fichier local Web link - Lien web + Lien web @@ -4981,17 +5073,17 @@ Ces greffons ont été désactivés. Chemin du filtre (.dat, .p2p, .p2b) : - + Detected unclean program exit. Using fallback file to restore settings. Fermeture du programme impromptue détectée. Utilisation d'un fichier de sauvegarde afin de restaurer les paramètres. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5424,7 +5516,7 @@ Ces greffons ont été désactivés. QObject - + Your IP address has been banned after too many failed authentication attempts. Votre adresse IP a été bannie après un nombre excessif de tentatives d'authentification échouées. @@ -5621,7 +5713,7 @@ Ce message d'avertissement ne sera plus affiché. The remote server refused the connection - + Le serveur distant a refusé la connexion @@ -5932,13 +6024,6 @@ Ce message d'avertissement ne sera plus affiché. - - RssParser - - Failed to open downloaded RSS file. - Échec de l'ouverture du fichier RSS téléchargé. - - RssSettingsDlg @@ -5977,7 +6062,7 @@ Ce message d'avertissement ne sera plus affiché. Browse... - Parcourir... + Parcourir... @@ -6007,121 +6092,9 @@ Ce message d'avertissement ne sera plus affiché. Save Files to - - Download here - Télécharger ici - - - Download path - Chemin de téléchargement - - - - SearchCategories - - All categories - Toutes catégories - - - Movies - Films - - - TV shows - Séries TV - - - Music - Musique - - - Games - Jeux - - - Anime - Animé - - - Software - Logiciels - - - Pictures - Photos - - - Books - Livres - SearchEngine - - Search - Rechercher - - - Please install Python to use the Search Engine. - Veuillez installer Python afin d'utiliser le moteur de recherche. - - - Empty search pattern - Motif de recherche vide - - - Please type a search pattern first - Veuillez entrer un motif de recherche - - - Searching... - Recherche en cours… - - - Stop - Arrêter - - - Search Engine - Moteur de recherche - - - Search has finished - Fin de la recherche - - - An error occurred during search... - Une erreur s'est produite lors de la recherche… - - - Search aborted - La recherche a été interrompue - - - All enabled - Tout activé - - - All engines - Tous les moteurs - - - Multiple... - Plusieurs… - - - Results <i>(%1)</i>: - i.e: Search results - Résultats <i>(%1)</i> : - - - Search returned no results - La recherche n'a retourné aucun résultat - - - Stopped - Arrêté - Unknown search engine plugin file format. @@ -6157,47 +6130,47 @@ Ce message d'avertissement ne sera plus affiché. All categories - Toutes catégories + Toutes catégories Movies - Films + Films TV shows - Séries TV + Séries TV Music - Musique + Musique Games - Jeux + Jeux Anime - Animé + Anime Software - Logiciels + Logiciels Pictures - Photos + Photos Books - Livres + Livres @@ -6246,20 +6219,20 @@ Ce message d'avertissement ne sera plus affiché. - - - + + + Search Status: - Statut : + Statut : - + Stopped @@ -6271,12 +6244,12 @@ Ce message d'avertissement ne sera plus affiché. Go to description page - Aller à la page de description + Aller à la page de description Copy description page URL - Copier l'URL de la page de description + @@ -6284,86 +6257,86 @@ Ce message d'avertissement ne sera plus affiché. - + All enabled - Tout activé - - - - All plugins - + All plugins + + + + + Multiple... - Plusieurs… + - - - + + + Search Engine - Moteur de recherche + Moteur de recherche - + Please install Python to use the Search Engine. - Veuillez installer Python afin d'utiliser le moteur de recherche. + - + Empty search pattern - Motif de recherche vide + - + Please type a search pattern first - Veuillez entrer un motif de recherche + - - + + Results <i>(%1)</i>: i.e: Search results - Résultats <i>(%1)</i> : - - - - Searching... - Recherche en cours… + + Searching... + + + + Stop - Arrêter + Arrêter - - + + Search has finished - Fin de la recherche + - - + + Search aborted - La recherche a été interrompue + - + Search returned no results - La recherche n'a retourné aucun résultat + - + Search has failed - + An error occurred during search... - Une erreur s'est produite lors de la recherche… + @@ -6829,10 +6802,6 @@ Ce message d'avertissement ne sera plus affiché. Download Priority - - Priority - Priorité - TorrentCreatorDlg @@ -8028,160 +7997,6 @@ Ce message d'avertissement ne sera plus affiché. Veuillez entrer au moins une URL. - - engineSelect - - Search plugins - Greffons de recherche - - - Installed search engines: - Moteurs de recherche installés : - - - Name - Nom - - - Version - Version - - - Url - URL - - - Enabled - Activé - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - D’avantage de greffons de recherche ici : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Installer un nouveau - - - Check for updates - Mettre à jour - - - Close - Fermer - - - Uninstall - Désinstaller - - - - engineSelectDlg - - Uninstall warning - Désinstallation - - - Uninstall success - Désinstallation réussie - - - Invalid plugin - Greffoninvalide - - - The search engine plugin is invalid, please contact the author. - Le greffon de moteur de recherche est invalide, veuillez contacter son auteur. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Une version plus récente du greffon de recherche « %1 » est déjà installée. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Le greffon du moteur de recherche « %1 » n'a pas pu être mis à jour, conservation de l'ancienne version. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Le greffon du moteur de recherche « %1 » n'a pas pu être installé. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Le greffon du moteur de recherche « %1 » a été mis à jour avec succès. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Le greffon du moteur de recherche « %1 » a été installé avec succès. - - - The link doesn't seem to point to a search engine plugin. - Le lien ne semble pas pointer sur un plugin de moteur de recherche. - - - Select search plugins - Sélectionnez les greffons - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Désolé, l'installation du greffon du moteur de recherche « %1 » a échoué. - - - Search plugin install - Installation d'un greffon de recherche - - - Yes - Oui - - - No - Non - - - qBittorrent search plugin - Greffon de recherche qBittorrent - - - Search plugin update - Mise à jour du greffon de recherche - - - Sorry, update server is temporarily unavailable. - Désolé, le serveur de mise à jour est temporairement indisponible. - - - All your plugins are already up to date. - Tous vos greffons de recherche sont déjà à jour. - - - All selected plugins were uninstalled successfully - Tous les greffons sélectionnés ont été désinstallés avec succès - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Certains greffons n'ont pas pu être désinstallés car ils sont intégrés à qBittorrent. Seuls ceux que vous avez installés par vous-même peuvent être désinstallés. -Ces greffons ont été désactivés. - - - Invalid link - Lien invalide - - - New search engine plugin URL - Adresse du nouveau greffon de recherche - - - URL: - Adresse : - - errorDialog @@ -8309,192 +8124,173 @@ Ces greffons ont été désactivés. options_imp - - + + Choose export directory Choisir un dossier pour l'export - - - - + + + + Choose a save directory Choisir un répertoire de sauvegarde - + Add directory to scan Ajouter un dossier à surveiller - + Supported parameters (case sensitive): Paramètres supportés (sensible à la casse) : - + %N: Torrent name %N : Nom du torrent - + %L: Label %L : Catégorie - + %F: Content path (same as root path for multifile torrent) %F : Chemin vers le contenu (même chemin que le chemin racine pour les torrents composés de plusieurs fichiers) - + %R: Root path (first torrent subdirectory path) %R : Chemin racine (chemin du premier sous-dossier du torrent) - + %D: Save path %D : Chemin de sauvegarde - + %C: Number of files %C : Nombre de fichiers - + %Z: Torrent size (bytes) %Z : Taille du torrent (en octets) - + %T: Current tracker %T : Tracker actuel - + %I: Info hash %I : Hachage d'information - + Folder is already being watched. Ce dossier est déjà surveillé. - + Folder does not exist. Ce dossier n'existe pas. - + Folder is not readable. Ce dossier n'est pas accessible en lecture. - + Failure Échec - + Failed to add Scan Folder '%1': %2 Impossible d'ajouter le dossier surveillé « %1 » : %2 - - + + Filters Filtres - - + + Choose an IP filter file Choisissez un filtre d'adresses IP - + SSL Certificate Certificat SSL - + SSL Key Clé SSL - + Parsing error Erreur de traitement - + Failed to parse the provided IP filter Impossible de charger le filtre IP fourni - + Successfully refreshed Correctement rechargé - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Le filtre IP a été correctement chargé : %1 règles ont été appliquées. - + Invalid key Clé invalide - + This is not a valid SSL key. Ceci n'est pas une clé SSL valide. - + Invalid certificate Certificat invalide - + This is not a valid SSL certificate. Ceci n'est pas un certificat SSL valide. - + The start time and the end time can't be the same. Les heures de début et de fin ne peuvent être les mêmes. - + Time Error Erreur de temps - - pluginSourceDlg - - Plugin source - Source du greffon - - - Search plugin source: - Source du greffon de recherche : - - - Local file - Fichier local - - - Web link - Lien web - - preview @@ -8518,35 +8314,4 @@ Ces greffons ont été désactivés. Annuler - - search_engine - - Search - Recherche - - - Status: - Statut : - - - Stopped - Arrêtée - - - Download - Télécharger - - - Go to description page - Aller à la page de description - - - Copy description page URL - Copier l'URL de la page de description - - - Search engines... - Moteurs de recherche… - - diff --git a/src/lang/qbittorrent_gl.ts b/src/lang/qbittorrent_gl.ts index 23072fd6b..3218a0eee 100644 --- a/src/lang/qbittorrent_gl.ts +++ b/src/lang/qbittorrent_gl.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID do par: - + HTTP User-Agent is '%1' O axente do usuario HTTP é %1 - + Anonymous mode [ON] Modo anómino [ACTIVADO] - + Anonymous mode [OFF] Modo anómino [APAGADO] - + PeX support [ON] Soporte PeX [ACTIVADO] - + PeX support [OFF] Soporte PeX [APAGADO] - + Restart is required to toggle PeX support É necesario reiniciar para cambiar o soporte PeX - + Local Peer Discovery support [ON] Soporte para busca de pares locais (LPD) [ACTIVADO] - + Local Peer Discovery support [OFF] Soporte para busca de pares locais (LPD) [APAGADO] - + Encryption support [ON] Soporte de cifrado [ACTIVADO] - + Encryption support [FORCED] Soporte de cifrado [FORZADO] - + Encryption support [OFF] Soporte de cifrado [APAGADO] - + Embedded Tracker [ON] Localizador integrado [ACTIVADO] - + Failed to start the embedded tracker! Produciuse un fallo ao iniciar o localizador integrado! - + Embedded Tracker [OFF] Localizador integrado [APAGADO] - + '%1' reached the maximum ratio you set. Removing... %1 alcanzou a taxa máxima estabelecida. Eliminando... - + '%1' reached the maximum ratio you set. Pausing... %1 alcanzou a taxa máxima estabelecida. Detendo... - + System network status changed to %1 e.g: System network status changed to ONLINE O estado da rede do sistema cambiou a %1 - + ONLINE EN LIÑA - + OFFLINE FÓRA DE LIÑA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuración da rede de %1 cambiou, actualizando as vinculacións da sesión - + Unable to decode '%1' torrent file. Non foi posíbel decodificar o ficheiro torrent %1. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descarga recursiva do ficheiro %1 integrado no torrent %2 - + Couldn't save '%1.torrent' Non foi posíbel gardar %1.torrent - + because %1 is disabled. this peer was blocked because uTP is disabled. porque o %1 está desactivado. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque o %1 está desactivado. - + URL seed lookup failed for URL: '%1', message: %2 Fallou a busca da semente na URL: %1, mensaxe: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' eliminouse da lista de transferencias e do disco duro. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' eliminouse da lista de transferencias. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Descargando '%1', espere... - + DHT support [ON] Compatibiliade DHT [ACTIVADA] - + DHT support [OFF]. Reason: %1 Compatibilidade DHT [DESACTIVADA]. Razón: %1 - + DHT support [OFF] Soporte DHT [APAGADO] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tentando escoitar en todos os portos da interface: %1 - + The network interface defined is invalid: %1 A interface indicada para a rede non é válida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent está tentando escoitar na interface %1 porto: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent non atopou un enderezo local %1 no que escoitar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent fallou ao escoitar en cada porto da interface: %1. Razón: %2. - + Tracker '%1' was added to torrent '%2' Engadiuse o localizador «%1» ao torrent «%2» - + Tracker '%1' was deleted from torrent '%2' Eliminouse o localizador «%1» do torrent «%2» - + URL seed '%1' was added to torrent '%2' A semente da URL «%1» engadiuse ao torrent «%2» - + URL seed '%1' was removed from torrent '%2' A semente da URL «%1» eliminouse do torrent «%2» - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Non é posíbel continuar o torrent «%1». - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analizouse correctamente o filtro IP indicado: aplicáronse %1 regras. - + Error: Failed to parse the provided IP filter. Erro: produciuse un fallo ao analizar o filtro IP indicado. - + Couldn't add torrent. Reason: %1 Non foi posíbel engadir o torrent. Razón: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) Retomouse '%1' (continuación rápida) - + '%1' added to download list. 'torrent name' was added to download list. Engadiuse %1 á lista de descargas. - + An I/O error occurred, '%1' paused. %2 Produciuse un erro de E/S, '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: produciuse un fallo no mapeado dos portos, mensaxe: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: o mapeado dos portos foi correcto, mensaxe: %1 - + due to IP filter. this peer was blocked due to ip filter. debido ao filtro IP. - + due to port filter. this peer was blocked due to port filter. debido ao filtro de portos. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. debido ás restricións do modo mixto i2P. - + because it has a low port. this peer was blocked because it has a low port. porque ten un porto baixo. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent escoita correctamente no porto da interface %1 porto: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent fallou ao escoitar na interface %1 porto: %2/%3. Razón: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 IP externa: %1 @@ -1284,12 +1284,12 @@ Debería obter esta información nas preferencias do navegador. FeedListWidget - + RSS feeds Fontes RSS - + Unread Sen ler @@ -1378,211 +1378,338 @@ Debería obter esta información nas preferencias do navegador. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Descargar torrents desde unha URL ou ligazón Magnet - + Only one link per line Só unha ligazón por liña - + Download Descargar - + Global upload rate limit must be greater than 0 or disabled. O límite da velocidade global de envío debe ser superior a 0 ou non funcionará. - + Global download rate limit must be greater than 0 or disabled. O límite da velocidade global de descarga debe ser ser superior a 0 ou non funcionará. - + Alternative upload rate limit must be greater than 0 or disabled. O límite alternativo da velocidade de envío debe ser superior a 0 ou non funcionará. - + Alternative download rate limit must be greater than 0 or disabled. O límite alternativo da velocidade de descarga debe ser superior a 0 ou non funcionará. - + Maximum active downloads must be greater than -1. As descargas activas máximas deben ser superiores a -1. - + Maximum active uploads must be greater than -1. Os envíos activos máximos deben ser superiores a -1. - + Maximum active torrents must be greater than -1. Os torrents activos máximos deben ser superiores a -1. - + Maximum number of connections limit must be greater than 0 or disabled. O límite do número máximo de conexións ten que ser superior a 0 ou debe desactivalo. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. O límite do número máximo de conexións por torrent ten que ser superior a 0 ou debe desactivalo. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. O límite do número máximo de slots de envío por torrent ten que ser superior a 0 ou debe desactivalo. - + Unable to save program preferences, qBittorrent is probably unreachable. Non foi posíbel gardar as preferencias do programa, probabelmente o qBittorrent estea inaccesíbel. - + Language Idioma - + The port used for incoming connections must be between 1 and 65535. O porto usado para as conexións entrantes debe estar entre 1 e 65535. - + The port used for the Web UI must be between 1 and 65535. O porto usado para a interface web debe estar entre 1 e 65535. - + Unable to log in, qBittorrent is probably unreachable. Non é posíbel iniciar sesión. Probabelmente o qBittorrent non está accesíbel. - + Invalid Username or Password. O usuario ou o contrasinal son incorrectos. - + Password Contrasinal - + Login Iniciar sesión - + Upload Failed! Fallou o envío. - + Original authors Autores orixinais - + Upload limit: Límite do envío: - + Download limit: Límite da descarga: - + Apply Aplicar - + Add Engadir - + Upload Torrents Enviar torrents - + All Todos - + Downloading Descargando - + Seeding Sementando - + Completed Completado - + Resumed Continuados - + Paused Detido - + Active Activos - + Inactive Inactivos - + Save files to location: Gardar os ficheiros na localización: - + Label: Etiqueta: - + Cookie: Cookie: - + Type folder here + Escribir o cartafol aquí + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Gardar ficheiros en + + + + Watch Folder + Vixiar cartafol + + + + Default Folder + Cartafol predeterminado + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Outra... + + + + Every day + Schedule the use of alternative rate limits on ... + Todos os días + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Outra... + + + Downloaded Is the file downloaded or not? Descargado @@ -1593,57 +1720,57 @@ Debería obter esta información nas preferencias do navegador. Saír da sesión - + Upload local torrent Enviar torrent local - + Are you sure you want to delete the selected torrents from the transfer list? Está seguro que desexa eliminar os torrents seleccionados da lista de transferencias? - + The Web UI username must be at least 3 characters long. O nome de usuario da interface web debe ter polo menos 3 caracteres. - + The Web UI password must be at least 3 characters long. O contrasinal da interface web debe ter polo menos 3 caracteres. - + Save Gardar - + qBittorrent client is not reachable O cliente qBittorrent non está accesíbel - + HTTP Server Servidor HTTP - + The following parameters are supported: Os seguintes parámetros son compatíbeis: - + Torrent path Ruta ao torrent - + Torrent name Nome do torrent - + qBittorrent has been shutdown. O qBittorrent foi pechado. @@ -2216,7 +2343,8 @@ Desexa asociar o qBittorrent aos ficheiros torrent e ás ligazóns Magnet? A new version is available. Do you want to download %1? - + Hai dispoñíbel unha nova versión. +Desexa descargar %1? @@ -2281,12 +2409,6 @@ Desexa instalalo agora? Python is required to use the search engine but it does not seem to be installed. Precísase Python para usar o motor de busca pero non parece que estea instalado. - - A new version is available. -Update to version %1? - Hai dispoñíbel unha nova versión. -Desexa actualizar á versión %1? - No updates available. @@ -2489,12 +2611,12 @@ Está seguro que desexa saír do qBittorrent? Venezuela, Bolivarian Republic of - + Venezuela Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Está seguro que desexa saír do qBittorrent? N/A N/D - - Asia/Pacific Region - Rexión Asia/Pacífico - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Está seguro que desexa saír do qBittorrent? Armenia Armenia - - Netherlands Antilles - Antillas Holandesas - Angola @@ -2644,10 +2754,6 @@ Está seguro que desexa saír do qBittorrent? Brunei Darussalam Brunei Darussalam - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Está seguro que desexa saír do qBittorrent? Switzerland Suíza - - Cote D'Ivoire - Costa do Marfil - Cook Islands @@ -2760,7 +2862,7 @@ Está seguro que desexa saír do qBittorrent? Curacao - + Curaçao @@ -2872,10 +2974,6 @@ Está seguro que desexa saír do qBittorrent? France Francia - - France, Metropolitan - Francia, Metopolitana - Gabon @@ -3161,10 +3259,6 @@ Está seguro que desexa saír do qBittorrent? Latvia Letonia - - Libyan Arab Jamahiriya - Libia - Morocco @@ -3190,10 +3284,6 @@ Está seguro que desexa saír do qBittorrent? Marshall Islands Illas Marshall - - Macedonia - Macedonia - Mali @@ -3209,10 +3299,6 @@ Está seguro que desexa saír do qBittorrent? Mongolia Mongolia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Está seguro que desexa saír do qBittorrent? Saint Pierre and Miquelon Saint Pierre e Miquelon - - Pitcairn Islands - Illas Pitcairn - Puerto Rico Puerto Rico - - Palestinian Territory - Territorios Palestinos - Portugal @@ -3456,10 +3534,6 @@ Está seguro que desexa saír do qBittorrent? Singapore Singapur - - Saint Helena - Santa Helena - Slovenia @@ -3578,62 +3652,62 @@ Está seguro que desexa saír do qBittorrent? Bolivia, Plurinational State of - + Bolivia Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius e Saba Cote d'Ivoire - + Costa do Marfil Libya - + Libia Saint Martin (French part) - + San Martín (parte francesa) Macedonia, The Former Yugoslav Republic of - + Macedonia Macao - + Macao Pitcairn - + Illas Pitcairn Palestine, State of - + Palestine Saint Helena, Ascension and Tristan da Cunha - + Santa Helena, Ascensión e Tristán da Cunha South Sudan - + Sudán do sur Sint Maarten (Dutch part) - + Sint Maarten (parte holandesa) @@ -3700,10 +3774,6 @@ Está seguro que desexa saír do qBittorrent? Saint Vincent and the Grenadines San Vicente e as Granadinas - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Está seguro que desexa saír do qBittorrent? Virgin Islands, U.S. Illas Virxes, U.S.A. - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Está seguro que desexa saír do qBittorrent? Zimbabwe Zimbabwe - - Anonymous Proxy - Proxy anónimo - - - Satellite Provider - Provedor de satélite - - - Other - Outro - Aland Islands @@ -3805,10 +3859,6 @@ Está seguro que desexa saír do qBittorrent? Saint Barthelemy Saint-Barthelemy - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Está seguro que desexa saír do qBittorrent? Net::Smtp - + Email Notification Error: Erro na notificación por correo-e: @@ -3992,7 +4042,7 @@ Está seguro que desexa saír do qBittorrent? Files i.e. files that are being downloaded right now - + Ficheiros @@ -4098,65 +4148,65 @@ Está seguro que desexa saír do qBittorrent? Search plugins - Engadidos de busca + Engadidos de busca Installed search plugins: - + Engadidos de busca instalados Name - Nome + Nome Version - Versión + Versión Url - Url + Url Enabled - Activado + Activado You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pode obter novos engadidos con motores de busca aquí: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Pode obter novos engadidos con motores de busca aquí: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Instalar un novo + Instalar un novo Check for updates - Buscar actualizacións + Buscar actualizacións Close - Pechar + Pechar Uninstall - Desinstalar + Desinstalar Yes - Si + Si @@ -4164,108 +4214,108 @@ Está seguro que desexa saír do qBittorrent? No - Non + Non Uninstall warning - Aviso de desinstalación + Aviso de desinstalación Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Algúns engadidos non se poden desinstalar porque están incluídos no qBittorrent. + Algúns engadidos non se poden desinstalar porque están incluídos no qBittorrent. Unicamente pode desinstalar os que vostede engada. Desactiváronse estes engadidos. Uninstall success - A desinstalación foi correcta + A desinstalación foi correcta All selected plugins were uninstalled successfully - Desistaláronse correctamente todos os engadidos seleccionados + Desistaláronse correctamente todos os engadidos seleccionados New search engine plugin URL - URL novo do engadido co motor de busca + URL novo do engadido co motor de busca URL: - URL: + URL: Invalid link - Ligazón incorrecta + Ligazón incorrecta The link doesn't seem to point to a search engine plugin. - Esta ligazón non semella apuntar a un engadido cun motor de busca. + Esta ligazón non semella apuntar a un engadido cun motor de busca. Select search plugins - Seleccionar os engadidos de busca + Seleccionar os engadidos de busca qBittorrent search plugin - Engadido de busca do qBittorrent + Engadidos de busca do qBittorrent Search plugin update - Actualización do engadido de busca + Actualización do engadido de busca All your plugins are already up to date. - Xa están actualizados todos os engadidos. + Xa están actualizados todos os engadidos. Sorry, couldn't check for plugin updates. %1 - + Sentímolo pero non foi posíbel buscar actualizaións do engadido. %1 Search plugin install - Instalación de engadidos de busca + Instalación de engadidos de busca "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + O engadido co motor de busca %1 instalouse correctamente. Couldn't install "%1" search engine plugin. %2 - + Non foi posíbel instalar «%1» engadido co motor de busca «%2» "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + O engadido co motor de busca %1 actualizouse correctamente. Couldn't update "%1" search engine plugin. %2 - + Non foi posíbel actualizar «%1» engadido co motor de busca. «%2» @@ -4273,22 +4323,22 @@ Desactiváronse estes engadidos. Plugin source - Fonte do engadido + Fonte do engadido Search plugin source: - Fonte do engadido de busca: + Fonte do engadido de busca: Local file - Ficheiro local + Ficheiro local Web link - Ligazón web + Ligazón web @@ -5026,17 +5076,17 @@ Desactiváronse estes engadidos. Ruta do filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Detectouse unha saída incorrecta do programa. Usando os ficheiros de reserva para restabelecer os axustes. - + An access error occurred while trying to write the configuration file. Produciuse un erro de acceso cando se tentaba escribir o ficheiro de configuración. - + A format error occurred while trying to write the configuration file. Produciuse un erro de formato cando se tentaba escribir o ficheiro de configuración. @@ -5469,7 +5519,7 @@ Desactiváronse estes engadidos. QObject - + Your IP address has been banned after too many failed authentication attempts. O seu enderezo IP bloqueouse despois de moitos intentos de autenticación. @@ -5961,12 +6011,12 @@ Non se mostrarán máis avisos. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. + A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. Automatically downloading '%1' torrent from '%2' RSS feed... - Descargando automaticamente %1 torrent(s) desde %2 fonte(s) RSS... + Descargando automaticamente %1 torrents desde %2 fontes RSS... @@ -5974,29 +6024,7 @@ Non se mostrarán máis avisos. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - A descarga automática de «%1» desde a fonte RSS «%2» fallou porque non contén ningún torrent nin ligazón magnet. - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Descargando automaticamente %1 torrent(s) desde %2 fonte(s) RSS... - - - - RssParser - - Failed to open downloaded RSS file. - Fallo na apertura do ficheiro RSS descargado. - - - Invalid RSS feed at '%1'. - Fonte RSS incorrecta en %1. + Fonte RSS incorrecta. @@ -6027,22 +6055,22 @@ Non se mostrarán máis avisos. Watch Folder - + Vixiar cartafol Default Folder - + Cartafol predeterminado Browse... - Explorar... + Explorar... Choose save path - + Seleccionar a ruta onde gardar @@ -6050,12 +6078,12 @@ Non se mostrarán máis avisos. Watch Folder - + Vixiar cartafol Default Folder - + Cartafol predeterminado @@ -6065,199 +6093,87 @@ Non se mostrarán máis avisos. Save Files to - - - - Download here - Descargar aquí - - - Download path - Ruta de descarga - - - - SearchCategories - - All categories - Todas as categorías - - - Movies - Películas - - - TV shows - Programas de TV - - - Music - Música - - - Games - Xogos - - - Anime - Anime - - - Software - Software - - - Pictures - Imaxes - - - Books - Libros + Gardar ficheiros en SearchEngine - - Search - Buscar - - - Please install Python to use the Search Engine. - Instale Python para usar o motor de busca. - - - Empty search pattern - Patrón de busca baleiro - - - Please type a search pattern first - Escriba primeiro o patrón de busca - - - Searching... - Buscando... - - - Stop - Parar - - - Search Engine - Motor de busca - - - Search has finished - A busca rematou - - - An error occurred during search... - Produciuse un erro durante a busca... - - - Search aborted - Busca cancelada - - - All enabled - Todo activado - - - All engines - Todos os motores - - - Multiple... - Múltiple... - - - Results <i>(%1)</i>: - i.e: Search results - Resultados <i>(%1)</i>: - - - Search returned no results - A busca non obtivo resultados - - - Stopped - Parado - Unknown search engine plugin file format. - + Formato descoñecido do ficheiro co engadido do motor de busca. A more recent version of this plugin is already installed. - + Xa está instalada unha versión máis recente do engadido. Plugin is not supported. - + O engadido non é compatíbel. Update server is temporarily unavailable. %1 - + O servidor de actualizacións non está dispoñíbel temporalmente. %1 Failed to download the plugin file. %1 - + Produciuse un fallo ao descargar o ficheiro do engadido. %1 An incorrect update info received. - + Recibiuse unha información incorrecta da actualización.º All categories - Todas as categorías + Todas as categorías Movies - Películas + Películas TV shows - Programas de TV + Programas de TV Music - Música + Música Games - Xogos + Xogos Anime - Anime + Anime Software - Software + Software Pictures - Imaxes + Imaxes Books - Libros + Libros @@ -6306,124 +6222,124 @@ Non se mostrarán máis avisos. - - - + + + Search - Buscar + Buscar Status: - Estado: + Estado: - + Stopped - Parado + Parado Download - Descargar + Descargar Go to description page - Ir á páxina da descrición + Ir á páxina da descrición Copy description page URL - Copiar URL da páxina coa descrición + Copiar URL da páxina coa descrición Search plugins... - + Engadidos de busca - + All enabled - Todo activado - - - - All plugins - + Todo activado - + All plugins + Todos os engadidos + + + + Multiple... - Múltiple... + Múltiple... - - - + + + Search Engine - Motor de busca + Motor de busca - + Please install Python to use the Search Engine. - Instale Python para usar o motor de busca. + Instale Python para usar o motor de busca. - + Empty search pattern - Patrón de busca baleiro + Patrón de busca baleiro - + Please type a search pattern first - Escriba primeiro o patrón de busca + Escriba primeiro o patrón de busca - - + + Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: - - - - Searching... - Buscando... + Resultados <i>(%1)</i>: + Searching... + Buscando... + + + Stop - Parar + Parar - - + + Search has finished - A busca rematou + A busca rematou - - + + Search aborted - Busca cancelada + Busca cancelada - + Search returned no results - A busca non obtivo resultados + A busca non obtivo resultados - + Search has failed - + A busca fallou - + An error occurred during search... - Produciuse un erro durante a busca... + Produciuse un erro durante a busca... @@ -6887,11 +6803,7 @@ Non se mostrarán máis avisos. Download Priority - - - - Priority - Prioridade + Prioridade da descarga @@ -8088,161 +8000,6 @@ Non se mostrarán máis avisos. Escriba polo menos unha URL. - - engineSelect - - Search plugins - Engadidos de busca - - - Installed search engines: - Motores de busca instalados: - - - Name - Nome - - - Version - Versión - - - Url - Url - - - Enabled - Activado - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pode obter novos engadidos con motores de busca aquí: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instalar un novo - - - Check for updates - Buscar actualizacións - - - Close - Pechar - - - Uninstall - Desinstalar - - - - engineSelectDlg - - Uninstall warning - Aviso de desinstalación - - - Uninstall success - A desinstalación foi correcta - - - Invalid plugin - Engadido incorrecto - - - The search engine plugin is invalid, please contact the author. - O engadido co motor de busca non é correcto, contacte co autor. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Xa está instalada unha versión máis recente do engadido co motor de busca %1. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Non foi posíbel actualizar o engadido co motor de busca %1, mantense a versión antiga. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Non foi posíbel instalar o engadido co motor de busca %1. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - O engadido co motor de busca %1 actualizouse correctamente. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - O engadido co motor de busca %1 instalouse correctamente. - - - The link doesn't seem to point to a search engine plugin. - Esta ligazón non semella apuntar a un engadido cun motor de busca. - - - Select search plugins - Seleccionar os engadidos de busca - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Sentímolo pero fallou a instalación do engadido de busca %1. - - - Search plugin install - Instalación de engadidos de busca - - - Yes - Si - - - No - Non - - - qBittorrent search plugin - Engadido de busca do qBittorrent - - - Search plugin update - Actualización do engadido de busca - - - Sorry, update server is temporarily unavailable. - Sentímolo, o servidor de actualizacións non está dispoñíbel temporalmente. - - - All your plugins are already up to date. - Xa están actualizados todos os engadidos. - - - All selected plugins were uninstalled successfully - Desistaláronse correctamente todos os engadidos seleccionados - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Algúns engadidos non se poden desinstalar porque están incluídos no qBittorrent. -Unicamente pode desinstalar os que vostede engada. -Desactiváronse estes engadidos. - - - Invalid link - Ligazón incorrecta - - - New search engine plugin URL - URL novo do engadido co motor de busca - - - URL: - URL: - - errorDialog @@ -8370,192 +8127,173 @@ Desactiváronse estes engadidos. options_imp - - + + Choose export directory Seleccionar un cartafol de exportación - - - - + + + + Choose a save directory Seleccionar un cartafol onde gardar - + Add directory to scan Engadir un cartafol para explorar - + Supported parameters (case sensitive): Parámetros aceptados (sensíbel ás maiúsc.) - + %N: Torrent name %N: Nome do torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: ruta ao contido (igual á ruta raíz pero para torrents de varios ficheiros) - + %R: Root path (first torrent subdirectory path) %R: ruta raíz (ruta ao subcartafol do primeiro torrent) - + %D: Save path %D: Ruta onde gardar - + %C: Number of files %C: Número de ficheiros - + %Z: Torrent size (bytes) %Z: Tamaño do torrent (bytes) - + %T: Current tracker %T: Localizador actual - + %I: Info hash %I: Info hash - + Folder is already being watched. O cartafol xa está sendo explorado. - + Folder does not exist. O cartafol non existe. - + Folder is not readable. O cartafol non se pode ler. - + Failure Fallo - + Failed to add Scan Folder '%1': %2 Produciuse un fallo ao explorar o cartafol '%1': %2 - - + + Filters Filtros - - + + Choose an IP filter file Seleccionar un ficheiro para os filtros de ip - + SSL Certificate Certificado SSL - + SSL Key Chave SSL - + Parsing error Erro de análise - + Failed to parse the provided IP filter Produciuse un fallo ao analizar o filtro Ip indicado - + Successfully refreshed Actualizado correctamente - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analizouse correctamente o filtro IP indicado: aplicáronse %1 regras. - + Invalid key Chave incorrecta - + This is not a valid SSL key. Esta non é unha chave SSL correcta. - + Invalid certificate Certificado incorrecto - + This is not a valid SSL certificate. Este non é un certificado SSL correcto. - + The start time and the end time can't be the same. A hora de inicio e de remate teñen que ser distintas. - + Time Error Erro de hora - - pluginSourceDlg - - Plugin source - Fonte do engadido - - - Search plugin source: - Fonte do engadido de busca: - - - Local file - Ficheiro local - - - Web link - Ligazón web - - preview @@ -8579,35 +8317,4 @@ Desactiváronse estes engadidos. Cancelar - - search_engine - - Search - Buscar - - - Status: - Estado: - - - Stopped - Parado - - - Download - Descargar - - - Go to description page - Ir á páxina da descrición - - - Copy description page URL - Copiar URL da páxina coa descrición - - - Search engines... - Motores de busca... - - diff --git a/src/lang/qbittorrent_he.ts b/src/lang/qbittorrent_he.ts index d89521741..ab7c1cf70 100644 --- a/src/lang/qbittorrent_he.ts +++ b/src/lang/qbittorrent_he.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number מסנן ה IP שסופק נותח בהצלחה: %1 כללים הוחלו. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds הזנת RSS - + Unread לא נקרא @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link הורדת טורנטים מכתובת ה URL שלהם או מקישור מגנטי - + Only one link per line קישור אחד בלבד לכל שורה - + Download הורדה - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. מספר מירבי של הגבלת חיבורים חייב להיות גדול מאפס או מבוטל. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. מספר מירבי של הגבלות החיבורים לכל טורנט חייב להיות גדול מאפס או מבוטל. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. מספר מירבי להגבלת חריצי העלאה לכל טורנט חייב להיות גדול מאפס או מבוטל. - + Unable to save program preferences, qBittorrent is probably unreachable. לא ניתן לשמור את הגדרות התוכנה, כנראה שלא ניתן לגשת ל qBittorrent. - + Language שפה - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login היכנס - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading מוריד - + Seeding מפיץ - + Completed - + Resumed - + Paused השהייה - + Active - + Inactive - + Save files to location: שמירת הקבצים למיקום: - + Label: תוית: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + כל יום + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? ירד @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. שם המשתמש במנשק האינטרנט חייב להיות באורך של 3 תוים לפחות. - + The Web UI password must be at least 3 characters long. סיסמת מנשק האינטרנט חייבת להיות באורך של 3 תוים לפחות. - + Save שמירה - + qBittorrent client is not reachable לא ניתן לגשת ללקוח qBittorrent - + HTTP Server שרת HTTP - + The following parameters are supported: הפרמטרים הבאים נתמכים: - + Torrent path נתיב טורנט - + Torrent name שם טורנט - + qBittorrent has been shutdown. @@ -2277,12 +2400,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. - - A new version is available. -Update to version %1? - גירסה חדשה יותר זמינה. -האם לעדכן לגירסה %1? - No updates available. @@ -2498,10 +2615,6 @@ Are you sure you want to quit qBittorrent? N/A - - Europe - אירופה - Andorra @@ -2537,10 +2650,6 @@ Are you sure you want to quit qBittorrent? Armenia ארמניה - - Netherlands Antilles - האנטילים ההולנדיים - Angola @@ -2636,10 +2745,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam - - Bolivia - בוליביה - Brazil @@ -3170,10 +3275,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands - - Macedonia - מקדוניה - Mali @@ -3189,10 +3290,6 @@ Are you sure you want to quit qBittorrent? Mongolia מונגוליה - - Macau - מקאו - Northern Mariana Islands @@ -3668,10 +3765,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines - - Venezuela - ונצואלה - Virgin Islands, British @@ -3682,10 +3775,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. - - Vietnam - וייטנאם - Vanuatu @@ -3736,18 +3825,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe זימבבואה - - Anonymous Proxy - פרוקסי אנונימי - - - Satellite Provider - ספק לוויני - - - Other - אחר - Aland Islands @@ -3810,7 +3887,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4062,7 +4139,7 @@ Are you sure you want to quit qBittorrent? Search plugins - תוספי חיפוש + @@ -4082,38 +4159,38 @@ Are you sure you want to quit qBittorrent? Url - URL + Enabled - מאופשר + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - באפשרותכם לקבל תוספים למנועי חיפוש כאן: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - התקנת חדש + Check for updates - בדיקת עדכונים + Close - סגירה + Uninstall - הסרת התוכנה + @@ -4133,7 +4210,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - אזהרת הסרה + @@ -4144,24 +4221,24 @@ Those plugins were disabled. Uninstall success - הסרה הצליחה + All selected plugins were uninstalled successfully - כל התוספים הוסרו בהצלחה + New search engine plugin URL - כתובת URL של תוסף מנוע חיפוש חדש + URL: - URL + @@ -4176,7 +4253,7 @@ Those plugins were disabled. Select search plugins - בחירת תוספי חיפוש + @@ -4188,12 +4265,12 @@ Those plugins were disabled. Search plugin update - חפש עדכונים לתוספים + All your plugins are already up to date. - כל התוספים מעודכנים. + @@ -4205,7 +4282,7 @@ Those plugins were disabled. Search plugin install - התקנת תוספי חיפוש + @@ -4235,22 +4312,22 @@ Those plugins were disabled. Plugin source - מקור התוסף + Search plugin source: - חיפוש מקור תוסף: + Local file - קובץ מקומי + Web link - קישור לאינטרנט + @@ -4988,17 +5065,17 @@ Those plugins were disabled. סנן נתיב ( .dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5431,7 +5508,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5936,13 +6013,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - פתיחת הקובץ שירד מהRSS נכשלה. - - RssSettingsDlg @@ -6011,88 +6081,9 @@ No further notices will be issued. Save Files to - - Download here - הורדה לכאן - - - - SearchCategories - - All categories - כל הקטגוריות - - - Movies - סרטים - - - TV shows - תוכניות טלויזיה - - - Music - מוזיקה - - - Games - משחקים - - - Anime - אנימציה - - - Software - תוכנות - - - Pictures - תמונת - - - Books - ספרים - SearchEngine - - Search - חיפוש - - - Empty search pattern - תבנית חיפוש ריקה - - - Please type a search pattern first - נא להקליד תחילה תבנית חיפוש - - - Searching... - מחפש... - - - Stop - עצור - - - Search Engine - מנוע חיפוש - - - Search has finished - החיפוש הסתיים - - - Search aborted - החיפוש הופסק - - - Search returned no results - החיפוש לא הניב שום תוצאות - Unknown search engine plugin file format. @@ -6128,47 +6119,47 @@ No further notices will be issued. All categories - כל הקטגוריות + Movies - סרטים + TV shows - תוכניות טלויזיה + Music - מוזיקה + Games - משחקים + Anime - אנימציה + Software - תוכנות + Pictures - תמונת + Books - ספרים + @@ -6217,22 +6208,22 @@ No further notices will be issued. - - - + + + Search חיפוש Status: - מצב: + - + Stopped - נעצר + @@ -6242,7 +6233,7 @@ No further notices will be issued. Go to description page - העברה לדף הגדרה + @@ -6255,84 +6246,84 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - מנוע חיפוש + - + Please install Python to use the Search Engine. - + Empty search pattern - תבנית חיפוש ריקה + - + Please type a search pattern first - נא להקליד תחילה תבנית חיפוש + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - מחפש... - + Searching... + + + + Stop - עצור + - - + + Search has finished - החיפוש הסתיים + - - + + Search aborted - החיפוש הופסק + - + Search returned no results - החיפוש לא הניב שום תוצאות + - + Search has failed - + An error occurred during search... @@ -6800,10 +6791,6 @@ No further notices will be issued. Download Priority - - Priority - העדפה - TorrentCreatorDlg @@ -7999,100 +7986,6 @@ No further notices will be issued. נא להקליד לפחות URL אחד. - - engineSelect - - Search plugins - תוספי חיפוש - - - Installed search engines: - מנועי חיפוש מותקנים: - - - Name - שם - - - Url - URL - - - Enabled - מאופשר - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - באפשרותכם לקבל תוספים למנועי חיפוש כאן: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - התקנת חדש - - - Check for updates - בדיקת עדכונים - - - Close - סגירה - - - Uninstall - הסרת התוכנה - - - - engineSelectDlg - - Uninstall warning - אזהרת הסרה - - - Uninstall success - הסרה הצליחה - - - Select search plugins - בחירת תוספי חיפוש - - - Search plugin install - התקנת תוספי חיפוש - - - Yes - כן - - - No - לא - - - Search plugin update - חפש עדכונים לתוספים - - - Sorry, update server is temporarily unavailable. - מצטערים, זמנית שרת העדכונים לא זמין. - - - All your plugins are already up to date. - כל התוספים מעודכנים. - - - All selected plugins were uninstalled successfully - כל התוספים הוסרו בהצלחה - - - New search engine plugin URL - כתובת URL של תוסף מנוע חיפוש חדש - - - URL: - URL - - errorDialog @@ -8220,192 +8113,173 @@ No further notices will be issued. options_imp - - + + Choose export directory בחירת תיקייה לייצוא - - - - + + + + Choose a save directory בחירת תיקייה לשמירה - + Add directory to scan הוספת תיקייה לסריקה - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. תיקייה זו כבר נצפית. - + Folder does not exist. תיקייה לא קיימת. - + Folder is not readable. התיקייה לא ניתנת לקריאה. - + Failure כשלון - + Failed to add Scan Folder '%1': %2 סריקת התיקייה '%1' נכשלה: %2 - - + + Filters מסננים - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error שגיאת ניתוח - + Failed to parse the provided IP filter לא הצליח לנתח את מסנן ה IP שסופק - + Successfully refreshed רוענן בהצלחה - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number מסנן ה IP שסופק נותח בהצלחה: %1 כללים הוחלו. - + Invalid key מפתח לא תקף - + This is not a valid SSL key. מפתח SSL זה אינו תקף. - + Invalid certificate אישור לא תקף - + This is not a valid SSL certificate. אישור SSL זה אינו תקף. - + The start time and the end time can't be the same. - + Time Error - - pluginSourceDlg - - Plugin source - מקור התוסף - - - Search plugin source: - חיפוש מקור תוסף: - - - Local file - קובץ מקומי - - - Web link - קישור לאינטרנט - - preview @@ -8429,31 +8303,4 @@ No further notices will be issued. ביטול - - search_engine - - Search - חיפוש - - - Status: - מצב: - - - Stopped - נעצר - - - Download - הורדה - - - Go to description page - העברה לדף הגדרה - - - Search engines... - מנוע חיפוש... - - diff --git a/src/lang/qbittorrent_hi_IN.ts b/src/lang/qbittorrent_hi_IN.ts index 677e55841..38c473db7 100644 --- a/src/lang/qbittorrent_hi_IN.ts +++ b/src/lang/qbittorrent_hi_IN.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS फीड्स - + Unread अपठित @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link उनके URL या मैगनेट लिंक से टाँरेंट डाउनलोड करें - + Only one link per line एक पंक्ति में केवल एक लिंक - + Download डाउनलोड करें - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. कनेक्शन्स की अधिकतम संख्या 0 या disabled.से अधिक होना चाहिए. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. कनेक्शन्स की अधिकतम संख्या हर टारेंट सीमा के लिए 0 या disabled.से अधिक होना चाहिए. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. अपलोड की अधिकतम संख्या हर टारेंट सीमा के लिए 0 या disabled.से अधिक होना चाहिए. - + Unable to save program preferences, qBittorrent is probably unreachable. कार्यक्रम वरीयताओं को सहेजने में असमर्थ, qBittorrent शायद अगम्य है. - + Language भाषा - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login लॉगिन - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading डाउनलोड हो रहा है - + Seeding सीडिंग - + Completed - + Resumed - + Paused रूका हुआ - + Active - + Inactive - + Save files to location: फाइलों को इस स्थान पर सहेंजे: - + Label: चिप्पी: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + प्रति दिन + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? डाउनलोडेड @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. वेब UI यूजर का नाम कम से कम 3 अक्षर का होना चाहिए. - + The Web UI password must be at least 3 characters long. वेब UI पासवर्ड कम से कम 3 अक्षर का होना चाहिए. - + Save सहेंजें - + qBittorrent client is not reachable qBittorrent प्रयोक्ता पहुंच योग्य नहीं है - + HTTP Server HTTP सर्वर - + The following parameters are supported: निम्न पैरामीटर समर्थित हैं: - + Torrent path टाॅरेंट का पथ - + Torrent name टाॅरेंट का नाम - + qBittorrent has been shutdown. qBittorrent शट डाउन कर दिया गया है. @@ -3761,7 +3884,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4013,7 +4136,7 @@ Are you sure you want to quit qBittorrent? Search plugins - प्लगिन खोंजे + @@ -4033,38 +4156,38 @@ Are you sure you want to quit qBittorrent? Url - Url + Enabled - सक्षम + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - आप नये खोज इंजन के प्लगिन्स यहाँ प्राप्त कर सकते हैं: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - एक नया इंस्टाल करें + Check for updates - अद्यतन के लिए जाँच करें + Close - बंद करें + Uninstall - स्थापना रद्द करें + @@ -4084,7 +4207,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - स्थापना रद्द करने की चेतावनी + @@ -4095,7 +4218,7 @@ Those plugins were disabled. Uninstall success - स्थापना रद्द सफल रहा + @@ -4112,12 +4235,12 @@ Those plugins were disabled. URL: - URL: + Invalid link - अमान्य लिंक + @@ -4127,7 +4250,7 @@ Those plugins were disabled. Select search plugins - खोंज प्लगिन चुनें + @@ -4186,22 +4309,22 @@ Those plugins were disabled. Plugin source - प्लगिन स्रोत + Search plugin source: - प्लगिन स्रोत खोंजे: + Local file - स्थानीय फाईल + Web link - वेब लिंक + @@ -4939,17 +5062,17 @@ Those plugins were disabled. - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5382,7 +5505,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5887,13 +6010,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - डाउनलोडेड RSS फाइल खुलने में विफल है. - - RssSettingsDlg @@ -5962,92 +6078,9 @@ No further notices will be issued. Save Files to - - Download here - यहाँ डाउनलोड करें - - - - SearchCategories - - All categories - सभी वर्ग - - - Movies - फिल्में - - - TV shows - टीवी शोज - - - Music - संगीत - - - Games - क्रीड़े - - - Anime - एनीमेशन - - - Software - सॉफ्टवेयर - - - Pictures - तस्वीरें - - - Books - किताबें - SearchEngine - - Search - खोंजे - - - Empty search pattern - खोज स्वरुप खाली है - - - Please type a search pattern first - कृपया पहले खोज स्वरुप टंकित करें - - - Searching... - खोंजा जा रहा हैं... - - - Stop - रुकें - - - Search Engine - खोज इंजन - - - Search has finished - खोज समाप्त हुआ - - - An error occurred during search... - खोज के दौरान एक त्रुटि घटी... - - - Search aborted - खोज रोका गया - - - Search returned no results - खोज का कोई परिणाम नहीं मिला - Unknown search engine plugin file format. @@ -6083,47 +6116,47 @@ No further notices will be issued. All categories - सभी वर्ग + Movies - फिल्में + TV shows - टीवी शोज + Music - संगीत + Games - क्रीड़े + Anime - एनीमेशन + Software - सॉफ्टवेयर + Pictures - तस्वीरें + Books - किताबें + @@ -6172,22 +6205,22 @@ No further notices will be issued. - - - + + + Search खोंजे Status: - स्थिति: + - + Stopped - रुका हुआ + @@ -6197,7 +6230,7 @@ No further notices will be issued. Go to description page - विवरण पृष्ठ पर पहुँचे + @@ -6210,86 +6243,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - खोज इंजन + - + Please install Python to use the Search Engine. - + Empty search pattern - खोज स्वरुप खाली है + - + Please type a search pattern first - कृपया पहले खोज स्वरुप टंकित करें + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - खोंजा जा रहा हैं... - + Searching... + + + + Stop - रुकें + - - + + Search has finished - खोज समाप्त हुआ + - - + + Search aborted - खोज रोका गया + - + Search returned no results - खोज का कोई परिणाम नहीं मिला + - + Search has failed - + An error occurred during search... - खोज के दौरान एक त्रुटि घटी... + @@ -6755,10 +6788,6 @@ No further notices will be issued. Download Priority - - Priority - वरीयता - TorrentCreatorDlg @@ -7954,80 +7983,6 @@ No further notices will be issued. कृपया कम से कम एक URL टंकित करें. - - engineSelect - - Search plugins - प्लगिन खोंजे - - - Installed search engines: - स्थापित खोज इंजन: - - - Name - नाम - - - Url - Url - - - Enabled - सक्षम - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - आप नये खोज इंजन के प्लगिन्स यहाँ प्राप्त कर सकते हैं: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - एक नया इंस्टाल करें - - - Check for updates - अद्यतन के लिए जाँच करें - - - Close - बंद करें - - - Uninstall - स्थापना रद्द करें - - - - engineSelectDlg - - Uninstall warning - स्थापना रद्द करने की चेतावनी - - - Uninstall success - स्थापना रद्द सफल रहा - - - Select search plugins - खोंज प्लगिन चुनें - - - Yes - हाँ - - - No - नहीँ - - - Invalid link - अमान्य लिंक - - - URL: - URL: - - errorDialog @@ -8155,192 +8110,173 @@ No further notices will be issued. options_imp - - + + Choose export directory - - - - + + + + Choose a save directory - + Add directory to scan - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. - + Folder does not exist. - + Folder is not readable. - + Failure - + Failed to add Scan Folder '%1': %2 - - + + Filters - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error - + Failed to parse the provided IP filter - + Successfully refreshed - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key - + This is not a valid SSL key. - + Invalid certificate - + This is not a valid SSL certificate. - + The start time and the end time can't be the same. - + Time Error - - pluginSourceDlg - - Plugin source - प्लगिन स्रोत - - - Search plugin source: - प्लगिन स्रोत खोंजे: - - - Local file - स्थानीय फाईल - - - Web link - वेब लिंक - - preview @@ -8364,31 +8300,4 @@ No further notices will be issued. रद्द करें - - search_engine - - Search - खोंजे - - - Status: - स्थिति: - - - Stopped - रुका हुआ - - - Download - डाउनलोड करें - - - Go to description page - विवरण पृष्ठ पर पहुँचे - - - Search engines... - खोज इंजन... - - diff --git a/src/lang/qbittorrent_hr.ts b/src/lang/qbittorrent_hr.ts index c4b46b375..4a5fd305f 100644 --- a/src/lang/qbittorrent_hr.ts +++ b/src/lang/qbittorrent_hr.ts @@ -11,7 +11,7 @@ About - O + O programu @@ -22,7 +22,7 @@ Name: - Ime: + Naziv: @@ -92,7 +92,7 @@ Browse... - Pretraži ... + Pretraži... @@ -122,12 +122,12 @@ Skip hash check - Preskoči provjeru smjese + Preskoči hash provjeru Set as default label - + Postavi kao zadanu oznaku @@ -152,7 +152,7 @@ Info Hash: - Info o smjesi: + Hash informacije: @@ -204,7 +204,7 @@ Free disk space: %1 - + Slobodno mjesto na disku: %1 @@ -226,48 +226,48 @@ Invalid magnet link - Nesispravan magnet link + Neispravna magnet poveznica Torrent is already in download list. Trackers were merged. - + Torrent je već u listi za preuzimanje. Trackeri su dodani. Cannot add torrent - + Nemoguće dodati torrent Cannot add this torrent. Perhaps it is already in adding state. - + Nemoguće dodati ovaj torrent. Možda je već u procesu dodavanja. This magnet link was not recognized - Ovaj magnet link nije prepoznat + Ova magnet poveznica nije prepoznata Magnet link is already in download list. Trackers were merged. - + Magnet poveznica je već u listi za preuzimanje. Trackeri su dodani. Cannot add this torrent. Perhaps it is already in adding. - + Nemoguće dodati ovaj torrent. Možda se već dodaje. Magnet link - Magnet link + Magnet poveznica Retrieving metadata... - Preuzimaju se meta-podaci... + Preuzimaju se metapodaci... @@ -290,7 +290,7 @@ New name: - Novo ime: + Novi naziv: @@ -301,13 +301,13 @@ This file name contains forbidden characters, please choose a different one. - Ovo ime datoteke sadrži zabranjene znakove. Izaberite druge. + Ovaj naziv datoteke sadrži zabranjene znakove. Izaberite drugi. This name is already in use in this folder. Please use a different name. - Ime se već koristi u toj mapi. Koristite drugo ime. + Naziv se već koristi u toj mapi. Koristite drugi naziv. @@ -317,7 +317,7 @@ Rename... - Preimenuj ... + Preimenuj... @@ -327,22 +327,22 @@ Invalid metadata - + Nevažeći metapodaci Parsing metadata... - Parsaju se meta podatci... + Razrješavaju se metapodaci... Metadata retrieval complete - Preuzimanje meta podataka dovršeno + Preuzimanje metapodataka dovršeno Download Error - + Greška preuzimanja @@ -375,7 +375,7 @@ Transfer list refresh interval - Interval osvježavanja popisa transfera + Interval osvježavanja popisa prijenosa @@ -408,7 +408,7 @@ Disk cache expiry interval - Interval isteka privremene memorije diska + Interval isteka predmemorije diska @@ -429,7 +429,7 @@ Resolve peer host names - Razrješi imena peer hostova + Razrješi nazive peer hostova @@ -449,7 +449,7 @@ Confirm torrent recheck - + Potvrdi ponovnu provjeru torrenta @@ -476,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maksimalan broj polu-otvorenih veza [0: Neograničeno] @@ -486,7 +486,7 @@ Display program on-screen notifications - Prikazuj obavijesti.na ekranu + Prikazuj obavijesti na ekranu @@ -515,7 +515,7 @@ qBittorrent %1 started qBittorrent v3.2.0alpha started - + qBittorrent %1 pokrenut @@ -545,7 +545,7 @@ Saving torrent progress... - Spremanje napretka torrenta ... + Spremanje napretka torrenta... @@ -558,58 +558,58 @@ RSS Downloader - + RSS preuzimatelj Enable Automated RSS Downloader - + Omogući automatski RSS preuzimatelj Download Rules - + Pravila preuzimanja Rule Definition - + Definicija pravila Use Regular Expressions - + Koristi regularne izraze Must Contain: - + Mora sadržavati: Must Not Contain: - + Ne smije sadržavati: Episode Filter: - + Filter epizoda: Assign Label: - + Dodaj oznaku: Save to a Different Directory - + Spremi u drugu mapu Ignore Subsequent Matches for (0 to Disable) ... X days - + Ignoriraj slijedeća podudaranja za (0 za Onemogućiti) @@ -624,37 +624,37 @@ Use global settings - + Koristi globalne postavke Always - + Uvijek Never - Nikad + Nikada Apply Rule to Feeds: - + Primjeni pravilo na kanale: Matching RSS Articles - + Podudarajući RSS članci &Import... - + Uvez&i... &Export... - + Izv&ezi... @@ -710,44 +710,44 @@ Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - Neograničen raspon: <b>1x25-;</b> označava epizode od 25. nadalje prve sezone + Neograničen raspon: <b>1x25-;</b> označava epizode dalje od 25. prve sezone Last Match: %1 days ago - + Posljednje podudaranje: prije %1 dan(a) Last Match: Unknown - + Posljednje podudaranje: Nepoznato New rule name - Ime novog pravila + Naziv novog pravila Please type the name of the new download rule. - Upišite ime novog pravila preuzimanja. + Upišite naziv novog pravila preuzimanja. Rule name conflict - Konflikt imena pravila + Konflikt naziva pravila A rule with this name already exists, please choose another name. - Pravilo s tim imenom već postoji. Izaberite drugo ime. + Pravilo s tim nazivom već postoji. Izaberite drugi naziv. Are you sure you want to remove the download rule named '%1'? - + Sigurni ste da želite ukloniti pravilo preuzimanja naziva '%1'? @@ -822,17 +822,17 @@ Delete rule - Izbriši pravilo + Ukloni pravilo Rename rule... - Preimenuj pravilo ... + Preimenuj pravilo... Delete selected rules - Izbriši odabrana pravila + Ukloni odabrana pravila @@ -842,340 +842,342 @@ Please type the new rule name - Upišite ime novog pravila + Upišite naziv novog pravila Regex mode: use Perl-like regular expressions - Regex mode: koristi Pearl-u slične uobičajene izraze + Regex način: koristi Pearl-u slične regularne izraze Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> - Wildcard mode: možete koristiti<ul><li>? za podudaranje s bilo kojim pojedinim znakom</li><li>* za podudaranje s nula ili više drugih znakova</li><li>Prazna mjesta se računaju kao AND operatori</li></ul> + Wildcard način: možete koristiti<ul><li>? za podudaranje s bilo kojim pojedinim znakom</li><li>* za podudaranje s nula ili više drugih znakova</li><li>Prazna mjesta se računaju kao AND operatori</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> - Wildcard mode: možete koristiti<ul><li>? za podudaranje s bilo kojim pojedinim znakom</li><li>* za podudaranje s nula ili više drugih znakova</li><li>| se koristi kao OR operator</li></ul> + Wildcard način: možete koristiti<ul><li>? za podudaranje s bilo kojim pojedinim znakom</li><li>* za podudaranje s nula ili više drugih znakova</li><li>| se koristi kao OR operator</li></ul> BitTorrent::Session - + Peer ID: - + Peer ID: - + HTTP User-Agent is '%1' - + HTTP User-Agent je '%1' - + Anonymous mode [ON] - + Anonimni način [Uključeno] - + Anonymous mode [OFF] - + Anonimni način [Isključeno] + + + + PeX support [ON] + PeX podrška [Uključeno] + + + + PeX support [OFF] + PeX podrška [Isključeno] - PeX support [ON] - - - - - PeX support [OFF] - - - - Restart is required to toggle PeX support - + PeX podrška zahtjeva ponovno pokretanje + + + + Local Peer Discovery support [ON] + Lokalno otkrivanje korisnika [Uključeno] - Local Peer Discovery support [ON] - - - - Local Peer Discovery support [OFF] - + Lokalno otkrivanje korisnika [Isključeno] - + Encryption support [ON] - + Enkripcija [Uključeno] - + Encryption support [FORCED] - + Enkripcija [Prisiljeno] - + Encryption support [OFF] - + Enkripcija [Isključeno] - + Embedded Tracker [ON] - + Ugrađeni tracker [Uključeno] - + Failed to start the embedded tracker! - + Neuspjeh kod pokretanja ugrađenog trackera - + Embedded Tracker [OFF] - + Ugrađeni tracker [Isključeno] - + '%1' reached the maximum ratio you set. Removing... - + '%1' je postigao maksimalni postavljeni omjer. +Uklanjanje... - + '%1' reached the maximum ratio you set. Pausing... - + '%1' je postigao maksimalni postavljeni omjer. +Pauziranje... - + System network status changed to %1 e.g: System network status changed to ONLINE - + Sustavni mrežni status promijenjen u %1 - + ONLINE - + POVEZAN - + OFFLINE - + ODSPOJEN - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Mrežna postavka %1 je promijenjena, osvježavanje prijave veze - + Unable to decode '%1' torrent file. - + Nemoguće dekodirati '%1' torrent datoteku. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Rekurzivno preuzimanje datoteke '%1' ugrađene u torrent '%2' - + Couldn't save '%1.torrent' - + Nemoguće spremiti '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + zato što je %1 onemogućen. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + zato što je %1 onemogućen. - + URL seed lookup failed for URL: '%1', message: %2 - + URL seed traženje neuspješno za URL: '%1', poruka: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' je uklonjen sa popisa prijenosa i sa tvrdog diska. - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + '%1' je uklonjen sa liste prijenosa. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + Preuzimanje '%1', molimo pričekajte... - + DHT support [ON] - + DHT podrška [Uključeno] - + DHT support [OFF]. Reason: %1 - + DHT podrška [Isključeno]. Razlog: %1 - + DHT support [OFF] - + DHT podrška [Isključeno] + + + + + qBittorrent is trying to listen on any interface port: %1 + e.g: qBittorrent is trying to listen on any interface port: TCP/6881 + qBittorrent pokušava slušati na bilo kojem portu sučelja: %1 + + + + The network interface defined is invalid: %1 + Mrežno sučelje definirano kao nevažeće: %1 - - qBittorrent is trying to listen on any interface port: %1 - e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - - - - - The network interface defined is invalid: %1 - - - - - + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent pokušava slušati na sučelju %1: port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent nije pronašao %1 lokalnu adresu za slušanje - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + qBittorrent nije uspio slušati na bilo kojem portu: %1. Razlog: %2. - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' je dodan za torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + Tracker '%1' je uklonjen za torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' je dodan za torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + URL seed '%1' je uklonjen za torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Nemoguće nastaviti torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - Uspješno razrješen dani IP filter: Primjenjena su %1 pravila. + Uspješno analiziran osigurani IP filter: %1 pravila su primijenjena. - + Error: Failed to parse the provided IP filter. - + Greška: Neuspjeh analiziranja osiguranog IP filtera. - + Couldn't add torrent. Reason: %1 - + Nemoguće dodati torrent. Razlog: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' nastavljen. (brzi nastavak) - + '%1' added to download list. 'torrent name' was added to download list. - + '%1' dodan na listu preuzimanja. - + An I/O error occurred, '%1' paused. %2 - + I/O greška, '%1' pauziran. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapiranje neuspješno, poruka: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + UPnP/NAT-PMP: Port mapiranje uspješno, poruka: %1 - + due to IP filter. this peer was blocked due to ip filter. - + zbog IP filtera. - + due to port filter. this peer was blocked due to port filter. - + zbog port filtera. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + zbog i2p ograničenja miješanog načina. - + because it has a low port. this peer was blocked because it has a low port. - + zato što ima nizak broj porta. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent uspješno sluša na sučelju %1 porta: %2%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent neuspješno sluša na sučelju %1 porta: %2%3. Razlog: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 - + Vanjski IP: %1 @@ -1183,17 +1185,17 @@ Could not move torrent: '%1'. Reason: %2 - + Nemoguće maknuti torrent: '%1'. Razlog %2 File sizes mismatch for torrent '%1', pausing it. - + Neslaganje veličina datoteka za torrent '%1', pauziranje. Fast resume data was rejected for torrent '%1'. Reason: %2. Checking again... - + Brzi nastavak podataka je odbijen za torrent '%1'. Razlog: %2. Ponovna provjera... @@ -1219,7 +1221,8 @@ Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - + Obični ključevi za kolačiće su: '%1', '%2'. +Nabavite ove informacije iz postavki vašeg Internet preglednika. @@ -1228,13 +1231,13 @@ You should get this information from your Web browser preferences. Are you sure you want to delete '%1' from the transfer list? Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list? - + Sigurni ste da želite ukloniti '%1' za liste prijenosa? Are you sure you want to delete these %1 torrents from the transfer list? Are you sure you want to delete these 5 torrents from the transfer list? - Jeste li sigurni da želite izbrisati odabrane torrente s popisa transfera? + Sigurni ste da želite ukloniti ove %1 odabrane torrente s popisa prijenosa? @@ -1242,17 +1245,17 @@ You should get this information from your Web browser preferences. White: Missing pieces - + Bijelo: Nedostaju dijelovi Green: Partial pieces - + Zeleno: Djelomični dijelovi Blue: Completed pieces - + Plavo: Završeni dijelovi @@ -1283,12 +1286,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS kanali - + Unread Nepročitano @@ -1300,7 +1303,7 @@ You should get this information from your Web browser preferences. I/O Error: Could not open ip filter file in read mode. - + I/O greška: Nemoguće otvoriti IP filter datoteku u načinu čitanja. @@ -1311,7 +1314,7 @@ You should get this information from your Web browser preferences. Parsing Error: The filter file is not a valid PeerGuardian P2B file. - + Greška analiziranja: Filter datoteka nije valjana PeerGuardian P2B datoteka. @@ -1320,42 +1323,42 @@ You should get this information from your Web browser preferences. Unsupported database file size. - + Nepodržana veličina datoteke baze podataka. Metadata error: '%1' entry not found. - + Greška metapodataka: '%1' unos nije pronađen. Metadata error: '%1' entry has invalid type. - + Greška metapodataka: '%1' unos nije valjanog tipa. Unsupported database version: %1.%2 - + Nepodržana verzija baze podataka: %1.%2 Unsupported IP version: %1 - + Nepodržana IP verzija: %1 Unsupported record size: %1 - + Nepodržana veličina zapisa: %1 Invalid database type: %1 - + Nevaljan tip baze podataka: %1 Database corrupted: no data section found. - + Korumpirana baza podataka: nije pronađen podatkovni dio. @@ -1377,211 +1380,338 @@ You should get this information from your Web browser preferences. - Download Torrents from their URL or Magnet link - Preuzmi torrente s njihovih URL-ova ili Magnet linka + Exit qBittorrent + - Only one link per line - Samo jedan link po liniji + Download Torrents from their URL or Magnet link + Preuzmi torrente s njihovih URL-ova ili Magnet poveznice - + + Only one link per line + Samo jedna poveznica po liniji + + + Download Preuzmi - - - Global upload rate limit must be greater than 0 or disabled. - - - Global download rate limit must be greater than 0 or disabled. - + Global upload rate limit must be greater than 0 or disabled. + Globalno ograničenje brzine slanja mora biti veće od 0 ili onemogućeno. - Alternative upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. + Globalno ograničenje brzine preuzimanja mora biti veće od 0 ili onemogućeno. - Alternative download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. + Alternativno ograničenje brzine slanja mora biti veće od 0 ili onemogućeno. - Maximum active downloads must be greater than -1. - + Alternative download rate limit must be greater than 0 or disabled. + Alternativno ograničenje brzine preuzimanja mora biti veće od 0 ili onemogućeno. - Maximum active uploads must be greater than -1. - + Maximum active downloads must be greater than -1. + Maksimalan broj aktivnih preuzimanja mora biti veći od -1. - Maximum active torrents must be greater than -1. - + Maximum active uploads must be greater than -1. + Maksimalan broj aktivnih slanja mora biti veći od -1. - Maximum number of connections limit must be greater than 0 or disabled. - Limit najvećeg broja spajanja mora biti veći od 0 ili onemogućen. + Maximum active torrents must be greater than -1. + Maksimalan broj aktivnih torrenata mora biti veći od -1. - Maximum number of connections per torrent limit must be greater than 0 or disabled. - Limit najvećeg broja spajanja po torrentu mora biti veći od 0 ili onemogućen. + Maximum number of connections limit must be greater than 0 or disabled. + Ograničenje najvećeg broja spajanja mora biti veći od 0 ili onemogućeno. - Maximum number of upload slots per torrent limit must be greater than 0 or disabled. - Limit najvećeg broja priključnica po torrentu mora biti veći od 0 ili onemogućen. + Maximum number of connections per torrent limit must be greater than 0 or disabled. + Ograničenje najvećeg broja spajanja po torrentu mora biti veće od 0 ili onemogućeno. + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. + Ograničenje najvećeg broja mjesta za slanje po torrentu mora biti veći od 0 ili onemogućeno. + + + Unable to save program preferences, qBittorrent is probably unreachable. Nije moguće spremiti postavke programa. qBittorrent je vjerojatno nedostupan. - + Language Jezik - - - The port used for incoming connections must be between 1 and 65535. - - - The port used for the Web UI must be between 1 and 65535. - + The port used for incoming connections must be between 1 and 65535. + Port korišten za dolazne spojeve mora biti između 1 i 65535. - + + The port used for the Web UI must be between 1 and 65535. + Port korišten za web sučelje mora biti između 1 i 65535. + + + Unable to log in, qBittorrent is probably unreachable. Nije moguća prijava. qBittorrent je vjerojatno nedostupan. - + Invalid Username or Password. Neispravno korisničko ime ili lozinka - + Password Lozinka - + Login Prijava - - - Upload Failed! - Prijenos nije uspio! - - Original authors - + Upload Failed! + Slanje nije uspjelo! - Upload limit: - + Original authors + Originalni autori - Download limit: - + Upload limit: + Ograničenje slanja: - Apply - + Download limit: + Ograničenje preuzimanja: - Add - + Apply + Primjeni - Upload Torrents - + Add + Dodaj - All - + Upload Torrents + Slanje torrenata - Downloading - Preuzimanje + All + Sve - Seeding - Seedanje + Downloading + Preuzimanje - Completed - Završeno + Seeding + Seedanje - Resumed - + Completed + Završeno - Paused - Pauzirano + Resumed + Nastavljeno - Active - + Paused + Pauzirano - Inactive - + Active + Aktivno - Save files to location: - Spremi datoteke ovdje: + Inactive + Neaktivno - Label: - Oznaka: + Save files to location: + Spremi datoteke na lokaciju: - Cookie: - + Label: + Oznaka: - Type folder here - + Cookie: + Kolačić: - Other... + Type folder here + Upišite mapu ovdje + + + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Spremi datoteke u + + + + Watch Folder + Mapa za gledanje + + + + Default Folder + Zadana mapa + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Ostalo... + + + + Every day + Schedule the use of alternative rate limits on ... + Svaki dan + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Ostalo... + + + Downloaded Is the file downloaded or not? Preuzeto @@ -1589,60 +1719,60 @@ You should get this information from your Web browser preferences. Logout - + Odjava - + Upload local torrent - + Slanje lokalnog torrenta - + Are you sure you want to delete the selected torrents from the transfer list? - + Sigurni ste da želite ukloniti odabrane torrente sa liste prijenosa? - + The Web UI username must be at least 3 characters long. Korisničko ime web sučelja mora imati najmanje 3 znaka. - + The Web UI password must be at least 3 characters long. Lozinka web sučelja mora imati najmanje 3 znaka. - + Save Spremi - + qBittorrent client is not reachable qBittorrent klijent nije dostupan - + HTTP Server HTTP poslužitelj - + The following parameters are supported: Podržani su sljedeći parametri: - + Torrent path Putanja torrenta - + Torrent name - Ime torrenta + Naziv torrenta - + qBittorrent has been shutdown. qBittorrent je bio ugašen. @@ -1685,7 +1815,7 @@ You should get this information from your Web browser preferences. Add label... - Dodaj oznaku ... + Dodaj oznaku... @@ -1710,7 +1840,7 @@ You should get this information from your Web browser preferences. Delete torrents - Izbriši torrente + Ukloni torrente @@ -1725,12 +1855,12 @@ You should get this information from your Web browser preferences. Invalid label name - Neispravno ime oznake + Neispravni naziv oznake Please don't use any special characters in the label name. - Nemojte koristiti niti jedan poseban znak u imenu oznake. + Nemojte koristiti niti jedan poseban znak u nazivu oznake. @@ -1779,7 +1909,7 @@ You should get this information from your Web browser preferences. On Downloads &Done - + Ka&d preuzimanje završi @@ -1789,7 +1919,7 @@ You should get this information from your Web browser preferences. &Options... - &Opcije ... + &Opcije... @@ -1799,103 +1929,103 @@ You should get this information from your Web browser preferences. Torrent &Creator - + St&varač torrenta Set Upload Limit... - + Namjesti ograničenje slanja... Set Download Limit... - + Namjesti ograničenje preuzimanja... Set Global Download Limit... - + Namjesti globalno ograničenje preuzimanja... Set Global Upload Limit... - + Namjesti globalno ograničenje slanja... Minimum Priority - + Minimalni prioritet Top Priority - + Najveći prioritet Decrease Priority - + Smanji prioritet Increase Priority - + Povećaj prioritet Alternative Speed Limits - + Alternativno ograničenje brzine &Top Toolbar - + Gornja alatna &traka Display Top Toolbar - + Prikaži gornju alatnu traku S&peed in Title Bar - + Brzina u &naslovnoj traci Show Transfer Speed in Title Bar - + Prikaži brzinu prijenosa u naslovnoj traci &RSS Reader - + &RSS čitač Search &Engine - + Pr&etraživač L&ock qBittorrent - + Zaključaj qBitt&orrent &Import Existing Torrent... - + Uvez&i postojeći torrent... Import Torrent... - + Uvezi torrent... Do&nate! - + Do&niraj! @@ -1905,52 +2035,52 @@ You should get this information from your Web browser preferences. &Log - + &Dnevnik &Exit qBittorrent - + Izlaz iz qBittorr&enta &Suspend System - + &Suspendiraj sustav &Hibernate System - + &Hiberniraj sustav S&hutdown System - + U&gasi sustav &Disabled - + On&emogućeno &Statistics - + &Statistika Check for Updates - + Provjeri ažuriranja Check for Program Updates - + Provjeri ažuriranje programa &About - &O + &O programu @@ -1960,7 +2090,7 @@ You should get this information from your Web browser preferences. &Delete - Iz&briši + &Ukloni @@ -1970,7 +2100,7 @@ You should get this information from your Web browser preferences. &Add Torrent File... - + Dod&aj torrent datoteku... @@ -1980,7 +2110,7 @@ You should get this information from your Web browser preferences. E&xit - + &Izlaz @@ -2006,12 +2136,12 @@ You should get this information from your Web browser preferences. Check for program updates - Provjeri ažuriranja + Provjeri ažuriranja programa Add Torrent &Link... - + Dodaj torrent &poveznicu... @@ -2037,17 +2167,17 @@ You should get this information from your Web browser preferences. &Set Password - + Namje&sti lozinku &Clear Password - + &Očisti lozinku Transfers - Transferi + Prijenosi @@ -2058,8 +2188,8 @@ You should get this information from your Web browser preferences. qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? - qBittorrent nije zadana aplikacija za otvaranje torrent datoteka ili Magnet linkova. -Želite li pridružiti qBittorrent torrent datotekama i Magnet linkovima? + qBittorrent nije zadana aplikacija za otvaranje torrent datoteka ili Magnet poveznica. +Želite li pridružiti qBittorrent torrent datotekama i Magnet poveznicama? @@ -2128,17 +2258,17 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Transfers (%1) - Transferi (%1) + Prijenosi (%1) Error - + Greška Failed to add torrent: %1 - + Neuspjeh dodavanja torrenta: %1 @@ -2174,64 +2304,65 @@ Do you want to associate qBittorrent to torrent files and Magnet links? Global Upload Speed Limit - Globalni limit brzine slanja + Globalno ograničenje brzine slanja Global Download Speed Limit - Globalni limit brzine preuzimanja + Globalno ograničenje brzine preuzimanja &No - &Ne + &Ne &Yes - &Da + &Da &Always Yes - + Uvijek d&a Python found in %1 - + Python pronađen na %1 Old Python Interpreter - + Stari Python interpreter qBittorrent Update Available - + qBittorrent ažuriranje dostupno A new version is available. Do you want to download %1? - + Nova verzija je dostupna. +Želite li preuzeti %1? Already Using the Latest qBittorrent Version - + Već koristite posljednju qBittorrent verziju Undetermined Python version - + Nije utvrđena Python verzija '%1' has finished downloading. e.g: xxx.avi has finished downloading. - + '%1' je završio preuzimanje. @@ -2239,60 +2370,63 @@ Do you want to download %1? Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - + Dogodila se I/O greška za torrent '%1'. +Razlog: %2 The torrent '%1' contains torrent files, do you want to proceed with their download? - + Torrent '%1' sadrži torrent datoteke, želite li i njih preuzeti? Couldn't download file at URL '%1', reason: %2. - + Nemoguće preuzeti datoteku sa URL-a '%1', razlog: %2. Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - + Vaša Python verzija %1 je zastarjela. Molimo nadogradite na posljednju verziju kako bi pretraživači radili. Minimalni zahtjev: 2.7.0./3.3.0. Couldn't determine your Python version (%1). Search engine disabled. - + Nemoguće odrediti vašu Python verziju (%1). Pretraživači onemogućeni. Missing Python Interpreter - Nedostaje Python Interpreter + Nedostaje Python interpreter Python is required to use the search engine but it does not seem to be installed. Do you want to install it now? - + Python je potreban kako bi se koristili pretraživači, ali čini se da nije instaliran. +Želite li ga sada instalirati? Python is required to use the search engine but it does not seem to be installed. - + Python je potreban kako bi se koristili pretraživači, ali čini se da nije instaliran. No updates available. You are already using the latest version. - + Nema dostupnih ažuriranja. +Već koristite posljednju verziju. &Check for Updates - + &Provjeri ažuriranja Checking for Updates... - + Provjeravanje ažuriranja... @@ -2302,7 +2436,7 @@ You are already using the latest version. Python found in '%1' - + Python pronađen na '%1' @@ -2326,12 +2460,12 @@ Instalirajte ručno. RSS (%1) - + RSS (%1) URL download error - + Greška URL preuzimanja @@ -2396,52 +2530,52 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Your dynamic DNS was successfully updated. - + Vaš dinamični DNS je uspješno ažuriran. Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - + Greška dinamičnog DNS-a: Servis je privremeno nedostupan, ponovni pokušaj za 30 minuta. Dynamic DNS error: hostname supplied does not exist under specified account. - + Greška dinamičnog DNS-a: isporučeni naziv računala ne postoji pod specifičnim računom. Dynamic DNS error: Invalid username/password. - + Greška dinamičnog DNS-a: Neispravno korisničko ime ili lozinka. Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - + Greška dinamičnog DNS-a: qBittorrent je na crnoj listi servisa, molimo prijavite bug na http://bugs.qbittorrent.org. Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - + Greška dinamičnog DNS-a: %1 je vraćeno od servisa, molimo prijavite bug na http://bugs.qbittorrent.org. Dynamic DNS error: Your username was blocked due to abuse. - + Greška dinamičnog DNS-a: Vaše korisničko ime je blokirano zbog zlouporabe servisa. Dynamic DNS error: supplied domain name is invalid. - + Greška dinamičnog DNS-a: isporučeni naziv računala je neispravan. Dynamic DNS error: supplied username is too short. - + Greška dinamičnog DNS-a: isporučeno korisničko ime je prekratko. Dynamic DNS error: supplied password is too short. - + Greška dinamičnog DNS-a: isporučena lozinka je prekratka. @@ -2449,17 +2583,17 @@ Jeste li sigurni da želite zatvoriti qBittorrent? I/O Error - I/O greška + Greška I/O The file size is %1. It exceeds the download limit of %2. - + Veličina datoteke je %1. Prekoračeno je ograničenje preuzimanja od %2. Unexpected redirect to magnet URI. - + Neočekivano preusmjeravanje za magnet URI. @@ -2468,1284 +2602,1284 @@ Jeste li sigurni da želite zatvoriti qBittorrent? GeoIP database loaded. Type: %1. Build time: %2. - + GeoIP baza podataka učitana. Tip: %1. Vrijeme pravljenja: %2. Couldn't load GeoIP database. Reason: %1 - + Nemoguće učitati GeoIP bazu podataka. Razlog: %1 Venezuela, Bolivarian Republic of - + Venezuela, Bolivarijanska Republika Viet Nam - + Vijetnam N/A - + Nepoznato Andorra - + Andora United Arab Emirates - + Ujedinjeni Arapski Emirati Afghanistan - + Afganistan Antigua and Barbuda - + Antigva i Barbuda Anguilla - + Angvila Albania - + Albanija Armenia - + Armenija Angola - + Angola Antarctica - + Antartika Argentina - + Argentina American Samoa - + Američka Samoa Austria - + Austrija Australia - + Australija Aruba - + Aruba Azerbaijan - + Azerbajdžan Bosnia and Herzegovina - + Bosna i Hercegovina Barbados - + Barbados Bangladesh - + Bangladeš Belgium - + Belgija Burkina Faso - + Burkina Faso Bulgaria - + Bugarska Bahrain - + Bahrein Burundi - + Burundi Benin - + Benin Bermuda - + Bermuda Brunei Darussalam - + Brunei Brazil - + Brazil Bahamas - + Bahami Bhutan - + Butan Bouvet Island - + Otok Bouvet Botswana - + Bocvana Belarus - + Bjelorusija Belize - + Belize Canada - + Kanada Cocos (Keeling) Islands - + Kokosov otok Congo, The Democratic Republic of the - + Kongo, Demokratska Republika Central African Republic - + Centralna Afrička Republika Congo - + Kongo Switzerland - + Švicarska Cook Islands - + Cookovo Otočje Chile - + Čile Cameroon - + Kamerun China - + Kina Colombia - + Kolumbija Costa Rica - + Kostarika Cuba - + Kuba Cape Verde - + Zelenortska Republika Curacao - + Curacao Christmas Island - + Božićni Otok Cyprus - + Cipar Czech Republic - + Češka republika Germany - + Njemačka Djibouti - + Džibuti Denmark - + Danska Dominica - + Dominika Dominican Republic - + Dominikanska republika Algeria - + Alžir Ecuador - + Ekvador Estonia - + Estonija Egypt - + Egipat Western Sahara - + Zapadna Sahara Eritrea - + Eritreja Spain - + Španjolska Ethiopia - + Etiopija Finland - + Finska Fiji - + Fidži Falkland Islands (Malvinas) - + Falklandski otoci Micronesia, Federated States of - + Mikronezija, Federalne Države Faroe Islands - + Farski otoci France - Francuska + Francuska Gabon - + Gabon United Kingdom - + Ujedinjeno Kraljevstvo Grenada - + Grenada Georgia - + Gruzija French Guiana - + Francuska Gvajana Ghana - + Gana Gibraltar - + Gibraltar Greenland - + Grenland Gambia - + Gambia Guinea - + Gvineja Guadeloupe - + Gvadalupa Equatorial Guinea - + Ekvatorska Gvineja Greece - Grčka + Grčka South Georgia and the South Sandwich Islands - + Južna Georgija i otočje Južni Sandwich Guatemala - + Gvatemala Guam - + Guam Guinea-Bissau - + Gvineja Bisau Guyana - + Gvajana Hong Kong - + Hong Kong Heard Island and McDonald Islands - + Otok Heard i otočje McDonald Honduras - + Honduras Croatia - + Hrvatska Haiti - + Haiti Hungary - + Mađarska Indonesia - + Indonezija Ireland - + Irska Israel - + Izrael India - + Indija British Indian Ocean Territory - + Britanski Indijskooceanski teritorij Iraq - + Irak Iran, Islamic Republic of - + Iran, Islamska Republika Iceland - + Island Italy - + Italija Jamaica - + Jamajka Jordan - + Jordan Japan - + Japan Kenya - + Kenija Kyrgyzstan - + Kirgistan Cambodia - + Kambodža Kiribati - + Kiribati Comoros - + Komori Saint Kitts and Nevis - + Sveti Kristofor i Nevis Korea, Democratic People's Republic of - + Koreja, Demokratska Narodna Republika Korea, Republic of - + Koreja, Republika Kuwait - + Kuvajt Cayman Islands - + Kajmanski otoci Kazakhstan - + Kazahstan Lao People's Democratic Republic - + Laoska Narodna Demokratska Republika Lebanon - + Libanon Saint Lucia - + Sveta Lucija Liechtenstein - + Lihtenštajn Sri Lanka - + Šri Lanka Liberia - + Liberija Lesotho - + Lesoto Lithuania - + Litva Luxembourg - + Luksemburg Latvia - + Latvija Morocco - + Maroko Monaco - + Monako Moldova, Republic of - + Moldavija, Republika Madagascar - + Madagaskar Marshall Islands - + Maršalovi Otoci Mali - + Mali Myanmar - + Mjanmar Mongolia - + Mongolija Northern Mariana Islands - + Sjevernomarijanski otoci Martinique - + Martinik Mauritania - + Mauritanija Montserrat - + Montserrat Malta - + Malta Mauritius - + Mauricijus Maldives - + Maldivi Malawi - + Malavi Mexico - + Meksiko Malaysia - + Malezija Mozambique - + Mozambik Namibia - + Namibija New Caledonia - + Nova Kaledonija Niger - + Niger Norfolk Island - + Otok Norfolk Nigeria - + Nigerija Nicaragua - + Nikaragva Netherlands - + Nizozemska Norway - + Norveška Nepal - + Nepal Nauru - + Nauru Niue - + Niue New Zealand - + Novi Zeland Oman - + Oman Panama - + Panama Peru - + Peru French Polynesia - + Francuska Polinezija Papua New Guinea - + Papua Nova Gvineja Philippines - + Filipini Pakistan - + Pakistan Poland - + Poljska Saint Pierre and Miquelon - + Sveti Petar i Mikelon Puerto Rico - + Portoriko Portugal - + Portugal Palau - + Palau Paraguay - + Paragvaj Qatar - + Katar Reunion - + Reunion Romania - + Rumunjska Russian Federation - + Ruska Federacija Rwanda - + Ruanda Saudi Arabia - + Saudijska Arabija Solomon Islands - + Salomonski Otoci Seychelles - + Sejšeli Sudan - + Sudan Sweden - + Švedska Singapore - + Singapur Slovenia - + Slovenija Svalbard and Jan Mayen - + Svalbard i Jan Mayen Slovakia - + Slovačka Sierra Leone - + Sijera Leone San Marino - + San Marino Senegal - + Senegal Somalia - + Somalija Suriname - + Surinam Sao Tome and Principe - + Sveti Toma i Princip El Salvador - + Salvador Syrian Arab Republic - + Sirijska Arapska Republika Swaziland - + Svazi Turks and Caicos Islands - + Otoci Turks i Caicos Chad - + Čad French Southern Territories - + Francuski Južni Teritoriji Togo - + Togo Thailand - + Tajland Tajikistan - + Tadžikistan Tokelau - + Tokelau Turkmenistan - + Turkmenistan Tunisia - + Tunis Tonga - + Tonga Timor-Leste - + Istočni Timor Bolivia, Plurinational State of - + Bolivija, Višenacionalna Država Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius i Saba Cote d'Ivoire - + Obala Bjelokosti Libya - + Libija Saint Martin (French part) - + Sveti Martin (Francuski dio) Macedonia, The Former Yugoslav Republic of - + Makedonija, Bivša Jugoslavenska Republika Macao - + Makao Pitcairn - + Pitcairnovo Otočje Palestine, State of - + Palestina, Država Saint Helena, Ascension and Tristan da Cunha - + Sveta Helena, Ascension i Tristan da Cunha South Sudan - + Južni Sudan Sint Maarten (Dutch part) - + Sveti Martin (Nizozemski dio) Turkey - + Turska Trinidad and Tobago - + Trinidad i Tobago Tuvalu - + Tuvalu Taiwan - + Tajvan Tanzania, United Republic of - + Tanzanija, Ujedinjena Republika Ukraine - + Ukrajina Uganda - + Uganda United States Minor Outlying Islands - + Mali udaljeni otoci SAD-a United States - + Ujedinjene Države Uruguay - + Urugvaj Uzbekistan - + Uzbekistan Holy See (Vatican City State) - + Sveta Stolica (Vatikanski Grad) Saint Vincent and the Grenadines - + Sveti Vincent i Grenadini Virgin Islands, British - + Djevičanski otoci, Britanski Virgin Islands, U.S. - + Djevičanski otoci, Američki Vanuatu - + Vanuatu Wallis and Futuna - + Wallis i Futuna Samoa - + Samoa Yemen - + Jemen Mayotte - + Mayotte Serbia - + Srbija South Africa - + Južna Afrika, Republika Zambia - + Zambija Montenegro - + Crna Gora Zimbabwe - + Zimbabve Aland Islands - + Alandski otoci Guernsey - + Guernsey Isle of Man - + Otok Man Jersey - + Jersey Saint Barthelemy - + Sveti Bartolomej Could not uncompress GeoIP database file. - + Nemoguće otpakirati datoteku GeoIP baze podataka. Couldn't save downloaded GeoIP database file. - + Nemoguće spremiti preuzetu datoteku GeoIP baze podataka. Successfully updated GeoIP database. - + Uspješno ažurirana GeoIP baza podataka. Couldn't download GeoIP database file. Reason: %1 - + Nemoguće preuzeti datoteku GeoIP baze podataka. Razlog: %1 @@ -3753,20 +3887,20 @@ Jeste li sigurni da želite zatvoriti qBittorrent? UPnP / NAT-PMP support [ON] - + UPnP / NAT-PMP podrška [Uključeno] UPnP / NAT-PMP support [OFF] - + UPnP / NAT-PMP podrška [Isključeno] Net::Smtp - + Email Notification Error: - + Greška obavijesti e-pošte: @@ -3774,72 +3908,72 @@ Jeste li sigurni da želite zatvoriti qBittorrent? interested(local) and choked(peer) - + zainteresiran(lokalni) i zagušen(peer) interested(local) and unchoked(peer) - + zainteresiran(lokalni) i nezagušen(peer) interested(peer) and choked(local) - + zainteresiran(peer) i zagušen(lokalni) interested(peer) and unchoked(local) - + zainteresiran(peer) i nezagušen(lokalni) optimistic unchoke - + optimistično nezagušenje peer snubbed - + peer odbijen incoming connection - + dolazeći spoj not interested(local) and unchoked(peer) - + nezainteresiran(lokalni) i nezagušen(peer) not interested(peer) and unchoked(local) - + nezainteresiran(peer) i nezagušen(lokalni) peer from PEX - + peer iz PEX-a peer from DHT - + peer iz DHT-a encrypted traffic - + šifrirani promet encrypted handshake - + šifrirano rukovanje peer from LSD - + peer iz LSD-a @@ -3910,12 +4044,12 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Files i.e. files that are being downloaded right now - + Datoteke Add a new peer... - Dodaj novi peer ... + Dodaj novi peer... @@ -3931,17 +4065,17 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Manually adding peer '%1'... - + Ručno dodavanje peera '%1'... The peer '%1' could not be added to this torrent. - + Peer '%1' nije moguće dodati za ovaj torrent. Manually banning peer '%1'... - + Ručna zabrana peera '%1'... @@ -3952,12 +4086,12 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Some peers could not be added. Check the Log for details. - + Neki peerovi nisu dodani. Pogledajte Dnevnik za detalje. The peers were added to this torrent. - + Peerovi su dodani ovom torrentu. @@ -3980,22 +4114,22 @@ Jeste li sigurni da želite zatvoriti qBittorrent? No peer entered - + Nije unešen peer Please type at least one peer. - + Molim napišite barem jedan peer. Invalid peer - + Nevaljan peer The peer '%1' is invalid. - + Peer '%1' je nevaljan @@ -4003,12 +4137,12 @@ Jeste li sigurni da želite zatvoriti qBittorrent? White: Unavailable pieces - + Bijelo: Nedostupni dijelovi Blue: Available pieces - + Plavo: Dostupni dijelovi @@ -4016,65 +4150,65 @@ Jeste li sigurni da želite zatvoriti qBittorrent? Search plugins - Tražilice + Dodaci za traženje Installed search plugins: - + Instalirani dodaci za pretraživanje: Name - Ime + Naziv Version - + Verzija Url - Url + Url Enabled - Omogućeno + Omogućeno You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nove tražilice možete naći ovdje: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Možete nabaviti nove dodatke za pretraživanje ovdje: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Instaliraj novu + Instalirajte novi Check for updates - Provjeri ažuriranja + Provjerite ažuriranja Close - Zatvori + Zatvori Uninstall - Deinstaliraj + Uklonite Yes - Da + Da @@ -4082,106 +4216,107 @@ Jeste li sigurni da želite zatvoriti qBittorrent? No - Ne + Ne Uninstall warning - Upozorenje deinstalacije + Upozorenje uklanjanja Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - + Neki dodaci nisu uklonjeni zato što su uključeni u qBittorrent. Možete ukloniti samo one koje ste sami dodali. +Ti dodaci su onemogućeni. Uninstall success - Deinstalacija je uspjela + Uspješno uklonjeno All selected plugins were uninstalled successfully - Sve izabrane tražilice su uspješno deinstalirane + Svi odabrani dodaci su uklonjeni uspješno New search engine plugin URL - Novi URL tražilice + Novi URL dodatka za pretraživanje URL: - URL: + URL: Invalid link - Nevažeća poveznica + Nevaljana poveznica The link doesn't seem to point to a search engine plugin. - Link ne vodi na modul za tražilicu + Čini se da poveznica ne povezuje sa dodatkom za pretraživanje. Select search plugins - Izaberite tražilice + Odaberite dodatke za pretraživanje qBittorrent search plugin - + qBittorrent dodatak za pretraživanje Search plugin update - Ažuriranje tražilice + Ažuriranje dodataka za pretraživanje All your plugins are already up to date. - Sve vaše tražilice su ažurirane. + Svi vaši dodaci su već ažurirani. Sorry, couldn't check for plugin updates. %1 - + Oprostite, nemoguće provjeriti ažuriranje dodataka. %1 Search plugin install - Instalacija tražilice + Instalacija dodataka za pretraživanje "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" dodatak za pretraživanje je uspješno instaliran. Couldn't install "%1" search engine plugin. %2 - + Nemoguće instalirati "%1" dodatak za pretraživanje. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" dodatak za pretraživanje je uspješno ažuriran. Couldn't update "%1" search engine plugin. %2 - + Nemoguće ažurirati "%1" dodatak za pretraživanje. %2 @@ -4189,22 +4324,22 @@ Those plugins were disabled. Plugin source - Izvor priključka + Izvor dodatka Search plugin source: - Potraži izvor priključka: + Pretražite izvor dodatka: Local file - Lokalna datoteka + Lokalna datoteka Web link - Web link + Mrežna poveznica @@ -4217,7 +4352,7 @@ Those plugins were disabled. Connection - Spajanja + Veza @@ -4270,7 +4405,7 @@ Those plugins were disabled. Connections Limits - Limiti spajanja + Ograničenje spajanja @@ -4280,29 +4415,29 @@ Those plugins were disabled. Global Rate Limits - Globalni limiti brzine + Globalno ograničenje brzine Apply rate limit to transport overhead - Primijeni limit brzine za dodatni promet + Primijeni ograničenje brzine za dodatni promet Schedule the use of alternative rate limits - Planiraj korištenje alternativnih limita brzine + Planiraj korištenje alternativnih ograničenja brzine From: from (time1 to time2) - + Od: To: time1 to time2 - + Za: @@ -4372,7 +4507,7 @@ Those plugins were disabled. Run external program on torrent completion - + Pokreni vanjski program pri završetku preuzimanja torrenta @@ -4488,7 +4623,7 @@ Those plugins were disabled. Start qBittorrent minimized - Pokreni qBittorrent minimiziranog + Pokreni qBittorrent minimiziran @@ -4514,12 +4649,12 @@ Those plugins were disabled. Monochrome (Dark theme) - Monochrome (Tamna tema) + Jednobojno (Tamna tema) Monochrome (Light theme) - Monochrome (Svijetla tema) + Jednobojno (Svijetla tema) @@ -4534,7 +4669,7 @@ Those plugins were disabled. Confirm when deleting torrents - + Potvrdite brisanje torrenata @@ -4544,7 +4679,7 @@ Those plugins were disabled. Confirmation on exit when torrents are active - + Potvrda za izlaz kad su torrenti aktvni @@ -4564,12 +4699,12 @@ Those plugins were disabled. Use qBittorrent for magnet links - Koristi qBittorrent za magnetne linkove + Koristi qBittorrent za magnetne poveznice Power Management - Upravljanje energijom + Upravljanje napajanjem @@ -4620,7 +4755,7 @@ Those plugins were disabled. Add folder... - Dodaj mapu ... + Dodaj mapu... @@ -4640,22 +4775,22 @@ Those plugins were disabled. SMTP server: - SMPT poslužitelj: + SMTP poslužitelj: This server requires a secure connection (SSL) - Ovaj poslužitelj zahtijeva sigurnu vezu (SSL) + Ovaj poslužitelj zahtjeva sigurnu vezu (SSL) Listening Port - Osluškivanje porta + Port za slušanje Use UPnP / NAT-PMP port forwarding from my router - Koristi UPnP / NAT-PMP port prosljeđivanje s mojeg routera + Koristi UPnP / NAT-PMP port prosljeđivanje s mojeg rutera @@ -4685,12 +4820,12 @@ Those plugins were disabled. Use proxy only for torrents - + Koristite proxy samo za torrente RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - + RSS kanali, pretraživači, ažuriranje programa ili bilo što osim prijenosa torrenta i sličnih operacija (kao razmjena peerova) će koristiti direktnu vezu @@ -4710,12 +4845,12 @@ Those plugins were disabled. Apply to trackers - + Primjeni za trakcere Apply rate limit to peers on LAN - + Primjeni ograničenje brzine za peerove na LAN-u @@ -4725,27 +4860,27 @@ Those plugins were disabled. Weekdays - + Radni dani Weekends - + Vikend Rate Limits Settings - + Postavke ograničenja brzine Enable µTP protocol - + Omogući µTP protokol Apply rate limit to µTP protocol - + Primjeni ograničenje brzine za µTP protokol @@ -4780,7 +4915,7 @@ Those plugins were disabled. Do not count slow torrents in these limits - Ne računaj spore torrente u ovim limitima + Ne računaj spore torrente u ovim granicama @@ -4805,12 +4940,12 @@ Those plugins were disabled. Automatically add these trackers to new downloads: - + Automatski dodaj ove trackere za nova preuzimanja: Use UPnP / NAT-PMP to forward the port from my router - Koristi UPnP / NAT-PMP za prosljeđivanje porta s mojeg routera + Koristi UPnP / NAT-PMP za prosljeđivanje porta s mojeg rutera @@ -4825,7 +4960,7 @@ Those plugins were disabled. Import SSL Key - Uvezi SSl ključ + Uvezi SSL ključ @@ -4835,7 +4970,7 @@ Those plugins were disabled. Alternative Rate Limits - + Alternativno ograničenje brzine @@ -4850,12 +4985,12 @@ Those plugins were disabled. Bypass authentication for localhost - Zaobiđi autentifikaciju za localhosta + Zaobiđi autentifikaciju za localhost Update my dynamic domain name - Ažuriraj moje dinamičko ime domene + Ažuriraj moj dinamički naziv domene @@ -4870,7 +5005,7 @@ Those plugins were disabled. Domain name: - Ime domene: + Naziv domene: @@ -4924,7 +5059,7 @@ Those plugins were disabled. Share Ratio Limiting - Limitiranje omjera djeljenja + Ograničenje omjera djeljenja @@ -4942,19 +5077,19 @@ Those plugins were disabled. Putanja filtera (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + Otkriven je krivi izlaz iz programa. Korištenje rezervne datoteke za vraćanje postavki. - + An access error occurred while trying to write the configuration file. - + Došlo je do pogreške pri pokušaju pristupa pisanja konfiguracijske datoteke. - + A format error occurred while trying to write the configuration file. - + Došlo je do pogreške formata dok je pokušavao napisati konfiguracijsku datoteku. @@ -4962,7 +5097,7 @@ Those plugins were disabled. Name - Ime + Naziv @@ -5052,7 +5187,7 @@ Those plugins were disabled. Speed - Brzina + Brzina @@ -5070,23 +5205,23 @@ Those plugins were disabled. Progress: - Napredak: + Napredak: Transfer - Transfer + Prijenos Time Active: Time (duration) the torrent is active (not paused) - + Aktivno vrijeme: ETA: - + ETA: @@ -5096,32 +5231,32 @@ Those plugins were disabled. Seeds: - + Seederi: Download Speed: - + Brzina preuzimanja: Upload Speed: - + Brzina slanja: Peers: - + Peerovi: Download Limit: - + Ograničenje preuzimanja: Upload Limit: - + Ograničenje slanja: @@ -5166,57 +5301,57 @@ Those plugins were disabled. Share Ratio: - + Omjer dijeljenja: Reannounce In: - + Ponovno najavi za: Last Seen Complete: - + Zadnje viđen završeni: Total Size: - + Ukupna veličina: Pieces: - + Dijelovi: Created By: - + Stvorio: Added On: - + Dodan: Completed On: - + Završen: Created On: - + Napravljan: Torrent Hash: - + Torrent hash: Save Path: - + Putanja spremanja: @@ -5232,45 +5367,45 @@ Those plugins were disabled. Never - Nikad + Nikada %1 x %2 (have %3) (torrent pieces) eg 152 x 4MB (have 25) - + %1 x %2 (ima %3) %1 (%2 this session) - + %1 (%2 ove sesije) %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (seedano za %2) %1 (%2 max) %1 and %2 are numbers, e.g. 3 (10 max) - + %1 (%2 max) %1 (%2 total) %1 and %2 are numbers, e.g. 3 (10 total) - + %1 (%2 ukupno) %1 (%2 avg.) %1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.) - + %1 (%2 prosj.) @@ -5285,7 +5420,7 @@ Those plugins were disabled. Rename... - Preimenuj ... + Preimenuj... @@ -5320,7 +5455,7 @@ Those plugins were disabled. New name: - Novo ime: + Novi naziv: @@ -5331,13 +5466,13 @@ Those plugins were disabled. This file name contains forbidden characters, please choose a different one. - Ovo ime datoteke sadrži zabranjene znakove. Izaberite druge. + Ovaj naziv datoteke sadrži zabranjene znakove. Izaberite drugi. This name is already in use in this folder. Please use a different name. - Ovo ime već se koristi u toj mapi. Koristite drugo. + Ovaj naziv već se koristi u toj mapi. Koristite drugi. @@ -5358,18 +5493,18 @@ Those plugins were disabled. New URL seed New HTTP source - + Novi seed URL New URL seed: - + Novi seed URL: This URL seed is already in the list. - + Ovaj URL seed je već u listi. @@ -5385,112 +5520,113 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. - + Vaša IP adresa je zabranjena nakon previše neuspješnih pokušaja autentifikacije. Error: '%1' is not a valid torrent file. - + Greška: '%1' nije valjana torrent datoteka. + Error: Could not add torrent to session. - + Greška: Nemoguće dodati torrent u sesiju. I/O Error: Could not create temporary file. - + I/O Greška: Nemoguće napraviti privremenu datoteku. %1 is an unknown command line parameter. --random-parameter is an unknown command line parameter. - + %1 je nepoznat parametar naredbenog retka. %1 must be the single command line parameter. - + %1 mora biti jedinstven parametar naredbenog retka. %1 must specify the correct port (1 to 65535). - + %1 mora navesti ispravan port (1 do 65535). You cannot use %1: qBittorrent is already running for this user. - + Nemoguće koristiti %1: qBittorrent je već pokrenut za ovog korisnika. Usage: - + Upotreba: Options: - + Postavke: Displays program version - + Prikazuje verziju programa Displays this help message - + Prikazuje ovu poruku pomoći Changes the Web UI port (current: %1) - + Mijenja port web sučelja (trenutno: %1) Disable splash screen - + Onemogući najavni ekran Run in daemon-mode (background) - + Pokreni u pozadinskom načinu Downloads the torrents passed by the user - + Preuzima torrente koje je korisnik dodao Help - Pomoć + Pomoć Run application with -h option to read about command line parameters. - + Pokreni aplikaciju sa -h argumentom kako bi pročitali o parametrima naredbenog retka. Bad command line - + Loš naredbeni redak Bad command line: - + Loš naredbeni redak: Legal Notice - + Pravna obavijest @@ -5498,194 +5634,196 @@ Those plugins were disabled. qBittorrent is a file sharing program. When you run a torrent, its data will be made available to others by means of upload. Any content you share is your sole responsibility. No further notices will be issued. - + qBittorrent je program za dijeljenje datoteka. Kada koristite torrent, njegovi podaci će biti dostupni drugima zbog slanja. Sav sadržaj koji dijelite je na vašu osobnu odgovornost. + +Više neće biti obavijesti o ovome. Press %1 key to accept and continue... - + Pritisnite %1 tipku da prihvatite i nastavite... Legal notice - + Pravna obavijest Cancel - Odustani + Odustani I Agree - + Slažem se Torrent name: %1 - + Naziv torrenta: %1 Torrent size: %1 - + Veličina torrenta: %1 Save path: %1 - + Putanja spremanja: %1 The torrent was downloaded in %1. The torrent was downloaded in 1 hour and 20 seconds - + Torrent je preuzet u %1. Thank you for using qBittorrent. - + Hvala Vam što koristite qBittorrent. [qBittorrent] '%1' has finished downloading - + [qBittorrent] '%1' je završio s preuzimanjem The remote host name was not found (invalid hostname) - + Udaljeni naziv računala nije pronađen (nevaljani naziv računala) The operation was canceled - + Operacija je prekinuta The remote server closed the connection prematurely, before the entire reply was received and processed - + Udaljeni poslužitelj je zatvorio vezu prerano, prije nego je cijeli odgovor primljen i obrađen The connection to the remote server timed out - + Veza sa udaljenim poslužiteljom je istekla SSL/TLS handshake failed - + SSL/TLS rukovanje nije uspjelo The remote server refused the connection - + Udaljeni poslužitelj je odbio vezu The connection to the proxy server was refused - + Veza za proxy poslužiteljom je odbijena The proxy server closed the connection prematurely - + Proxy poslužitelj je zatvorio vezu prerano The proxy host name was not found - + Proxy naziv računala nije pronađen The connection to the proxy timed out or the proxy did not reply in time to the request sent - + Veza sa proxyjem je istekla ili proxy nije odgovorio na vrijeme za poslani zahjev The proxy requires authentication in order to honor the request but did not accept any credentials offered - + Proxy zahtjeva autentifikaciju kako bi se ispoštovao zahtjev ali nije prihvatio ponuđene vjerodajnice. The access to the remote content was denied (401) - + Pristup udaljenom sadržaju je odbijen (401) The operation requested on the remote content is not permitted - + Operacija tražena na udaljenom sadržaju nije dopuštena The remote content was not found at the server (404) - + Udaljeni sadržaj nije pronađen na poslužitelju (404) The remote server requires authentication to serve the content but the credentials provided were not accepted - + Udaljeni poslužitelj zahtjeva autentifikaciju kako bi poslužio sadržaj ali dane vjerodajnice nisu prihvaćene The Network Access API cannot honor the request because the protocol is not known - + Mrežni API pristup ne može ispoštovati zahtjev zato što je protokol nepoznat The requested operation is invalid for this protocol - + Zahtjevana operacija ne odgovara za ovaj protokol An unknown network-related error was detected - + Nepoznata mrežna greška se dogodila An unknown proxy-related error was detected - + Nepoznata proxy greška se dogodila An unknown error related to the remote content was detected - + Nepoznata greška u vezi sa udaljenim sadržajem se dogodila A breakdown in protocol was detected - + Slom protokola se dogodio Unknown error - + Nepoznata greška Upgrade - + Nadogradnja You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - + Ažurirali ste sa starije verzije koja je spremala stvari drukčije. Morate migrirati u novi sustav spremanja. Nećete biti u mogućnosti koristiti stariju verziju od v3.3.0 opet. Nastavite? [d/n] You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - + Ažurirali ste sa starije verzije koja je spremala stvari drukčije. Morate migrirati u novi sustav spremanja. Nećete biti u mogućnosti koristiti stariju verziju od v3.3.0 opet. Couldn't migrate torrent with hash: %1 - + Nemoguće migrirati torrent sa hash-om: %1 Couldn't migrate torrent. Invalid fastresume file name: %1 - + Nemoguće migrirati torrent. Nevaljani naziv datoteke brzog nastavka: %1 @@ -5698,7 +5836,7 @@ No further notices will be issued. New subscription - Nova predbilježba + Nova preplata @@ -5720,23 +5858,23 @@ No further notices will be issued. Settings... - Postavke ... + Postavke... Torrents: (double-click to download) - + Torrenti: (dupli klik za preuzimanje) Delete - Izbriši + Ukloni Rename... - Preimenuj ... + Preimenuj... @@ -5752,7 +5890,7 @@ No further notices will be issued. New subscription... - Nova predbilježba ... + Nova pretplata... @@ -5768,7 +5906,7 @@ No further notices will be issued. Open news URL - Otvori news URL + Otvori URL vijesti @@ -5778,17 +5916,17 @@ No further notices will be issued. New folder... - Nova mapa ... + Nova mapa... Manage cookies... - Upravljaj kolačićima ... + Upravljaj kolačićima... Refresh RSS streams - Osvježi RSS strujanja + Osvježi RSS tok @@ -5796,27 +5934,27 @@ No further notices will be issued. Stream URL: - URL strujanja: + URL stream: Please type a RSS stream URL - + Molimo upišite URL RSS kanala This RSS feed is already in the list. - + RSS kanal je već u listi. Please choose a folder name - Izaberite ime mape + Izaberite naziv mape Folder name: - Ime mape: + Naziv mape: @@ -5826,32 +5964,32 @@ No further notices will be issued. Deletion confirmation - + Potvrda brisanja Are you sure you want to delete the selected RSS feeds? - + Sigurno želite ukloniti odabrani RSS kanal? Please choose a new name for this RSS feed - Izaberite novo ime za taj RSS kanal + Izaberite novi naziv za taj RSS kanal New feed name: - Novo ime kanala: + Novi naziv kanala: Name already in use - Ime se već koristi + Naziv se već koristi This name is already used by another item, please choose another one. - To ime već koristi neka druga stavka. Izaberite drugo. + Taj naziv već koristi neka druga stavka. Izaberite drugi. @@ -5874,12 +6012,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - + Automatsko preuzimanje '%1' iz '%2' RSS kanala nije uspjelo zato što ne sadrži torrent ili magnet poveznicu... Automatically downloading '%1' torrent from '%2' RSS feed... - + Automatsko preuzimanje '%1' torrenta iz '%2' RSS kanala... @@ -5887,14 +6025,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssParser - - Failed to open downloaded RSS file. - Neuspješno otvaranje preuzete RSS datoteke. + Nevaljan RSS kanal. @@ -5925,22 +6056,22 @@ No further notices will be issued. Watch Folder - + Mapa za gledanje Default Folder - + Zadana mapa Browse... - Pretraži ... + Pretraži... Choose save path - + Odaberi mapu za spremanje @@ -5948,12 +6079,12 @@ No further notices will be issued. Watch Folder - + Mapa za gledanje Default Folder - + Zadana mapa @@ -5963,170 +6094,87 @@ No further notices will be issued. Save Files to - - - - Download here - Preuzmi ovdje - - - - SearchCategories - - All categories - Kategorije - - - Movies - Filmovi - - - TV shows - TV emisije - - - Music - Glazba - - - Games - Igre - - - Anime - Animirani - - - Software - Softver - - - Pictures - Slike - - - Books - Knjige + Spremi datoteke u SearchEngine - - Search - Traži - - - Empty search pattern - Prazan predložak potrage - - - Please type a search pattern first - Prvo utipkajte predložak potrage - - - Searching... - Potraga ... - - - Stop - Zaustavi - - - Search Engine - Tražilica - - - Search has finished - Potraga je gotova - - - An error occurred during search... - Dogodila se greška za vrijeme potrage ... - - - Search aborted - Potraga je otkazana - - - Search returned no results - Potraga vraćena bez rezultata - Unknown search engine plugin file format. - + Nepoznat format datoteke dodatka za pretraživanje A more recent version of this plugin is already installed. - + Novija verzija ovog dodatka je već instalirana. Plugin is not supported. - + Dodatak nije podržan. Update server is temporarily unavailable. %1 - + Poslužitelj za ažuriranje je privremeno nedostupan. %1 Failed to download the plugin file. %1 - + Neuspjeh u preuzimanju datoteke dodatka. %1 An incorrect update info received. - + Krive informacije o ažuriranju primljene. All categories - Kategorije + Sve kategorije Movies - Filmovi + Filmovi TV shows - TV emisije + TV serije Music - Glazba + Glazba Games - Igre + Igre Anime - Animirani + Anime Software - Softver + Softver Pictures - Slike + Slike Books - Knjige + Knjige @@ -6135,7 +6183,7 @@ No further notices will be issued. Unknown - Nije poznato + Nepoznato @@ -6144,7 +6192,7 @@ No further notices will be issued. Name i.e: file name - Ime + Naziv @@ -6175,124 +6223,124 @@ No further notices will be issued. - - - + + + Search - Traži + Traži Status: - Status: + Status: - + Stopped - Zaustavljeno + Zaustavljeno Download - Preuzmi + Preuzimanje Go to description page - Idi na stranicu opisa + Idi na opisnu stranicu Copy description page URL - + Kopiraj URL opisne stranice Search plugins... - + Dodaci za pretraživanje... - + All enabled - - - - - All plugins - + Sve omogućeno - + All plugins + Svi dodaci + + + + Multiple... - + Mnogostruko... - - - + + + Search Engine - Tražilica + Dodaci za pretraživanje - + Please install Python to use the Search Engine. - + Molimo instalirajte Python kako bi koristili Pretraživače - + Empty search pattern - Prazan predložak potrage + Prazan obrazac za pretraživanje - + Please type a search pattern first - Prvo utipkajte predložak potrage + Prvo upišite obrazac za pretraživanje - - + + Results <i>(%1)</i>: i.e: Search results - - - - - Searching... - Potraga ... + Rezultati <i>(%1)</i>: + Searching... + Traženje... + + + Stop - Zaustavi + Zaustavi - - + + Search has finished - Potraga je gotova + Pretraga je završila - - + + Search aborted - Potraga je otkazana + Pretraga prekinuta - + Search returned no results - Potraga vraćena bez rezultata + Pretraga nije našla rezultate - + Search has failed - + Pretraga nije uspjela - + An error occurred during search... - Dogodila se greška za vrijeme potrage ... + Greška prilikom pretrage... @@ -6330,12 +6378,12 @@ No further notices will be issued. The computer will now go to sleep mode unless you cancel within the next %1 seconds. - + Računalo će ići u stanje mirovanja osim ako ne odustanete kroz %1 sekundi. The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - + Računalo će sada ići u način hibernacije osim ako ne odustanete kroz slijedećih %1 sekundi. @@ -6351,52 +6399,52 @@ No further notices will be issued. Total Upload - + Ukupno poslano Total Download - + Ukupno preuzeto Payload Upload - + Teret poslanog Payload Download - + Teret preuzetog Overhead Upload - + Dodatno poslano Overhead Download - + Dodatno preuzeto DHT Upload - + DHT slanje DHT Download - + DHT preuzimanje Tracker Upload - + Tracker slanje Tracker Download - + Tracker preuzimanje @@ -6404,82 +6452,82 @@ No further notices will be issued. Period: - + Razdoblje: 1 Minute - + 1 minuta 5 Minutes - + 5 minuta 30 Minutes - + 30 minuta 6 Hours - + 6 sati Select Graphs - + Odaberi grafove Total Upload - + Ukupno poslano Total Download - + Ukupno preuzeto Payload Upload - + Teret poslanog Payload Download - + Teret preuzetog Overhead Upload - + Dodatno poslano Overhead Download - + Dodatno preuzeto DHT Upload - + DHT poslano DHT Download - + DHT preuzimanje Tracker Upload - + Tracker slanje Tracker Download - + Tracker preuzimanje @@ -6497,12 +6545,12 @@ No further notices will be issued. Total peer connections: - + Ukupno peer veza: Global ratio: - + Globalni omjer: @@ -6512,12 +6560,12 @@ No further notices will be issued. Alltime upload: - + Apsolutno poslano: Total waste (this session): - + Ukupni gubitak (ova sesija): @@ -6527,42 +6575,42 @@ No further notices will be issued. Read cache Hits: - + Broj čitanja predmemorije: Total buffers size: - + Ukupna veličina međumemorije: Performance statistics - + Statistika performansi Queued I/O jobs: - + Poslova I/O u redu: Write cache overload: - + Preopterećenje pisanja predmemorije: Average time in queue (ms): - + Prosječno vrijeme čekanja u redu (ms): Read cache overload: - + Preopterećenje čitanja predmemorije: Total queued size: - + Ukupna veličina čekanja u redu: @@ -6576,7 +6624,7 @@ No further notices will be issued. Connection status: - Status spajanja: + Status veze: @@ -6619,27 +6667,27 @@ No further notices will be issued. Click to switch to alternative speed limits - Kliknite za prelazak na alternativne limite brzine + Kliknite za prelazak na alternativna ograničenja brzine Click to switch to regular speed limits - Kliknite za prelazak na uobičajene limite brzine + Kliknite za prelazak na uobičajena ograničenja brzine Manual change of rate limits mode. The scheduler is disabled. - + Ručna promjena načina ograničenja brzine. Planer je onemogućen. Global Download Speed Limit - Globalni limit brzine preuzimanja + Globalno ograničenje brzine preuzimanja Global Upload Speed Limit - Globalni limit brzine slanja + Globalno ograničenje brzine slanja @@ -6648,92 +6696,92 @@ No further notices will be issued. All (0) this is for the status filter - Sve (0) + Sve (0) Downloading (0) - + Preuzimanje (0) Seeding (0) - + Seedanje (0) Completed (0) - + Završeno (0) Resumed (0) - + Nastavljeno (0) Paused (0) - + Pauzirano (0) Active (0) - + Aktivno (0) Inactive (0) - + Neaktivno (0) Errored (0) - + S greškom (0) All (%1) - Sve (%1) + Sve (%1) Downloading (%1) - + Preuzimanje (%1) Seeding (%1) - + Seedanje (%1) Completed (%1) - + Završeno (%1) Paused (%1) - + Pauzirano (%1) Resumed (%1) - + Nastavljeno (%1) Active (%1) - + Aktivno (%1) Inactive (%1) - + Neaktivno (%1) Errored (%1) - + S greškom (%1) @@ -6741,7 +6789,7 @@ No further notices will be issued. Name - Ime + Naziv @@ -6756,11 +6804,7 @@ No further notices will be issued. Download Priority - - - - Priority - Prioritet + Prioritet preuzimanja @@ -6793,13 +6837,13 @@ No further notices will be issued. Torrent Files (*.torrent) - + Torrent datoteke (*.torrent) Torrent was created successfully: %1 %1 is the path of the torrent - + Torrent je uspješno napravljen: %1 @@ -6870,13 +6914,13 @@ No further notices will be issued. '%1' Files %1 is a file extension (e.g. PDF) - + '%1' Datoteke Please provide the location of '%1' %1 is a file name - + Molim navedite lokaciju za '%1' @@ -6900,7 +6944,7 @@ No further notices will be issued. Name i.e: torrent name - Ime + Naziv @@ -6982,13 +7026,13 @@ No further notices will be issued. Down Limit i.e: Download limit - Limit preuzimanja + Ograničenje preuzimanja Up Limit i.e: Upload limit - Limit slanja + Ograničenje slanja @@ -7006,13 +7050,13 @@ No further notices will be issued. Session Download Amount of data downloaded since program open (e.g. in MB) - + Preuzmanje u sesiji Session Upload Amount of data uploaded since program open (e.g. in MB) - + Slanje u sesiji @@ -7042,13 +7086,13 @@ No further notices will be issued. Ratio Limit Upload share ratio limit - + Ograničenje omjera Last Seen Complete Indicates the time when the torrent was last seen complete/whole - + Zadnje viđen završeni @@ -7069,84 +7113,84 @@ No further notices will be issued. All (0) this is for the label filter - Sve (0) + Sve (0) Trackerless (0) - + Bez trackera (0) Error (0) - + Greška (0) Warning (0) - + Upozorenje (0) Trackerless (%1) - + Bez trackera (%1) %1 (%2) openbittorrent.com (10) - %1 (%2) + %1 (%2) Error (%1) - + Greška (%1) Warning (%1) - + Upozorenje (%1) Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - + Nemoguće dekodirati favicon za URL '%1'. Pokušaj preuzimanja favicona u PNG formatu. Couldn't decode favicon for URL '%1'. - + Nemoguće dekodirati favicon za URL '%1'. Couldn't download favicon for URL '%1'. Reason: %2 - + Nemoguće preuzeti favicon za URL '%1'. Razlog: %2 Resume torrents - Nastavi s torrentima + Nastavi torrente Pause torrents - Pauziraj torrente + Pauziraj torrente Delete torrents - Izbriši torrente + Ukloni torrente All (%1) this is for the tracker filter - Sve (%1) + Sve (%1) @@ -7190,7 +7234,7 @@ No further notices will be issued. Updating... - Ažuriranje ... + Ažuriranje... @@ -7231,12 +7275,12 @@ No further notices will be issued. Add a new tracker... - Dodaj novi tracker ... + Dodaj novi tracker... Copy tracker URL - + Kopiraj URL trackera @@ -7318,7 +7362,7 @@ No further notices will be issued. Downloading metadata used when loading a magnet link - Preuzimanje meta podataka + Preuzimanje metapodataka @@ -7353,13 +7397,13 @@ No further notices will be issued. [F] Downloading used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Preuzimanje [F] Seeding used when the torrent is forced started. You probably shouldn't translate the F. - + [F] Seedanje @@ -7371,41 +7415,41 @@ No further notices will be issued. Queued for checking i.e. torrent is queued for hash checking - + U redu za provjeru Checking resume data used when loading the torrents from disk after qbt is launched. It checks the correctness of the .fastresume file. Normally it is completed in a fraction of a second, unless loading many many torrents. - + Provjera podataka za nastavak Completed - Završeno + Završeno Missing Files - + Nedostajuće datoteke Errored torrent status, the torrent has an error - + S greškom %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - + %1 (seedano za %2) %1 ago e.g.: 1h 20m ago - + prije %1 @@ -7413,7 +7457,7 @@ No further notices will be issued. Status - Status + Status @@ -7423,7 +7467,7 @@ No further notices will be issued. Trackers - Trackeri + Trackeri @@ -7446,12 +7490,12 @@ No further notices will be issued. Torrent Download Speed Limiting - Limitiranje brzine preuzimanja torrenta + Ograničenje brzine preuzimanja torrenta Torrent Upload Speed Limiting - Limitiranje brzine slanja torrenta + Ograničenje brzine slanja torrenta @@ -7476,12 +7520,12 @@ No further notices will be issued. Invalid label name - Neispravno ime oznake + Neispravan naziv oznake Please don't use any special characters in the label name. - Nemojte koristiti niti jedan poseban znak u imenu oznake. + Nemojte koristiti niti jedan poseban znak u nazivu oznake. @@ -7491,7 +7535,7 @@ No further notices will be issued. New name: - Novo ime: + Novi naziv: @@ -7503,7 +7547,7 @@ No further notices will be issued. Force Resume Force Resume/start the torrent - + Prisili nastavak @@ -7515,7 +7559,7 @@ No further notices will be issued. Delete Delete the torrent - Izbriši + Ukloni @@ -7525,17 +7569,17 @@ No further notices will be issued. Limit share ratio... - Limit omjera djeljenja + Ograničenje omjera djeljenja Limit upload rate... - Limitiraj brzinu slanja ... + Ograničeni brzinu slanja... Limit download rate... - Limitiraj brzinu preuzimanja ... + Ograniči brzinu preuzimanja... @@ -7569,12 +7613,12 @@ No further notices will be issued. Set location... - Postavi mjesto ... + Postavi mjesto... Copy name - + Kopiraj naziv @@ -7589,7 +7633,7 @@ No further notices will be issued. Copy magnet link - Kopiraj magnet link + Kopiraj magnet poveznicu @@ -7599,7 +7643,7 @@ No further notices will be issued. Rename... - Preimenuj ... + Preimenuj... @@ -7615,7 +7659,7 @@ No further notices will be issued. New... New label... - Nova ... + Novo... @@ -7629,12 +7673,12 @@ No further notices will be issued. Torrent Upload/Download Ratio Limiting - Limitiranje omjera slanja/preuzimanja torrenta + Ograniči omjer slanja/preuzimanja torrenta Use global ratio limit - Koristi globalni limit omjera + Koristi globalno ograničenje omjera @@ -7646,12 +7690,12 @@ No further notices will be issued. Set no ratio limit - Ne podešavaj limit omjera + Ne podešavaj ograničenje omjera Set ratio limit to - Podesi limit omjera na + Podesi ograničenje omjera na @@ -7659,12 +7703,12 @@ No further notices will be issued. The Web UI is listening on port %1 - + Web sučelje sluša na portu %1 Web UI Error - Unable to bind Web UI to port %1 - + Greška web sučelja - Nemoguće povezati web sučelje sa portom %1 @@ -7672,12 +7716,12 @@ No further notices will be issued. An advanced BitTorrent client programmed in <nobr>C++</nobr>, based on Qt toolkit and libtorrent-rasterbar. - + Napredni Bittorrent klijent programiran u <nobr>C++</nobr>, baziran na libtorrent-rasterbar i Qt programskom alatu. Copyright %1 2006-2015 The qBittorrent project - + Autorska prava %1 2006.-2015. qBittorrent projekt @@ -7687,7 +7731,7 @@ No further notices will be issued. Bug Tracker: - + Praćenje grešaka: @@ -7705,17 +7749,17 @@ No further notices will be issued. Add Peers - + Dodaj peerove List of peers to add (one per line): - + Lista peerova za dodavanje (jedan po liniji): Format: IPv4:port / [IPv6]:port - + Format: IPv4:port / [IPv6]:port @@ -7772,7 +7816,7 @@ No further notices will be issued. Also delete the files on the hard disk - Također izbriši datoteke i na čvrstom disku + Također ukloni datoteke i na čvrstom disku @@ -7836,7 +7880,7 @@ No further notices will be issued. 16 KiB - 512 KiB {16 ?} + 16 KiB @@ -7881,12 +7925,12 @@ No further notices will be issued. 8 MiB - 4 MiB {8 ?} + 8 MiB 16 MiB - 4 MiB {16 ?} + 16 MiB @@ -7911,7 +7955,7 @@ No further notices will be issued. Create and save... - Kreiraj i spremi ... + Kreiraj i spremi... @@ -7924,12 +7968,12 @@ No further notices will be issued. Add torrent links - Dodaj linkove torrenta + Dodaj poveznice torrenta One per line (HTTP links, Magnet links and info-hashes are supported) - Jedno po retku (podržani su HTTP i magnet linkovi te info-hashevi) + Jedno po retku (podržani su HTTP i magnet poveznice te info-hashevi) @@ -7957,108 +8001,6 @@ No further notices will be issued. Upišite bar jedan URL. - - engineSelect - - Search plugins - Tražilice - - - Installed search engines: - Instalirane tražilice: - - - Name - Ime - - - Url - Url - - - Enabled - Omogućeno - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nove tražilice možete naći ovdje: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instaliraj novu - - - Check for updates - Provjeri ažuriranja - - - Close - Zatvori - - - Uninstall - Deinstaliraj - - - - engineSelectDlg - - Uninstall warning - Upozorenje deinstalacije - - - Uninstall success - Deinstalacija je uspjela - - - The link doesn't seem to point to a search engine plugin. - Link ne vodi na modul za tražilicu - - - Select search plugins - Izaberite tražilice - - - Search plugin install - Instalacija tražilice - - - Yes - Da - - - No - Ne - - - Search plugin update - Ažuriranje tražilice - - - Sorry, update server is temporarily unavailable. - Oprostite, ali poslužitelj za ažuriranje trenutno nije raspoloživ. - - - All your plugins are already up to date. - Sve vaše tražilice su ažurirane. - - - All selected plugins were uninstalled successfully - Sve izabrane tražilice su uspješno deinstalirane - - - Invalid link - Nevažeća poveznica - - - New search engine plugin URL - Novi URL tražilice - - - URL: - URL: - - errorDialog @@ -8114,12 +8056,12 @@ No further notices will be issued. Python not detected - + Python nije detektiran Python version: %1 - + Python verzija: %1 @@ -8170,7 +8112,7 @@ No further notices will be issued. Updating... - Ažuriranje ... + Ažuriranje... @@ -8186,192 +8128,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Izaberite direktorij za izvoz - - - - + + + + Choose a save directory Izaberite direktorij za spremanje - + Add directory to scan Dodaj direktorij za skeniranje - - - Supported parameters (case sensitive): - - - - - %N: Torrent name - - - - - %L: Label - - - %F: Content path (same as root path for multifile torrent) - + Supported parameters (case sensitive): + Podržani parametri (osjetljivo na veličinu slova): - %R: Root path (first torrent subdirectory path) - + %N: Torrent name + %N: Torrent naziv - %D: Save path - + %L: Label + %L: Oznaka - %C: Number of files - + %F: Content path (same as root path for multifile torrent) + %F: Putanja sadržaja (ista kao i korijenska putanja za torrente sa više datoteka) - %Z: Torrent size (bytes) - + %R: Root path (first torrent subdirectory path) + %R: Korijenska putanja (putanja prvog poddirektorija torrenta) - %T: Current tracker - + %D: Save path + %D: Putanja za spremanje - %I: Info hash - + %C: Number of files + %C: Broj datoteka - + + %Z: Torrent size (bytes) + %Z: Veličina torrenta (bajtovi) + + + + %T: Current tracker + %T: Trenutni tracker + + + + %I: Info hash + %I: Info hash + + + Folder is already being watched. Mapa je već pregledana. - + Folder does not exist. Mapa ne postoji. - + Folder is not readable. Mapa nije čitljiva. - + Failure Neuspjeh - + Failed to add Scan Folder '%1': %2 Nije uspjelo dodavanje mape za skeniranje '%1': %2 - - + + Filters Filteri - - + + Choose an IP filter file - + Odaberi IP filter datoteku - + SSL Certificate SSL certifikat - + SSL Key SSL ključ - + Parsing error Greška razrješavanja - + Failed to parse the provided IP filter Razrješavanje danog IP filtera nije uspjelo - + Successfully refreshed Uspješno obnovljeno - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspješno razrješen dani IP filter: Primjenjena su %1 pravila. - + Invalid key Neispravan ključ - + This is not a valid SSL key. To nije valjani SSl ključ. - + Invalid certificate Neispravan certifikat - + This is not a valid SSL certificate. Ovo nije valjani SSL certifikat - + The start time and the end time can't be the same. Početno i završno vrijeme ne može biti jednako - + Time Error Vremenska greška - - pluginSourceDlg - - Plugin source - Izvor priključka - - - Search plugin source: - Potraži izvor priključka: - - - Local file - Lokalna datoteka - - - Web link - Web link - - preview @@ -8395,31 +8318,4 @@ No further notices will be issued. Odustani - - search_engine - - Search - Traži - - - Status: - Status: - - - Stopped - Zaustavljeno - - - Download - Preuzmi - - - Go to description page - Idi na stranicu opisa - - - Search engines... - Tražilice ... - - diff --git a/src/lang/qbittorrent_hu.ts b/src/lang/qbittorrent_hu.ts index 37b1828f7..5378953e7 100644 --- a/src/lang/qbittorrent_hu.ts +++ b/src/lang/qbittorrent_hu.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Peer ID: - + HTTP User-Agent is '%1' HTTP User-Agent a következő '%1' - + Anonymous mode [ON] Anonymous mód: [BE] - + Anonymous mode [OFF] Anonymous mód: [KI] - + PeX support [ON] PeX támogatás [BE] - + PeX support [OFF] PeX támogatás [KI] - + Restart is required to toggle PeX support A PeX támogatás átkapcsolásához újra kell indítani a programot. - + Local Peer Discovery support [ON] Helyi Peerek Felkutatása (LPD) támogatás [BE] - + Local Peer Discovery support [OFF] Helyi Peerek Felkutatása (LPD) támogatás [KI] - + Encryption support [ON] Titkosítás támogatása [BE] - + Encryption support [FORCED] Titkosítás támogatása [KÉNYSZERÍTVE] - + Encryption support [OFF] Titkosítás támogatása [KI] - + Embedded Tracker [ON] Beágyazott tracker [BE] - + Failed to start the embedded tracker! Beágyazott tracker indítása sikertelen! - + Embedded Tracker [OFF] Beágyazott tracker [KI] - + '%1' reached the maximum ratio you set. Removing... '%1' elérte a maximális megengedett arányt. Eltávolítás... - + '%1' reached the maximum ratio you set. Pausing... '%1' elérte a maximáls megengedett arányt. Szüneteltetés... - + System network status changed to %1 e.g: System network status changed to ONLINE Rendszer hálózat állapota megváltozott erre: %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 hálózati konfigurációja megváltozott, munkamenet-kötés frissítése - + Unable to decode '%1' torrent file. Nem sikerült dekódolni a '%1' torrent fájlt. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Fájl ismételt letöltése '%1' beágyazva a torrentbe '%2' - + Couldn't save '%1.torrent' '%1.torrent'-et nem lehetett elmenteni - + because %1 is disabled. this peer was blocked because uTP is disabled. mert a %1 ki van kapcsolva. - + because %1 is disabled. this peer was blocked because TCP is disabled. mert a %1 ki van kapcsolva. - + URL seed lookup failed for URL: '%1', message: %2 URL forrás meghatározása sikertelen: '%1', hibaüzenet: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' eltávolítva az átviteli listáról és a merevlemezről. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' eltávolítva az átviteli listáról. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' letöltése, kérlek várj... - + DHT support [ON] DHT támogatás [BE] - + DHT support [OFF]. Reason: %1 DHT támogatás [KI]. Indok: %1 - + DHT support [OFF] DHT támogatás [KI] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 A qBittorrent próbálja a TCP/%1 portot használni - minden interfészen - + The network interface defined is invalid: %1 A megadott hálózati csatoló hasznavehetetlen: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 A qBittorrent próbálja TCP/%2 portot használni a %1 interfészen - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on Nem található a %1 helyi cím a figyeléshez - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface Nem sikerült felhasználni egyik %1 interfész portot sem. Indok: %2 - + Tracker '%1' was added to torrent '%2' '%1' tracker hozzá lett adva a(z) '%2' torrenthez - + Tracker '%1' was deleted from torrent '%2' '%1' URL seed törölve a(z) '%2' torrentből. - + URL seed '%1' was added to torrent '%2' '%1' URL seed hozzáadva a(z) '%2' torrenthez. - + URL seed '%1' was removed from torrent '%2' '%1' URL seed eltávolítva a(z) '%2' torrentből. - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nem lehet folytatni a(z) '%1' torrentet. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number A következő IP szűrő sikeresen feldolgozva: %1 szabály alkalmazva. - + Error: Failed to parse the provided IP filter. Hiba: az IP szűrő megnyitása sikertelen. - + Couldn't add torrent. Reason: %1 Nem lehet torrentet hozzáadni. Ok: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' folytatva. (gyors folytatás) - + '%1' added to download list. 'torrent name' was added to download list. '%1' felvéve a letöltési listára. - + An I/O error occurred, '%1' paused. %2 I/O hiba történt, '%1' szüneteltetve. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Port lefoglalása sikertelen, hibaüzenet: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Port lefoglalása sikeres, hibaüzenet: %1 - + due to IP filter. this peer was blocked due to ip filter. IP szűrő miatt. - + due to port filter. this peer was blocked due to port filter. port szűrő miatt. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p kevert mód korlátozás miatt. - + because it has a low port. this peer was blocked because it has a low port. mert alacsony porttal rendelkezik. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 A qBittorrent sikeresen használatba vette a %2/%3 portot - a %1 interfészen - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use Nem sikerült felhasználni a %2/%3 portot, a %1 interfészen. Indok: %4 - + External IP: %1 e.g. External IP: 192.168.0.1 Külső IP: %1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS források - + Unread Olvasatlan @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Torrent letöltése URL vagy Magnet linkről - + Only one link per line Soronként csak egy linket - + Download Letöltés - + Global upload rate limit must be greater than 0 or disabled. Letöltési korlátnak 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Global download rate limit must be greater than 0 or disabled. Letöltési korlátnak 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Alternative upload rate limit must be greater than 0 or disabled. A feltöltési korlátnak 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Alternative download rate limit must be greater than 0 or disabled. A feltöltési korlátnak 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Maximum active downloads must be greater than -1. A maximum aktív letöltéseknek nagyobbnak kell lenni, mint -1. - + Maximum active uploads must be greater than -1. A maximum aktív feltöltéseknek nagyobbnak kell lenni, mint -1. - + Maximum active torrents must be greater than -1. A maximum aktív torrenteknek nagyobbnak kell lenni, mint -1. - + Maximum number of connections limit must be greater than 0 or disabled. A maximális kapcsolatok számának 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. A maximális kapcsolatok számának torrentenként 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. A maximális feltöltési szálak korlátnak torrentenként 0-nál nagyobbnak, vagy kikapcsoltnak kell lennie. - + Unable to save program preferences, qBittorrent is probably unreachable. Nem sikerült menteni a beállításokat. A qBittorrent valószínüleg nem elérhető. - + Language Nyelv - + The port used for incoming connections must be between 1 and 65535. A bejövő kapcsolatokhoz használt portnak 1024 és 65535 közé kell esnie. - + The port used for the Web UI must be between 1 and 65535. A Web UI-hoz használt portnak 1024 és 65535 közé kell esnie. - + Unable to log in, qBittorrent is probably unreachable. Nem sikerült bejelentkezni, qBittorrent talán elérhetetlen. - + Invalid Username or Password. Érvénytelen felhasználónév vagy jelszó. - + Password Jelszó - + Login Bejelentkezés - + Upload Failed! Feltöltés sikertelen! - + Original authors Eredeti szerzők - fejlesztők - + Upload limit: Feltöltési korlát: - + Download limit: Letöltési korlát: - + Apply Alkalmaz - + Add Hozzáad - + Upload Torrents Torrentek feltöltéese - + All Összes - + Downloading Letöltés - + Seeding Seedelés - + Completed Befejeződött - + Resumed Folytatva - + Paused Szüneteltetve - + Active Aktív - + Inactive Inaktív - + Save files to location: Letöltés helye: - + Label: Címke: - + Cookie: Süti: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Minden nap + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Letöltve @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. Kijelentkezés - + Upload local torrent Helyi torrent feltöltése - + Are you sure you want to delete the selected torrents from the transfer list? Egészen biztos, hogy törlöd az átviteli listáról? - + The Web UI username must be at least 3 characters long. A Web UI felhasználói névnek legalább 3 karakter hosszúnak kell lennie. - + The Web UI password must be at least 3 characters long. A Web UI felhasználói jelszónak legalább 3 karakter hosszúnak kell lennie. - + Save Mentés - + qBittorrent client is not reachable A qBittorent kliens nem elérhető - + HTTP Server HTTP Szerver - + The following parameters are supported: A következő paraméterek támogatottak: - + Torrent path Torrent útvonal - + Torrent name Torrent név - + qBittorrent has been shutdown. A qBittorrent leállításra került. @@ -2278,11 +2401,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. A keresőhöz Python szükséges, de nincs installálva. - - A new version is available. -Update to version %1? - Egy új verzió érhető el. Frissítés a %1 verzióra? - No updates available. @@ -2497,14 +2615,6 @@ Biztos, hogy bezárod a qBittorrentet? N/A N/A - - Asia/Pacific Region - Ázsia/Csendes-óceáni térség - - - Europe - Európa - Andorra @@ -2540,10 +2650,6 @@ Biztos, hogy bezárod a qBittorrentet? Armenia Örményország - - Netherlands Antilles - Holland Antillák - Angola @@ -2639,10 +2745,6 @@ Biztos, hogy bezárod a qBittorrentet? Brunei Darussalam Brunei Szultanátus - - Bolivia - Bolívia - Brazil @@ -2708,10 +2810,6 @@ Biztos, hogy bezárod a qBittorrentet? Switzerland Svájc - - Cote D'Ivoire - Elefántcsontpart - Cook Islands @@ -2867,10 +2965,6 @@ Biztos, hogy bezárod a qBittorrentet? France Franciaország - - France, Metropolitan - Franciaország kontinentális területe - Gabon @@ -3156,10 +3250,6 @@ Biztos, hogy bezárod a qBittorrentet? Latvia Lettország - - Libyan Arab Jamahiriya - Líbia - Morocco @@ -3185,10 +3275,6 @@ Biztos, hogy bezárod a qBittorrentet? Marshall Islands Marshall-szigetek - - Macedonia - Macedónia - Mali @@ -3204,10 +3290,6 @@ Biztos, hogy bezárod a qBittorrentet? Mongolia Mongólia - - Macau - Makaó - Northern Mariana Islands @@ -3368,19 +3450,11 @@ Biztos, hogy bezárod a qBittorrentet? Saint Pierre and Miquelon Saint-Pierre és Miquelon - - Pitcairn Islands - Pitcairn-szigetek - Puerto Rico Puerto Rico - - Palestinian Territory - Palesztína - Portugal @@ -3451,10 +3525,6 @@ Biztos, hogy bezárod a qBittorrentet? Singapore Szingapúr - - Saint Helena - Szent Ilona - Slovenia @@ -3695,10 +3765,6 @@ Biztos, hogy bezárod a qBittorrentet? Saint Vincent and the Grenadines Saint Vincent és a Grenadine-szigetek - - Venezuela - Venezuela - Virgin Islands, British @@ -3709,10 +3775,6 @@ Biztos, hogy bezárod a qBittorrentet? Virgin Islands, U.S. Amerikai Virgin-szigetek - - Vietnam - Vietnami Szocialista Köztársaság - Vanuatu @@ -3763,18 +3825,6 @@ Biztos, hogy bezárod a qBittorrentet? Zimbabwe Zimbabwe - - Anonymous Proxy - Anonim Proxy - - - Satellite Provider - Műholdas Szolgáltató - - - Other - Egyéb - Aland Islands @@ -3800,10 +3850,6 @@ Biztos, hogy bezárod a qBittorrentet? Saint Barthelemy Saint-Barthélemy - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3841,7 +3887,7 @@ Biztos, hogy bezárod a qBittorrentet? Net::Smtp - + Email Notification Error: Email értesítés hiba: @@ -4093,7 +4139,7 @@ Biztos, hogy bezárod a qBittorrentet? Search plugins - Kereső modulok + @@ -4108,43 +4154,43 @@ Biztos, hogy bezárod a qBittorrentet? Version - Verzió + Url - Url + Enabled - Engedélyezve + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - További kereső modulok letölthetőek innen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Új telepítése + Check for updates - Frissítések ellenőrzése + Close - Bezárás + Uninstall - Eltávolít + @@ -4164,67 +4210,67 @@ Biztos, hogy bezárod a qBittorrentet? Uninstall warning - Figyelemeztetés + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Ezt a modult nem lehet eltávolítani, mivel a program része. Csak azokat lehet, amiket saját kezüleg telepítettél. Viszont kikapcsoltam a modult. + Uninstall success - Sikeresen eltávolítva + All selected plugins were uninstalled successfully - Minden kijelölt kereső modul sikeresen eltávolítva + New search engine plugin URL - Új kereső modul URL címe + URL: - URL: + Invalid link - Érvénytelen link + The link doesn't seem to point to a search engine plugin. - Úgy tűnik, a link nem egy keresőmotor kiegészítőre mutat. + Select search plugins - Kereső modulok kiválasztása + qBittorrent search plugin - qBittorrent kereső modul + Search plugin update - Kereső modul frissítése + All your plugins are already up to date. - A legújabb kereső modulokat használod. + @@ -4236,7 +4282,7 @@ Those plugins were disabled. Search plugin install - Kereső modul telepítése + @@ -4266,22 +4312,22 @@ Those plugins were disabled. Plugin source - Modul forrás + Search plugin source: - Kereső modul forrása: + Local file - Helyi fájl + Web link - Webcím + @@ -5019,17 +5065,17 @@ Those plugins were disabled. Szűrő fájl helye (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Tisztátlan program kilépés észlelve. Visszalépési fájl használata a beállítások visszaállításához. - + An access error occurred while trying to write the configuration file. Egy hozzáférési hiba történt a konfigurációs fájl írásának megpróbálásakor. - + A format error occurred while trying to write the configuration file. Egy formátum hiba történt a konfigurációs fájl írásának megpróbálásakor. @@ -5462,7 +5508,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. Az IP címe tiltásra került a túl gyakori hibás hitelesítési kérelmek miatt. @@ -5954,12 +6000,12 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Az automatikus letöltés '%1' a '%2' RSS csatornáról hibába ütközött mert nem tartalmaz torrentet, vagy mágneslinket... + Automatically downloading '%1' torrent from '%2' RSS feed... - A(z) '%1' torrent automatikus letöltése a(z) '%2' RSS csatornából... + @@ -5970,28 +6016,6 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Az automatikus letöltés '%1' a '%2' RSS csatornáról hibába ütközött mert nem tartalmaz torrentet, vagy mágneslinket... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - A(z) '%1' torrent automatikus letöltése a(z) '%2' RSS csatornából... - - - - RssParser - - Failed to open downloaded RSS file. - Nem sikerült megnyitni a letöltött RSS fájlt. - - - Invalid RSS feed at '%1'. - Érvénytelen RSS csatorna ennél: '%1'. - - RssSettingsDlg @@ -6060,121 +6084,9 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Save Files to - - Download here - Letöltés ide - - - Download path - Letöltési útvonal - - - - SearchCategories - - All categories - Összes kategória - - - Movies - Filmek - - - TV shows - TV műsorok - - - Music - Zene - - - Games - Játék - - - Anime - Anime - - - Software - Szoftver - - - Pictures - Képek - - - Books - Könyvek - SearchEngine - - Search - Keresés - - - Please install Python to use the Search Engine. - A keresőmotor használatához telepítsd a Pythont. - - - Empty search pattern - Hiányzó kulcsszó - - - Please type a search pattern first - Kérlek adj meg kulcsszót a kereséshez - - - Searching... - Keresés... - - - Stop - Stop - - - Search Engine - Keresőmotor - - - Search has finished - A keresés befejeződött - - - An error occurred during search... - Hiba a keresés közben... - - - Search aborted - Keresés félbeszakítva - - - All enabled - Mind engedélyezve - - - All engines - Összes motor - - - Multiple... - Többszörös - - - Results <i>(%1)</i>: - i.e: Search results - Eredmények <i>(%1)</i>: - - - Search returned no results - Eredménytelen keresés - - - Stopped - Megállítva - Unknown search engine plugin file format. @@ -6210,47 +6122,47 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. All categories - Összes kategória + Movies - Filmek + TV shows - TV műsorok + Music - Zene + Games - Játék + Anime - Anime + Software - Szoftver + Pictures - Képek + Books - Könyvek + @@ -6299,22 +6211,22 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. - - - + + + Search Keresés Status: - Állapot: + - + Stopped - Megállítva + @@ -6324,12 +6236,12 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. Go to description page - Leírás oldal megnyitása + Copy description page URL - Leírás oldal URL másolása + @@ -6337,86 +6249,86 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést. - + All enabled - Mind engedélyezve - - - - All plugins - + All plugins + + + + + Multiple... - Többszörös + - - - + + + Search Engine - Keresőmotor + - + Please install Python to use the Search Engine. - A keresőmotor használatához telepítsd a Pythont. + - + Empty search pattern - Hiányzó kulcsszó + - + Please type a search pattern first - Kérlek adj meg kulcsszót a kereséshez + - - + + Results <i>(%1)</i>: i.e: Search results - Eredmények <i>(%1)</i>: - - - - Searching... - Keresés... + + Searching... + + + + Stop - Stop + - - + + Search has finished - A keresés befejeződött + - - + + Search aborted - Keresés félbeszakítva + - + Search returned no results - Eredménytelen keresés + - + Search has failed - + An error occurred during search... - Hiba a keresés közben... + @@ -6882,10 +6794,6 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Download Priority - - Priority - Priorítás - TorrentCreatorDlg @@ -8081,159 +7989,6 @@ Vélhetően tisztában vagy ezzel, így többé nem kapsz figyelmeztetést.Kérlek adj meg legalább egy url címet. - - engineSelect - - Search plugins - Kereső modulok - - - Installed search engines: - Telepített keresők: - - - Name - Név - - - Version - Verzió - - - Url - Url - - - Enabled - Engedélyezve - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - További kereső modulok letölthetőek innen: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Új telepítése - - - Check for updates - Frissítések ellenőrzése - - - Close - Bezárás - - - Uninstall - Eltávolít - - - - engineSelectDlg - - Uninstall warning - Figyelemeztetés - - - Uninstall success - Sikeresen eltávolítva - - - Invalid plugin - Érvénytelen plugin - - - The search engine plugin is invalid, please contact the author. - A keresési motor érvénytelen, kérem lépj kapcsolatba a fejlesztővel. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - A '%1' kereső modul egy újabb verziója már telepítve van. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' keresőt nem lehet frissíteni, előző verzió megtartva. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' kereső modul telepítése sikertelen. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' kereső modul sikeresen frissítve. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' kereső modul sikeresen telepítve. - - - The link doesn't seem to point to a search engine plugin. - Úgy tűnik, a link nem egy keresőmotor kiegészítőre mutat. - - - Select search plugins - Kereső modulok kiválasztása - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Bocs, '%1' kereső modul telepítése sikertelen. - - - Search plugin install - Kereső modul telepítése - - - Yes - Igen - - - No - Nem - - - qBittorrent search plugin - qBittorrent kereső modul - - - Search plugin update - Kereső modul frissítése - - - Sorry, update server is temporarily unavailable. - Sajnálom, a frissíŧési szerver ideiglenesen nem elérhető. - - - All your plugins are already up to date. - A legújabb kereső modulokat használod. - - - All selected plugins were uninstalled successfully - Minden kijelölt kereső modul sikeresen eltávolítva - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Ezt a modult nem lehet eltávolítani, mivel a program része. Csak azokat lehet, amiket saját kezüleg telepítettél. Viszont kikapcsoltam a modult. - - - Invalid link - Érvénytelen link - - - New search engine plugin URL - Új kereső modul URL címe - - - URL: - URL: - - errorDialog @@ -8361,192 +8116,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory Export könyvtár kiválasztása - - - - + + + + Choose a save directory Letöltési könyvtár megadása - + Add directory to scan Könyvtár hozzáadása megfigyelésre - + Supported parameters (case sensitive): Támogatott paraméterek (kis- és nagybetű érzékeny): - + %N: Torrent name %N: Torrent név - + %L: Label %L: Címke - + %F: Content path (same as root path for multifile torrent) %F: Tartalom elérési út (ugyanaz, mint a gyökér elérési út többfájlos torrenthez) - + %R: Root path (first torrent subdirectory path) %R: Gyökér elérési út (első torrent alkönyvtár elérési út) - + %D: Save path %D: Mentés útvonala - + %C: Number of files %C: Fájlok száma - + %Z: Torrent size (bytes) %Z: Torrent méret (bájtok) - + %T: Current tracker %T: Jelenlegi tracker - + %I: Info hash %I: Hash információ - + Folder is already being watched. A könyvtár már megfigyelés alatt van. - + Folder does not exist. A könyvtár nem létezik. - + Folder is not readable. A könyvtár nem olvasható. - + Failure Hiba - + Failed to add Scan Folder '%1': %2 Hiba a '%1' könyvtár vizsgálata közben: %2 - - + + Filters Szűrők - - + + Choose an IP filter file Válassz egy IP szűrő fájlt - + SSL Certificate SSL Tanusítvány - + SSL Key SSL Kulcs - + Parsing error Feldolgozási hiba - + Failed to parse the provided IP filter Megadott IP szűrő feldogozása sikertelen - + Successfully refreshed Sikeresen frissítve - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number A következő IP szűrő sikeresen feldolgozva: %1 szabály alkalmazva. - + Invalid key Érvénytelen kulcs - + This is not a valid SSL key. Érvénytelen SSL kulcs. - + Invalid certificate Érvénytelen tanusítvány - + This is not a valid SSL certificate. Érvénytelen SSL tanusítvány. - + The start time and the end time can't be the same. A kezdés és befejezés ideje nem lehet ugyanaz. - + Time Error Idő Hiba - - pluginSourceDlg - - Plugin source - Modul forrás - - - Search plugin source: - Kereső modul forrása: - - - Local file - Helyi fájl - - - Web link - Webcím - - preview @@ -8570,35 +8306,4 @@ Those plugins were disabled. Mégse - - search_engine - - Search - Keresés - - - Status: - Állapot: - - - Stopped - Megállítva - - - Download - Letöltés - - - Go to description page - Leírás oldal megnyitása - - - Copy description page URL - Leírás oldal URL másolása - - - Search engines... - Keresőmotorok... - - diff --git a/src/lang/qbittorrent_hy.ts b/src/lang/qbittorrent_hy.ts index 824883d1f..8279f7d13 100644 --- a/src/lang/qbittorrent_hy.ts +++ b/src/lang/qbittorrent_hy.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Հաջողությամբ է ստուգվել IP ֆիլտրով. %1 կանոններ են կիրառվել։ - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS ալիքներ - + Unread Չկարդացած @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Ներբեռնել Torrent-ները իրենց հղումներից կամ Magnet հղումից - + Only one link per line Մեկ հղում տողի համար - + Download Ներբեռնել - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Միացումների առավ. քանակը պետք է լինի կամ բարձր 0-ից կամ անջատված։ - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Միացումների առավ. քանակը torrent-ի համար պետք է լինի կամ բարձր 0-ից կամ անջատված։ - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Վերբեռնելու սլոթների առավ. քանակը torrent-ի համար պետք է լինի կամ բարձր 0-ից կամ անջատված։ - + Unable to save program preferences, qBittorrent is probably unreachable. Հնարավոր չէ պահպանել ծրագրի կարգավորումները, qBittorrent-ը հնարավոր է անհասանելի է։ - + Language Լեզուն - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login Մուտքաբառը - + Upload Failed! Վերբեռնումը ձախողվեց - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Ներբեռնվում է - + Seeding Փոխանցվում է - + Completed Ավարտված - + Resumed - + Paused Դադարի մեջ է - + Active - + Inactive - + Save files to location: Պահպանել ֆայլերը՝ - + Label: Նիշը. - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Ամեն օր + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Ներբեռնվել է @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. Web UI-ի օգտագործողի անունը պետք է պարունակի գոնե 3 նիշ։ - + The Web UI password must be at least 3 characters long. Օգտագործողի ծածկագիրը պետք է պարունակի գոնե 3 նիշ։ - + Save Պահպանել - + qBittorrent client is not reachable qBittorrent ծրագիրը հասանելի չէ - + HTTP Server HTTP սպասարկիչ - + The following parameters are supported: Աջակցվում են՝ - + Torrent path Torrent-ի ճ-ը - + Torrent name Torrent-ի անունը - + qBittorrent has been shutdown. qBittorrent-ը անջատվել է: @@ -3763,7 +3886,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4015,7 +4138,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Որոնող խրոցակներ + @@ -4035,38 +4158,38 @@ Are you sure you want to quit qBittorrent? Url - Հղումը + Enabled - Միացված է + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Կարող եք գտնել որոնման խրոցակներ այստեղից. <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Տեղակայել նորը + Check for updates - Ստուգել թարմացումները + Close - Փակել + Uninstall - Ջնջել + @@ -4086,7 +4209,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Զգուշացում ջնջելիս + @@ -4097,24 +4220,24 @@ Those plugins were disabled. Uninstall success - Հաջողությամբ ջնջվեց + All selected plugins were uninstalled successfully - Բոլոր ընտրված խրոցակները հաջողությամբ ջնջվեցին + New search engine plugin URL - Փնտրման խրոցակի հղումը + URL: - Հղումը. + @@ -4129,7 +4252,7 @@ Those plugins were disabled. Select search plugins - Ընտրեք փնտրման խրոցակը + @@ -4141,12 +4264,12 @@ Those plugins were disabled. Search plugin update - Փնտրման խրոցակի թարմացում + All your plugins are already up to date. - Ձեր բոլոր խրոցակները նոր են։ + @@ -4158,7 +4281,7 @@ Those plugins were disabled. Search plugin install - Տեղակայել փնտրման խրոցակ + @@ -4188,22 +4311,22 @@ Those plugins were disabled. Plugin source - Խրոցակի աղբյուրը + Search plugin source: - Փնտրման խրոցակի աղբյուրը. + Local file - Լոկալ ֆայլ + Web link - Վեբ հղում + @@ -4941,17 +5064,17 @@ Those plugins were disabled. Ֆիլտրերի ճանապարհը (.dat, .p2p, .p2b). - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5384,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5957,92 +6080,9 @@ No further notices will be issued. Save Files to - - Download here - Բեռնել այստեղ - - - - SearchCategories - - All categories - Բոլոր բաժինները - - - Movies - Ֆիլմեր - - - TV shows - TV շոուներ - - - Music - Երաժշտություն - - - Games - Խաղեր - - - Anime - Մուլտեր - - - Software - Ծրագրեր - - - Pictures - Նկարներ - - - Books - Գրքեր - SearchEngine - - Search - Փնտրել - - - Empty search pattern - Դաշտը դատարկ է - - - Please type a search pattern first - Նախ գրեք, թե ինչ փնտրել - - - Searching... - Փնտրվում է… - - - Stop - Կանգնեցնել - - - Search Engine - Որոնում - - - Search has finished - Որոնումը ավարտվեց - - - An error occurred during search... - Սխալ՝ փնտրելիս… - - - Search aborted - Փնտրումը կանգնեցվել է - - - Search returned no results - Ոչնինչ չի գտնվել - Unknown search engine plugin file format. @@ -6078,47 +6118,47 @@ No further notices will be issued. All categories - Բոլոր բաժինները + Movies - Ֆիլմեր + TV shows - TV շոուներ + Music - Երաժշտություն + Games - Խաղեր + Anime - Մուլտեր + Software - Ծրագրեր + Pictures - Նկարներ + Books - Գրքեր + @@ -6167,22 +6207,22 @@ No further notices will be issued. - - - + + + Search Status: - Վիճակը. + - + Stopped - Կանգնեցված + @@ -6192,7 +6232,7 @@ No further notices will be issued. Go to description page - Անցնել նկարագրությանը + @@ -6205,86 +6245,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Որոնում + - + Please install Python to use the Search Engine. - + Empty search pattern - Դաշտը դատարկ է + - + Please type a search pattern first - Նախ գրեք, թե ինչ փնտրել + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Փնտրվում է… - + Searching... + + + + Stop - Կանգնեցնել + - - + + Search has finished - Որոնումը ավարտվեց + - - + + Search aborted - Փնտրումը կանգնեցվել է + - + Search returned no results - Ոչնինչ չի գտնվել + - + Search has failed - + An error occurred during search... - Սխալ՝ փնտրելիս… + @@ -6750,10 +6790,6 @@ No further notices will be issued. Download Priority - - Priority - Առաջ-ը - TorrentCreatorDlg @@ -7949,100 +7985,6 @@ No further notices will be issued. Նշեք գոնե մեկ հղում։ - - engineSelect - - Search plugins - Որոնող խրոցակներ - - - Installed search engines: - Տեղակայված որոնման խրոցակներ - - - Name - Անունը - - - Url - Հղումը - - - Enabled - Միացված է - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Կարող եք գտնել որոնման խրոցակներ այստեղից. <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Տեղակայել նորը - - - Check for updates - Ստուգել թարմացումները - - - Close - Փակել - - - Uninstall - Ջնջել - - - - engineSelectDlg - - Uninstall warning - Զգուշացում ջնջելիս - - - Uninstall success - Հաջողությամբ ջնջվեց - - - Select search plugins - Ընտրեք փնտրման խրոցակը - - - Search plugin install - Տեղակայել փնտրման խրոցակ - - - Yes - Այո - - - No - Ոչ - - - Search plugin update - Փնտրման խրոցակի թարմացում - - - Sorry, update server is temporarily unavailable. - Ցավոք թարմացումների հասանելիությունը հանարավոր չէ ստուգել։ - - - All your plugins are already up to date. - Ձեր բոլոր խրոցակները նոր են։ - - - All selected plugins were uninstalled successfully - Բոլոր ընտրված խրոցակները հաջողությամբ ջնջվեցին - - - New search engine plugin URL - Փնտրման խրոցակի հղումը - - - URL: - Հղումը. - - errorDialog @@ -8170,192 +8112,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Ընտրեք արտածման տեղը - - - - + + + + Choose a save directory Ընտրեք պահպանելու տեղը - + Add directory to scan Ստուգելու համար ավելացնել թղթապանակ - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Թղթապանակը արդեն ստուգվել է։ - + Folder does not exist. Թղթապանակը գոյություն չունի։ - + Folder is not readable. Թղթապանակը կարդալու համար չէ։ - + Failure Ձախողում - + Failed to add Scan Folder '%1': %2 Հնարավոր չէ ստուգման համարավելացնել թղթապանակ՝ '%1': %2 - - + + Filters Ֆիլտրեր - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Սխալ - + Failed to parse the provided IP filter IP ֆիլտրի տրամադրման սխալ - + Successfully refreshed Հաջողությամբ թարմացվեց - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Հաջողությամբ է ստուգվել IP ֆիլտրով. %1 կանոններ են կիրառվել։ - + Invalid key Սխալ բանալի - + This is not a valid SSL key. Սա ճիշտ SSLբանալի չէ։ - + Invalid certificate Սխալ վավերագիր - + This is not a valid SSL certificate. Սա ճիշտ SSL վավերագիր չէ։ - + The start time and the end time can't be the same. - + Time Error - - pluginSourceDlg - - Plugin source - Խրոցակի աղբյուրը - - - Search plugin source: - Փնտրման խրոցակի աղբյուրը. - - - Local file - Լոկալ ֆայլ - - - Web link - Վեբ հղում - - preview @@ -8379,31 +8302,4 @@ No further notices will be issued. Մերժել - - search_engine - - Search - Փնտրել - - - Status: - Վիճակը. - - - Stopped - Կանգնեցված - - - Download - Ներբեռնել - - - Go to description page - Անցնել նկարագրությանը - - - Search engines... - Փնտրել… - - diff --git a/src/lang/qbittorrent_id.ts b/src/lang/qbittorrent_id.ts index 8c9bace69..433a7cf1b 100644 --- a/src/lang/qbittorrent_id.ts +++ b/src/lang/qbittorrent_id.ts @@ -127,7 +127,7 @@ Set as default label - + Tetapkan sebagai label baku @@ -424,12 +424,12 @@ Resolve peer countries (GeoIP) - Singkap negara rekanan (GeoIP) + Singkap negara rekan (GeoIP) Resolve peer host names - Singkap nama hos rekanan + Singkap nama host rekan @@ -454,7 +454,7 @@ Exchange trackers with other peers - Bertukar pelacak dengan rekanan lainnya + Bertukar pelacak dengan rekan lainnya @@ -476,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Jumlah maksimum koneksi terbuka-setengah [0: Tidak terbatas] @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - ID Rekanan: + ID Rekan: - + HTTP User-Agent is '%1' User-Agent HTTP adalah '%1' - + Anonymous mode [ON] Mode anonim [NYALA] - + Anonymous mode [OFF] Mode anonim [MATI] - + PeX support [ON] Dukungan PeX [NYALA] - + PeX support [OFF] Dukungan PeX [MATI] - + Restart is required to toggle PeX support Wajib memulai ulang untuk menjungkit dukungan PeX - + Local Peer Discovery support [ON] - Dukungan Penemuan Rekanan Lokal [NYALA] + Dukungan Pencarian Rekan Lokal [NYALA] - + Local Peer Discovery support [OFF] - Dukungan Penemuan Rekanan Lokal [MATI] + Dukungan Pencarian Rekan Lokal [MATI] - + Encryption support [ON] Dukungan enkripsi [NYALA] - + Encryption support [FORCED] Dukungan enkripsi [DIPAKSA] - + Encryption support [OFF] Dukungan enkripsi [MATI] - + Embedded Tracker [ON] Pelacak Tertanam [NYALA] - + Failed to start the embedded tracker! Gagal memulai pelacak tertanam! - + Embedded Tracker [OFF] Pelacak Tertanam [MATI] - + '%1' reached the maximum ratio you set. Removing... '%1' telah mencapai rasio maksimum yang Anda tetapkan. Membuang... - + '%1' reached the maximum ratio you set. Pausing... '%1' telah mencapai rasio maksimum yang Anda tetapkan. Menangguhkan... - + System network status changed to %1 e.g: System network status changed to ONLINE Status jaringan sistem berubah menjadi %1 - + ONLINE DARING - + OFFLINE LURING - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfigurasi jaringan dari %1 telah berubah, menyegarkan jalinan sesi - + Unable to decode '%1' torrent file. Tidak bisa mengawakode '%1' berkas torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Mengunduh rekursif berkas '%1' yang tertanam di dalam torrent '%2' - + Couldn't save '%1.torrent' Tidak bisa menyimpan '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. karena %1 dinonaktifkan. - + because %1 is disabled. this peer was blocked because TCP is disabled. karena %1 dinonaktifkan. - + URL seed lookup failed for URL: '%1', message: %2 Pencarian bibit URL gagal untuk URL: '%1', pesan: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' telah dibuang dari daftar transfer dan diska. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' telah dibuang dari daftar transfer. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Mengunduh '%1', mohon tunggu... - + DHT support [ON] Dukungan DHT [NYALA] - + DHT support [OFF]. Reason: %1 Dukungan DHT [MATI]. Alasan: %1 - + DHT support [OFF] Dukungan DHT [MATI] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sedang mencoba mendengarkan semua port antarmuka: %1 - + The network interface defined is invalid: %1 Antarmuka jaringan yang dijabarkan tidak valid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sedang mencoba mendengarkan port antarmuka %1: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent tidak menemukan alamat lokal %1 untuk didengarkan - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + qBittorrent gagal mendengarkan semua port antarmuka: %1. Alasan: %2. - + Tracker '%1' was added to torrent '%2' Pelacak '%1' telah ditambahkan ke torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Pelacak '%1' telah dihapus dari torrent '%2' - + URL seed '%1' was added to torrent '%2' Bibit URL '%1' telah ditambahkan ke torrent '%2' - + URL seed '%1' was removed from torrent '%2' Bibit URL '%1' telah dihapus dari torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Tidak bisa melanjutkan torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berhasil mengurai penyaring IP yang diberikan: %1 aturan diterapkan. - + Error: Failed to parse the provided IP filter. Galat: Gagal mengurai penyaring IP yang diberikan. - + Couldn't add torrent. Reason: %1 Tidak bisa menambahkan torrent. Alasan: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' dilanjutkan. (lanjut cepat) - + '%1' added to download list. 'torrent name' was added to download list. '%1' ditambahkan ke daftar unduh. - + An I/O error occurred, '%1' paused. %2 Sebuah galat I/O telah terjadi, '%1' ditangguhkan. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Pemetaan port gagal, pesan: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Pemetaan port sukses, pesan: %1 - + due to IP filter. this peer was blocked due to ip filter. disebabkan oleh penyaring IP. - + due to port filter. this peer was blocked due to port filter. disebabkan oleh penyaring port. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. disebabkan oleh pembatasan mode campuran i2p. - + because it has a low port. this peer was blocked because it has a low port. karena memiliki port yang rendah. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent berhasil mendengarkan port antarmuka %1: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + qBittorrent gagal mendengarkan port antarmuka %1: %2/%3. Alasan: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 IP eksternal: %1 @@ -1284,12 +1284,12 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. FeedListWidget - + RSS feeds Umpan RSS - + Unread Belum dibaca @@ -1378,211 +1378,338 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Unduh Torrent dari URL mereka atau tautan Magnet - + Only one link per line Hanya satu tautan per baris - + Download Unduh - + Global upload rate limit must be greater than 0 or disabled. Batas laju unggah global harus lebih besar dari 0 atau nonaktif. - + Global download rate limit must be greater than 0 or disabled. Batas laju unduh global harus lebih besar dari 0 atau nonaktif. - + Alternative upload rate limit must be greater than 0 or disabled. Batas laju unggah alternatif harus lebih besar dari 0 atau nonaktif. - + Alternative download rate limit must be greater than 0 or disabled. Batas laju unduh alternatif harus lebih besar dari 0 atau nonaktif. - + Maximum active downloads must be greater than -1. Unduhan aktif maksimum harus lebih besar dari -1. - + Maximum active uploads must be greater than -1. Unggahan aktif maksimum harus lebih besar dari -1. - + Maximum active torrents must be greater than -1. Torrent aktif maksimum harus lebih besar dari -1. - + Maximum number of connections limit must be greater than 0 or disabled. Jumlah maksimum batas koneksi harus lebih besar dari 0 atau nonaktif. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Jumlah maksimum batas koneksi per torrent harus lebih besar dari 0 atau nonaktif. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Jumlah maksimum batas slot unggah per torrent harus lebih besar dari 0 atau nonaktif. - + Unable to save program preferences, qBittorrent is probably unreachable. Tidak bisa menyimpan preferensi program, qBittorrent mungkin tidak terjangkau. - + Language Bahasa - + The port used for incoming connections must be between 1 and 65535. Port yang digunakan untuk koneksi masuk harus antara 1 dan 65535. - + The port used for the Web UI must be between 1 and 65535. Port yang digunakan untuk Web UI harus antara 1 dan 65535. - + Unable to log in, qBittorrent is probably unreachable. Tidak bisa masuk, qBittorrent mungkin tidak terjangkau. - + Invalid Username or Password. Nama Pengguna atau Sandi tidak valid. - + Password Sandi - + Login Masuk - + Upload Failed! Gagal Mengunggah! - + Original authors Pengembang asli - + Upload limit: Batas unggah: - + Download limit: Batas unduh: - + Apply Terapkan - + Add Tambah - + Upload Torrents Unggah Torrent - + All Semua - + Downloading Mengunduh - + Seeding Membibit - + Completed Komplet - + Resumed Dilanjutkan - + Paused Ditangguhkan - + Active Aktif - + Inactive Tidak aktif - - - Save files to location: - Simpan berkas ke lokasi: - - Label: - Label: + Save files to location: + Simpan berkas ke lokasi: - Cookie: - + Label: + Label: - Type folder here - + Cookie: + Kuki: - Other... + Type folder here + Tulis folder di sini + + + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Simpan Berkas ke + + + + Watch Folder + Folder Dimonitor + + + + Default Folder + Folder Bawaan + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Lainnya... + + + + Every day + Schedule the use of alternative rate limits on ... + Setiap hari + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Lainnya... + + + Downloaded Is the file downloaded or not? Terunduh @@ -1593,57 +1720,57 @@ Anda seharusnya mendapatkan informasi ini dari preferensi peramban Web Anda.Keluar - + Upload local torrent - + Unggah torrent lokal - + Are you sure you want to delete the selected torrents from the transfer list? Apakah Anda yakin ingin menghapus torrent yang dipilih dari daftar transfer? - + The Web UI username must be at least 3 characters long. Panjang nama pengguna Web UI minimal harus 3 karakter. - + The Web UI password must be at least 3 characters long. Panjang sandi Web UI minimal harus 3 karakter. - + Save Simpan - + qBittorrent client is not reachable Klien qBittorrent tidak terjangkau - + HTTP Server Server HTTP - + The following parameters are supported: Parameter berikut didukung: - + Torrent path Jalur torrent - + Torrent name Nama torrent - + qBittorrent has been shutdown. qBittorrent telah dimatikan. @@ -2216,7 +2343,8 @@ Apakah Anda ingin mengasosiasikan qBittorrent dengan berkas torrent atau tautan A new version is available. Do you want to download %1? - + Versi baru tersedia. +Apakah Anda ingin mengunduh %1? @@ -2281,12 +2409,6 @@ Apakah Anda ingin memasangnya sekarang? Python is required to use the search engine but it does not seem to be installed. Python dibutuhkan untuk dapat menggunakan mesin pencari tetapi sepertinya belum dipasang. - - A new version is available. -Update to version %1? - Versi baru tersedia. -Mutakhirkan ke versi %1? - No updates available. @@ -2489,12 +2611,12 @@ Apakah Anda yakin ingin qBittorrent keluar? Venezuela, Bolivarian Republic of - + Venezuela Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Apakah Anda yakin ingin qBittorrent keluar? N/A T/A - - Asia/Pacific Region - Kawasan Asia/Pasifik - - - Europe - Eropa - Andorra @@ -2545,10 +2659,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Armenia Armenia - - Netherlands Antilles - Antillen Belanda - Angola @@ -2644,10 +2754,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Brunei Darussalam Brunei Darussalam - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Switzerland Swiss - - Cote D'Ivoire - Pantai Gading - Cook Islands @@ -2760,7 +2862,7 @@ Apakah Anda yakin ingin qBittorrent keluar? Curacao - + Curacao @@ -2872,10 +2974,6 @@ Apakah Anda yakin ingin qBittorrent keluar? France Perancis - - France, Metropolitan - Perancis Metropolitan - Gabon @@ -3161,10 +3259,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Latvia Latvia - - Libyan Arab Jamahiriya - Libya - Morocco @@ -3190,10 +3284,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Marshall Islands Kepulauan Marshall - - Macedonia - Makedonia - Mali @@ -3209,10 +3299,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Mongolia Mongolia - - Macau - Makau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Apakah Anda yakin ingin qBittorrent keluar? Saint Pierre and Miquelon Saint Pierre dan Miquelon - - Pitcairn Islands - Kepulauan Pitcairn - Puerto Rico Puerto Riko - - Palestinian Territory - Palestina - Portugal @@ -3456,10 +3534,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Singapore Singapura - - Saint Helena - Saint Helena - Slovenia @@ -3578,62 +3652,62 @@ Apakah Anda yakin ingin qBittorrent keluar? Bolivia, Plurinational State of - + Bolivia Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius dan Saba Cote d'Ivoire - + Pantai Gading Libya - + Libya Saint Martin (French part) - + Saint Martin (Perancis) Macedonia, The Former Yugoslav Republic of - + Republik Makedonia bekas Yugoslavia Macao - + Makau Pitcairn - + Pitcairn Palestine, State of - + Palestina Saint Helena, Ascension and Tristan da Cunha - + Saint Helena, Ascension, dan Tristan da Cunha South Sudan - + Sudan Selatan Sint Maarten (Dutch part) - + Sint Maarten (Belanda) @@ -3700,10 +3774,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Saint Vincent and the Grenadines Saint Vincent dan Grenadine - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Virgin Islands, U.S. Kepulauan Virgin, Amerika Serikat - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Zimbabwe Zimbabwe - - Anonymous Proxy - Proksi Anonim - - - Satellite Provider - Penyedia Satelit - - - Other - Lainnya - Aland Islands @@ -3805,10 +3859,6 @@ Apakah Anda yakin ingin qBittorrent keluar? Saint Barthelemy Saint Barthelemy - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Apakah Anda yakin ingin qBittorrent keluar? Net::Smtp - + Email Notification Error: Galat Notifikasi Surel: @@ -3886,7 +3936,7 @@ Apakah Anda yakin ingin qBittorrent keluar? incoming connection - + koneksi masuk @@ -3901,17 +3951,17 @@ Apakah Anda yakin ingin qBittorrent keluar? peer from PEX - + rekan dari PEX peer from DHT - + rekan dari DHT encrypted traffic - + lalu lintas terenkripsi @@ -3921,7 +3971,7 @@ Apakah Anda yakin ingin qBittorrent keluar? peer from LSD - + rekan dari LSD @@ -3992,12 +4042,12 @@ Apakah Anda yakin ingin qBittorrent keluar? Files i.e. files that are being downloaded right now - + Berkas Add a new peer... - Tambah rekanan baru... + Tambah rekan baru... @@ -4008,43 +4058,43 @@ Apakah Anda yakin ingin qBittorrent keluar? Ban peer permanently - Cekal rekanan secara permanen + Cekal rekan secara permanen Manually adding peer '%1'... - Secara manual menambahkan rekanan '%1'... + Secara manual menambahkan rekan '%1'... The peer '%1' could not be added to this torrent. - Rekanan '%1' tidak bisa ditambahkan ke torrent ini. + Rekan '%1' tidak bisa ditambahkan ke torrent ini. Manually banning peer '%1'... - Secara manual mencekal rekanan '%1'... + Secara manual mencekal rekan '%1'... Peer addition - Tambahan rekanan + Tambahan rekan Some peers could not be added. Check the Log for details. - Beberapa rekanan tidak bisa ditambahkan. Periksa Log untuk detail lebih lanjut. + Beberapa rekan tidak bisa ditambahkan. Periksa Log untuk detail lebih lanjut. The peers were added to this torrent. - Rekanan telah ditambahkan ke torrent ini. + Rekan telah ditambahkan ke torrent ini. Are you sure you want to ban permanently the selected peers? - Apakah Anda yakin ingin mencekal secara permanen rekanan yang dipilih? + Apakah Anda yakin ingin mencekal secara permanen rekan yang dipilih? @@ -4062,22 +4112,22 @@ Apakah Anda yakin ingin qBittorrent keluar? No peer entered - Tidak ada rekanan yang dimasukkan + Tidak ada rekan yang dimasukkan Please type at least one peer. - Mohon ketik paling tidak satu rekanan. + Mohon ketik paling tidak satu rekan. Invalid peer - Rekanan tidak valid + Rekan tidak valid The peer '%1' is invalid. - Rekanan '%1' tidak valid. + Rekan '%1' tidak valid. @@ -4098,65 +4148,65 @@ Apakah Anda yakin ingin qBittorrent keluar? Search plugins - Pengaya pencarian + Plugin pencarian Installed search plugins: - + Plugin pencarian terpasang: Name - Nama + Nama Version - Versi + Versi Url - Url + Url Enabled - Diaktifkan + Diaktifkan You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Anda bisa mendapatkan mesin pencari baru di sini: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Anda bisa mendapatkan mesin pencari baru di sini: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Pasang satu yang baru + Pasang yang baru Check for updates - Periksa pemutakhiran + Periksa pemutakhiran Close - Tutup + Tutup Uninstall - Bongkar + Bongkar Yes - Ya + Ya @@ -4164,107 +4214,107 @@ Apakah Anda yakin ingin qBittorrent keluar? No - Tidak + Tidak Uninstall warning - Peringatan pembongkaran + Peringatan pembongkaran Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Beberapa pengaya tidak bisa dibuang karena mereka disertakan qBittorrent secara bawaan. Hanya yang Anda tambahkan sendiri yang bisa Anda buang. -Pengaya tersebut dinonfungsikan. + Beberapa plugin tidak bisa dibuang karena mereka disertakan qBittorrent secara bawaan. Hanya yang Anda tambahkan sendiri yang bisa Anda buang. +Plugin tersebut telah dinonfungsikan. Uninstall success - Berhasil dibongkar + Berhasil dibongkar All selected plugins were uninstalled successfully - Semua pengaya yang dipilih telah berhasil dibuang. + Semua plugin yang dipilih telah berhasil dibongkar. New search engine plugin URL - URL pengaya mesin pencarian baru + URL plugin mesin pencarian baru URL: - URL: + URL: Invalid link - Tautan tidak valid + Tautan tidak valid The link doesn't seem to point to a search engine plugin. - Tautan sepertinya tidak mengarah ke pengaya mesin pencarian. + Tautan sepertinya tidak mengarah ke plugin mesin pencarian. Select search plugins - Pilih pengaya pencarian + Pilih plugin pencarian qBittorrent search plugin - Pengaya pencarian qBittorrent + Plugin pencarian qBittorrent Search plugin update - Pemutakhiran pengaya pencarian + Pemutakhiran plugin pencarian All your plugins are already up to date. - Semua pengaya Anda telah dimutakhirkan. + Semua plugin Anda telah dimutakhirkan. Sorry, couldn't check for plugin updates. %1 - + Maaf, tidak bisa memeriksa pemutakhiran plugin: %1 Search plugin install - Pemasangan pengaya pencarian + Pemasangan plugin pencarian "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + Plugin mesin pencarian "%1" telah berhasil dipasang. Couldn't install "%1" search engine plugin. %2 - + Tidak bisa memasang plugin mesin pencarian "%1". %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + Plugin mesin pencarian "%1" telah berhasil dimutakhirkan. Couldn't update "%1" search engine plugin. %2 - + Tidak bisa memutakhirkan plugin mesin pencarian "%1". %2 @@ -4272,22 +4322,22 @@ Pengaya tersebut dinonfungsikan. Plugin source - Sumber pengaya + Sumber plugin Search plugin source: - Sumber pengaya pencarian: + Sumber plugin pencarian: Local file - Berkas lokal + Berkas lokal Web link - Tautan web + Tautan web @@ -4390,7 +4440,7 @@ Pengaya tersebut dinonfungsikan. Enable Local Peer Discovery to find more peers - Aktifkan Penemuan Rekanan Lokal untuk menemukan lebih banyak rekanan + Aktifkan Pencarian Rekan Lokal untuk menemukan lebih banyak rekan @@ -4515,7 +4565,7 @@ Pengaya tersebut dinonfungsikan. Exchange peers with compatible Bittorrent clients (µTorrent, Vuze, ...) - Pertukaran rekanan dengan aplikasi Bittorrent yang kompatibel (µTorrent, Vuze, ...) + Pertukaran rekan dengan aplikasi Bittorrent yang kompatibel (µTorrent, Vuze, ...) @@ -4758,7 +4808,7 @@ Pengaya tersebut dinonfungsikan. Use proxy for peer connections - Gunakan proksi untuk koneksi rekanan + Gunakan proksi untuk koneksi rekan @@ -4773,7 +4823,7 @@ Pengaya tersebut dinonfungsikan. RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - Umpan RSS, mesin pencari, pemutakhiran perangkat lunak atau hal yang lain selain pengunduhan torrent atau yang terkait (seperti pertukaran rekanan) akan menggunakan sambungan langsung. + Umpan RSS, mesin pencari, pemutakhiran perangkat lunak atau hal yang lain selain pengunduhan torrent atau yang terkait (seperti pertukaran rekan) akan menggunakan sambungan langsung. @@ -4798,7 +4848,7 @@ Pengaya tersebut dinonfungsikan. Apply rate limit to peers on LAN - Terapkan batas laju untuk rekanan pada LAN + Terapkan batas laju untuk rekan pada LAN @@ -4838,17 +4888,17 @@ Pengaya tersebut dinonfungsikan. Enable DHT (decentralized network) to find more peers - Aktifkan DHT (jaringan desentralisasi) untuk menemukan lebih banyak rekanan + Aktifkan DHT (jaringan desentralisasi) untuk menemukan lebih banyak rekan Enable Peer Exchange (PeX) to find more peers - Aktifkan Pertukaran Rekanan (PeX) untuk menemukan lebih banyak rekanan + Aktifkan Pertukaran Rekan (PeX) untuk menemukan lebih banyak rekan Look for peers on your local network - Temukan rekanan di jaringan lokal Anda + Temukan rekan di jaringan lokal Anda @@ -5012,7 +5062,7 @@ Pengaya tersebut dinonfungsikan. Enable Web User Interface (Remote control) - Aktifkan Antarmuka Pengguna Web (Pengendali jauh) + Aktifkan Antarmuka Pengguna Web (Pengendali rajuh) @@ -5025,17 +5075,17 @@ Pengaya tersebut dinonfungsikan. Jalur penyaring (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Mendeteksi kerusakan berkas ketika program keluar. Menggunakan berkas cadangan untuk kembali ke pengaturan sebelumnya. - + An access error occurred while trying to write the configuration file. Sebuah galat akses terjadi ketika mencoba untuk menyimpan berkas konfigurasi. - + A format error occurred while trying to write the configuration file. Sebuah galat format terjadi ketika mencoba untuk menyimpan berkas konfigurasi. @@ -5120,7 +5170,7 @@ Pengaya tersebut dinonfungsikan. Peers - Rekanan + Rekan @@ -5194,7 +5244,7 @@ Pengaya tersebut dinonfungsikan. Peers: - Rekanan: + Rekan: @@ -5468,7 +5518,7 @@ Pengaya tersebut dinonfungsikan. QObject - + Your IP address has been banned after too many failed authentication attempts. Alamat IP Anda telah dicekal setelah terlalu banyak percobaan otentikasi yang gagal. @@ -5960,12 +6010,12 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... + Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... Automatically downloading '%1' torrent from '%2' RSS feed... - Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... + Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... @@ -5973,29 +6023,7 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Pengunduhan otomatis '%1' dari '%2' umpan RSS gagal karena tidak mengandung tautan torrent atau magnet... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Secara otomatis mengunduh '%1' torrent dari '%2' umpan RSS... - - - - RssParser - - Failed to open downloaded RSS file. - Gagal membuka berkas RSS yang diunduh. - - - Invalid RSS feed at '%1'. - Umpan RSS tidak valid pada '%1'. + Umpan RSS tidak valid. @@ -6026,22 +6054,22 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Watch Folder - + Folder Dimonitor Default Folder - + Folder Bawaan Browse... - Telusuri... + Telusuri... Choose save path - Pilih jalur penyimpanan + Pilih jalur penyimpanan @@ -6049,12 +6077,12 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Watch Folder - + Folder Dimonitor Default Folder - + Folder Bawaan @@ -6064,199 +6092,87 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Save Files to - - - - Download here - Unduh di sini - - - Download path - Jalur unduhan - - - - SearchCategories - - All categories - Semua kategori - - - Movies - Film - - - TV shows - Acara Tv - - - Music - Musik - - - Games - Permainan - - - Anime - Anime - - - Software - Perangkat lunak - - - Pictures - Gambar - - - Books - Buku + Simpan Berkas ke SearchEngine - - Search - Cari - - - Please install Python to use the Search Engine. - Mohon pasang Python untuk menggunakan Mesin Pencari. - - - Empty search pattern - Pola pencarian kosong - - - Please type a search pattern first - Mohon ketik pola pencarian telebih dahulu - - - Searching... - Mencari... - - - Stop - Hentikan - - - Search Engine - Mesin Pencari - - - Search has finished - Pencarian telah selesai - - - An error occurred during search... - Sebuah galat terjadi saat pencarian... - - - Search aborted - Pencarian dibatalkan - - - All enabled - Semua diaktifkan - - - All engines - Semua mesin - - - Multiple... - Banyak... - - - Results <i>(%1)</i>: - i.e: Search results - Hasil <i>(%1)</i>: - - - Search returned no results - Pencarian tidak menghasilkan apa-apa - - - Stopped - Dihentikan - Unknown search engine plugin file format. - + Format berkas plugin mesin pencarian tidak dikenal. A more recent version of this plugin is already installed. - + Versi yang lebih baru dari plugin mesin pencarian ini telah terpasang. Plugin is not supported. - + Plugin tidak didukung. Update server is temporarily unavailable. %1 - + Server pemutakhiran sementara tidak tersedia. %1 Failed to download the plugin file. %1 - + Gagal mengunduh berkas plugin. %1 An incorrect update info received. - + Menerima info pemutakhiran yang tidak benar. All categories - Semua kategori + Semua kategori Movies - Film + Film TV shows - Acara Tv + Acara TV Music - Musik + Musik Games - Permainan + Permainan Anime - Anime + Anime Software - Perangkat lunak + Perangkat Lunak Pictures - Gambar + Gambar Books - Buku + Buku @@ -6305,124 +6221,124 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. - - - + + + Search - Cari + Cari Status: - Status: + Status: - + Stopped - Dihentikan + Dihentikan Download - Unduh + Unduh Go to description page - Pergi ke halaman deskripsi + Kunjungi halaman deskripsi Copy description page URL - Salin URL halaman deskripsi + Salin URL halaman deskripsi Search plugins... - + Plugin pencarian... - + All enabled - Semua diaktifkan - - - - All plugins - + Semua diaktifkan - + All plugins + Semua plugin + + + + Multiple... - Banyak... + Banyak... - - - + + + Search Engine - Mesin Pencari + Mesin Pencari - + Please install Python to use the Search Engine. - Mohon pasang Python untuk menggunakan Mesin Pencari. + Mohon pasang Python untuk menggunakan Mesin Pencari. - + Empty search pattern - Pola pencarian kosong + Pola pencarian kosong - + Please type a search pattern first - Mohon ketik pola pencarian telebih dahulu + Mohon ketik pola pencarian telebih dahulu - - + + Results <i>(%1)</i>: i.e: Search results - Hasil <i>(%1)</i>: - - - - Searching... - Mencari... + Hasil <i>(%1)</i>: + Searching... + Mencari... + + + Stop - Hentikan + Hentikan - - + + Search has finished - Pencarian telah selesai + Pencarian telah selesai - - + + Search aborted - Pencarian dibatalkan + Pencarian dibatalkan - + Search returned no results - Pencarian tidak menghasilkan apa-apa + Pencarian tidak menghasilkan apa-apa - + Search has failed - + Pencarian telah gagal - + An error occurred during search... - Sebuah galat terjadi saat pencarian... + Terjadi kesalahan saat pencarian... @@ -6627,7 +6543,7 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Total peer connections: - Total koneksi rekanan: + Total koneksi rekan: @@ -6886,11 +6802,7 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Download Priority - - - - Priority - Prioritas + Prioritas Unduh @@ -7060,7 +6972,7 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Peers i.e. partial sources (often untranslated) - Rekanan + Rekan @@ -7294,7 +7206,7 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Peers - Rekanan + Rekan @@ -7835,12 +7747,12 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Add Peers - Tambah Rekanan + Tambah Rekan List of peers to add (one per line): - Daftar rekanan untuk ditambahkan (satu per baris): + Daftar rekan untuk ditambahkan (satu per baris): @@ -8087,160 +7999,6 @@ Tidak ada pemberitahuan lebih lanjut yang akan dikeluarkan. Mohon ketik paling tidak satu URL. - - engineSelect - - Search plugins - Pengaya pencarian - - - Installed search engines: - Mesin pencari terpasang: - - - Name - Nama - - - Version - Versi - - - Url - Url - - - Enabled - Diaktifkan - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Anda bisa mendapatkan mesin pencari baru di sini: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Pasang satu yang baru - - - Check for updates - Periksa pemutakhiran - - - Close - Tutup - - - Uninstall - Bongkar - - - - engineSelectDlg - - Uninstall warning - Peringatan pembongkaran - - - Uninstall success - Berhasil dibongkar - - - Invalid plugin - Plugin tidak valid - - - The search engine plugin is invalid, please contact the author. - Plugin mesin pencari tidak valid, silahkan hubungi pengembang. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Versi yang lebih baru dari pengaya mesin pencari '%1' telah dipasang. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Pengaya mesin pencarian '%1' tidak bisa dimutakhirkan, tetap pada versi lama. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Pengaya mesin pencarian '%1' tidak bisa dipasang. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Pengaya mesin pencarian '%1' telah berhasil dimutakhirkan. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Pengaya mesin pencarian '%1' telah berhasil dipasang. - - - The link doesn't seem to point to a search engine plugin. - Tautan sepertinya tidak mengarah ke pengaya mesin pencarian. - - - Select search plugins - Pilih pengaya pencarian - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Maaf, pemasangan pengaya pencarian '%1' gagal. - - - Search plugin install - Pemasangan pengaya pencarian - - - Yes - Ya - - - No - Tidak - - - qBittorrent search plugin - Pengaya pencarian qBittorrent - - - Search plugin update - Pemutakhiran pengaya pencarian - - - Sorry, update server is temporarily unavailable. - Maaf, server pemutakhiran sementara tidak tersedia. - - - All your plugins are already up to date. - Semua pengaya Anda telah dimutakhirkan. - - - All selected plugins were uninstalled successfully - Semua pengaya yang dipilih telah berhasil dibuang. - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Beberapa pengaya tidak bisa dibuang karena mereka disertakan qBittorrent secara bawaan. Hanya yang Anda tambahkan sendiri yang bisa Anda buang. -Pengaya tersebut dinonfungsikan. - - - Invalid link - Tautan tidak valid - - - New search engine plugin URL - URL pengaya mesin pencarian baru - - - URL: - URL: - - errorDialog @@ -8368,192 +8126,173 @@ Pengaya tersebut dinonfungsikan. options_imp - - + + Choose export directory Pilih direktori ekspor - - - - + + + + Choose a save directory Pilih direktori simpan - + Add directory to scan Tambah direktori untuk dipindai - + Supported parameters (case sensitive): Parameter yang didukung (sensitif besar kecil huruf): - + %N: Torrent name %N: Nama torrent - + %L: Label %L: Label - + %F: Content path (same as root path for multifile torrent) %F: Jalur konten (sama dengan jalur root untuk torrent multi-berkas) - + %R: Root path (first torrent subdirectory path) %R: Jalur root (jalur subdirektori torrent pertama) - + %D: Save path %D: Jalur simpan - + %C: Number of files %C: Jumlah berkas - + %Z: Torrent size (bytes) %Z: Ukuran torrent (bita) - + %T: Current tracker %T: Tracker saat ini - + %I: Info hash %I: Info hash - + Folder is already being watched. Folder telah dimonitor. - + Folder does not exist. Folder tidak ada. - + Folder is not readable. Folder tidak bisa dibaca. - + Failure Kegagalan - + Failed to add Scan Folder '%1': %2 Gagal untuk menambah Folder Pindaian '%1': %2 - - + + Filters Penyaring - - + + Choose an IP filter file Pilih berkas penyaring IP - + SSL Certificate Sertifikat SSL - + SSL Key Kunci SSL - + Parsing error Galat penguraian - + Failed to parse the provided IP filter Gagal mengurai penyaring IP yang diberikan - + Successfully refreshed Berhasil disegarkan - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Berhasil mengurai penyaring IP yang diberikan: %1 aturan diterapkan. - + Invalid key Kunci tidak valid - + This is not a valid SSL key. Ini bukan kunci SSL yang valid. - + Invalid certificate Sertifikat tidak valid - + This is not a valid SSL certificate. Ini bukan Sertifikat SSL yang valid. - + The start time and the end time can't be the same. Waktu mulai dan berakhir tidak boleh sama. - + Time Error Galat Waktu - - pluginSourceDlg - - Plugin source - Sumber pengaya - - - Search plugin source: - Sumber pengaya pencarian: - - - Local file - Berkas lokal - - - Web link - Tautan web - - preview @@ -8577,35 +8316,4 @@ Pengaya tersebut dinonfungsikan. Batal - - search_engine - - Search - Cari - - - Status: - Status: - - - Stopped - Dihentikan - - - Download - Unduh - - - Go to description page - Pergi ke halaman deskripsi - - - Copy description page URL - Salin URL halaman deskripsi - - - Search engines... - Mesin pencari... - - diff --git a/src/lang/qbittorrent_it.ts b/src/lang/qbittorrent_it.ts index 2484c477c..7fdcbe4d9 100644 --- a/src/lang/qbittorrent_it.ts +++ b/src/lang/qbittorrent_it.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID peer: - + HTTP User-Agent is '%1' Lo user agent HTTP è %1 - + Anonymous mode [ON] Modalità anonima [ON] - + Anonymous mode [OFF] Modalità anonima [OFF] - + PeX support [ON] Supporto PeX [ON] - + PeX support [OFF] Supporto PeX [OFF] - + Restart is required to toggle PeX support È richiesto un riavvio per modificare il supporto PeX - + Local Peer Discovery support [ON] Supporto ricerca peer locali [ON] - + Local Peer Discovery support [OFF] Supporto ricerca peer locali [OFF] - + Encryption support [ON] Supporto cifratura [ON] - + Encryption support [FORCED] Supporto cifratura [FORZATO] - + Encryption support [OFF] Supporto cifratura [OFF] - + Embedded Tracker [ON] Tracker incorporato [ON] - + Failed to start the embedded tracker! Avvio del tracker integrato non riuscito! - + Embedded Tracker [OFF] Tracker integrato [OFF] - + '%1' reached the maximum ratio you set. Removing... '%1' ha raggiunto il massimo rapporto impostato. Lo sto rimuovendo... - + '%1' reached the maximum ratio you set. Pausing... '%1' ha raggiunto il massimo rapporto impostato. Metto in pausa... - + System network status changed to %1 e.g: System network status changed to ONLINE Lo stato di rete di sistema è cambiato in %1 - + ONLINE IN LINEA - + OFFLINE NON IN LINEA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding La configurazione di rete di %1 è cambiata, aggiornamento associazione di sessione - + Unable to decode '%1' torrent file. Impossibile decifrare il file torrent %1. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Download ricorsivo del file '%1' incluso nel torrent '%2' - + Couldn't save '%1.torrent' Impossibile salvare %1.torrent - + because %1 is disabled. this peer was blocked because uTP is disabled. perché %1 è disattivato. - + because %1 is disabled. this peer was blocked because TCP is disabled. perché %1 è disattivato. - + URL seed lookup failed for URL: '%1', message: %2 Ricerca seed web non riuscita per l'URL: '%1', messaggio: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' è stato rimosso dall'elenco dei trasferimenti e dal disco fisso. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' è stato rimosso dall'elenco dei trasferimenti. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Download di '%1' in corso... - + DHT support [ON] Supporto DHT [ON] - + DHT support [OFF]. Reason: %1 Supporto DHT [OFF]. Motivo: %1 - + DHT support [OFF] Supporto DHT [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sta cercando di mettersi in ascolto su ogni interfaccia sulla porta: %1 - + The network interface defined is invalid: %1 L'interfaccia di rete definita non è valida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sta cercando di mettersi in ascolto sull'interfaccia %1 sulla porta: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent non ha trovato un indirizzo locale %1 su cui mettersi in ascolto - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent non è riuscito a mattersi in ascolto su alcuna interfaccia sulla porta: %1. Motivo: %2. - + Tracker '%1' was added to torrent '%2' Il tracker '%1' è stato aggiunto al torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Il tracker '%1' è stato rimosso dal torrent '%2' - + URL seed '%1' was added to torrent '%2' Il seed URL '%1' è stato aggiunto al torrent '%2' - + URL seed '%1' was removed from torrent '%2' Il seed URL '%1' è stato rimosso dal torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Impossibile riprendere il download del torrent: '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Analisi filtro IP completata: sono state applicate %1 regole. - + Error: Failed to parse the provided IP filter. Errore: Impossibile analizzare il filtro IP. - + Couldn't add torrent. Reason: %1 Impossibile aggiungere il torrent. Motivo: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' ripreso. (recupero veloce) - + '%1' added to download list. 'torrent name' was added to download list. '%1' aggiunto all'elenco dei trasferimenti. - + An I/O error occurred, '%1' paused. %2 Si è verificato un errore I/O, '%1' messo in pausa. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Mappatura porta non riuscita, messaggio: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mappatura porta riuscita, messaggio: %1 - + due to IP filter. this peer was blocked due to ip filter. per via del filtro IP. - + due to port filter. this peer was blocked due to port filter. per via del filtro porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. per via di limitazioni nella modalità mista i2p. - + because it has a low port. this peer was blocked because it has a low port. perché ha una porta troppo bassa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent è correttamente in ascolto sull'interfaccia %1 porta: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent non è riuscito a mettersi in ascolto sull'interfaccia %1 sulla porta: %2/%3. Motivo: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 IP esterno: %1 @@ -1284,12 +1284,12 @@ Puoi ottenere questa informazione dalle preferenze del browser web. FeedListWidget - + RSS feeds Feed RSS - + Unread Non letti @@ -1378,211 +1378,338 @@ Puoi ottenere questa informazione dalle preferenze del browser web. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Scarica torrent da URL o da collegamento magnet - + Only one link per line Solo un collegamento per riga - + Download Download - + Global upload rate limit must be greater than 0 or disabled. Il limite globale di velocità upload deve essere maggiore di 0 o disattivato. - + Global download rate limit must be greater than 0 or disabled. Il limite globale di velocità download deve essere maggiore di 0 o disattivato. - + Alternative upload rate limit must be greater than 0 or disabled. Il limite alternativo per l'upload deve essere maggiore di 0 o disattivato. - + Alternative download rate limit must be greater than 0 or disabled. Il limite alternativo per il download deve essere maggiore di 0 o disattivato. - + Maximum active downloads must be greater than -1. Il numero massimo di download attivi deve essere maggiore di -1. - + Maximum active uploads must be greater than -1. Il numero massimo di upload attivi deve essere maggiore di -1. - + Maximum active torrents must be greater than -1. Il numero massimo di torrent attivi deve essere maggiore di -1. - + Maximum number of connections limit must be greater than 0 or disabled. Il limite per il numero massimo di connessioni deve essere 0 o disattivato. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Il limite per il numero di connessioni per torrent deve essere 0 o disattivato. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Il numero massimo di slot in upload deve essere 0 o disattivato. - + Unable to save program preferences, qBittorrent is probably unreachable. Impossibile salvare le preferenze, qBittorrent potrebbe essere irraggiungibile. - + Language Lingua - + The port used for incoming connections must be between 1 and 65535. La porta usata per le connessioni in entrata deve essere compresa tra 1 e 65535. - + The port used for the Web UI must be between 1 and 65535. La porta usata per l'interfaccia web deve essere compresa tra 1 e 65535. - + Unable to log in, qBittorrent is probably unreachable. Impossibile effettuare l'accesso, probabilmente qBittorrent non è raggiungibile. - + Invalid Username or Password. Username o password errati. - + Password Password - + Login Login - + Upload Failed! Upload non riuscito! - + Original authors Autori originari - + Upload limit: Limite upload: - + Download limit: Limite download: - + Apply Applica - + Add Aggiungi - + Upload Torrents Carica torrent - + All Tutti - + Downloading In download - + Seeding In condivisione - + Completed Completati - + Resumed Ripresi - + Paused In pausa - + Active Attivi - + Inactive Inattivi - + Save files to location: Salva file nel percorso: - + Label: Etichetta: - + Cookie: Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Altro... + + + + Every day + Schedule the use of alternative rate limits on ... + ogni giorno + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Altro... + + + Downloaded Is the file downloaded or not? Scaricato @@ -1593,57 +1720,57 @@ Puoi ottenere questa informazione dalle preferenze del browser web.Disconnessione - + Upload local torrent Carica torrent locale - + Are you sure you want to delete the selected torrents from the transfer list? Sei sicuro di voler eliminare i torrent selezionati dall'elenco trasferimenti? - + The Web UI username must be at least 3 characters long. Il nome utente per l'interfaccia web deve essere di almeno 3 caratteri. - + The Web UI password must be at least 3 characters long. La password per l'interfaccia web deve essere di almeno 3 caratteri. - + Save Salva - + qBittorrent client is not reachable Il client qBittorrent non è raggiungibile - + HTTP Server Server HTTP - + The following parameters are supported: Sono supportati i seguenti parametri: - + Torrent path Percorso torrent - + Torrent name Nome torrent - + qBittorrent has been shutdown. qBittorent è stato chiuso. @@ -2281,12 +2408,6 @@ Vuoi installarlo ora? Python is required to use the search engine but it does not seem to be installed. Python è necessario per poter usare il motore di ricerca, ma non risulta installato. - - A new version is available. -Update to version %1? - È disponibile una nuova versione. -Vuoi aggiornare alla versione %1? - No updates available. @@ -2489,7 +2610,7 @@ Chiudere qBittorrent? Venezuela, Bolivarian Republic of - + Repubblica Bolivariana di Venezuela @@ -2502,14 +2623,6 @@ Chiudere qBittorrent? N/A N/D - - Asia/Pacific Region - Regione Asia/Pacifico - - - Europe - Europa - Andorra @@ -2545,10 +2658,6 @@ Chiudere qBittorrent? Armenia Armenia - - Netherlands Antilles - Antille Olandesi - Angola @@ -2644,10 +2753,6 @@ Chiudere qBittorrent? Brunei Darussalam Sultanato del Brunei - - Bolivia - Bolivia - Brazil @@ -2713,10 +2818,6 @@ Chiudere qBittorrent? Switzerland Svizzera - - Cote D'Ivoire - Costa d'Avorio - Cook Islands @@ -2872,10 +2973,6 @@ Chiudere qBittorrent? France Francia - - France, Metropolitan - Francia Metropolitana - Gabon @@ -3161,10 +3258,6 @@ Chiudere qBittorrent? Latvia Lettonia - - Libyan Arab Jamahiriya - Repubblica Araba di Libia - Morocco @@ -3190,10 +3283,6 @@ Chiudere qBittorrent? Marshall Islands Isole Marshall - - Macedonia - Macedonia - Mali @@ -3209,10 +3298,6 @@ Chiudere qBittorrent? Mongolia Mongolia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3458,11 @@ Chiudere qBittorrent? Saint Pierre and Miquelon Saint-Pierre e Miquelon - - Pitcairn Islands - Isole Pitcairn - Puerto Rico Porto Rico - - Palestinian Territory - Territori Palestinesi - Portugal @@ -3456,10 +3533,6 @@ Chiudere qBittorrent? Singapore Singapore - - Saint Helena - Sant'Elena - Slovenia @@ -3578,27 +3651,27 @@ Chiudere qBittorrent? Bolivia, Plurinational State of - + Stato plurinazionale della Bolivia Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius e Saba Cote d'Ivoire - + Costa d'Avorio Libya - + Libia Saint Martin (French part) - + Saint Martin (parte francese) @@ -3608,7 +3681,7 @@ Chiudere qBittorrent? Macao - + Macao @@ -3618,22 +3691,22 @@ Chiudere qBittorrent? Palestine, State of - + Stato di Palestina Saint Helena, Ascension and Tristan da Cunha - + Sant'Elena, Ascensione e Tristan da Cunha South Sudan - + Sudan del Sud Sint Maarten (Dutch part) - + Sint Maarten (parte olandese) @@ -3700,10 +3773,6 @@ Chiudere qBittorrent? Saint Vincent and the Grenadines Saint Vincent e Grenadine - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3783,6 @@ Chiudere qBittorrent? Virgin Islands, U.S. Isole Vergini americane. - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3833,6 @@ Chiudere qBittorrent? Zimbabwe Zimbabwe - - Anonymous Proxy - Proxy anonimo - - - Satellite Provider - Provider satellitare - - - Other - Altro - Aland Islands @@ -3805,10 +3858,6 @@ Chiudere qBittorrent? Saint Barthelemy Saint-Barthélemy - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3895,7 @@ Chiudere qBittorrent? Net::Smtp - + Email Notification Error: Errore nella notifica email: @@ -3992,7 +4041,7 @@ Chiudere qBittorrent? Files i.e. files that are being downloaded right now - + File @@ -4098,65 +4147,65 @@ Chiudere qBittorrent? Search plugins - Plugin di ricerca + Plugin di ricerca Installed search plugins: - + Plugin di ricerca installati: Name - Nome + Nome Version - Versione + Versione Url - Indirizzo + Indirizzo Enabled - Attivato + Attivato You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - È possibile ottenere altri plugin di ricerca qui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + È possibile ottenere nuovi plugin di ricerca qui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Installane uno nuovo + Installane uno nuovo Check for updates - Controlla gli aggiornamenti + Controlla gli aggiornamenti Close - Chiudi + Chiudi Uninstall - Disinstalla + Disinstalla Yes - + @@ -4164,107 +4213,107 @@ Chiudere qBittorrent? No - No + No Uninstall warning - Avviso di disinstallazione + Avviso di disinstallazione Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alcuni plugin non hanno potuto essere disinstallati perché sono inclusi in qBittorrent. Solo quelli aggiunti da te possono essere disinstallati. + Alcuni plugin non hanno potuto essere disinstallati perché sono inclusi in qBittorrent. Solo quelli aggiunti da te possono essere disinstallati. I plugin in questione sono stati invece disattivati. Uninstall success - Disinstallazione riuscita + Disinstallazione riuscita All selected plugins were uninstalled successfully - Tutti i plugin selezionati sono stati disinstallati con successo + Tutti i plugin selezionati sono stati disinstallati con successo New search engine plugin URL - Indirizzo del nuovo plugin di ricerca + Indirizzo del nuovo plugin di ricerca URL: - Indirizzo web: + Indirizzo web: Invalid link - Collegamento non valido + Collegamento non valido The link doesn't seem to point to a search engine plugin. - Il collegamento non risulta puntare ad un plugin del motore di ricerca. + Il collegamento non risulta puntare ad un plugin di ricerca. Select search plugins - Seleziona plugin di ricerca + Seleziona plugin di ricerca qBittorrent search plugin - Plugin di ricerca per qBittorrent + Plugin di ricerca per qBittorrent Search plugin update - Aggiornamento plugin di ricerca + Aggiornamento plugin di ricerca All your plugins are already up to date. - Tutti i plugin sono già aggiornati. + Tutti i plugin sono già aggiornati. Sorry, couldn't check for plugin updates. %1 - + Impossibile controllare aggiornamenti dei plugin. %1 Search plugin install - Installazione plugin di ricerca + Installazione plugin di ricerca "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + Il plugin di ricerca "%1" è stato installato correttamente. Couldn't install "%1" search engine plugin. %2 - + Impossibile installare il plugin di ricerca "%1". %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + Il plugin di ricerca "%1" è stato aggiornato correttamente. Couldn't update "%1" search engine plugin. %2 - + Impossibile aggiornare il plugin di ricerca "%1". %2 @@ -4272,22 +4321,22 @@ I plugin in questione sono stati invece disattivati. Plugin source - Origine del plugin + Origine del plugin Search plugin source: - Origine del plugin di ricerca: + Origine del plugin di ricerca: Local file - File locale + File locale Web link - Collegamento web + Collegamento web @@ -5025,17 +5074,17 @@ I plugin in questione sono stati invece disattivati. Percorso filtro (.dat, .p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. Rilevata uscita irregolare dal programma. Uso il file di ripiego per ripristinare le impostazioni. - + An access error occurred while trying to write the configuration file. Si è verificato un errore di accesso durante la scrittura del file di configurazione. - + A format error occurred while trying to write the configuration file. Si è verificato un errore di formato durante la scrittura del file di configurazione. @@ -5468,7 +5517,7 @@ I plugin in questione sono stati invece disattivati. QObject - + Your IP address has been banned after too many failed authentication attempts. Il tuo indirizzo IP è stato messo al bando a causa dei troppi tentativi di autenticazione non riusciti. @@ -5959,12 +6008,12 @@ Non verranno emessi avvisi. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Scaricamento automatico di %1 dal feed RSS %2 non riuscito perché non contiene un collegamento torrent o magnet... + Automatically downloading '%1' torrent from '%2' RSS feed... - Download automatico del torrent %1 dal feed RSS %2... + @@ -5975,28 +6024,6 @@ Non verranno emessi avvisi. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Scaricamento automatico di %1 dal feed RSS %2 non riuscito perché non contiene un collegamento torrent o magnet... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Download automatico del torrent %1 dal feed RSS %2... - - - - RssParser - - Failed to open downloaded RSS file. - Impossibile aprire il file RSS scaricato. - - - Invalid RSS feed at '%1'. - Feed RSS non valido su '%1'. - - RssSettingsDlg @@ -6065,121 +6092,9 @@ Non verranno emessi avvisi. Save Files to - - Download here - Scarica qui - - - Download path - Percorso di salvataggio - - - - SearchCategories - - All categories - Tutte le categorie - - - Movies - Film - - - TV shows - Programmi TV - - - Music - Musica - - - Games - Giochi - - - Anime - Anime - - - Software - Software - - - Pictures - Immagini - - - Books - Libri - SearchEngine - - Search - Ricerca - - - Please install Python to use the Search Engine. - Installa Python per usare il motore di ricerca. - - - Empty search pattern - Campo di ricerca vuoto - - - Please type a search pattern first - È necessario inserire dei termini nel campo di ricerca - - - Searching... - Ricerca in corso... - - - Stop - Ferma - - - Search Engine - Motore di ricerca - - - Search has finished - La ricerca è terminata - - - An error occurred during search... - Si è verificato un errore durante la ricerca... - - - Search aborted - Ricerca annullata - - - All enabled - Tutti abilitati - - - All engines - Tutti i motori - - - Multiple... - Multiplo... - - - Results <i>(%1)</i>: - i.e: Search results - Risultati <i>(%1)</i>: - - - Search returned no results - La ricerca non ha prodotto risultati - - - Stopped - Fermato - Unknown search engine plugin file format. @@ -6215,47 +6130,47 @@ Non verranno emessi avvisi. All categories - Tutte le categorie + Movies - Film + TV shows - Programmi TV + Music - Musica + Games - Giochi + Anime - Anime + Software - Software + Pictures - Immagini + Books - Libri + @@ -6304,22 +6219,22 @@ Non verranno emessi avvisi. - - - + + + Search Ricerca Status: - Stato: + - + Stopped - Fermato + @@ -6329,12 +6244,12 @@ Non verranno emessi avvisi. Go to description page - Vai alla pagina di descrizione + Copy description page URL - Copia URL pagina di descrizione + @@ -6342,86 +6257,86 @@ Non verranno emessi avvisi. - + All enabled - Tutti abilitati - - - - All plugins - + All plugins + + + + + Multiple... - Multiplo... + - - - + + + Search Engine - Motore di ricerca + - + Please install Python to use the Search Engine. - Installa Python per usare il motore di ricerca. + - + Empty search pattern - Campo di ricerca vuoto + - + Please type a search pattern first - È necessario inserire dei termini nel campo di ricerca + - - + + Results <i>(%1)</i>: i.e: Search results - Risultati <i>(%1)</i>: - - - - Searching... - Ricerca in corso... + + Searching... + + + + Stop - Ferma + - - + + Search has finished - La ricerca è terminata + - - + + Search aborted - Ricerca annullata + - + Search returned no results - La ricerca non ha prodotto risultati + - + Search has failed - + An error occurred during search... - Si è verificato un errore durante la ricerca... + @@ -6887,10 +6802,6 @@ Non verranno emessi avvisi. Download Priority - - Priority - Priorità - TorrentCreatorDlg @@ -8086,160 +7997,6 @@ Non verranno emessi avvisi. Inserire almeno un indirizzo web. - - engineSelect - - Search plugins - Plugin di ricerca - - - Installed search engines: - Motori di ricerca installati: - - - Name - Nome - - - Version - Versione - - - Url - Indirizzo - - - Enabled - Attivato - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - È possibile ottenere altri plugin di ricerca qui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Installane uno nuovo - - - Check for updates - Controlla gli aggiornamenti - - - Close - Chiudi - - - Uninstall - Disinstalla - - - - engineSelectDlg - - Uninstall warning - Avviso di disinstallazione - - - Uninstall success - Disinstallazione riuscita - - - Invalid plugin - Plugin non valido - - - The search engine plugin is invalid, please contact the author. - Il plugin di ricerca non è valido, per favore contatta l'autore. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Una versione più recente del plugin di ricerca '%1' è già installata. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Non è stato possibile aggiornare il plugin di ricerca '%1', mantengo la versione attuale. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Non è stato possibile installare il plugin di ricerca %1. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Il plugin di ricerca %1 è stato aggiornato con successo. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Il plugin di ricerca '%1' è stato installato con successo. - - - The link doesn't seem to point to a search engine plugin. - Il collegamento non risulta puntare ad un plugin del motore di ricerca. - - - Select search plugins - Seleziona plugin di ricerca - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Installazione del plugin di ricerca '%1' non riuscita. - - - Search plugin install - Installazione plugin di ricerca - - - Yes - - - - No - No - - - qBittorrent search plugin - Plugin di ricerca per qBittorrent - - - Search plugin update - Aggiornamento plugin di ricerca - - - Sorry, update server is temporarily unavailable. - Il server non è momentaneamente disponibile. - - - All your plugins are already up to date. - Tutti i plugin sono già aggiornati. - - - All selected plugins were uninstalled successfully - Tutti i plugin selezionati sono stati disinstallati con successo - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Alcuni plugin non hanno potuto essere disinstallati perché sono inclusi in qBittorrent. Solo quelli aggiunti da te possono essere disinstallati. -I plugin in questione sono stati invece disattivati. - - - Invalid link - Collegamento non valido - - - New search engine plugin URL - Indirizzo del nuovo plugin di ricerca - - - URL: - Indirizzo web: - - errorDialog @@ -8367,192 +8124,173 @@ I plugin in questione sono stati invece disattivati. options_imp - - + + Choose export directory Scegli cartella di esportazione - - - - + + + + Choose a save directory Scegli una cartella per il salvataggio - + Add directory to scan Aggiungi una cartella da scansionare - + Supported parameters (case sensitive): Parametri supportati (maiuscole/minuscole): - + %N: Torrent name %N: Nome torrent - + %L: Label %L: Etichetta - + %F: Content path (same as root path for multifile torrent) %F: Percorso contenuto (lo stesso che il percorso radice per i torrent multi-file) - + %R: Root path (first torrent subdirectory path) %R: Percorso radice (primo percorso sottocartella torrent) - + %D: Save path %D: Percorso salvataggio - + %C: Number of files %C: Numero di file - + %Z: Torrent size (bytes) %Z: Dimensione torrent (byte) - + %T: Current tracker %T: Tracker attuale - + %I: Info hash %I: Info hash - + Folder is already being watched. La cartella è già stata controllata. - + Folder does not exist. La cartella non esiste. - + Folder is not readable. La cartella è illeggibile. - + Failure Operazione non riuscita - + Failed to add Scan Folder '%1': %2 Impossibile aggiungere cartella da analizzare "%1": %2 - - + + Filters Filtri - - + + Choose an IP filter file Scegli un file filtro IP - + SSL Certificate Certificato SSL - + SSL Key Chiave SSL - + Parsing error Errore di analisi - + Failed to parse the provided IP filter Impossibile analizzare la condizione del filtro IP - + Successfully refreshed Aggiornato con successo - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Completata analisi filtro IP: sono state applicate %1 regole. - + Invalid key Chiave non valida - + This is not a valid SSL key. Questa non è una chiave SSL valida. - + Invalid certificate Certificato non valido - + This is not a valid SSL certificate. Questo non è un certificato SSL valido. - + The start time and the end time can't be the same. L'orario di inizio e di fine non possono essere lo stesso. - + Time Error Errore orario - - pluginSourceDlg - - Plugin source - Origine del plugin - - - Search plugin source: - Origine del plugin di ricerca: - - - Local file - File locale - - - Web link - Collegamento web - - preview @@ -8576,35 +8314,4 @@ I plugin in questione sono stati invece disattivati. Annulla - - search_engine - - Search - Ricerca - - - Status: - Stato: - - - Stopped - Fermato - - - Download - Download - - - Go to description page - Vai alla pagina di descrizione - - - Copy description page URL - Copia URL pagina di descrizione - - - Search engines... - Motori di ricerca... - - diff --git a/src/lang/qbittorrent_ja.ts b/src/lang/qbittorrent_ja.ts index e2f75f726..81d34df43 100644 --- a/src/lang/qbittorrent_ja.ts +++ b/src/lang/qbittorrent_ja.ts @@ -127,7 +127,7 @@ Set as default label - デフォルトラベルとして設定する + デフォルトラベルとして設定 @@ -476,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - 細大半開接続数 [0: 無制限] + 最大半開接続数 [0 無制限] @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ピア ID: - + HTTP User-Agent is '%1' HTTP User-Agent: '%1' - + Anonymous mode [ON] 匿名モード [ON] - + Anonymous mode [OFF] 匿名モード [OFF] - + PeX support [ON] PeX サポート [ON] - + PeX support [OFF] PeX サポート [OFF] - + Restart is required to toggle PeX support PeX サポートを切り替えるには再起動が必要です - + Local Peer Discovery support [ON] ローカルピア交換 [ON] - + Local Peer Discovery support [OFF] ローカルピア交換 [OFF] - + Encryption support [ON] 暗号化サポート [ON] - + Encryption support [FORCED] 暗号化サポート [強制] - + Encryption support [OFF] 暗号化サポート [OFF] - + Embedded Tracker [ON] 埋め込みトラッカー [ON] - + Failed to start the embedded tracker! 埋め込みトラッカーの起動に失敗しました! - + Embedded Tracker [OFF] 埋め込みトラッカー [OFF] - + '%1' reached the maximum ratio you set. Removing... '%1' は共有比の上限に達しました。削除します... - + '%1' reached the maximum ratio you set. Pausing... '%1' は共有比の上限に達しました。停止します... - + System network status changed to %1 e.g: System network status changed to ONLINE システムのネットワーク状態を %1 に変更しました - + ONLINE オンライン - + OFFLINE オフライン - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 のネットワーク構成が変更されました。セッションバインディングをリフレッシュします - + Unable to decode '%1' torrent file. Torrent ファイル '%1' をデコードできません。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Torrent '%2' に埋め込まれたファイル '%1' の再帰ダウンロード - + Couldn't save '%1.torrent' '%1.torrent' を保存できませんでした - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 が無効になっています。 - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 が無効になっています。 - + URL seed lookup failed for URL: '%1', message: %2 URL シードのルックアップに失敗しました ― URL: '%1', メッセージ: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' を転送リストおよびストレージから削除しました。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' を転送リストから削除しました。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' をダウンロードしています。お待ちください... - + DHT support [ON] DHT サポート [ON] - + DHT support [OFF]. Reason: %1 DHT サポート [OFF]. 理由: %1 - + DHT support [OFF] DHT サポート [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent はいずれかのインターフェースでの待ち受けを試みています。ポート: %1 - + The network interface defined is invalid: %1 定義されたネットワークインターフェースは無効です: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent はインターフェース %1 ポート %2 での待ち受けを試みています - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent は待ち受ける %1 ローカルアドレスを検出できませんでした - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent はすべてのインターフェースでの待ち受けに失敗しました。ポート: %1. 理由: %2. - + Tracker '%1' was added to torrent '%2' Torrent '%2' にトラッカー '%1' が追加されました - + Tracker '%1' was deleted from torrent '%2' Torrent '%2' からトラッカー '%1' が削除されました - + URL seed '%1' was added to torrent '%2' Torrent '%2' に URL シード '%1' が追加されました - + URL seed '%1' was removed from torrent '%2' Torrent '%2' から URL シード '%1' が削除されました - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Torrent '%1' の再開に失敗しました。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP フィルターは正常に解析されました: %1 個のルールが適用されました。 - + Error: Failed to parse the provided IP filter. エラー: IP フィルターの解析に失敗しました。 - + Couldn't add torrent. Reason: %1 Torrent を追加できませんでした: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' を再開しました. (高速再開) - + '%1' added to download list. 'torrent name' was added to download list. '%1' をダウンロードリストに追加しました。 - + An I/O error occurred, '%1' paused. %2 I/O エラーが発生しました。'%1' を停止しました。 %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: ポートマッピングに失敗しました。メッセージ: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: ポートマッピングに成功しました。メッセージ: %1 - + due to IP filter. this peer was blocked due to ip filter. IP フィルターによる。 - + due to port filter. this peer was blocked due to port filter. ポートフィルターによる。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p 混在モード制限による。 - + because it has a low port. this peer was blocked because it has a low port. 低いポート番号による。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent はインターフェース %1, ポート: %2/%3 での待ち受けを正常に開始しました - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent はインターフェース %1 ポート: %2/%3 での待ち受けに失敗しました。理由: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP: %1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS フィード - + Unread 未読 @@ -1378,211 +1378,338 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link URL やマグネットリンクから Torrent をダウンロード - + Only one link per line 1 行に 1 リンクを入力してください - + Download ダウンロード - + Global upload rate limit must be greater than 0 or disabled. 全体のアップロード速度制限は 0 より大きいか無効にしなければなりません。 - + Global download rate limit must be greater than 0 or disabled. 全体のダウンロード速度制限は 0 より大きいか無効にしなければなりません。 - + Alternative upload rate limit must be greater than 0 or disabled. 代替アップロード速度制限は 0 より大きいか無効にしなければなりません。 - + Alternative download rate limit must be greater than 0 or disabled. 代替ダウンロード速度制限は 0 より大きいか無効にしなければなりません。 - + Maximum active downloads must be greater than -1. 最大アクティブダウンロード数は 1 より大きくしなければなりません。 - + Maximum active uploads must be greater than -1. 最大アクティブアップロード数は 1 より大きくしなければなりません。 - + Maximum active torrents must be greater than -1. 最大アクティブ Torrent 数は 1 より大きくしなければなりません。 - + Maximum number of connections limit must be greater than 0 or disabled. 最大接続数は 0 より大きいか無効でなくてはなりません。 - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Torrent ごとの最大接続数は 0 より大きいか無効でなくてはなりません。 - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. 最大アップロートスロット数は 0 より大きいか無効でなくてはなりません。 - + Unable to save program preferences, qBittorrent is probably unreachable. プログラム設定の保存ができません。qBittorrent はおそらく通信可能状態にありません。 - + Language 言語 - + The port used for incoming connections must be between 1 and 65535. 着信接続に使用するポートは 1 から 65535 の間でなくてはなりません。 - + The port used for the Web UI must be between 1 and 65535. Web UI に使用するポートは 1 から 65535 の間でなくてはなりません。 - + Unable to log in, qBittorrent is probably unreachable. ログインできません。おそらく qBittorrent から到達できません。 - + Invalid Username or Password. ユーザー名またはパスワーが正しくありません。 - + Password パスワード - + Login ログイン - + Upload Failed! アップロード失敗! - + Original authors オリジナルの作者 - + Upload limit: アップロード速度制限: - + Download limit: ダウンロード速度制限: - + Apply 適用 - + Add 追加 - + Upload Torrents Torrent をアップロード - + All すべて - + Downloading ダウンロード中 - + Seeding シード中 - + Completed 完了 - + Resumed 再開 - + Paused 停止 - + Active 動作中 - + Inactive 非動作 - + Save files to location: ファイルの保存場所: - + Label: ラベル: - + Cookie: Cookie: - + Type folder here + フォルダーをここに入力してください + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + ファイルの保存先 + + + + Watch Folder + 監視フォルダー + + + + Default Folder + デフォルトフォルダー + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + その他... + + + + Every day + Schedule the use of alternative rate limits on ... + 毎日 + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + その他... + + + Downloaded Is the file downloaded or not? ダウンロード @@ -1593,57 +1720,57 @@ You should get this information from your Web browser preferences. ログアウト - + Upload local torrent ローカルの Torrent をアップロード - + Are you sure you want to delete the selected torrents from the transfer list? 選択された Torrent を転送リストから削除しますか? - + The Web UI username must be at least 3 characters long. Web UI ユーザー名は 3 文字以上でなくてはなりません。 - + The Web UI password must be at least 3 characters long. Web UI パスワードは 3 文字以上でなくてはなりません。 - + Save 保存 - + qBittorrent client is not reachable qBittorrent クライアントと通信できません - + HTTP Server HTTP サーバー - + The following parameters are supported: 以下のパラメーターがサポートされています: - + Torrent path Torrent のパス - + Torrent name Torrent の名前 - + qBittorrent has been shutdown. qBittorrent は停止しています。 @@ -2216,7 +2343,8 @@ qBittorrent を Torrent ファイルおよびマグネットリンクに関連 A new version is available. Do you want to download %1? - + 新しいバージョンが利用可能です。. +%1 をダウンロードしますか? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. 検索エンジンを使用するには Python が必要ですがインストールされていないようです。 - - A new version is available. -Update to version %1? - 新しいバージョンが利用可能です。 -バージョン %1 にアップデートしますか? - No updates available. @@ -2489,12 +2611,12 @@ qBittorrent を終了しますか? Venezuela, Bolivarian Republic of - + ベネズエラ Viet Nam - + ベトナム @@ -2502,14 +2624,6 @@ qBittorrent を終了しますか? N/A N/A - - Asia/Pacific Region - アジア/太平洋地域 - - - Europe - ヨーロッパ - Andorra @@ -2545,10 +2659,6 @@ qBittorrent を終了しますか? Armenia アルメニア - - Netherlands Antilles - オランダ領アンティル - Angola @@ -2644,10 +2754,6 @@ qBittorrent を終了しますか? Brunei Darussalam ブルネイ・ダルサラーム - - Bolivia - ボリビア - Brazil @@ -2713,10 +2819,6 @@ qBittorrent を終了しますか? Switzerland スイス - - Cote D'Ivoire - コートジボワール - Cook Islands @@ -2760,7 +2862,7 @@ qBittorrent を終了しますか? Curacao - + キュラソー @@ -2872,10 +2974,6 @@ qBittorrent を終了しますか? France フランス - - France, Metropolitan - フランス・メトロポリテーヌ - Gabon @@ -3161,10 +3259,6 @@ qBittorrent を終了しますか? Latvia ラトビア - - Libyan Arab Jamahiriya - リビア - Morocco @@ -3190,10 +3284,6 @@ qBittorrent を終了しますか? Marshall Islands マーシャル諸島 - - Macedonia - マケドニア - Mali @@ -3209,10 +3299,6 @@ qBittorrent を終了しますか? Mongolia モンゴル - - Macau - マカウ - Northern Mariana Islands @@ -3373,19 +3459,11 @@ qBittorrent を終了しますか? Saint Pierre and Miquelon サンピエール島・ミクロン島 - - Pitcairn Islands - ピトケアン諸島 - Puerto Rico プエルトリコ - - Palestinian Territory - パレスチナ地域 - Portugal @@ -3456,10 +3534,6 @@ qBittorrent を終了しますか? Singapore シンガポール - - Saint Helena - セントヘレナ - Slovenia @@ -3579,62 +3653,62 @@ qBittorrent を終了しますか? Bolivia, Plurinational State of - + ボリビア Bonaire, Sint Eustatius and Saba - + ボネール、シント・ユースタティウスおよびサバ Cote d'Ivoire - + コートジボワール Libya - + リビア Saint Martin (French part) - + サン・マルタン Macedonia, The Former Yugoslav Republic of - + マケドニア Macao - + マカオ Pitcairn - + ピトケアン諸島 Palestine, State of - + パレスチナ Saint Helena, Ascension and Tristan da Cunha - + セント・ヘレナ South Sudan - + 南スーダン Sint Maarten (Dutch part) - + シント・マールテン @@ -3701,10 +3775,6 @@ qBittorrent を終了しますか? Saint Vincent and the Grenadines セントビンセント・グレナディーン - - Venezuela - ベネズエラ - Virgin Islands, British @@ -3715,10 +3785,6 @@ qBittorrent を終了しますか? Virgin Islands, U.S. アメリカ領ヴァージン諸島. - - Vietnam - ベトナム - Vanuatu @@ -3769,18 +3835,6 @@ qBittorrent を終了しますか? Zimbabwe ジンバブエ - - Anonymous Proxy - 匿名プロキシ - - - Satellite Provider - 衛星プロバイダー - - - Other - その他 - Aland Islands @@ -3806,10 +3860,6 @@ qBittorrent を終了しますか? Saint Barthelemy サン・バルテルミー島 - - Saint Martin - セント・マーチン島 - Could not uncompress GeoIP database file. @@ -3847,7 +3897,7 @@ qBittorrent を終了しますか? Net::Smtp - + Email Notification Error: メール通知エラー: @@ -3857,22 +3907,22 @@ qBittorrent を終了しますか? interested(local) and choked(peer) - d = インタレスト (ローカル)/チョーク (ピア) + d = インタレスト(ローカル)/チョーク(ピア) interested(local) and unchoked(peer) - D = インタレスト (ローカル)/非チョーク (ピア) + D = インタレスト(ローカル)/非チョーク(ピア) interested(peer) and choked(local) - u = インタレスト (ピア)/チョーク (ローカル) + u = インタレスト(ピア)/チョーク(ローカル) interested(peer) and unchoked(local) - U = インタレスト (ピア)/非チョーク (ローカル) + U = インタレスト(ピア)/非チョーク(ローカル) @@ -3887,17 +3937,17 @@ qBittorrent を終了しますか? incoming connection - I = 着信接続 + I = ピアが着信接続 not interested(local) and unchoked(peer) - K = 非インタレスト (ローカル)/非チョーク (ピア) + K = 非インタレスト(ローカル)/非チョーク(ピア) not interested(peer) and unchoked(local) - ? = 非インタレスト (ピア)/非チョーク (ローカル) + ? = 非インタレスト(ピア)/非チョーク(ローカル) @@ -3993,7 +4043,7 @@ qBittorrent を終了しますか? Files i.e. files that are being downloaded right now - + ファイル @@ -4099,65 +4149,65 @@ qBittorrent を終了しますか? Search plugins - 検索プラグイン + 検索プラグイン Installed search plugins: - + インストール済みの検索プラグイン: Name - 名前 + 名前 Version - バージョン + バージョン Url - URL + URL Enabled - 有効 + 有効 You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 新しい検索エンジンを <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> から入手できます + 新しい検索エンジンはこちらから入手できます: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - 新しい検索エンジンをインストール + 新しいプラグインをインストール Check for updates - 更新のチェック + 更新のチェック Close - 閉じる + 閉じる Uninstall - アンインストール + アンインストール Yes - はい + はい @@ -4165,106 +4215,106 @@ qBittorrent を終了しますか? No - いいえ + いいえ Uninstall warning - アンインストールの警告 + アンインストール警告 Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 後から追加されたプラグインのみアンインストールできます。qBittorrent に含まれるプラグインはアンインストールされず、無効になります。 + 一部のプラグインは qBittorrent に含まれているためアンインストールできません。それらは無効になります。 Uninstall success - アンインストール成功 + アンインストール成功 All selected plugins were uninstalled successfully - 選択されたすべてのプラグインは正常にアンインストールされました + 選択されたすべてのプラグインは正常にアンインストールされました New search engine plugin URL - 新しい検索エンジンプラグイン URL + 新しい検索エンジンプラグインの URL URL: - URL: + URL: Invalid link - 不正なリンク + 不正なリンク The link doesn't seem to point to a search engine plugin. - リンク先は検索エンジンプラグインではないようです。 + このリンクは検索エンジンプラグインのものではないようです。 Select search plugins - 検索プラグインの選択 + 検索エンジンの選択 qBittorrent search plugin - qBittorrent 検索エンジン + qBittorrent 検索プラグイン Search plugin update - 検索プラグインのアップデート + 検索エンジンの更新 All your plugins are already up to date. - すべてのプラグインは最新です。 + すべてのプラグインは最新です。 Sorry, couldn't check for plugin updates. %1 - + すみません、プラグインの更新をチェックできませんでした。 %1 Search plugin install - 検索プラグインのインストール + 検索エンジンのインストール "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" 検索エンジンプラグインは正常にインストールされました。 Couldn't install "%1" search engine plugin. %2 - + "%1" 検索エンジンプラグインをインストールできませんでした。 %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" 検索エンジンプラグインは正常にインストールされました。 Couldn't update "%1" search engine plugin. %2 - + "%1" 検索エンジンプラグインを更新できませんでした。 %2 @@ -4272,22 +4322,22 @@ Those plugins were disabled. Plugin source - プラグインソース + プラグインのソース Search plugin source: - 検索プラグインのソース: + 検索プラグインのソース: Local file - ローカルファイル + ローカルファイル Web link - ウェブリンク + ウェブリンク @@ -5025,17 +5075,17 @@ Those plugins were disabled. フィルターパス (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. プログラムの異常終了を検知しました。設定の復元にフォールバックファイルを使用します。 - + An access error occurred while trying to write the configuration file. 設定ファイルの書き込み中にアクセスエラーが発生しました。 - + A format error occurred while trying to write the configuration file. 設定ファイルの書き込み中にフォーマットエラーが発生しました。 @@ -5468,7 +5518,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. あなたの IP アドレスはあまりに多くの回数認証に失敗したためアクセス禁止になりました。 @@ -5959,12 +6009,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - RSS フィード '%2' からの '%1' の自動ダウンロードが失敗しました。これには Torrent やマグネットリンクが含まれていません... + '%2' RSS フィードからの '%1' の自動ダウンロードに失敗しました。Torrent またはマグネットリンクが含まれていません... Automatically downloading '%1' torrent from '%2' RSS feed... - RSS フィード '%2' からの Torrent '%1' を自動ダウンロードしています... + '%2' RSS フィードからの '%1' Torrent を自動ダウンロードしています... @@ -5972,29 +6022,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - RSS フィード '%2' からの '%1' の自動ダウンロードが失敗しました。これには Torrent やマグネットリンクが含まれていません... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - RSS フィード '%2' からの Torrent '%1' を自動ダウンロードしています... - - - - RssParser - - Failed to open downloaded RSS file. - ダウンロードした RSS ファイルのオープンに失敗しました。 - - - Invalid RSS feed at '%1'. - 不正な RSS フィード '%1'. + 不正な RSS フィードです。 @@ -6025,22 +6053,22 @@ No further notices will be issued. Watch Folder - + 監視フォルダー Default Folder - + デフォルトフォルダー Browse... - 参照... + 表示... Choose save path - + 保存先の選択 @@ -6048,12 +6076,12 @@ No further notices will be issued. Watch Folder - + 監視フォルダー Default Folder - + デフォルトフォルダー @@ -6063,199 +6091,87 @@ No further notices will be issued. Save Files to - - - - Download here - そこにダウンロードする - - - Download path - ダウンロードパス - - - - SearchCategories - - All categories - すべてのカテゴリ - - - Movies - 映画 - - - TV shows - TV 番組 - - - Music - 音楽 - - - Games - ゲーム - - - Anime - アニメ - - - Software - ソフトウェア - - - Pictures - 画像 - - - Books - 書籍 + ファイルの保存先 SearchEngine - - Search - 検索 - - - Please install Python to use the Search Engine. - 検索エンジンを使用するには Python をインストールしてください。 - - - Empty search pattern - 検索パターンが空です - - - Please type a search pattern first - 検索パターンを入力してください - - - Searching... - 検索しています... - - - Stop - 停止 - - - Search Engine - 検索エンジン - - - Search has finished - 検索が完了しました - - - An error occurred during search... - 検索中にエラーが発生しました... - - - Search aborted - 検索を中止しました - - - All enabled - すべて有効 - - - All engines - すべてのエンジン - - - Multiple... - 複数指定... - - - Results <i>(%1)</i>: - i.e: Search results - 検索結果 <i>(%1)</i>: - - - Search returned no results - 検索結果は 0 件でした - - - Stopped - 停止 - Unknown search engine plugin file format. - + 未知の検索エンジンプラグインファイル形式です。 A more recent version of this plugin is already installed. - + より新しいバージョンのプラグインがすでにインストールされています。 Plugin is not supported. - + プラグインはサポートされていません。 Update server is temporarily unavailable. %1 - + 更新サーバーが一時的に利用できません。%1 Failed to download the plugin file. %1 - + プラグインファイルのダウンロードに失敗しました。%1 An incorrect update info received. - + 誤った更新情報を受信しました。 All categories - すべてのカテゴリ + すべてのカテゴリ Movies - 映画 + 映画 TV shows - TV 番組 + TV 番組 Music - 音楽 + 音楽 Games - ゲーム + ゲーム Anime - アニメ + アニメ Software - ソフトウェア + ソフトウェア Pictures - 画像 + 画像 Books - 書籍 + 書籍 @@ -6304,124 +6220,124 @@ No further notices will be issued. - - - + + + Search - 検索 + 検索 Status: - 状態: + 状態: - + Stopped - 停止 + 停止 Download - ダウンロード + ダウンロード済み Go to description page - 説明ページヘ移動 + 説明ページヘ移動 Copy description page URL - 説明ページ URL をコピー + 説明ページの URL をコピー Search plugins... - + 検索プラグイン... - + All enabled - すべて有効 - - - - All plugins - + すべて有効 - + All plugins + すべてのプラグイン + + + + Multiple... - 複数指定... + 複数指定... - - - + + + Search Engine - 検索エンジン + 検索エンジン - + Please install Python to use the Search Engine. - 検索エンジンを使用するには Python をインストールしてください。 + 検索エンジンを使用するには Python をインストールしてください。 - + Empty search pattern - 検索パターンが空です + 空の検索パターン - + Please type a search pattern first - 検索パターンを入力してください + まず検索パターンを入力してください - - + + Results <i>(%1)</i>: i.e: Search results - 検索結果 <i>(%1)</i>: - - - - Searching... - 検索しています... + 検索結果 <i>(%1)</i>: + Searching... + 検索しています... + + + Stop - 停止 + 停止 - - + + Search has finished - 検索が完了しました + 検索完了 - - + + Search aborted - 検索を中止しました + 検索中止 - + Search returned no results - 検索結果は 0 件でした + 検索結果は 0 件でした - + Search has failed - + 検索に失敗しました - + An error occurred during search... - 検索中にエラーが発生しました... + 検索中にエラーが発生しました... @@ -6885,11 +6801,7 @@ No further notices will be issued. Download Priority - - - - Priority - 優先度 + ダウンロード優先度 @@ -8086,159 +7998,6 @@ No further notices will be issued. 少なくとも 1 つの URL を入力してください。 - - engineSelect - - Search plugins - 検索プラグイン - - - Installed search engines: - インストール済みの検索エンジン: - - - Name - 名前 - - - Version - バージョン - - - Url - URL - - - Enabled - 有効 - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 新しい検索エンジンを <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> から入手できます - - - Install a new one - 新しい検索エンジンをインストール - - - Check for updates - 更新のチェック - - - Close - 閉じる - - - Uninstall - アンインストール - - - - engineSelectDlg - - Uninstall warning - アンインストールの警告 - - - Uninstall success - アンインストール成功 - - - Invalid plugin - 不正なプラグイン - - - The search engine plugin is invalid, please contact the author. - 不正な検索エンジンプラグインです。作者に連絡してください。 - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - より新しいバージョンの '%1' 検索エンジンプラグインがインストール済みです。 - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' 検索エンジンプラグインをアップデートできませんでした。古いバージョンを維持します。 - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' 検索エンジンプラグインをインストールできませんでした。 - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' 検索エンジンプラグインは正常にアップデートされました。 - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' 検索エンジンプラグインは正常にインストールされました。 - - - The link doesn't seem to point to a search engine plugin. - リンク先は検索エンジンプラグインではないようです。 - - - Select search plugins - 検索プラグインの選択 - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - すみません、'%1' 検索エンジンプラグインのインストールに失敗しました。 - - - Search plugin install - 検索プラグインのインストール - - - Yes - はい - - - No - いいえ - - - qBittorrent search plugin - qBittorrent 検索エンジン - - - Search plugin update - 検索プラグインのアップデート - - - Sorry, update server is temporarily unavailable. - すみません、アップデートサーバーは一時的に利用できなくなっています。 - - - All your plugins are already up to date. - すべてのプラグインは最新です。 - - - All selected plugins were uninstalled successfully - 選択されたすべてのプラグインは正常にアンインストールされました - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - 後から追加されたプラグインのみアンインストールできます。qBittorrent に含まれるプラグインはアンインストールされず、無効になります。 - - - Invalid link - 不正なリンク - - - New search engine plugin URL - 新しい検索エンジンプラグイン URL - - - URL: - URL: - - errorDialog @@ -8366,192 +8125,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory エクスポートディレクトリの選択 - - - - + + + + Choose a save directory 保存ディレクトリの選択 - + Add directory to scan スキャンするディレクトリの追加 - + Supported parameters (case sensitive): サポートパラメーター (大文字小文字を区別): - + %N: Torrent name %N: Torrent 名 - + %L: Label %L: ラベル - + %F: Content path (same as root path for multifile torrent) %F: コンテンツパス (Torrent 内ファイルのルート) - + %R: Root path (first torrent subdirectory path) %R: ルートパス (最初の Torrent のパス) - + %D: Save path %D: 保存パス - + %C: Number of files %C: ファイル数 - + %Z: Torrent size (bytes) %Z: Torrent サイズ (バイト) - + %T: Current tracker %T: 現在のトラッカー - + %I: Info hash %I: 情報ハッシュ - + Folder is already being watched. フォルダーはすでに監視されています。 - + Folder does not exist. フォルダーが存在しません。 - + Folder is not readable. フォルダーが読み込み可能ではありません。 - + Failure 失敗 - + Failed to add Scan Folder '%1': %2 スキャンフォルダー '%1' の追加に失敗しました: %2 - - + + Filters フィルター - - + + Choose an IP filter file IP フィルターファイルの選択 - + SSL Certificate SSL 証明書 - + SSL Key SSL キー - + Parsing error 解析エラー - + Failed to parse the provided IP filter 与えられた IP フィルターの解析に失敗しました - + Successfully refreshed 正常にリフレッシュされました - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number IP フィルターの解析に成功しました: %1 ルールが適用されました。 - + Invalid key 不正な鍵 - + This is not a valid SSL key. これは正常な SSL 鍵ではありません。 - + Invalid certificate 不正な証明書 - + This is not a valid SSL certificate. これは正常な SSL 証明書ではありません。 - + The start time and the end time can't be the same. 開始時刻と終了時刻は同じにできません。 - + Time Error 時刻エラー - - pluginSourceDlg - - Plugin source - プラグインソース - - - Search plugin source: - 検索プラグインのソース: - - - Local file - ローカルファイル - - - Web link - ウェブリンク - - preview @@ -8575,35 +8315,4 @@ Those plugins were disabled. キャンセル - - search_engine - - Search - 検索 - - - Status: - 状態: - - - Stopped - 停止 - - - Download - ダウンロード - - - Go to description page - 説明ページヘ移動 - - - Copy description page URL - 説明ページ URL をコピー - - - Search engines... - 検索エンジン... - - diff --git a/src/lang/qbittorrent_ka.ts b/src/lang/qbittorrent_ka.ts index 20b55640c..193d0f7b6 100755 --- a/src/lang/qbittorrent_ka.ts +++ b/src/lang/qbittorrent_ka.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS არხები - + Unread წაუკითხავი @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link ჩამოტვირთეთ ტორენტები ბმულებიდან ან მაგნიტური ბმულებიდან - + Only one link per line მხოლოდ ერთი ბმული თითო ხაზზე - + Download ჩამოტვირთვა - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. მაქსიმალური კავშირების რაოდენობის ლიმიტი უნდა იყოს 0-ზე მაღალი ან გამორთული. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. ერთი ტორენტის მაქსიმალური კავშირების რაოდენობის ლიმიტი უნდა იყოს 0-ზე მაღალი ან გამორთული. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. ერთი ტორენტის ატვირთვის სლოტების მაქსიმალური რაოდენობის ლიმიტი უნდა იყოს 0-ზე მაღალი ან გამორთული. - + Unable to save program preferences, qBittorrent is probably unreachable. პროგრამის პარამეტრების დამახსოვრეაბ ვერ მოხერხდა, სავარაუდოდ qBittorrent მიუწვდომელია. - + Language ენა - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login შესვლა - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading იტვირთება - + Seeding სიდირდება - + Completed - + Resumed - + Paused დაპაუზებულია - + Active - + Inactive - + Save files to location: ფაილების შენახვა მდებარეობაში: - + Label: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + ყოველდღე + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? ჩამოტვირთული @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. ვებ ინტერფეისის მომხმარებლის სახელი უნდა იყოს მინუმუმ 3 სიმბოლო. - + The Web UI password must be at least 3 characters long. ვებ ინტერფეისის პაროლი უნდა იყოს მინუმუმ 3 სიმბოლო. - + Save დამახსოვრება - + qBittorrent client is not reachable qBittorrent-ის კლიენტი მიუწვდომელია - + HTTP Server HTTP სერვერი - + The following parameters are supported: მხარდაჭერილია შემდეგი პარამეტრები: - + Torrent path ტორენტის მდებარეობა - + Torrent name ტორენტის სახელი - + qBittorrent has been shutdown. @@ -3763,7 +3886,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4015,7 +4138,7 @@ Are you sure you want to quit qBittorrent? Search plugins - მოდულების ძებნა + @@ -4035,38 +4158,38 @@ Are you sure you want to quit qBittorrent? Url - ბმული + Enabled - ჩართული + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - თქვენ ახალი საძიებო სისტემების მოდულების მიღება შეგიძლიათ აქ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - ახლის დაყენება + Check for updates - განახლებების შემოწმება + Close - დახურვა + Uninstall - დეინსტალაცია + @@ -4086,7 +4209,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - დეინსტალაციის გაფრთხილება + @@ -4097,24 +4220,24 @@ Those plugins were disabled. Uninstall success - დეინსტალაცია წარმატებულია + All selected plugins were uninstalled successfully - ყველა მონიშნული მოდული წარმატებით წაიშალა + New search engine plugin URL - ახალი საძიებო სისტემის მობულის ბმული + URL: - ბმული: + @@ -4129,7 +4252,7 @@ Those plugins were disabled. Select search plugins - აირჩიეთ საძიებო მოდულები + @@ -4141,12 +4264,12 @@ Those plugins were disabled. Search plugin update - საძიებო მოდულის განახლება + All your plugins are already up to date. - ყველა თქვენი მოდული უკვე განახლებულია. + @@ -4158,7 +4281,7 @@ Those plugins were disabled. Search plugin install - საძიებო მოდულის ინსტალაცია + @@ -4188,22 +4311,22 @@ Those plugins were disabled. Plugin source - მოდულის წყარო + Search plugin source: - მოდულის წყაროს ძებნა: + Local file - ლოკალური ფაილი + Web link - ვებ ბმული + @@ -4941,17 +5064,17 @@ Those plugins were disabled. ფილტრის მდებარეობა (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5384,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5957,88 +6080,9 @@ No further notices will be issued. Save Files to - - Download here - ჩამოიტვირთოს აქ - - - - SearchCategories - - All categories - ყველა კატეგორია - - - Movies - ფილმები - - - TV shows - სერიალები - - - Music - მუსიკა - - - Games - თამაშები - - - Anime - ანიმე - - - Software - პროგრამა - - - Pictures - სურათები - - - Books - წიგნები - SearchEngine - - Search - ძებნა - - - Empty search pattern - ცარიელი საძიებო შაბლონი - - - Please type a search pattern first - გთხოვთ პირველ რიგში შეიყვანეთ საძიებო შაბლონი - - - Searching... - ძებნა... - - - Search Engine - საძიებო სისტემა - - - Search has finished - ძებნა დასრულდა - - - An error occurred during search... - ძებნისას დაფიქსირდა შეცდომა... - - - Search aborted - ძებნა გაუქმდა - - - Search returned no results - ძებნა უშედეგოა - Unknown search engine plugin file format. @@ -6074,47 +6118,47 @@ No further notices will be issued. All categories - ყველა კატეგორია + Movies - ფილმები + TV shows - სერიალები + Music - მუსიკა + Games - თამაშები + Anime - ანიმე + Software - პროგრამა + Pictures - სურათები + Books - წიგნები + @@ -6163,22 +6207,22 @@ No further notices will be issued. - - - + + + Search ძებნა Status: - სტატუსი: + - + Stopped - შეჩერებულია + @@ -6188,7 +6232,7 @@ No further notices will be issued. Go to description page - ახსნის გვერდზე გადასვლა + @@ -6201,86 +6245,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - საძიებო სისტემა + - + Please install Python to use the Search Engine. - + Empty search pattern - ცარიელი საძიებო შაბლონი + - + Please type a search pattern first - გთხოვთ პირველ რიგში შეიყვანეთ საძიებო შაბლონი + - - + + Results <i>(%1)</i>: i.e: Search results - + Searching... - ძებნა... + - + Stop - - + + Search has finished - ძებნა დასრულდა + - - + + Search aborted - ძებნა გაუქმდა + - + Search returned no results - ძებნა უშედეგოა + - + Search has failed - + An error occurred during search... - ძებნისას დაფიქსირდა შეცდომა... + @@ -7941,100 +7985,6 @@ No further notices will be issued. გთხოვთ შეიყვანეთ მინიმუმ ერთი ბმული. - - engineSelect - - Search plugins - მოდულების ძებნა - - - Installed search engines: - დაინსტალირებული საძიებო სისტემები: - - - Name - სახელი - - - Url - ბმული - - - Enabled - ჩართული - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - თქვენ ახალი საძიებო სისტემების მოდულების მიღება შეგიძლიათ აქ: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - ახლის დაყენება - - - Check for updates - განახლებების შემოწმება - - - Close - დახურვა - - - Uninstall - დეინსტალაცია - - - - engineSelectDlg - - Uninstall warning - დეინსტალაციის გაფრთხილება - - - Uninstall success - დეინსტალაცია წარმატებულია - - - Select search plugins - აირჩიეთ საძიებო მოდულები - - - Search plugin install - საძიებო მოდულის ინსტალაცია - - - Yes - დიახ - - - No - არა - - - Search plugin update - საძიებო მოდულის განახლება - - - Sorry, update server is temporarily unavailable. - ბოდიში, განახლების სერვერი დროებით მიუწვდომელია. - - - All your plugins are already up to date. - ყველა თქვენი მოდული უკვე განახლებულია. - - - All selected plugins were uninstalled successfully - ყველა მონიშნული მოდული წარმატებით წაიშალა - - - New search engine plugin URL - ახალი საძიებო სისტემის მობულის ბმული - - - URL: - ბმული: - - errorDialog @@ -8162,192 +8112,173 @@ No further notices will be issued. options_imp - - + + Choose export directory აირჩიეთ გასატანი მდებარეობა - - - - + + + + Choose a save directory აირჩიეთ შესანახი მდებარეობა - + Add directory to scan დასასკანირებელი მდებარეობის დამატება - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. საქაღალდე უკვე მეთვალყურეობის ქვეშაა. - + Folder does not exist. საქაღალდე არ არსებობს. - + Folder is not readable. საქაღალდე არ არის წაკითხვადი. - + Failure მარცხი - + Failed to add Scan Folder '%1': %2 დასასკანირებელი საქაღალდის დამატება ჩაიშალა: '%1': %2 - - + + Filters ფილტრები - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error ანალიზის შეცდომა - + Failed to parse the provided IP filter მოწოდებული IP ფილტრის ანალიზი ჩაიშალა - + Successfully refreshed წარმატებით განახლდა - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key არასწორი გასაღები - + This is not a valid SSL key. ეს არ არის სწორი SSL გასაღები. - + Invalid certificate არასწორი სერთიფიკატი - + This is not a valid SSL certificate. ეს არ არის სწორი SSL სერთიფიკატი. - + The start time and the end time can't be the same. - + Time Error - - pluginSourceDlg - - Plugin source - მოდულის წყარო - - - Search plugin source: - მოდულის წყაროს ძებნა: - - - Local file - ლოკალური ფაილი - - - Web link - ვებ ბმული - - preview @@ -8371,31 +8302,4 @@ No further notices will be issued. გაუქმება - - search_engine - - Search - ძებნა - - - Status: - სტატუსი: - - - Stopped - შეჩერებულია - - - Download - ჩამოტვირთვა - - - Go to description page - ახსნის გვერდზე გადასვლა - - - Search engines... - საძიებო სისტემები... - - diff --git a/src/lang/qbittorrent_ko.ts b/src/lang/qbittorrent_ko.ts index 8e4348be3..7ed56a1e0 100644 --- a/src/lang/qbittorrent_ko.ts +++ b/src/lang/qbittorrent_ko.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: 불완전체 공유자 ID: - + HTTP User-Agent is '%1' HTTP 사용자 에이전트는 '%1' - + Anonymous mode [ON] PeX 지원 [켜짐] - + Anonymous mode [OFF] 익명 모드 [꺼짐] - + PeX support [ON] PeX 지원 [켜짐] - + PeX support [OFF] PeX 지원 [꺼짐] - + Restart is required to toggle PeX support PeX 지원을 전환하려면 재시작이 필요합니다 - + Local Peer Discovery support [ON] 지역 불완전체 공유자 발견 지원 [켜짐] - + Local Peer Discovery support [OFF] 지역 불완전체 공유자 발견 지원 [꺼짐] - + Encryption support [ON] 암호화 지원 [켜짐] - + Encryption support [FORCED] 암호화 지원 [강제됨] - + Encryption support [OFF] 암호화 지원 [꺼짐] - + Embedded Tracker [ON] 내장된 추적기 [켜짐] - + Failed to start the embedded tracker! 내장된 추적기를 시작하는데 실패했습니다! - + Embedded Tracker [OFF] 내장된 추적기 [꺼짐] - + '%1' reached the maximum ratio you set. Removing... '%1' 이 당신이 설정한 최대 비율에 도달 했습니다. 제거중... - + '%1' reached the maximum ratio you set. Pausing... '%1' 이 당신이 설정한 최대 비율에 도달 했습니다. 중지중... - + System network status changed to %1 e.g: System network status changed to ONLINE 시스템 네트워크 상태가 %1 로 변경되었습니다. - + ONLINE 온라인 - + OFFLINE 오프라인 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 네트워크 설정이 변경 되었습니다, 활동 기간 묶음 새로고침중 - + Unable to decode '%1' torrent file. '%1' 토렌트 파일을 해독할 수 없습니다. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 중복 다운 '%2' 의 토렌트 에는 '%1' 의 파일이 포함되어 있습니다. - + Couldn't save '%1.torrent' '%1.torrent' 를 저장할 수 없습니다. - + because %1 is disabled. this peer was blocked because uTP is disabled. %1 이 비활성화 되었기때문입니다. - + because %1 is disabled. this peer was blocked because TCP is disabled. %1 이 비활성화 되었기때문입니다. - + URL seed lookup failed for URL: '%1', message: %2 URL 배포를 찾을 수 없습니다; '%1', 메시지: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' 이 전송 목록과 하드 디스크에서 제거되었습니다. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1'이(가) 전송 목록에서 제거되었습니다. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1'을(를) 받는중입니다. 기다려주세요... - + DHT support [ON] DHT 지원[켜짐] - + DHT support [OFF]. Reason: %1 DHT 지원[꺼짐]. 원인: %1 - + DHT support [OFF] DHT 지원 [꺼짐] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 큐빗토렌트가 모든 인터페이스 포트에서 수신을 시도합니다: %1 - + The network interface defined is invalid: %1 정의된 네트워크 인터페이스가 잘못되었습니다: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 큐빗토렌트가 인터페이스 %1 포트: %2 에서 수신을 시도합니다 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on 큐빗토렌트가 수신할 지역주소 %1 을 찾지 못했습니다 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface 큐빗토렌트가 인터페이스 포트: %1 에서 수신하는데 실패했습니다. 원인: %2. - + Tracker '%1' was added to torrent '%2' '%2' 토렌트에 추적기 '%1' 이추가되었습니다 - + Tracker '%1' was deleted from torrent '%2' 추적기 '%1' 이(가) '%2' 토렌트 에서 삭제되었습니다. - + URL seed '%1' was added to torrent '%2' '%2' 토렌트에 '%1' URL 배포가 추가되었습니다 - + URL seed '%1' was removed from torrent '%2' 토렌트 '%2' 에서 URL 배포 '%1' 이 삭제되었습니다 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 토렌트 재개 불가 '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 제공된 IP 필터에 의해 분석되었습니다: %1 규칙들이 적용 되었습니다. - + Error: Failed to parse the provided IP filter. 오류: 제공된 IP 필터에 의한 분석이 실패했습니다. - + Couldn't add torrent. Reason: %1 토렌트를 추가할 수 없습니다. 원인: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' 를 받습니다. (빠른 재개) - + '%1' added to download list. 'torrent name' was added to download list. '%1' 이 내려받기 목록에 추가되었습니다. - + An I/O error occurred, '%1' paused. %2 입출력 오류가 발생해서 '%1'이 정지되었습니다. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: 포트 제작 실패, 메시지: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: 포트 제작 성공, 메시지: %1 - + due to IP filter. this peer was blocked due to ip filter. IP 거름기 때문. - + due to port filter. this peer was blocked due to port filter. 포트 필터에 의해 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p 혼합 모드 제한에 의해 - + because it has a low port. this peer was blocked because it has a low port. 하위 포트를 가지고 있기 때문에 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 큐빗토렌트가 인터페이스 %1 포트: %2/%3 에서 수신이 성공했습니다 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use 큐빗토렌트가 인터페이스 %1 포트%2/%3 에서 수신이 실패했습니다. 원인: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 외부 IP: %1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS 피드 - + Unread 읽지 않음 @@ -1378,211 +1378,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link URL이나 자석망 고리에서 토렌트 받기 - + Only one link per line 한 줄에 고리 한개씩 - + Download 받기 - + Global upload rate limit must be greater than 0 or disabled. 전역 올리기 비율 제한은 0보다 높거나 비활성화 되어야합니다. - + Global download rate limit must be greater than 0 or disabled. 전역 내려 받기 비율 제한은 0보다 높거나 비활성화 되어야합니다. - + Alternative upload rate limit must be greater than 0 or disabled. 대안 올리기 비율 제한은 0보다 높거나 비활성화 되어야합니다. - + Alternative download rate limit must be greater than 0 or disabled. 대안 내려 받기 비율 제한은 0보다 높거나 비활성화 되어야합니다. - + Maximum active downloads must be greater than -1. 최대 활성화 내려받기는 -1보다 커야합니다. - + Maximum active uploads must be greater than -1. 최대 활성화 업로드는 -1보다 커야합니다. - + Maximum active torrents must be greater than -1. 최대 활성화 토렌트는 -1보다 커야합니다. - + Maximum number of connections limit must be greater than 0 or disabled. 최대 연결 수는 0보다 높거나 비활성화 되어야 합니다. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. 토렌트 당 최대 연결 수는 0보다 높거나 비활성화 되어야 합니다. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. 토렌트 당 최대 올리기 연결 수는 0보다 높거나 비활성화 되어야 합니다. - + Unable to save program preferences, qBittorrent is probably unreachable. 설정을 저장할 수 없습니다. 큐빗토렌트가 연결할 수 없습니다. - + Language 언어 - + The port used for incoming connections must be between 1 and 65535. 들어오는 연결 에 사용되는 포트는 1 ~ 65535 사이에서 사용되어야 합니다. - + The port used for the Web UI must be between 1 and 65535. 웹 UI に使用するポートは 1 から 65535 の間でなくてはなりません。 - + Unable to log in, qBittorrent is probably unreachable. 로그인 할 수 없습니다. 큐빗토렌트에 도달 할 수 없는것 같습니다. - + Invalid Username or Password. 유효하지 않은 사용자명/암호입니다. - + Password 암호 - + Login 로그인 - + Upload Failed! 업로드 실패! - + Original authors 원래 제작자 - + Upload limit: 올리기 제한: - + Download limit: 받기 제한: - + Apply 적용 - + Add 추가 - + Upload Torrents 토렌트 올리기 - + All 모두 - + Downloading 받는중 - + Seeding 배포중 - + Completed 완료됨 - + Resumed 재개됨 - + Paused 정지됨 - + Active 활성 - + Inactive 비활성 - + Save files to location: 파일 저장 위치: - + Label: 라벨: - + Cookie: 쿠키: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + 매일 + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? 받기 완료됨 @@ -1593,57 +1716,57 @@ You should get this information from your Web browser preferences. 로그아웃 - + Upload local torrent 지역 파일 올리기 - + Are you sure you want to delete the selected torrents from the transfer list? 선택한 토렌트를 전송목록에서 삭제하시겠습니까? - + The Web UI username must be at least 3 characters long. 웹 사용자 인터페이스의 사용자명은 3글자 이상이어야 합니다. - + The Web UI password must be at least 3 characters long. 웹 사용자 인터페이스의 암호는 3글자 이상이어야 합니다. - + Save 저장 - + qBittorrent client is not reachable 큐빗토렌트 클라이언트에 도달할 수 없습니다 - + HTTP Server HTTP 서버 - + The following parameters are supported: 다음 매개변수를 지원합니다: - + Torrent path 토렌트 경로 - + Torrent name 토렌트 이름 - + qBittorrent has been shutdown. 큐빗토렌트가 종료되었습니다. @@ -2281,12 +2404,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. 파이썬은 검색 엔진을 사용하는 데 필요하지만 설치가 안된것 같습니다. - - A new version is available. -Update to version %1? - 새로운 버전이 이용가능합니다. -%1으로 판올림 하시겠습니까? - No updates available. @@ -2502,14 +2619,6 @@ Are you sure you want to quit qBittorrent? N/A 해당 없음 - - Asia/Pacific Region - 아시아/태평양 지역 - - - Europe - 유럽 - Andorra @@ -2545,10 +2654,6 @@ Are you sure you want to quit qBittorrent? Armenia 아르메니아 - - Netherlands Antilles - 네덜란드령 안틸리스 제도 - Angola @@ -2644,10 +2749,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam 브루나이 - - Bolivia - 볼리비아 - Brazil @@ -2713,10 +2814,6 @@ Are you sure you want to quit qBittorrent? Switzerland 스위스 - - Cote D'Ivoire - 코트디부아르 - Cook Islands @@ -2872,10 +2969,6 @@ Are you sure you want to quit qBittorrent? France 프랑스 - - France, Metropolitan - 프랑스 본토 - Gabon @@ -3161,10 +3254,6 @@ Are you sure you want to quit qBittorrent? Latvia 라트비아 - - Libyan Arab Jamahiriya - 리비아 - Morocco @@ -3190,10 +3279,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands 마셜 제도 - - Macedonia - 마케도니아 공화국 - Mali @@ -3209,10 +3294,6 @@ Are you sure you want to quit qBittorrent? Mongolia 몽골 - - Macau - 마카오 - Northern Mariana Islands @@ -3373,19 +3454,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon 생피에르 미클롱 - - Pitcairn Islands - 핏케언 제도 - Puerto Rico 푸에르토리코 - - Palestinian Territory - 팔레스타인 영토 - Portugal @@ -3456,10 +3529,6 @@ Are you sure you want to quit qBittorrent? Singapore 싱가포르 - - Saint Helena - 세인트헬레나 - Slovenia @@ -3700,10 +3769,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines 세인트빈센트 그레나딘 - - Venezuela - 베네수엘라 - Virgin Islands, British @@ -3714,10 +3779,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. 미국령 버진아일랜드 - - Vietnam - 베트남 - Vanuatu @@ -3768,18 +3829,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe 짐바브웨 - - Anonymous Proxy - 익명 프록시 - - - Satellite Provider - 위성 공급자 - - - Other - 기타 - Aland Islands @@ -3805,10 +3854,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy 생바르텔레미 - - Saint Martin - 세인트 마틴 - Could not uncompress GeoIP database file. @@ -3846,7 +3891,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: 전자메일 알림 오류: @@ -4098,7 +4143,7 @@ Are you sure you want to quit qBittorrent? Search plugins - 검색 플러그인 + @@ -4113,43 +4158,43 @@ Are you sure you want to quit qBittorrent? Version - 버전 + Url - URL + Enabled - 활성화됨 + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 새로운 검색 플러그인은 다음 고리에서 받을 수 있습니다: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - 새로운 플러그인 설치 + Check for updates - 판올림 확인 + Close - 닫기 + Uninstall - 프로그램 삭제하기 + @@ -4169,68 +4214,67 @@ Are you sure you want to quit qBittorrent? Uninstall warning - 프로그램 삭제 경고 + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 일부 플러그인은 큐빗토렌트에 포함되서 프로그램 삭제 될 수 없습니다. 사용자가 직접 설치한 플러그인만 제거할 수 있습니다. -이러한 플러그인들은 "비활성화" 되었습니다. + Uninstall success - 프로그램 삭제 완료 + All selected plugins were uninstalled successfully - 선택된 모든 플러그인들이 제거 되었습니다 + New search engine plugin URL - 새로운 검색엔진 플러그인 URL + URL: - URL: + Invalid link - 잘못된 고리 + The link doesn't seem to point to a search engine plugin. - 검색 엔진 플러그인에서 고리를 찾을 수 없습니다. + Select search plugins - 검색 플러그인을 선택하십시오 + qBittorrent search plugin - 큐빗토렌트 검색 플러그인 + Search plugin update - 검색 플러그인 판올림 + All your plugins are already up to date. - 모든 플러그인이 최신버젼입니다. + @@ -4242,7 +4286,7 @@ Those plugins were disabled. Search plugin install - 검색 플러그인 설치 + @@ -4272,22 +4316,22 @@ Those plugins were disabled. Plugin source - 플러그인 소스 + Search plugin source: - 검색엔진 플러그인 소스: + Local file - 지역 파일 + Web link - 웹 고리 + @@ -5025,17 +5069,17 @@ Those plugins were disabled. 거름기 경로(.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. 부정한 프로그램이 감지되어 종료합니다. 설정을 복원 할 대체 파일을 사용합니다. - + An access error occurred while trying to write the configuration file. 구성 파일을 쓰는 동안 접근 오류가 발생했습니다. - + A format error occurred while trying to write the configuration file. 구성 파일을 쓰는 동안 형식 오류 발생했습니다. @@ -5468,7 +5512,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. 인증 과정을 여러차례 실패했으므로 당신의 현재 IP 주소는 추방되었습니다. @@ -5961,12 +6005,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - RSS 피드 '%2' 에서 자동 내려받기 '%1' 에 실패했습니다. 토렌트나 자석망 포함하지 않기 때문입니다... + Automatically downloading '%1' torrent from '%2' RSS feed... - '%1' 토렌트를 '%2' RSS 피드에서 자동으로 받는중... + @@ -5977,28 +6021,6 @@ No further notices will be issued. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - RSS 피드 '%2' 에서 자동 내려받기 '%1' 에 실패했습니다. 토렌트나 자석망 포함하지 않기 때문입니다... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - '%1' 토렌트를 '%2' RSS 피드에서 자동으로 받는중... - - - - RssParser - - Failed to open downloaded RSS file. - 받은 RSS 파일를 여는데 실패했습니다. - - - Invalid RSS feed at '%1'. - '%1' 에 RSS 피드가 올바르지 않습니다. - - RssSettingsDlg @@ -6067,121 +6089,9 @@ No further notices will be issued. Save Files to - - Download here - 여기에 내려받기 - - - Download path - 내려받기 경로 - - - - SearchCategories - - All categories - 모든 분류 - - - Movies - 영화 - - - TV shows - 텔레비젼 쇼 - - - Music - 음악 - - - Games - 게임 - - - Anime - 애니 - - - Software - 유틸 - - - Pictures - 사진 - - - Books - - SearchEngine - - Search - 검색 - - - Please install Python to use the Search Engine. - 검색 엔진을 사용하려면 파이썬을 설치 하십시오. - - - Empty search pattern - 검색 양식 비우기 - - - Please type a search pattern first - 검색 양식을 작성해주십시오 - - - Searching... - 검색중... - - - Stop - 정지 - - - Search Engine - 검색 엔진 - - - Search has finished - 검색 완료 - - - An error occurred during search... - 검색중 오류 발생... - - - Search aborted - 검색이 중단됨 - - - All enabled - 모두 활성화됨 - - - All engines - 모든 엔진 - - - Multiple... - 여러개... - - - Results <i>(%1)</i>: - i.e: Search results - 결과 <i>(%1)</i>: - - - Search returned no results - 검색 결과가 없음 - - - Stopped - 정지됨 - Unknown search engine plugin file format. @@ -6217,47 +6127,47 @@ No further notices will be issued. All categories - 모든 분류 + Movies - 영화 + TV shows - 텔레비젼 쇼 + Music - 음악 + Games - 게임 + Anime - 애니 + Software - 유틸 + Pictures - 사진 + Books - + @@ -6306,22 +6216,22 @@ No further notices will be issued. - - - + + + Search 검색 Status: - 상태: + - + Stopped - 정지됨 + @@ -6331,12 +6241,12 @@ No further notices will be issued. Go to description page - 설명 페이지로 가기 + Copy description page URL - 설명 페이지 URL 을 복사 + @@ -6344,86 +6254,86 @@ No further notices will be issued. - + All enabled - 모두 활성화됨 - - - - All plugins - + All plugins + + + + + Multiple... - 여러개... + - - - + + + Search Engine - 검색 엔진 + - + Please install Python to use the Search Engine. - 검색 엔진을 사용하려면 파이썬을 설치 하십시오. + - + Empty search pattern - 검색 양식 비우기 + - + Please type a search pattern first - 검색 양식을 작성해주십시오 + - - + + Results <i>(%1)</i>: i.e: Search results - 결과 <i>(%1)</i>: - - - - Searching... - 검색중... + + Searching... + + + + Stop - 정지 + - - + + Search has finished - 검색 완료 + - - + + Search aborted - 검색이 중단됨 + - + Search returned no results - 검색 결과가 없음 + - + Search has failed - + An error occurred during search... - 검색중 오류 발생... + @@ -6889,10 +6799,6 @@ No further notices will be issued. Download Priority - - Priority - 우선순위 - TorrentCreatorDlg @@ -8088,160 +7994,6 @@ No further notices will be issued. 적어도 하나의 URL을 입력해주세요. - - engineSelect - - Search plugins - 검색 플러그인 - - - Installed search engines: - 설치된 검색엔진: - - - Name - 이름 - - - Version - 버전 - - - Url - URL - - - Enabled - 활성화됨 - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 새로운 검색 플러그인은 다음 고리에서 받을 수 있습니다: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - 새로운 플러그인 설치 - - - Check for updates - 판올림 확인 - - - Close - 닫기 - - - Uninstall - 프로그램 삭제하기 - - - - engineSelectDlg - - Uninstall warning - 프로그램 삭제 경고 - - - Uninstall success - 프로그램 삭제 완료 - - - Invalid plugin - 잘못된 플러그인 - - - The search engine plugin is invalid, please contact the author. - 잘못된 검색 엔진 플러그인입니다. 저자에게 문의 하십시오 - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - '%1' 검색 엔진 플러그인 의 최신 버전이 이미 설치되어 있습니다. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 판올림 되지 않았습니다. 예전 버전을 유지합니다. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 설치되지 않았습니다. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 판올림 되었습니다. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' 검색 엔진 플러그인이 설치 되었습니다. - - - The link doesn't seem to point to a search engine plugin. - 검색 엔진 플러그인에서 고리를 찾을 수 없습니다. - - - Select search plugins - 검색 플러그인을 선택하십시오 - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - 죄송합니다, '%1' 검색 플러그인 설치에 실패 했습니다. - - - Search plugin install - 검색 플러그인 설치 - - - Yes - - - - No - 아니오 - - - qBittorrent search plugin - 큐빗토렌트 검색 플러그인 - - - Search plugin update - 검색 플러그인 판올림 - - - Sorry, update server is temporarily unavailable. - 죄송합니다. 현재 일시적으로 판올림 서버의 접속이 불가능합니다. - - - All your plugins are already up to date. - 모든 플러그인이 최신버젼입니다. - - - All selected plugins were uninstalled successfully - 선택된 모든 플러그인들이 제거 되었습니다 - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - 일부 플러그인은 큐빗토렌트에 포함되서 프로그램 삭제 될 수 없습니다. 사용자가 직접 설치한 플러그인만 제거할 수 있습니다. -이러한 플러그인들은 "비활성화" 되었습니다. - - - Invalid link - 잘못된 고리 - - - New search engine plugin URL - 새로운 검색엔진 플러그인 URL - - - URL: - URL: - - errorDialog @@ -8369,192 +8121,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory 내보낼 폴더를 선택 - - - - + + + + Choose a save directory 파일을 저장할 경로를 선택 - + Add directory to scan 스캔 할 폴더 추가 - + Supported parameters (case sensitive): 지원되는 인자 (대소문자 구분): - + %N: Torrent name %N: 토렌트 이름 - + %L: Label %L: 라벨 - + %F: Content path (same as root path for multifile torrent) %F: 내용 경로 (여러 토렌트 파일의 같은 루트 경로) - + %R: Root path (first torrent subdirectory path) %R: 루트 경로 (토렌트의 처음 하위 디렉토리 경로) - + %D: Save path %D: 저장 경로 - + %C: Number of files %C: 파일 개수 - + %Z: Torrent size (bytes) %Z: 토렌트 크기 (바이트) - + %T: Current tracker %T: 현재 추적기 - + %I: Info hash %I: 정보 해쉬 - + Folder is already being watched. 선택한 폴더는 이미 스캔 목록에 포함되어 있습니다. - + Folder does not exist. 선택한 폴더는 존재하지 않습니다. - + Folder is not readable. 선택한 폴더를 읽을 수 없습니다. - + Failure 실패 - + Failed to add Scan Folder '%1': %2 폴더 추가 실패 '%1': %2 - - + + Filters 거름기 - - + + Choose an IP filter file IP 거름기 파일 선택하기 - + SSL Certificate SSL 인증서 - + SSL Key SSL 키 - + Parsing error 분석 오류 - + Failed to parse the provided IP filter 제공된 IP 거름기로부터 분석이 실패했습니다 - + Successfully refreshed 새로고침 됨 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 제공된 IP 거름기로부터 분석했습니다: %1개의 규칙이 적용되었습니다. - + Invalid key 잘못된 키 - + This is not a valid SSL key. 이 SSL 키는 올바르지 않습니다. - + Invalid certificate 잘못된 인증서 - + This is not a valid SSL certificate. 이 SSL 인증서는 올바르지 않습니다. - + The start time and the end time can't be the same. 시작 시간과 종료 시간이 동일하지 않습니다. - + Time Error 시간 오류 - - pluginSourceDlg - - Plugin source - 플러그인 소스 - - - Search plugin source: - 검색엔진 플러그인 소스: - - - Local file - 지역 파일 - - - Web link - 웹 고리 - - preview @@ -8578,35 +8311,4 @@ Those plugins were disabled. 취소 - - search_engine - - Search - 검색 - - - Status: - 상태: - - - Stopped - 정지됨 - - - Download - 받기 - - - Go to description page - 설명 페이지로 가기 - - - Copy description page URL - 설명 페이지 URL 을 복사 - - - Search engines... - 검색 엔진... - - diff --git a/src/lang/qbittorrent_lt.ts b/src/lang/qbittorrent_lt.ts index b0a44ee21..2e4076831 100644 --- a/src/lang/qbittorrent_lt.ts +++ b/src/lang/qbittorrent_lt.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Siuntėjo ID: - + HTTP User-Agent is '%1' HTTP naudotojo agentas yra "%1" - + Anonymous mode [ON] Anoniminis režimas [ĮJUNGTAS] - + Anonymous mode [OFF] Anoniminis režimas [IŠJUNGTAS] - + PeX support [ON] PeX palaikymas [ĮJUNGTAS] - + PeX support [OFF] PeX palaikymas [IŠJUNGTAS] - + Restart is required to toggle PeX support Būtina paleisti programą iš naujo norint pakeisti PeX palaikymą - + Local Peer Discovery support [ON] Vietinių siuntėjų aptikimo palaikymas [ĮJUNGTAS] - + Local Peer Discovery support [OFF] Vietinių siuntėjų aptikimo palaikymas [IŠJUNGTAS] - + Encryption support [ON] Šifravimo palaikymas [ĮJUNGTAS] - + Encryption support [FORCED] Šifravimo palaikymas [PRIVERSTINIS] - + Encryption support [OFF] Šifravimo palaikymas [IŠJUNGTAS] - + Embedded Tracker [ON] Įtaisytas seklys [ĮJUNGTAS] - + Failed to start the embedded tracker! Nepavyko paleisti įtaisytojo seklio! - + Embedded Tracker [OFF] Įtaisytasis seklys [IŠJUNGTAS] - + '%1' reached the maximum ratio you set. Removing... "%1" pasiekė didžiausią jūsų nustatytą dalinimosi santykį. Šalinama... - + '%1' reached the maximum ratio you set. Pausing... "%1" pasiekė didžiausią jūsų nustatytą dalinimosi santykį. Pristabdoma... - + System network status changed to %1 e.g: System network status changed to ONLINE Sistemos tinklo būsena pasikeitė į %1 - + ONLINE PRISIJUNGTA - + OFFLINE ATSIJUNGTA - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Nepavyko iškoduoti "%1" torento failo. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursyvus failo "%1", įdėto į torentą "%2", atsiuntimas - + Couldn't save '%1.torrent' Nepavyko išsaugoti "%1.torrent" - + because %1 is disabled. this peer was blocked because uTP is disabled. nes %1 yra išjungta. - + because %1 is disabled. this peer was blocked because TCP is disabled. nes %1 yra išjungta. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' buvo pašalintas iš siuntimų sąrašo bei kietojo disko. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' buvo pašalintas iš siuntimų sąrašo. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Atsiunčiamas '%1', luktelkite... - + DHT support [ON] DHT palaikymas [ĮJUNGTAS] - + DHT support [OFF]. Reason: %1 DHT palaikymas [IŠJUNGTAS]. Priežastis: %1 - + DHT support [OFF] DHT palaikymas [IŠJUNGTAS] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent bando klausytis ties visų įrenginių prievadu: %1 - + The network interface defined is invalid: %1 Ši tinklo sąsaja yra netinkama: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent bando klausytis ties įrenginio %1 prievadu: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorent nepavyko rasti %1 vietinio adreso klausymuisi - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent nepavyko pasiklausyti ties visų sąsajų prievadu: %1. Priežastis: %2. - + Tracker '%1' was added to torrent '%2' Seklys '%1' buvo pridėtas prie torento '%2' - + Tracker '%1' was deleted from torrent '%2' Seklys '%1' buvo ištrintas iš torento '%2' - + URL seed '%1' was added to torrent '%2' URL šaltinis '%1' buvo pridėtas prie torento '%2' - + URL seed '%1' was removed from torrent '%2' URL šaltinis '%1' buvo pašalintas iš torento '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nepavyko pratęsti torento "%1". - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Nurodytas IP filtras sėkmingai įkeltas. %1 taisyklės pritaikytos. - + Error: Failed to parse the provided IP filter. Klaida: Nepavyko įkelti nurodyto IP filtro. - + Couldn't add torrent. Reason: %1 Nepavyko pridėti torento. Priežastis: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' buvo pratęstas (spartus pratęsimas) - + '%1' added to download list. 'torrent name' was added to download list. '%1' buvo pridėtas į siuntimų sąrašą. - + An I/O error occurred, '%1' paused. %2 Įvyko I/O klaida, '%1' pristabdytas. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Prievadų išdėstymas nesėkmingas, žinutė: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Prievadų išdėstymas sėkmingas, žinutė: %1 - + due to IP filter. this peer was blocked due to ip filter. dėl IP filtro. - + due to port filter. this peer was blocked due to port filter. dėl prievadų filtro. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. dėl i2p maišytos veiksenos apribojimų. - + because it has a low port. this peer was blocked because it has a low port. nes jo žemas prievadas. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent sėkmingai klausosi ties įrenginio %1 prievadu: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent nepavyko klausytis ties įrenginio %1 prievadu: %2/%3. Priežastis: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Išorinis IP: %1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS kanalai - + Unread Neskaityta @@ -1378,211 +1378,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Atsiųsti torentus iš jų URL arba Magnet nuorodos - + Only one link per line Po vieną nuorodą eilutėje - + Download Atsiųsti - + Global upload rate limit must be greater than 0 or disabled. Globalaus išsiuntimo greičio apribojimas privalo būti arba aukštesnis už 0, arba išjungtas. - + Global download rate limit must be greater than 0 or disabled. Globalaus atsiuntimo greičio apribojimas privalo būti arba aukštesnis už 0, arba išjungtas. - + Alternative upload rate limit must be greater than 0 or disabled. Alternatyvus išsiuntimo greičio apribojimas privalo būti arba aukštesnis už 0, arba išjungtas. - + Alternative download rate limit must be greater than 0 or disabled. Alternatyvus atsiuntimo greičio apribojimas privalo būti arba aukštesnis už 0, arba išjungtas. - + Maximum active downloads must be greater than -1. Didžiausias aktyvių atsiuntimų kiekis privalo būti didesnis nei -1. - + Maximum active uploads must be greater than -1. Didžiausias aktyvių išsiuntimų kiekis privalo būti didesnis nei -1. - + Maximum active torrents must be greater than -1. Didžiausias aktyvių torentų kiekis privalo būti didesnis nei -1. - + Maximum number of connections limit must be greater than 0 or disabled. Didžiausias prisijungimų kiekis privalo būti arba aukštesnis už 0, arba išjungtas. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Didžiausias prisijungimų kiekis vienam torentui privalo būti arba aukštesnis už 0, arba išjungtas. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Didžiausias išsiuntimo prisijungimų kiekis vienam torentui privalo būti arba aukštesnis už 0, arba išjungtas. - + Unable to save program preferences, qBittorrent is probably unreachable. Nepavyko išsaugoti programos nuostatų, qBittorrent tikriausiai yra nepasiekiamas. - + Language Kalba - + The port used for incoming connections must be between 1 and 65535. Įeinančių susijungimų prievadas privalo būti tarp 1 ir 65535. - + The port used for the Web UI must be between 1 and 65535. Saityno vartotojo sąsajos prievadas privalo būti tarp 1 ir 65535. - + Unable to log in, qBittorrent is probably unreachable. Negalima prisijungti, qBittorrent, tikriausiai, yra nepasiekamas. - + Invalid Username or Password. Neteisingas Vartotojo vardas ar Slaptažodis. - + Password Slaptažodis - + Login Prisijungimas - + Upload Failed! Išsiuntimas Nepavyko! - + Original authors Pirmutiniai autoriai - + Upload limit: Išsiuntimo riba: - + Download limit: Atsiuntimo riba: - + Apply Taikyti - + Add Pridėti - + Upload Torrents - + All Visi - + Downloading Atsiunčiama - + Seeding Skleidžiama - + Completed Užbaigta - + Resumed Pratęsta - + Paused Pristabdyta - + Active Aktyvūs - + Inactive Neaktyvūs - + Save files to location: Failus išsaugoti į: - + Label: Etiketė: - + Cookie: Slapukas: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Kasdien + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Atsiųstas @@ -1593,57 +1716,57 @@ You should get this information from your Web browser preferences. Atsijungti - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? Ar tikrai norite pašalinti pasirinktus torentus iš siuntimų sąrašo? - + The Web UI username must be at least 3 characters long. Tinklo sąsajos vartotojo vardas privalo būti bent 3 simbolių ilgio. - + The Web UI password must be at least 3 characters long. Tinklo sąsajos vartotojo slaptažodis privalo būti bent 3 simbolių ilgio. - + Save Išsaugoti - + qBittorrent client is not reachable qBittorrent klientas nepasiekiamas - + HTTP Server HTTP serveris - + The following parameters are supported: Palaikomi šie parametrai: - + Torrent path Torento saugojimo vieta - + Torrent name Torento vardas - + qBittorrent has been shutdown. qBittorrent buvo išjungtas. @@ -2281,12 +2404,6 @@ Ar norite įdiegti jį dabar? Python is required to use the search engine but it does not seem to be installed. Norint naudoti paieškos sistemą, būtinas Python interpretatorius, tačiau neatrodo, jog jis būtų įdiegtas. - - A new version is available. -Update to version %1? - Yra prieinama nauja versija. -Atsinaujinti iki versijos %1? - No updates available. @@ -2502,14 +2619,6 @@ Ar tikrai norite uždaryti qBittorrent? N/A Nėra - - Asia/Pacific Region - Azija/Ramiojo vandenyno regionas - - - Europe - Europa - Andorra @@ -2545,10 +2654,6 @@ Ar tikrai norite uždaryti qBittorrent? Armenia Armėnija - - Netherlands Antilles - Nyderlandų Antilai - Angola @@ -2644,10 +2749,6 @@ Ar tikrai norite uždaryti qBittorrent? Brunei Darussalam Brunėjaus Darusalamas - - Bolivia - Bolivija - Brazil @@ -2713,10 +2814,6 @@ Ar tikrai norite uždaryti qBittorrent? Switzerland Šveicarija - - Cote D'Ivoire - Dramblio Kaulo Krantas - Cook Islands @@ -2872,10 +2969,6 @@ Ar tikrai norite uždaryti qBittorrent? France Prancūzija - - France, Metropolitan - Prancūzija, Metropolija - Gabon @@ -3186,10 +3279,6 @@ Ar tikrai norite uždaryti qBittorrent? Marshall Islands Maršalo Salos - - Macedonia - Makedonija - Mali @@ -3205,10 +3294,6 @@ Ar tikrai norite uždaryti qBittorrent? Mongolia Mongolija - - Macau - Makao - Northern Mariana Islands @@ -3374,10 +3459,6 @@ Ar tikrai norite uždaryti qBittorrent? Puerto Rico Puerto Rikas - - Palestinian Territory - Palestinos teritorija - Portugal @@ -3688,10 +3769,6 @@ Ar tikrai norite uždaryti qBittorrent? Saint Vincent and the Grenadines - - Venezuela - Venesuela - Virgin Islands, British @@ -3702,10 +3779,6 @@ Ar tikrai norite uždaryti qBittorrent? Virgin Islands, U.S. - - Vietnam - Vietnamas - Vanuatu @@ -3756,14 +3829,6 @@ Ar tikrai norite uždaryti qBittorrent? Zimbabwe Zimbabvė - - Anonymous Proxy - Anoniminis įgaliotasis serveris - - - Other - Kita - Aland Islands @@ -3789,10 +3854,6 @@ Ar tikrai norite uždaryti qBittorrent? Saint Barthelemy Šv. Bartolomėjaus sala - - Saint Martin - Šv. Martyno sala - Could not uncompress GeoIP database file. @@ -3830,7 +3891,7 @@ Ar tikrai norite uždaryti qBittorrent? Net::Smtp - + Email Notification Error: El. pašto Pranešimo Klaida: @@ -4082,7 +4143,7 @@ Ar tikrai norite uždaryti qBittorrent? Search plugins - Ieškyklės + @@ -4097,50 +4158,50 @@ Ar tikrai norite uždaryti qBittorrent? Version - Versija + Versija Url - URL + URL Enabled - Įjungtas + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Naujų paieškos sistemų galite gauti čia: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Įdiegti naują + Check for updates - Tikrinti, ar yra atnaujinimų + Close - Uždaryti + Uninstall - Pašalinti + Yes - Taip + Taip @@ -4148,74 +4209,72 @@ Ar tikrai norite uždaryti qBittorrent? No - Ne + Ne Uninstall warning - Pašalinimo įspėjimas + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Kai kurių priedų nepavyko pašalinti, nes jie integruoti į qBittorrent. -Pašalinti galima tik tuos priedus, kuriuos pridėjote Jūs. -Tie priedai buvo išjungti. + Uninstall success - Sėkmingai pašalinta + All selected plugins were uninstalled successfully - Visi pasirinkti priedai buvo sėkmingai pašalinti + New search engine plugin URL - Naujos paieškos sistemos URL + URL: - URL: + URL: Invalid link - Netaisyklinga nuoroda + The link doesn't seem to point to a search engine plugin. - Nepanašu, jog nuoroda rodytų į paieškos variklio priedą. + Select search plugins - Pasirinkite paieškos priedus + qBittorrent search plugin - qBittorrent paieškos priedas + Search plugin update - Paieškos priedo atnaujinimas + All your plugins are already up to date. - Visi priedai yra naujausios laidos. + @@ -4227,7 +4286,7 @@ Tie priedai buvo išjungti. Search plugin install - Paieškos priedo įdiegimas + @@ -4257,22 +4316,22 @@ Tie priedai buvo išjungti. Plugin source - Priedo šaltinis + Search plugin source: - Ieškoti priedo šaltinio: + Local file - Vietiniame faile + Web link - Tinklo nuorodoje + @@ -5010,17 +5069,17 @@ Tie priedai buvo išjungti. Kelias iki filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5453,7 +5512,7 @@ Tie priedai buvo išjungti. QObject - + Your IP address has been banned after too many failed authentication attempts. Jūsų IP adresas buvo užblokuotas po per didelio kiekio nepavykusių atpažinimo bandymų. @@ -5945,12 +6004,12 @@ Daugiau nebus rodoma pranešimų apie tai. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatinis "%1" atsiuntimas iš "%2" RSS kanalo nepavyko, nes jame nėra torento ar magnet nuorodos... + Automatically downloading '%1' torrent from '%2' RSS feed... - Automatiškai atsiunčiamas torentas "%1" torentas iš "%2" RSS kanalo... + @@ -5961,28 +6020,6 @@ Daugiau nebus rodoma pranešimų apie tai. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatinis "%1" atsiuntimas iš "%2" RSS kanalo nepavyko, nes jame nėra torento ar magnet nuorodos... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Automatiškai atsiunčiamas torentas "%1" torentas iš "%2" RSS kanalo... - - - - RssParser - - Failed to open downloaded RSS file. - Nepavyko atverti atsiųsto RSS failo. - - - Invalid RSS feed at '%1'. - Netaisyklingas RSS kanalas ties %1. - - RssSettingsDlg @@ -6051,121 +6088,9 @@ Daugiau nebus rodoma pranešimų apie tai. Save Files to - - Download here - Atsiųsti čia - - - Download path - Atsiuntimo kelias - - - - SearchCategories - - All categories - Visos kategorijos - - - Movies - Filmai - - - TV shows - TV laidos - - - Music - Muzika - - - Games - Žaidimai - - - Anime - Anime - - - Software - Programinė įranga - - - Pictures - Nuotraukos - - - Books - Knygos - SearchEngine - - Search - Paieška - - - Please install Python to use the Search Engine. - Norėdami naudoti paieškos sistemą, įdiekite Python. - - - Empty search pattern - Tuščias paieškos raktažodis - - - Please type a search pattern first - Visų pirma nurodykite paieškos raktažodį - - - Searching... - Ieškoma... - - - Stop - Stabdyti - - - Search Engine - Paieškos sistema - - - Search has finished - Paieška baigta - - - An error occurred during search... - Paieškos metu įvyko klaida... - - - Search aborted - Paieška nutraukta - - - All enabled - Visos įjungtos - - - All engines - Visos sistemos - - - Multiple... - Kelios... - - - Results <i>(%1)</i>: - i.e: Search results - Rezultatai <i>(%1)</i>: - - - Search returned no results - Paieška negrąžino rezultatų - - - Stopped - Sustabdyta - Unknown search engine plugin file format. @@ -6201,47 +6126,47 @@ Daugiau nebus rodoma pranešimų apie tai. All categories - Visos kategorijos + Movies - Filmai + Filmai TV shows - TV laidos + TV laidos Music - Muzika + Muzika Games - Žaidimai + Žaidimai Anime - Anime + Anime Software - Programinė įranga + Programinė įranga Pictures - Nuotraukos + Nuotraukos Books - Knygos + Knygos @@ -6290,37 +6215,37 @@ Daugiau nebus rodoma pranešimų apie tai. - - - + + + Search Status: - Būsena: + - + Stopped - Sustabdyta + Download - + Atsiųsti Go to description page - Eiti į aprašymo puslapį + Copy description page URL - Kopijuoti aprašymo puslapio URL + @@ -6328,86 +6253,86 @@ Daugiau nebus rodoma pranešimų apie tai. - + All enabled - Visos įjungtos - - - - All plugins - + All plugins + + + + + Multiple... - Kelios... + - - - + + + Search Engine - Paieškos sistema + - + Please install Python to use the Search Engine. - Norėdami naudoti paieškos sistemą, įdiekite Python. + - + Empty search pattern - Tuščias paieškos raktažodis + - + Please type a search pattern first - Visų pirma nurodykite paieškos raktažodį + - - + + Results <i>(%1)</i>: i.e: Search results - Rezultatai <i>(%1)</i>: - - - - Searching... - Ieškoma... + + Searching... + + + + Stop - Stabdyti + - - + + Search has finished - Paieška baigta + - - + + Search aborted - Paieška nutraukta + - + Search returned no results - Paieška negrąžino rezultatų + - + Search has failed - + An error occurred during search... - Paieškos metu įvyko klaida... + @@ -6873,10 +6798,6 @@ Daugiau nebus rodoma pranešimų apie tai. Download Priority - - Priority - Svarba - TorrentCreatorDlg @@ -8072,161 +7993,6 @@ Daugiau nebus rodoma pranešimų apie tai. Įveskite bent vieną URL adresą. - - engineSelect - - Search plugins - Ieškyklės - - - Installed search engines: - Įdiegti paieškos sistemos: - - - Name - Vardas - - - Version - Versija - - - Url - URL - - - Enabled - Įjungtas - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Naujų paieškos sistemų galite gauti čia: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Įdiegti naują - - - Check for updates - Tikrinti, ar yra atnaujinimų - - - Close - Uždaryti - - - Uninstall - Pašalinti - - - - engineSelectDlg - - Uninstall warning - Pašalinimo įspėjimas - - - Uninstall success - Sėkmingai pašalinta - - - Invalid plugin - Netaisyklingas priedas - - - The search engine plugin is invalid, please contact the author. - Paieškos sistemos ieškyklė yra netaisyklinga, prašome susisiekti su autoriumi. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Jau yra įdiegta naujesnė "%1" paieškos sistemos ieškyklė. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - "%1" paieškos sistemos ieškyklės nepavyko atnaujinti, paliekama senoji versija. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Nepavyko įdiegti "%1" paieškos sistemos priedo. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - "%1" paieškos sistemos priedas buvo sėkmingai atnaujintas. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - "%1" paieškos sistemos priedas buvo sėkmingai įdiegtas. - - - The link doesn't seem to point to a search engine plugin. - Nepanašu, jog nuoroda rodytų į paieškos variklio priedą. - - - Select search plugins - Pasirinkite paieškos priedus - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Atleiskite, "%1" ieškyklės įdiegimas nepavyko. - - - Search plugin install - Paieškos priedo įdiegimas - - - Yes - Taip - - - No - Ne - - - qBittorrent search plugin - qBittorrent paieškos priedas - - - Search plugin update - Paieškos priedo atnaujinimas - - - Sorry, update server is temporarily unavailable. - Atsiprašome, atnaujinimų serveris kolkas nepasiekiamas. - - - All your plugins are already up to date. - Visi priedai yra naujausios laidos. - - - All selected plugins were uninstalled successfully - Visi pasirinkti priedai buvo sėkmingai pašalinti - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Kai kurių priedų nepavyko pašalinti, nes jie integruoti į qBittorrent. -Pašalinti galima tik tuos priedus, kuriuos pridėjote Jūs. -Tie priedai buvo išjungti. - - - Invalid link - Netaisyklinga nuoroda - - - New search engine plugin URL - Naujos paieškos sistemos URL - - - URL: - URL: - - errorDialog @@ -8354,192 +8120,173 @@ Tie priedai buvo išjungti. options_imp - - + + Choose export directory Pasirinkite eksportavimo katalogą - - - - + + + + Choose a save directory Pasirinkite išsaugojimo aplanką - + Add directory to scan Pridėkite norimą skenuoti aplanką - + Supported parameters (case sensitive): Palaikomi parametrai (skiriant raidžių dydį): - + %N: Torrent name %N: Torento pavadinimas - + %L: Label %L: Etiketė - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Atsiuntimo vieta - + %C: Number of files %C: Failų skaičius - + %Z: Torrent size (bytes) %Z: Torento dydis (baitais) - + %T: Current tracker %T: Esamas seklys - + %I: Info hash %I: Informacijos maiša - + Folder is already being watched. Šis aplankas jau stebimas. - + Folder does not exist. Aplankas neegzistuoja. - + Folder is not readable. Aplanko skaityti nepavyko. - + Failure Nepavyko - + Failed to add Scan Folder '%1': %2 Nepavyko pridėti skenuojamo aplanko '%1': %2 - - + + Filters Filtrai - - + + Choose an IP filter file Pasirinkite IP filtrų failą - + SSL Certificate SSL sertifikatas - + SSL Key SSL raktas - + Parsing error Įkėlimo klaida - + Failed to parse the provided IP filter Nepavyko įkelti nurodyto IP filtro - + Successfully refreshed Sėkmingai atnaujinta - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Nurodytas IP filtras sėkmingai įkeltas. %1 taisyklės pritaikytos. - + Invalid key Netaisyklingas raktas - + This is not a valid SSL key. Šis raktas nėra taisyklingas SSL raktas. - + Invalid certificate Netaisyklingas sertifikatas - + This is not a valid SSL certificate. Šis sertifikatas nėra taisyklingas SSL sertifikatas. - + The start time and the end time can't be the same. Pradžios bei pabaigos laikai negali sutapti. - + Time Error Laiko klaida - - pluginSourceDlg - - Plugin source - Priedo šaltinis - - - Search plugin source: - Ieškoti priedo šaltinio: - - - Local file - Vietiniame faile - - - Web link - Tinklo nuorodoje - - preview @@ -8563,35 +8310,4 @@ Tie priedai buvo išjungti. Atšaukti - - search_engine - - Search - Ieškoti - - - Status: - Būsena: - - - Stopped - Sustabdyta - - - Download - Parsisiųsti - - - Go to description page - Eiti į aprašymo puslapį - - - Copy description page URL - Kopijuoti aprašymo puslapio URL - - - Search engines... - Paieškos sistemos... - - diff --git a/src/lang/qbittorrent_nb.ts b/src/lang/qbittorrent_nb.ts index f7901de39..5e293be8a 100644 --- a/src/lang/qbittorrent_nb.ts +++ b/src/lang/qbittorrent_nb.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Deltaker ID: - + HTTP User-Agent is '%1' HTTP Brukeragent er '%1' - + Anonymous mode [ON] Anonymitetsmodus [PÅ] - + Anonymous mode [OFF] Anonymitetsmodus [AV] - + PeX support [ON] PeX støtte [PÅ] - + PeX support [OFF] PeX støtte [AV] - + Restart is required to toggle PeX support Omstart kreves for å omkoble PeX støtte - + Local Peer Discovery support [ON] Lokal Deltaker-oppdagelsesstøtte [PÅ] - + Local Peer Discovery support [OFF] Lokal Deltaker-oppdagelsesstøtte [AV] - + Encryption support [ON] Krypteringsstøtte [PÅ] - + Encryption support [FORCED] Krypteringsstøtte [TVUNGET] - + Encryption support [OFF] Krypteringsstøtte [AV] - + Embedded Tracker [ON] Innebygd Sporer [PÅ] - + Failed to start the embedded tracker! Mislyktes med å starte den innebygde sporeren! - + Embedded Tracker [OFF] Innebygd Sporer [AV] - + '%1' reached the maximum ratio you set. Removing... '%1' nådde det maksimale forholdet du satte. Fjerner... - + '%1' reached the maximum ratio you set. Pausing... '%1' nådde det maksimale forholdet du satte. Setter på pause... - + System network status changed to %1 e.g: System network status changed to ONLINE System-nettverkstatus forandret til %1 - + ONLINE TILKOBLET - + OFFLINE FRAKOBLET - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Nettverkskonfigurasjon av %1 har blitt forandret, oppdaterer sesjonsbinding - + Unable to decode '%1' torrent file. Ikke i stand til å dekode '%1' torrentfil. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekursiv nedlasting av fil '%1' innebygd i torrent '%2' - + Couldn't save '%1.torrent' Kunne ikke lagre '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. fordi %1 er deaktivert. - + because %1 is disabled. this peer was blocked because TCP is disabled. fordi %1 er deaktivert. - + URL seed lookup failed for URL: '%1', message: %2 Nettadressegivningsoppsøking mislyktes for nettadresse: '%1', melding: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' ble fjernet fra overføringsliste og harddisk. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' ble fjernet fra overføringsliste. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Laster ned '%1', vennligst vent... - + DHT support [ON] DHT støtte [PÅ] - + DHT support [OFF]. Reason: %1 DHT støtte [AV]. Grunn: %1 - + DHT support [OFF] DHT støtte [AV] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent forsøker å lytte på hvilket som helst grensesnitts-port: %1 - + The network interface defined is invalid: %1 Det definerte nettverksgrensesnittet er ugyldig: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent forsøker å lytte på grensesnitt %1 port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent fant ikke en %1 lokal adresse å lytte på - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent mislyktes med å lytte på hvilket som helst grensesnitts-port: %1. Grunn: %2. - + Tracker '%1' was added to torrent '%2' Sporer '%1' ble lagt til torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Sporer '%1' ble slettet fra torrent '%2' - + URL seed '%1' was added to torrent '%2' Nettadressegivning '%1' ble lagt til torrent '%2' - + URL seed '%1' was removed from torrent '%2' Nettadressegivning '%1' ble fjernet fra torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ikke i stand til å gjenoppta torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Det oppgitte IP filteret ble vellykket analysert: %1 regler ble lagt til. - + Error: Failed to parse the provided IP filter. Feil: Mislyktes i å analysere det oppgitte IP filteret. - + Couldn't add torrent. Reason: %1 Kunne ikke legge til torrent. Grunn: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' ble gjenopptatt (hurtig gjenopptaking) - + '%1' added to download list. 'torrent name' was added to download list. '%1' lagt til nedlastingsliste. - + An I/O error occurred, '%1' paused. %2 En inn/ut-operasjonsfeil oppstod, '%1' satt på pause. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Port-tildelingssvikt, melding: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Port-tildeling vellykket, melding: %1 - + due to IP filter. this peer was blocked due to ip filter. pga. IP filter. - + due to port filter. this peer was blocked due to port filter. pga. port-filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. pga. i2p blandingsmodus-restriksjoner. - + because it has a low port. this peer was blocked because it has a low port. fordi den har en lav port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent lytter vellykket på grensesnitt %1 port: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent mislyktes i å lytte på grensesnitt %1 port: %2/%3. Grunn: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Ekstern IP: %1 @@ -1284,12 +1284,12 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. FeedListWidget - + RSS feeds Nyhetsmatinger - + Unread Ulest @@ -1378,211 +1378,338 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Last ned Torrenter fra deres nettadresse eller Magnetlenke - + Only one link per line Kun en lenke per linje - + Download Last ned - + Global upload rate limit must be greater than 0 or disabled. Global opplastingsforholdsgrense må være større enn 0 eller deaktivert. - + Global download rate limit must be greater than 0 or disabled. Global nedlastingsforholdsgrense må være større enn 0 eller deaktivert. - + Alternative upload rate limit must be greater than 0 or disabled. Alternativ opplastingsforholdsgrense må være større enn 0 eller deaktivert. - + Alternative download rate limit must be greater than 0 or disabled. Alternativ nedlastingsforholdsgrense må være større enn 0 eller deaktivert. - + Maximum active downloads must be greater than -1. Maksimalt aktive nedlastinger må være større enn -1. - + Maximum active uploads must be greater than -1. Maksimalt aktive opplastinger må være større enn -1. - + Maximum active torrents must be greater than -1. Maksimalt aktive torrenter må være større enn -1. - + Maximum number of connections limit must be greater than 0 or disabled. Grensen for maksimalt antall tilkoblinger må være større enn 0 eller deaktivert. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Grensen for maksimalt antall tilkoblinger per torrent må være større enn 0 eller deaktivert. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Grensen for maksimalt antall opplastingsåpninger per torrent må være større enn 0 eller deaktivert. - + Unable to save program preferences, qBittorrent is probably unreachable. Ikke i stand til å lagre programinnstillinger, qBittorrent er sannsynligvis unåelig. - + Language Språk - + The port used for incoming connections must be between 1 and 65535. Porten som brukes for innkommende tilkoblinger må være mellom 1 og 65535. - + The port used for the Web UI must be between 1 and 65535. Porten som brukes for nettbrukergrensesnittet må være mellom 1 og 65535. - + Unable to log in, qBittorrent is probably unreachable. Ikke i stand til å logge inn, qBittorrent er sannsynligvis unåelig. - + Invalid Username or Password. Ugyldig Brukernavn eller Passord. - + Password Passord - + Login Logg inn - + Upload Failed! Opplasting mislyktes! - + Original authors Opprinnelige opphavspersoner - + Upload limit: Opplastingsgrense: - + Download limit: Nedlastingsgrense: - + Apply Bruk - + Add Legg til - + Upload Torrents Last opp Torrenter - + All Alle - + Downloading Laster ned - + Seeding Gir ut - + Completed Fullførte - + Resumed Gjenopptatte - + Paused Satt på pause - + Active Aktive - + Inactive Inaktive - + Save files to location: Lagre filer til plassering: - + Label: Etikett: - + Cookie: Informasjonskapsel: - + Type folder here + Skriv mappe her + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Lagre Filer til + + + + Watch Folder + Overvåk Mappe + + + + Default Folder + Standardmappe + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Annet... + + + + Every day + Schedule the use of alternative rate limits on ... + Hver dag + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Annet... + + + Downloaded Is the file downloaded or not? Nedlastet @@ -1593,57 +1720,57 @@ Du bør få denne informasjonen fra innstillingene til nettleseren din.Logg ut - + Upload local torrent Last opp lokal torrent - + Are you sure you want to delete the selected torrents from the transfer list? Er du sikker på at du vil slette de valgte torrentene fra overføringslisten? - + The Web UI username must be at least 3 characters long. Nettbrukergrensesnittets brukernavn må være minst 3 tegn langt. - + The Web UI password must be at least 3 characters long. Nettbrukergrensesnittets passord må være minst 3 tegn langt. - + Save Lagre - + qBittorrent client is not reachable qBittorrent er ikke oppnåelig - + HTTP Server HTTP Tjener - + The following parameters are supported: Følgende parametre er støttet: - + Torrent path Torrentsti - + Torrent name Torrentnavn - + qBittorrent has been shutdown. qBittorrent har blitt avslått. @@ -2216,7 +2343,8 @@ Vil du assosiere qBittorrent til torrentfiler og Magnetlenker? A new version is available. Do you want to download %1? - + En ny versjon er tilgjengelig. +Vil du laste ned %1? @@ -2281,12 +2409,6 @@ Vil du installere det nå? Python is required to use the search engine but it does not seem to be installed. Python kreves for å bruke søkemotoren, men det synes ikke å være installert. - - A new version is available. -Update to version %1? - En ny versjon er tilgjengelig. -Oppdatere til versjon %1? - No updates available. @@ -2489,12 +2611,12 @@ Er du sikker på at du vil avslutte qBittorrent? Venezuela, Bolivarian Republic of - + Venezuela, Den Bolivianske Rebublikken Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Er du sikker på at du vil avslutte qBittorrent? N/A Ikke tilgjengelig - - Asia/Pacific Region - Asia/Stillehavsområdet - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Er du sikker på at du vil avslutte qBittorrent? Armenia Armenia - - Netherlands Antilles - Nederlandske Antillene, De - Angola @@ -2644,10 +2754,6 @@ Er du sikker på at du vil avslutte qBittorrent? Brunei Darussalam Brunei Darussalam - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Er du sikker på at du vil avslutte qBittorrent? Switzerland Sveits - - Cote D'Ivoire - Elfenbenskysten - Cook Islands @@ -2760,7 +2862,7 @@ Er du sikker på at du vil avslutte qBittorrent? Curacao - + Curacao @@ -2872,10 +2974,6 @@ Er du sikker på at du vil avslutte qBittorrent? France Frankrike - - France, Metropolitan - Fastlands-Frankrike og Øyen Korsika - Gabon @@ -3161,10 +3259,6 @@ Er du sikker på at du vil avslutte qBittorrent? Latvia Latvia - - Libyan Arab Jamahiriya - Libya - Morocco @@ -3190,10 +3284,6 @@ Er du sikker på at du vil avslutte qBittorrent? Marshall Islands Marshalløyene - - Macedonia - Makedonia - Mali @@ -3209,10 +3299,6 @@ Er du sikker på at du vil avslutte qBittorrent? Mongolia Mongolia - - Macau - Macao - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Er du sikker på at du vil avslutte qBittorrent? Saint Pierre and Miquelon Saint-Pierre og Miquelon - - Pitcairn Islands - Pitcairnøyene - Puerto Rico Puerto Rico - - Palestinian Territory - Palestinske Territoriene, De - Portugal @@ -3456,10 +3534,6 @@ Er du sikker på at du vil avslutte qBittorrent? Singapore Singapore - - Saint Helena - Saint Helena - Slovenia @@ -3578,62 +3652,62 @@ Er du sikker på at du vil avslutte qBittorrent? Bolivia, Plurinational State of - + Bolivia, Den Multinasjonale Staten Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius og Saba Cote d'Ivoire - + Elfenbenskysten Libya - + Libya Saint Martin (French part) - + Saint Martin (Fransk del) Macedonia, The Former Yugoslav Republic of - + Makedonia, Den Tidligere Jugoslaviske Republikken Macao - + Macao Pitcairn - + Pitcairn Palestine, State of - + Palestina, Staten Saint Helena, Ascension and Tristan da Cunha - + Saint Helena, Ascension og Tristan da Cunha South Sudan - + Sør-Sudan Sint Maarten (Dutch part) - + Sint Maarten (Nederlandsk del) @@ -3700,10 +3774,6 @@ Er du sikker på at du vil avslutte qBittorrent? Saint Vincent and the Grenadines Saint Vincent og Grenadinene - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Er du sikker på at du vil avslutte qBittorrent? Virgin Islands, U.S. Jomfruøyene, De Amerikanske. - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Er du sikker på at du vil avslutte qBittorrent? Zimbabwe Zimbabwe - - Anonymous Proxy - Anonym Mellomtjener - - - Satellite Provider - Satellitt-leverandør - - - Other - Annet - Aland Islands @@ -3805,10 +3859,6 @@ Er du sikker på at du vil avslutte qBittorrent? Saint Barthelemy Saint-Barthélemy - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Er du sikker på at du vil avslutte qBittorrent? Net::Smtp - + Email Notification Error: Epost-varslingsfeil: @@ -3992,7 +4042,7 @@ Er du sikker på at du vil avslutte qBittorrent? Files i.e. files that are being downloaded right now - + Filer @@ -4098,65 +4148,65 @@ Er du sikker på at du vil avslutte qBittorrent? Search plugins - Søke-programtillegg + Søke-programtillegg Installed search plugins: - + Installerte søke-programtillegg: Name - Navn + Navn Version - Versjon + Versjon Url - Nettadresse + Nettadresse Enabled - Aktivert + Aktivert You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan skaffe nye søkemotor-programtillegg her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Du kan skaffe nye søkemotor-programtillegg her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Installer en ny + Installer en ny Check for updates - Søk etter oppdateringer + Sjekk for oppdateringer Close - Steng + Steng Uninstall - Avinstaller + Avinstaller Yes - Ja + Ja @@ -4164,107 +4214,107 @@ Er du sikker på at du vil avslutte qBittorrent? No - Nei + Nei Uninstall warning - Avinstalleringsadvarsel + Avinstalleringsadvarsel Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Noen programtillegg kunne ikke avinstalleres, siden de er inkludert i qBittorrent. Kun de du har lagt til selv kan avinstalleres. + Noen programtillegg kunne ikke avinstalleres, siden de er inkludert i qBittorrent. Kun de du har lagt til selv kan avinstalleres. Disse programtilleggene ble deaktivert. Uninstall success - Avinstallering vellykket + Avinstallering vellykket All selected plugins were uninstalled successfully - Alle valgte programtillegg ble vellykket avinstallert + Alle valgte programtillegg ble vellykket avinstallert New search engine plugin URL - Ny søkemotor-programtilleggs nettadresse + Ny søkemotor-programtilleggs nettadresse URL: - Nettadresse: + Nettadresse: Invalid link - Ugyldig lenke + Ugyldig lenke The link doesn't seem to point to a search engine plugin. - Lenken ser ikke ut til å peke mot et søkemotor-programtillegg. + Lenken ser ikke ut til å peke mot et søkemotor-programtillegg. Select search plugins - Velg søke-programtillegg + Velg søke-programtillegg qBittorrent search plugin - qBittorrent søke-programtillegg + qBittorrent søke-programtillegg Search plugin update - Søke-programtillegg oppdatering + Søke-programtillegg oppdatering All your plugins are already up to date. - Alle dine programtillegg er allerede oppdatert. + Alle dine programtillegg er allerede oppdatert. Sorry, couldn't check for plugin updates. %1 - + Beklager, kunne ikke sjekke for programtilleggsoppdateringer. %1 Search plugin install - Søke-programtillegg installering + Søke-programtillegg installering "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" søkemotor-programtillegg ble vellykket installert. Couldn't install "%1" search engine plugin. %2 - + Kunne ikke installere "%1" søkemotor-programtillegg. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" søkemotor-programtillegg ble vellykket oppdatert. Couldn't update "%1" search engine plugin. %2 - + Kunne ikke oppdatere "%1" søkemotor-programtillegg. %2 @@ -4272,22 +4322,22 @@ Disse programtilleggene ble deaktivert. Plugin source - Programtilleggskilde + Programtilleggskilde Search plugin source: - Søke-programtillegg kilde: + Søke-programtillegg kilde: Local file - Lokal fil + Lokal fil Web link - Nettlenke + Nettlenke @@ -5025,17 +5075,17 @@ Disse programtilleggene ble deaktivert. Filtersti (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Oppdaget uren programavsluttning. Bruker reservefil for å gjenopprette innstillinger. - + An access error occurred while trying to write the configuration file. En tilgangsfeil oppstod ved forsøk på å skrive konfigurasjonsfilen. - + A format error occurred while trying to write the configuration file. En formatfeil oppstod ved forsøk på å skrive konfigurasjonsfilen. @@ -5468,7 +5518,7 @@ Disse programtilleggene ble deaktivert. QObject - + Your IP address has been banned after too many failed authentication attempts. IP adressen din har blitt bannlyst etter for mange mislykkede autentiseringsforsøk. @@ -5960,12 +6010,12 @@ Ingen flere notiser vil bli gitt. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... + Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... Automatically downloading '%1' torrent from '%2' RSS feed... - Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... + Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... @@ -5973,29 +6023,7 @@ Ingen flere notiser vil bli gitt. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatisk nedlasting %1 fra %2 nyhetsmating mislyktes, fordi den ikke inneholder en torrent eller en magnetlenke... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Laster automatisk ned '%1' torrent fra '%2' nyhetsmating... - - - - RssParser - - Failed to open downloaded RSS file. - Mislyktes med å åpne nedlastet nyhetsmatingsfil. - - - Invalid RSS feed at '%1'. - Ugyldig nyhetsmating hos '%1'. + Ugyldig nyhetsmating. @@ -6026,22 +6054,22 @@ Ingen flere notiser vil bli gitt. Watch Folder - + Overvåk Mappe Default Folder - + Standardmappe Browse... - Bla gjennom... + Bla gjennom... Choose save path - Velg lagringssti + Velg lagringssti @@ -6049,12 +6077,12 @@ Ingen flere notiser vil bli gitt. Watch Folder - + Overvåk Mappe Default Folder - + Standardmappe @@ -6064,199 +6092,87 @@ Ingen flere notiser vil bli gitt. Save Files to - - - - Download here - Last ned her - - - Download path - Nedlastingssti - - - - SearchCategories - - All categories - Alle kategorier - - - Movies - Filmer - - - TV shows - TV-forestillinger - - - Music - Musikk - - - Games - Spill - - - Anime - Anime - - - Software - Programvare - - - Pictures - Bilder - - - Books - Bøker + Lagre Filer til SearchEngine - - Search - Søk - - - Please install Python to use the Search Engine. - Vennligst installer Python for å bruke Søkemotoren. - - - Empty search pattern - Tom søkestreng - - - Please type a search pattern first - Vennligst skriv en søkestreng først - - - Searching... - Søker... - - - Stop - Stopp - - - Search Engine - Søkemotor - - - Search has finished - Søket er ferdig - - - An error occurred during search... - Det oppstod en feil under søket... - - - Search aborted - Søk avbrutt - - - All enabled - Alle aktivert - - - All engines - Alle motorer - - - Multiple... - Flere... - - - Results <i>(%1)</i>: - i.e: Search results - Resultater <i>(%1)</i>: - - - Search returned no results - Søket ga ingen resultater - - - Stopped - Stoppet - Unknown search engine plugin file format. - + Ukjent søkemotor-programtilleggsfilformat. A more recent version of this plugin is already installed. - + En nyere versjon av dette programtillegget er allerede installert. Plugin is not supported. - + Programtillegget er ikke støttet. Update server is temporarily unavailable. %1 - + Oppdateringstjeneren er midlertidlig utilgjengelig. %1 Failed to download the plugin file. %1 - + Mislyktes med å laste ned programtilleggsfilen. %1 An incorrect update info received. - + Ukorrekt oppdateringsinfo mottatt. All categories - Alle kategorier + Alle kategorier Movies - Filmer + Filmer TV shows - TV-forestillinger + TV-forestillinger Music - Musikk + Musikk Games - Spill + Spill Anime - Anime + Anime Software - Programvare + Programvare Pictures - Bilder + Bilder Books - Bøker + Bøker @@ -6305,124 +6221,124 @@ Ingen flere notiser vil bli gitt. - - - + + + Search - Søk + Søk Status: - Status: + Status: - + Stopped - Stoppet + Stoppet Download - Last ned + Last ned Go to description page - Gå til beskrivelsesside + Gå til beskrivelsesside Copy description page URL - Kopier beskrivelsesside-nettadresse + Kopier beskrivelsesside-nettadresse Search plugins... - + Søke-programtillegg... - + All enabled - Alle aktivert - - - - All plugins - + Alle aktivert - + All plugins + Alle programtillegg + + + + Multiple... - Flere... + Flere... - - - + + + Search Engine - Søkemotor + Søkemotor - + Please install Python to use the Search Engine. - Vennligst installer Python for å bruke Søkemotoren. + Vennligst installer Python for å bruke Søkemotoren. - + Empty search pattern - Tom søkestreng + Tom søkestreng - + Please type a search pattern first - Vennligst skriv en søkestreng først + Vennligst skriv en søkestreng først - - + + Results <i>(%1)</i>: i.e: Search results - Resultater <i>(%1)</i>: - - - - Searching... - Søker... + Resultater <i>(%1)</i>: + Searching... + Søker... + + + Stop - Stopp + Stopp - - + + Search has finished - Søket er ferdig + Søket er ferdig - - + + Search aborted - Søk avbrutt + Søk avbrutt - + Search returned no results - Søket ga ingen resultater + Søket ga ingen resultater - + Search has failed - + Søket mislyktes - + An error occurred during search... - Det oppstod en feil under søket... + Det oppstod en feil under søket... @@ -6886,11 +6802,7 @@ Ingen flere notiser vil bli gitt. Download Priority - - - - Priority - Prioritet + Nedlastingsprioritet @@ -8087,160 +7999,6 @@ Ingen flere notiser vil bli gitt. Vennligst skriv minst en nettadresse. - - engineSelect - - Search plugins - Søke-programtillegg - - - Installed search engines: - Installerte søkemotorer: - - - Name - Navn - - - Version - Versjon - - - Url - Nettadresse - - - Enabled - Aktivert - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan skaffe nye søkemotor-programtillegg her: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Installer en ny - - - Check for updates - Søk etter oppdateringer - - - Close - Steng - - - Uninstall - Avinstaller - - - - engineSelectDlg - - Uninstall warning - Avinstalleringsadvarsel - - - Uninstall success - Avinstallering vellykket - - - Invalid plugin - Ugyldig programtillegg - - - The search engine plugin is invalid, please contact the author. - Søkemotor-programtillegget er ugyldig, vennligst kontakt opphavspersonen. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - En nyere versjon av '%1' søkemotor-programtillegget er allerede installert. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' søkemotor-programtillegg kunne ikke oppdateres, beholder gammel versjon. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' søkemotor-programtillegg kunne ikke installeres. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' søkemotor-programtillegg ble vellykket oppdatert. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' søkemotor-programtillegg ble vellykket installert. - - - The link doesn't seem to point to a search engine plugin. - Lenken ser ikke ut til å peke mot et søkemotor-programtillegg. - - - Select search plugins - Velg søke-programtillegg - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Beklager, '%1' søke-programtillegg installasjon mislyktes. - - - Search plugin install - Søke-programtillegg installering - - - Yes - Ja - - - No - Nei - - - qBittorrent search plugin - qBittorrent søke-programtillegg - - - Search plugin update - Søke-programtillegg oppdatering - - - Sorry, update server is temporarily unavailable. - Beklager, oppdateringstjener er midlertidig utilgjengelig. - - - All your plugins are already up to date. - Alle dine programtillegg er allerede oppdatert. - - - All selected plugins were uninstalled successfully - Alle valgte programtillegg ble vellykket avinstallert - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Noen programtillegg kunne ikke avinstalleres, siden de er inkludert i qBittorrent. Kun de du har lagt til selv kan avinstalleres. -Disse programtilleggene ble deaktivert. - - - Invalid link - Ugyldig lenke - - - New search engine plugin URL - Ny søkemotor-programtilleggs nettadresse - - - URL: - Nettadresse: - - errorDialog @@ -8368,192 +8126,173 @@ Disse programtilleggene ble deaktivert. options_imp - - + + Choose export directory Velg eksporteringskatalog - - - - + + + + Choose a save directory Velg en lagringskatalog - + Add directory to scan Legg til katalog som skal gjennomsøkes - + Supported parameters (case sensitive): Støttede parametre (forskjell på små og store bokstaver): - + %N: Torrent name %N: Torrentnavn - + %L: Label %L: Etikett - + %F: Content path (same as root path for multifile torrent) %F: Innholdsti (samme som rotsti for flerfilstorrent) - + %R: Root path (first torrent subdirectory path) %R: Rotsti (første torrent underkatalogsti) - + %D: Save path %D: Lagringssti - + %C: Number of files %C: Antall filer - + %Z: Torrent size (bytes) %Z: Torrentstørrelse (byte) - + %T: Current tracker %T: Nåværende sporer - + %I: Info hash %I: Informativ verifiseringsnøkkel - + Folder is already being watched. Mappe er allerede overvåket. - + Folder does not exist. Mappe eksisterer ikke. - + Folder is not readable. Mappe er ikke lesbar. - + Failure Svikt - + Failed to add Scan Folder '%1': %2 Tillegging av gjennomsøkingsmappe mislyktes '%1': %2 - - + + Filters Filter - - + + Choose an IP filter file Velg en IP filter fil - + SSL Certificate SSL Sertifikat - + SSL Key SSL Nøkkel - + Parsing error Analyseringsfeil - + Failed to parse the provided IP filter Analysering av det oppgitte IP filteret mislyktes - + Successfully refreshed Oppdatert vellykket - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Det oppgitte IP filteret ble vellykket analysert: %1 regler ble lagt til. - + Invalid key Ugyldig nøkkel - + This is not a valid SSL key. Dette er ikke en gyldig SSL nøkkel. - + Invalid certificate Ugyldig sertifikat - + This is not a valid SSL certificate. Dette er ikke et gyldig SSL sertifikat. - + The start time and the end time can't be the same. Starttidspunktet og sluttidspunktet kan ikke være det samme. - + Time Error Tidspunktsfeil - - pluginSourceDlg - - Plugin source - Programtilleggskilde - - - Search plugin source: - Søke-programtillegg kilde: - - - Local file - Lokal fil - - - Web link - Nettlenke - - preview @@ -8577,35 +8316,4 @@ Disse programtilleggene ble deaktivert. Avbryt - - search_engine - - Search - Søk - - - Status: - Status: - - - Stopped - Stoppet - - - Download - Last ned - - - Go to description page - Gå til beskrivelsesside - - - Copy description page URL - Kopier beskrivelsesside-nettadresse - - - Search engines... - Søkemotorer... - - diff --git a/src/lang/qbittorrent_nl.ts b/src/lang/qbittorrent_nl.ts index 425124f37..183061354 100644 --- a/src/lang/qbittorrent_nl.ts +++ b/src/lang/qbittorrent_nl.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Peer-id: - + HTTP User-Agent is '%1' HTTP user-agent is '%1' - + Anonymous mode [ON] Anonieme modus [AAN] - + Anonymous mode [OFF] Anonieme modus [UIT] - + PeX support [ON] PeX-ondersteuning [AAN] - + PeX support [OFF] PeX-ondersteuning [UIT] - + Restart is required to toggle PeX support Opnieuw starten is vereist om PeX-ondersteuning in/uit te schakelen - + Local Peer Discovery support [ON] Local Peer Discovery ondersteuning [AAN] - + Local Peer Discovery support [OFF] Local Peer Discovery ondersteuning [UIT] - + Encryption support [ON] Encryptie-ondersteuning [AAN] - + Encryption support [FORCED] Encryptie-ondersteuning [GEFORCEERD] - + Encryption support [OFF] Encryptie-ondersteuning [UIT] - + Embedded Tracker [ON] Ingebedde tracker [AAN] - + Failed to start the embedded tracker! Ingebedde tracker starten mislukt! - + Embedded Tracker [OFF] Ingebedde tracker [UIT] - + '%1' reached the maximum ratio you set. Removing... '%1' heeft de maximum ingestelde verhouding bereikt. Verwijderen... - + '%1' reached the maximum ratio you set. Pausing... '%1' heeft de maximum ingestelde verhouding bereikt. Pauzeren... - + System network status changed to %1 e.g: System network status changed to ONLINE Systeem-netwerkstatus gewijzigd in %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Netwerkconfiguratie van %1 is gewijzigd, sessie-koppeling vernieuwen - + Unable to decode '%1' torrent file. Kon torrentbestand '%1' niet decoderen. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Recursieve download van bestand '%1' in torrent '%2' - + Couldn't save '%1.torrent' Kon '%1.torrent' niet opslaan - + because %1 is disabled. this peer was blocked because uTP is disabled. omdat %1 uitgeschakeld is. - + because %1 is disabled. this peer was blocked because TCP is disabled. omdat %1 uitgeschakeld is. - + URL seed lookup failed for URL: '%1', message: %2 URL-seed raadpleging mislukt voor url: '%1', bericht: '%2' - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' werd verwijderd van de overdrachtlijst en harde schijf. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' werd verwijderd van de overdrachtlijst. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Bezig met downloaden van '%1', even geduld... - + DHT support [ON] DHT-ondersteuning [AAN] - + DHT support [OFF]. Reason: %1 DHT-ondersteuning [UIT]. Reden: %1 - + DHT support [OFF] DHT-ondersteuning [UIT] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent probeert te luisteren op om het even welke interface-poort: %1 - + The network interface defined is invalid: %1 De opgegeven netwerkinterface is ongeldig: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent probeert te luisteren op interface %1 poort: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorent vond geen lokaal %1 adres om op te luisteren - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent slaagde er niet in om te luisteren op om het even welke interface-poort: %1. Reden: %2. - + Tracker '%1' was added to torrent '%2' Tracker '%1' werd toegevoegd aan torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' werd verwijderd uit torrent '%2' - + URL seed '%1' was added to torrent '%2' URL-seed '%1' werd toegevoegd aan torrent '%2' - + URL seed '%1' was removed from torrent '%2' URL-seed '%1' werd verwijderd uit torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Kon torrent '%1' niet hervatten. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verwerken van opgegeven IP-filter gelukt: er werden %1 regels toegepast. - + Error: Failed to parse the provided IP filter. Fout: verwerken van de opgegeven IP-filter mislukt - + Couldn't add torrent. Reason: %1 Kon torrent niet toevoegen. Reden: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' hervat. (snel hervatten) - + '%1' added to download list. 'torrent name' was added to download list. '%1' toegevoegd aan downloadlijst. - + An I/O error occurred, '%1' paused. %2 Er trad een I/O-fout op, '%1' gepauzeerd. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: port mapping mislukt, bericht: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: port mapping succesvol, bericht: %1 - + due to IP filter. this peer was blocked due to ip filter. veroorzaakt door IP-filter. - + due to port filter. this peer was blocked due to port filter. veroorzaakt door poortfilter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. veroorzaakt door i2p mixed mode restricties. - + because it has a low port. this peer was blocked because it has a low port. omdat het een lage poort heeft. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent luistert met succes naar interface %1 poort: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent slaagde er niet in om te luisteren naar interface %1 poort: %2/%3. Reden: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Externe IP: %1 @@ -1284,12 +1284,12 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. FeedListWidget - + RSS feeds RSS-feeds - + Unread Ongelezen @@ -1378,211 +1378,338 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Torrents downloaden via hun URL of magneetlink - + Only one link per line Slechts één link per regel - + Download Download - + Global upload rate limit must be greater than 0 or disabled. Algemene begrenzing voor uploadsnelheid moet groter dan 0 of uitgeschakeld zijn. - + Global download rate limit must be greater than 0 or disabled. Algemene begrenzing voor downloadsnelheid moet groter dan 0 of uitgeschakeld zijn. - + Alternative upload rate limit must be greater than 0 or disabled. Alternatieve begrenzing voor uploadsnelheid moet groter dan 0 of uitgeschakeld zijn. - + Alternative download rate limit must be greater than 0 or disabled. Alternatieve begrenzing voor downloadsnelheid moet groter dan 0 of uitgeschakeld zijn. - + Maximum active downloads must be greater than -1. Maximaal aantal actieve downloads moet groter zijn dan -1. - + Maximum active uploads must be greater than -1. Maximaal aantal actieve uploads moet groter zijn dan -1. - + Maximum active torrents must be greater than -1. Maximaal aantal actieve torrents moet groter zijn dan -1. - + Maximum number of connections limit must be greater than 0 or disabled. Limiet voor maximaal aantal verbindingen moet groter zijn dan 0 of uitgeschakeld. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Limiet voor maximaal aantal verbindingen per torrent moet groter zijn dan 0 of uitgeschakeld. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Limiet voor maximaal aantal uploadslots per torrent moet groter zijn dan 0 of uitgeschakeld. - + Unable to save program preferences, qBittorrent is probably unreachable. Onmogelijk om programmavoorkeuren op te slaan, qBittorrent is waarschijnlijk onbereikbaar. - + Language Taal - + The port used for incoming connections must be between 1 and 65535. De poort gebruikt voor inkomende verbindingen moet liggen tussen 1 en 65535. - + The port used for the Web UI must be between 1 and 65535. De poort gebruikt voor de Web-UI moet liggen tussen 1 en 65535. - + Unable to log in, qBittorrent is probably unreachable. Niet mogelijk om in te loggen, qBittorrent is waarschijnlijk onbereikbaar. - + Invalid Username or Password. Ongeldige gebruikersnaam of wachtwoord. - + Password Wachtwoord - + Login Login - + Upload Failed! Uploaden mislukt! - + Original authors Oorspronkelijke auteurs - + Upload limit: Uploadlimiet: - + Download limit: Downloadlimiet - + Apply Toepassen - + Add Toevoegen - + Upload Torrents Torrents uploaden - + All Alle - + Downloading Downloaden - + Seeding Seeden - + Completed Voltooid - + Resumed Hervat - + Paused Gepauzeerd - + Active Actief - + Inactive Inactief - + Save files to location: Bestanden opslaan in: - + Label: Label: - + Cookie: Cookie: - + Type folder here + Map hier typen + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Bestanden opslaan als + + + + Watch Folder + Map in het oog houden + + + + Default Folder + Standaard map + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Andere... + + + + Every day + Schedule the use of alternative rate limits on ... + Elke dag + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Andere... + + + Downloaded Is the file downloaded or not? Gedownload @@ -1593,57 +1720,57 @@ U zou deze informatie moeten krijgen van uw webbrowser-voorkeuren. Afmelden - + Upload local torrent Lokale torrent uploaden - + Are you sure you want to delete the selected torrents from the transfer list? Bent u zeker dat u de geselecteerde torrents wilt verwijderen uit de overdrachtenlijst? - + The Web UI username must be at least 3 characters long. De Web-UI-gebruikersnaam moet minstens 3 tekens lang zijn. - + The Web UI password must be at least 3 characters long. Het Web-UI-wachtwoord moet minstens 3 tekens lang zijn. - + Save Opslaan - + qBittorrent client is not reachable qBittorrent-client is niet bereikbaar - + HTTP Server Http-server - + The following parameters are supported: De volgende parameters worden ondersteund: - + Torrent path Torrent-pad - + Torrent name Torrentnaam - + qBittorrent has been shutdown. qBittorrent werd afgesloten. @@ -2216,7 +2343,8 @@ Wilt u qBittorrent koppelen met torrentbestanden en magneetlinks? A new version is available. Do you want to download %1? - + Er is een nieuwe versie beschikbaar. +Wilt u %1 downloaden? @@ -2281,12 +2409,6 @@ Wilt u het nu installeren? Python is required to use the search engine but it does not seem to be installed. Python is vereist om de zoekmachine te gebruiken maar dit lijkt niet geïnstalleerd. - - A new version is available. -Update to version %1? - Er is een nieuwe versie beschikbaar. -Bijwerken naar versie %1? - No updates available. @@ -2489,12 +2611,12 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Venezuela, Bolivarian Republic of - + Venezuela Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? N/A N/B - - Asia/Pacific Region - Azië/Stille Oceaan - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Armenia Armenië - - Netherlands Antilles - Nederlandse Antillen - Angola @@ -2644,10 +2754,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Brunei Darussalam Brunei - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Switzerland Zwitserland - - Cote D'Ivoire - Ivoorkust - Cook Islands @@ -2760,7 +2862,7 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Curacao - + Curaçao @@ -2872,10 +2974,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? France Frankrijk - - France, Metropolitan - Frankrijk, Metropool - Gabon @@ -3161,10 +3259,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Latvia Letland - - Libyan Arab Jamahiriya - Libië - Morocco @@ -3190,10 +3284,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Marshall Islands Marshalleilanden - - Macedonia - Macedonië - Mali @@ -3209,10 +3299,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Mongolia Mongolië - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Saint Pierre and Miquelon Saint-Pierre en Miquelon - - Pitcairn Islands - Pitcairneilanden - Puerto Rico Puerto Rico - - Palestinian Territory - Palestina - Portugal @@ -3456,10 +3534,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Singapore Singapore - - Saint Helena -  Sint-Helena, Ascension en Tristan da Cunha - Slovenia @@ -3578,62 +3652,62 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Bolivia, Plurinational State of - + Bolivia Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius en Saba Cote d'Ivoire - + Ivoorkust Libya - + Libië Saint Martin (French part) - + Sint-Maarten (Franse Antillen) Macedonia, The Former Yugoslav Republic of - + Macedonië Macao - + Macau Pitcairn - + Pitcairneilanden Palestine, State of - + Palestina Saint Helena, Ascension and Tristan da Cunha - + Sint-Helena, Ascension en Tristan da Cunha South Sudan - + Zuid-Soedan Sint Maarten (Dutch part) - + Sint Maarten (Nederlands deel) @@ -3700,10 +3774,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Saint Vincent and the Grenadines Saint Vincent en de Grenadines - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Virgin Islands, U.S. Amerikaanse Maagdeneilanden - - Vietnam - Viëtnam - Vanuatu @@ -3768,18 +3834,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Zimbabwe Zimbabwe - - Anonymous Proxy - Anonieme proxy - - - Satellite Provider - Satelliet-provider - - - Other - Andere - Aland Islands @@ -3805,10 +3859,6 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Saint Barthelemy Saint-Barthélemy - - Saint Martin - Sint-Maarten - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Net::Smtp - + Email Notification Error: E-mail meldingsfout: @@ -3992,7 +4042,7 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Files i.e. files that are being downloaded right now - + Bestanden @@ -4098,65 +4148,65 @@ Weet u zeker dat u qBittorrent wilt afsluiten? Search plugins - Zoekplugins + Zoekplugins Installed search plugins: - + Geïnstalleerde zoekplugins: Name - Naam + Naam Version - Versie + Versie Url - Url + Url Enabled - Ingeschakeld + Ingeschakeld You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - U kunt hier nieuwe zoekmachineplugins vinden:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + U kunt hier nieuwe zoekmachineplugins vinden:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Een nieuwe installeren + Een nieuwe installeren Check for updates - Controleren op updates + Op updates controleren Close - Sluiten + Sluiten Uninstall - Deïnstalleren + Deïnstalleren Yes - Ja + Ja @@ -4164,107 +4214,107 @@ Weet u zeker dat u qBittorrent wilt afsluiten? No - Nee + Nee Uninstall warning - Deïnstallatie-waarschuwing + Deïnstallatie-waarschuwing Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Niet alle plugins konden verwijderd worden omdat ze bij qBittorrent horen. Alleen de door uzelf toegevoegde plugins kunnen worden verwijderd. + Niet alle plugins konden verwijderd worden omdat ze bij qBittorrent horen. Alleen de door uzelf toegevoegde plugins kunnen worden verwijderd. Deze plugins zijn uitgeschakeld. Uninstall success - Deïnstallatie gelukt + Deïnstallatie gelukt All selected plugins were uninstalled successfully - Alle gekozen plugins zijn succesvol verwijderd + Alle gekozen plugins zijn succesvol verwijderd New search engine plugin URL - Nieuwe zoekmachineplugin-url + Nieuwe zoekmachineplugin-url URL: - Url: + URL: Invalid link - Ongeldige link + Ongeldige link The link doesn't seem to point to a search engine plugin. - De link lijkt niet te wijzen naar een zoekmachine-plugin. + De link lijkt niet te wijzen naar een zoekmachine-plugin. Select search plugins - Zoek-plugins selecteren + Zoekplugins selecteren qBittorrent search plugin - qBittorrent zoekplugin + qBittorrent zoekplugin Search plugin update - Plugin-update zoeken + Plugin-update zoeken All your plugins are already up to date. - Uw plugins zijn al up-to-date. + Uw plugins zijn al up-to-date. Sorry, couldn't check for plugin updates. %1 - + Sorry, kon niet controleren op plugin-updates. %1 Search plugin install - Installatie zoekplugin + Installatie zoekplugin "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" zoekmachineplugin is succesvol geïnstalleerd. Couldn't install "%1" search engine plugin. %2 - + Kon "%1" zoekmachineplugin niet installeren. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" zoekmachineplugin is succesvol bijgewerkt. Couldn't update "%1" search engine plugin. %2 - + Kon "%1" zoekmachineplugin niet bijwerken. %2 @@ -4272,22 +4322,22 @@ Deze plugins zijn uitgeschakeld. Plugin source - Plugin-bron + Plugin-bron Search plugin source: - Zoekplugin-bron: + Zoekplugin-bron: Local file - Lokaal bestand + Lokaal bestand Web link - Weblink + Weblink @@ -5025,17 +5075,17 @@ Deze plugins zijn uitgeschakeld. Filterpad (.dat, p2p, p2b): - + Detected unclean program exit. Using fallback file to restore settings. Programma is foutief beëindigd. Fallback-bestand wordt gebruikt om instellingen te herstellen. - + An access error occurred while trying to write the configuration file. Er is een toegangsfout voorgekomen tijdens het schrijven van het configuratiebestand. - + A format error occurred while trying to write the configuration file. Er is een formatteringsfout voorgekomen tijdens het schrijven van het configuratiebestand @@ -5468,7 +5518,7 @@ Deze plugins zijn uitgeschakeld. QObject - + Your IP address has been banned after too many failed authentication attempts. Uw IP-adres is geblokkeerd na te veel mislukte authenticatie-pogingen. @@ -5960,12 +6010,12 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... + Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... Automatically downloading '%1' torrent from '%2' RSS feed... - Automatisch downloaden van '%1' torrent van '%2' RSS-feed... + Automatisch downloaden van '%1' torrent van '%2' RSS-feed... @@ -5973,29 +6023,7 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatische download van '%1' van '%2' RSS-feed mislukt omdat het geen torrent of magneetlink bevat... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Automatisch downloaden van '%1' torrent van '%2' RSS-feed... - - - - RssParser - - Failed to open downloaded RSS file. - Openen van gedownload rss-bestand mislukt. - - - Invalid RSS feed at '%1'. - Ongeldige rss-ffeed op '%1' + Ongeldige rss-feed. @@ -6026,22 +6054,22 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Watch Folder - + Map in het oog houden Default Folder - + Standaard map Browse... - Bladeren... + Bladeren... Choose save path - Opslagpad kiezen + Opslagpad kiezen @@ -6049,12 +6077,12 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Watch Folder - + Map in het oog houden Default Folder - + Standaard map @@ -6064,199 +6092,87 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Save Files to - - - - Download here - Hier downloaden - - - Download path - Downloadpad - - - - SearchCategories - - All categories - Alle categorieën - - - Movies - Films - - - TV shows - TV-shows - - - Music - Muziek - - - Games - Spellen - - - Anime - Anime - - - Software - Software - - - Pictures - Afbeeldingen - - - Books - Boeken + Bestanden opslaan als SearchEngine - - Search - Zoeken - - - Please install Python to use the Search Engine. - Installeer Python om de zoekmachine te gebruiken. - - - Empty search pattern - Leeg zoekpatroon - - - Please type a search pattern first - Typ eerst een zoekpatroon - - - Searching... - Zoeken... - - - Stop - Stoppen - - - Search Engine - Zoekmachine - - - Search has finished - Zoeken is klaar - - - An error occurred during search... - Er trad een fout op tijdens het zoeken... - - - Search aborted - Zoeken afgebroken - - - All enabled - Alles ingeschakeld - - - All engines - Alle zoekmachines - - - Multiple... - Meerdere... - - - Results <i>(%1)</i>: - i.e: Search results - Resultaten <i>(%1)</i>: - - - Search returned no results - Zoeken gaf geen resultaten - - - Stopped - Gestopt - Unknown search engine plugin file format. - + Onbekend bestandsformaat zoekmachineplugin. A more recent version of this plugin is already installed. - + Een nieuwere versie van deze plugin is al geïnstalleerd. Plugin is not supported. - + Plugin wordt niet ondersteund. Update server is temporarily unavailable. %1 - + Updateserver is tijdelijk niet bereikbaar. %1 Failed to download the plugin file. %1 - + Downloaden van pluginbestand mislukt. %1 An incorrect update info received. - + Onjuiste update-info ontvangen. All categories - Alle categorieën + Alle categorieën Movies - Films + Films TV shows - TV-shows + Tv-shows Music - Muziek + Muziek Games - Spellen + Spellen Anime - Anime + Anime Software - Software + Software Pictures - Afbeeldingen + Afbeeldingen Books - Boeken + Boeken @@ -6305,124 +6221,124 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. - - - + + + Search - Zoeken + Zoeken Status: - Status: + Status: - + Stopped - Gestopt + Gestopt Download - + Download Go to description page - Naar de beschrijvingspagina gaan + Naar de beschrijvingspagina gaan Copy description page URL - Link van beschrijvingspagina kopiëren + Link van beschrijvingspagina kopiëren Search plugins... - + Zoekplugins... - + All enabled - Alles ingeschakeld - - - - All plugins - + Alles ingeschakeld - + All plugins + Alle plugins + + + + Multiple... - Meerdere... + Meerdere... - - - + + + Search Engine - Zoekmachine + Zoekmachine - + Please install Python to use the Search Engine. - Installeer Python om de zoekmachine te gebruiken. + Installeer Python om de zoekmachine te gebruiken. - + Empty search pattern - Leeg zoekpatroon + Leeg zoekpatroon - + Please type a search pattern first - Typ eerst een zoekpatroon + Typ eerst een zoekpatroon - - + + Results <i>(%1)</i>: i.e: Search results - Resultaten <i>(%1)</i>: - - - - Searching... - Zoeken... + Resultaten <i>(%1)</i>: + Searching... + Zoeken... + + + Stop - Stoppen + Stoppen - - + + Search has finished - Zoeken is klaar + Zoeken is klaar - - + + Search aborted - Zoeken afgebroken + Zoeken afgebroken - + Search returned no results - Zoeken gaf geen resultaten + Zoeken gaf geen resultaten - + Search has failed - + Zoeken mislukt - + An error occurred during search... - Er trad een fout op tijdens het zoeken... + Er trad een fout op tijdens het zoeken... @@ -6886,11 +6802,7 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Download Priority - - - - Priority - Prioriteit + Downloadprioriteit @@ -8087,160 +7999,6 @@ Er zullen geen verdere kennisgevingen meer gedaan worden. Typ op zijn minst één url. - - engineSelect - - Search plugins - Zoekplugins - - - Installed search engines: - Geïnstalleerde zoekmachines: - - - Name - Naam - - - Version - Versie - - - Url - Url - - - Enabled - Ingeschakeld - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - U kunt hier nieuwe zoekmachineplugins vinden:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Een nieuwe installeren - - - Check for updates - Controleren op updates - - - Close - Sluiten - - - Uninstall - Deïnstalleren - - - - engineSelectDlg - - Uninstall warning - Deïnstallatie-waarschuwing - - - Uninstall success - Deïnstallatie gelukt - - - Invalid plugin - Ongeldige plugin - - - The search engine plugin is invalid, please contact the author. - De zoekmachine-plugin is ongeldig. Neem contact op met de auteur. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Een nieuwere versie van de '%1'-zoekmachineplugin is al geïnstalleerd. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - De '%1'-zoekmachineplugin kon niet bijgewerkt worden. De oude versie wordt behouden. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - De '%1'-zoekmachineplugin kon niet geïnstalleerd worden. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - De '%1'-zoekmachineplugin is succesvol bijgewerkt. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - De '%1'-zoekmachineplugin is succesvol geïnstalleerd. - - - The link doesn't seem to point to a search engine plugin. - De link lijkt niet te wijzen naar een zoekmachine-plugin. - - - Select search plugins - Zoek-plugins selecteren - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Sorry, installatie van de '%1'-zoekplugin is mislukt. - - - Search plugin install - Installatie zoekplugin - - - Yes - Ja - - - No - Nee - - - qBittorrent search plugin - qBittorrent zoekplugin - - - Search plugin update - Plugin-update zoeken - - - Sorry, update server is temporarily unavailable. - Sorry, de updateserver is tijdelijk niet bereikbaar. - - - All your plugins are already up to date. - Uw plugins zijn al up-to-date. - - - All selected plugins were uninstalled successfully - Alle gekozen plugins zijn succesvol verwijderd - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Niet alle plugins konden verwijderd worden omdat ze bij qBittorrent horen. Alleen de door uzelf toegevoegde plugins kunnen worden verwijderd. -Deze plugins zijn uitgeschakeld. - - - Invalid link - Ongeldige link - - - New search engine plugin URL - Nieuwe zoekmachineplugin-url - - - URL: - Url: - - errorDialog @@ -8368,192 +8126,173 @@ Deze plugins zijn uitgeschakeld. options_imp - - + + Choose export directory Export-map kiezen - - - - + + + + Choose a save directory Opslagmap kiezen - + Add directory to scan Map toevoegen aan scannen - + Supported parameters (case sensitive): Ondersteunde parameters (hoofdlettergevoelig): - + %N: Torrent name %N: naam torrent - + %L: Label %L: label - + %F: Content path (same as root path for multifile torrent) %F: pad naar inhoud (zelfde als root-pad voor torrent met meerdere bestanden) - + %R: Root path (first torrent subdirectory path) %R: root-pad (pad naar eerste submap van torrent) - + %D: Save path %D: opslagpad - + %C: Number of files %C: aantal bestanden - + %Z: Torrent size (bytes) %Z: grootte torrent (bytes) - + %T: Current tracker %T: huidige tracker - + %I: Info hash %I: info-hash - + Folder is already being watched. Map wordt reeds opgevolgd. - + Folder does not exist. Map bestaat niet. - + Folder is not readable. Map kan niet gelezen worden. - + Failure Mislukt - + Failed to add Scan Folder '%1': %2 Toevoegen van scan-map '%1' mislukt: %2 - - + + Filters Filters - - + + Choose an IP filter file IP-filterbestand kiezen - + SSL Certificate SSL-certificaat - + SSL Key SSL-sleutel - + Parsing error Verwerkingsfout - + Failed to parse the provided IP filter Verwerken van opgegeven IP-filter mislukt - + Successfully refreshed Vernieuwen gelukt - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verwerken van opgegeven IP-filter gelukt: er werden %1 regels toegepast. - + Invalid key Ongeldige sleutel - + This is not a valid SSL key. Dit is geen geldige SSL-sleutel. - + Invalid certificate Ongeldig certificaat - + This is not a valid SSL certificate. Dit is geen geldig SSL-certificaat. - + The start time and the end time can't be the same. De starttijd en de eindtijd kan niet hetzelfde zijn. - + Time Error Tijd-fout - - pluginSourceDlg - - Plugin source - Plugin-bron - - - Search plugin source: - Zoekplugin-bron: - - - Local file - Lokaal bestand - - - Web link - Weblink - - preview @@ -8577,35 +8316,4 @@ Deze plugins zijn uitgeschakeld. Annuleren - - search_engine - - Search - Zoeken - - - Status: - Status: - - - Stopped - Gestopt - - - Download - Downloaden - - - Go to description page - Naar de beschrijvingspagina gaan - - - Copy description page URL - Link van beschrijvingspagina kopiëren - - - Search engines... - Zoekmachines... - - diff --git a/src/lang/qbittorrent_pl.ts b/src/lang/qbittorrent_pl.ts index 2b9311485..363c03267 100644 --- a/src/lang/qbittorrent_pl.ts +++ b/src/lang/qbittorrent_pl.ts @@ -178,7 +178,7 @@ I/O Error - Błąd We/Wy + Błąd we/wy @@ -301,13 +301,13 @@ This file name contains forbidden characters, please choose a different one. - Nazwa pliku zawiera zabronione znaki, proszę wybrać inną nazwę. + Nazwa pliku zawiera zabronione znaki. Wybierz inną nazwę. This name is already in use in this folder. Please use a different name. - Wybrana nazwa jest już używana w tym katalogu. Proszę wybrać inną nazwę. + Wybrana nazwa jest już używana w tym katalogu. Wybierz inną nazwę. @@ -540,7 +540,7 @@ This is a security risk, please consider changing your password from program preferences. - Stanowi to zagrożenie bezpieczeństwa, proszę rozważyć zmianę hasła w ustawieniach programu. + Ze względów bezpieczeństwa należy rozważyć zmianę hasła w ustawieniach programu. @@ -720,7 +720,7 @@ Last Match: Unknown - Ostatni pasujący: Nieznany + Ostatni pasujący: nieznany @@ -742,12 +742,12 @@ A rule with this name already exists, please choose another name. - Reguła o wybranej nazwie już istnieje, należy wybrać inną. + Reguła o wybranej nazwie już istnieje. Wybierz inną. Are you sure you want to remove the download rule named '%1'? - Czy na pewno chcesz usunąć regułę pobierania o nazwie %1? + Czy na pewno usunąć regułę pobierania o nazwie %1? @@ -777,7 +777,7 @@ Where would you like to save the list? - Wskaż położenie pliku gdzie zostanie wyeksportowana lista + Gdzie chcesz zapisać listę? @@ -787,7 +787,7 @@ I/O Error - Błąd We/Wy + Błąd we/wy @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Identyfikator partnera: - + HTTP User-Agent is '%1' Klient użytkownika HTTP to '%1' - + Anonymous mode [ON] Tryb anonimowy [WŁ] - + Anonymous mode [OFF] Tryb anonimowy [WYŁ] - + PeX support [ON] Wsparcie PeX [WŁ] - + PeX support [OFF] Wsparcie PeX [WYŁ] - + Restart is required to toggle PeX support Zmiana statusu PeX wymaga ponownego uruchomienia - + Local Peer Discovery support [ON] Wykrywanie partnerów w sieci lokalnej [WŁ] - + Local Peer Discovery support [OFF] Wykrywanie partnerów w sieci lokalnej [WYŁ] - + Encryption support [ON] Wsparcie szyfrowania [WŁ] - + Encryption support [FORCED] Wsparcie szyfrowania [WYMUSZONE] - + Encryption support [OFF] Wsparcie szyfrowania [WYŁ] - + Embedded Tracker [ON] Wbudowany tracker [WŁ] - + Failed to start the embedded tracker! Nie udało się uruchomić wbudowanego trackera! - + Embedded Tracker [OFF] Wbudowany tracker [WYŁ] - + '%1' reached the maximum ratio you set. Removing... - %1' osiagnął ustawiony przez ciebie współczynnik udziału. Usuwanie... + %1' osiągnął ustalony współczynnik udziału. Usuwanie... - + '%1' reached the maximum ratio you set. Pausing... - %1' osiagnął ustawiony przez ciebie współczynnik udziału. Wstrzymywanie... + %1' osiągnął ustalony współczynnik udziału. Wstrzymywanie... - + System network status changed to %1 e.g: System network status changed to ONLINE Stan sieci systemu zmieniono na %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - Konfiguracja sieci %1 uległa zmianie, odświeżam wiązanie sesji + Konfiguracja sieci %1 uległa zmianie, odświeżanie powiązania sesji - + Unable to decode '%1' torrent file. Nie można odszyfrować pliku torrent: '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurencyjne pobieranie pliku '%1' osadzonego w pliku torrent '%2' - + Couldn't save '%1.torrent' Nie można zapisać '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. ponieważ %1 jest wyłączone. - + because %1 is disabled. this peer was blocked because TCP is disabled. ponieważ %1 jest wyłączone. - + URL seed lookup failed for URL: '%1', message: %2 Błąd wyszukiwania URL partnera dla adresu '%1', komunikat: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... %1' usunięto z listy transferów i twardego dysku. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' usunięto z listy transferów. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Pobieranie '%1', proszę czekać... - + DHT support [ON] Wsparcie DHT [WŁ]. - + DHT support [OFF]. Reason: %1 Wsparcie DHT [WYŁ]. Powód: %1 - + DHT support [OFF] Wsparcie DHT [WYŁ] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent próbuje nasłuchiwać dowolnego portu interfejsu: %1 - + The network interface defined is invalid: %1 Podany interfejs sieciowy jest nieprawidłowy: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent próbuje nasłuchiwać interfejsu %1 port: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nie znalazł żadnego %1 lokalnego adresu, na którym można nasłuchiwać - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego port: %1. Powód: %2. - + Tracker '%1' was added to torrent '%2' Tracker '%1' został dodany do torrenta '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' został usunięty z torrenta '%2' - + URL seed '%1' was added to torrent '%2' URL seeda '%1' został dodany do torrenta '%2' - + URL seed '%1' was removed from torrent '%2' URL seeda '%1' został usunięty z torrenta '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nie można wznowić torrenta: '%1' - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Pomyślnie przetworzono podany filtr IP: zastosowano %1 reguł. - + Error: Failed to parse the provided IP filter. - Błąd: Nie udało się przetworzyć podanego filtra IP. + Błąd: nie udało się przetworzyć podanego filtra IP. - + Couldn't add torrent. Reason: %1 Nie można dodać torrenta. Powód: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - '%1' wznowiony. (szybkie wznawianie) + '%1' wznowiony (szybkie wznawianie). - + '%1' added to download list. 'torrent name' was added to download list. '%1' dodano do listy pobierania. - + An I/O error occurred, '%1' paused. %2 - Wystąpił błąd We/Wy, '%1' wstrzymany. %2 + Wystąpił błąd we/wy, '%1' wstrzymany. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - UPnP/NAT-PMP: Błąd mapowania portu, komunikat %1 + UPnP/NAT-PMP: błąd mapowania portu, komunikat %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - UPnP/NAT-PMP: Udane mapowanie portu, komunikat %1 + UPnP/NAT-PMP: udane mapowanie portu, komunikat %1 - + due to IP filter. this peer was blocked due to ip filter. z powodu filtru IP. - + due to port filter. this peer was blocked due to port filter. z powodu filtru portu. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. z powodu ograniczeń trybu mieszanego i2p. - + because it has a low port. this peer was blocked because it has a low port. ponieważ ma niski port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent skutecznie nasłuchuje interfejs sieciowy %1 port: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent napotkał błąd podczas nasłuchu interfejsu sieciowego %1 port: %2/%3. Powód: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Zewnętrzne IP: %1 @@ -1243,17 +1243,17 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. White: Missing pieces - Biały: Brakujące części + Biały: brakujące części Green: Partial pieces - Zielony: Cząstkowe części + Zielony: cząstkowe części Blue: Completed pieces - Niebieski: Ukończone części + Niebieski: ukończone części @@ -1261,7 +1261,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. General - Główny + Ogólne @@ -1284,12 +1284,12 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. FeedListWidget - + RSS feeds Kanały RSS - + Unread Nieprzeczytane @@ -1301,7 +1301,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. I/O Error: Could not open ip filter file in read mode. - Błąd We/Wy: Nie można otworzyć pliku filtra IP w trybie odczytu. + Błąd we/wy: nie można otworzyć pliku filtra IP w trybie odczytu. @@ -1312,7 +1312,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. Parsing Error: The filter file is not a valid PeerGuardian P2B file. - Błąd parsowania: Plik filtru nie jest prawidłowym plikiem PeerGuardian P2B. + Błąd parsowania: plik filtru nie jest prawidłowym plikiem PeerGuardian P2B. @@ -1378,211 +1378,338 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. - Download Torrents from their URL or Magnet link - Pobierz pliki torrent z odnośnika www lub magnet + Exit qBittorrent + - Only one link per line - Można podać tylko jeden adres www w jednej linii + Download Torrents from their URL or Magnet link + Pobierz pliki torrent z odnośnika URL lub magnet - + + Only one link per line + W jednym wierszu można podać tylko jeden odnośnik + + + Download Pobierz - + Global upload rate limit must be greater than 0 or disabled. Ogólny limit prędkości wysyłania musi być większy od 0 lub wyłączony. - + Global download rate limit must be greater than 0 or disabled. Ogólny limit prędkości pobierania musi być większy od 0 lub wyłączony. - + Alternative upload rate limit must be greater than 0 or disabled. Alternatywny limit prędkości wysyłania musi być większy niż 0 albo wyłączony. - + Alternative download rate limit must be greater than 0 or disabled. Alternatywny limit prędkości pobierania musi być większy niż 0 albo wyłączony. - + Maximum active downloads must be greater than -1. Maksymalna liczba aktywnych pobierań musi być większa niż -1. - + Maximum active uploads must be greater than -1. Maksymalna liczba aktywnych wysyłań musi być większa niż -1. - + Maximum active torrents must be greater than -1. Maksymalna liczba aktywnych torrentów musi być większa niż -1. - + Maximum number of connections limit must be greater than 0 or disabled. Limit połączeń musi być większy od 0 lub wyłączony. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Limit połączeń dla pliku torrent musi być większy od 0 lub wyłączony. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Limit slotów wysyłania dla pliku torrent musi być większy od 0 lub wyłączony. - + Unable to save program preferences, qBittorrent is probably unreachable. Nie można zapisać ustawień, prawdopodobnie qBittorrent jest nieosiągalny. - + Language Język - + The port used for incoming connections must be between 1 and 65535. Port, na którym nasłuchiwane są połączenia przychodzące, musi być pomiędzy 1 a 65535. - + The port used for the Web UI must be between 1 and 65535. Port, na którym działa interfejs WWW, musi być pomiędzy 1 a 65535. - + Unable to log in, qBittorrent is probably unreachable. - Nie mozna się zalogować, qBittorrent jest prawdopodobnie nieosiągalny. + Nie można się zalogować, qBittorrent jest prawdopodobnie nieosiągalny. - + Invalid Username or Password. Nieprawidłowa nazwa użytkownika lub hasło. - + Password Hasło - + Login Login - + Upload Failed! Wysyłanie nie powiodło się! - + Original authors Pierwotni autorzy - + Upload limit: Ograniczenie wysyłania: - + Download limit: Ograniczanie pobierania: - + Apply Zastosuj - + Add Dodaj - + Upload Torrents Wyślij torrenty - + All Wszystkie - + Downloading Pobierane - + Seeding - Wysyłanie + Wysyłane - + Completed Ukończone - + Resumed Wznowione - + Paused Wstrzymane - + Active Aktywne - + Inactive Nieaktywne - + Save files to location: Zapisz pliki w lokalizacji: - + Label: Etykieta: - + Cookie: Ciasteczko: - + Type folder here + Wpisz tutaj folder + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Zapisz pliki do + + + + Watch Folder + Obserwowany folder + + + + Default Folder + Domyślny folder + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Inne... + + + + Every day + Schedule the use of alternative rate limits on ... + codziennie + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Inne... + + + Downloaded Is the file downloaded or not? Pobrany @@ -1593,57 +1720,57 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.Wyloguj - + Upload local torrent Wyślij lokalny plik torrent - + Are you sure you want to delete the selected torrents from the transfer list? Czy na pewno usunąć wybrane pliki torrent z listy transferów? - - - The Web UI username must be at least 3 characters long. - Nazwa użytkownika interfejsu www musi składać się z co najmniej 3 znaków. - - The Web UI password must be at least 3 characters long. - Hasło użytkownika interfejsu www musi składać się z co najmniej 3 znaków. + The Web UI username must be at least 3 characters long. + Nazwa użytkownika interfejsu WWW musi składać się z co najmniej 3 znaków. + The Web UI password must be at least 3 characters long. + Hasło użytkownika interfejsu WWW musi składać się z co najmniej 3 znaków. + + + Save Zapisz - + qBittorrent client is not reachable Klient qBittorrent jest nieosiągalny - + HTTP Server - Serwer www + Serwer HTTP - + The following parameters are supported: Obsługiwane są poniższe parametry: - + Torrent path Ścieżka torrenta - + Torrent name Nazwa torrenta - + qBittorrent has been shutdown. qBittorrent został zamknięty. @@ -1780,7 +1907,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej. On Downloads &Done - Na ukończonych &pobraniach + Po ukończeniu &pobierania @@ -2060,7 +2187,7 @@ Informacje te powinny zostać pobrane z ustawień przeglądarki internetowej.qBittorrent is not the default application to open torrent files or Magnet links. Do you want to associate qBittorrent to torrent files and Magnet links? qBittorrent nie jest domyślnym programem do obsługi plików torrent i odnośników Magnet. -Czy powiązać qBittorrent z plikami torrent i linkami Magnet? +Czy powiązać qBittorrent z plikami torrent i odnośnikami Magnet? @@ -2150,7 +2277,7 @@ Czy powiązać qBittorrent z plikami torrent i linkami Magnet? I/O Error i.e: Input/Output Error - Błąd We/Wy + Błąd we/wy @@ -2216,7 +2343,8 @@ Czy powiązać qBittorrent z plikami torrent i linkami Magnet? A new version is available. Do you want to download %1? - + Dostępna jest nowa wersja. +Czy chcesz pobrać %1? @@ -2240,7 +2368,7 @@ Do you want to download %1? Reason: %2 e.g: An error occurred for torrent 'xxx.avi'. Reason: disk is full. - Wystąpił błąd We/Wy dla pliku torrent '%1'. + Wystąpił błąd we/wy dla pliku torrent '%1'. Powód: %2 @@ -2256,7 +2384,7 @@ Powód: %2 Your Python version %1 is outdated. Please upgrade to latest version for search engines to work. Minimum requirement: 2.7.0/3.3.0. - Twoja wersja Pythona %1 jest przestarzała. Proszę uaktualnić ją do najnowszej wersji, aby wyszukiwarki mogły działać. Minimalny wymóg: 2.7.0/3.3.0. + Twoja wersja Pythona %1 jest przestarzała. Uaktualnij ją do najnowszej wersji, aby wyszukiwarki mogły działać. Minimalny wymóg: 2.7.0/3.3.0. @@ -2281,12 +2409,6 @@ Czy chcesz go teraz zainstalować? Python is required to use the search engine but it does not seem to be installed. Python jest wymagany do używania wyszukiwarki, ale wygląda na to, że nie jest zainstalowany. - - A new version is available. -Update to version %1? - Dostępna jest nowa wersja. -Czy zaktualizować do wersji %1? - No updates available. @@ -2411,47 +2533,47 @@ Czy na pewno zamknąć qBittorrent? Dynamic DNS error: The service is temporarily unavailable, it will be retried in 30 minutes. - Błąd dynamicznego DNS: Usługa tymczasowo niedostępna, ponowienie za 30 minut. + Błąd dynamicznego DNS: usługa tymczasowo niedostępna, ponowienie za 30 minut. Dynamic DNS error: hostname supplied does not exist under specified account. - Błąd dynamicznego DNS: Wskazane konto nie zawiera podanej nazwy hosta. + Błąd dynamicznego DNS: wskazane konto nie zawiera podanej nazwy hosta. Dynamic DNS error: Invalid username/password. - Błąd dynamicznego DNS: Nieprawidłowa nazwa użytkownika i/lub hasło. + Błąd dynamicznego DNS: nieprawidłowa nazwa użytkownika i/lub hasło. Dynamic DNS error: qBittorrent was blacklisted by the service, please report a bug at http://bugs.qbittorrent.org. - Błąd dynamicznego DNS: Usługa dodała program qBittorrent do czarnej listy, proszę zgłosić błąd na stronie http://bugs.qbittorrent.org. + Błąd dynamicznego DNS: usługa dodała program qBittorrent do czarnej listy; zgłoś błąd na stronie http://bugs.qbittorrent.org. Dynamic DNS error: %1 was returned by the service, please report a bug at http://bugs.qbittorrent.org. - Błąd dynamicznego DNS: Usługa zwróciła: %1, proszę zgłosić błąd na stronie http://bugs.qbittorrent.org. + Błąd dynamicznego DNS: usługa zwróciła: %1; zgłoś błąd na stronie http://bugs.qbittorrent.org. Dynamic DNS error: Your username was blocked due to abuse. - Błąd dynamicznego DNS: Z powodu nadużycia nazwa użytkownika została zablokowana. + Błąd dynamicznego DNS: z powodu nadużycia nazwa użytkownika została zablokowana. Dynamic DNS error: supplied domain name is invalid. - Błąd dynamicznego DNS: Podana nazwa domeny jest nieprawidłowa. + Błąd dynamicznego DNS: podana nazwa domeny jest nieprawidłowa. Dynamic DNS error: supplied username is too short. - Błąd dynamicznego DNS: Podana nazwa użytkownika jest zbyt krótka. + Błąd dynamicznego DNS: podana nazwa użytkownika jest zbyt krótka. Dynamic DNS error: supplied password is too short. - Błąd dynamicznego DNS: Podane hasło jest zbyt krótkie. + Błąd dynamicznego DNS: podane hasło jest zbyt krótkie. @@ -2469,7 +2591,7 @@ Czy na pewno zamknąć qBittorrent? Unexpected redirect to magnet URI. - Nieoczekiwane przekierowanie do magnet URI. + Nieoczekiwane przekierowanie do adresu URL magnet. @@ -2489,12 +2611,12 @@ Czy na pewno zamknąć qBittorrent? Venezuela, Bolivarian Republic of - + Wenezuela, Boliwariańska Republika Viet Nam - + Wietnam @@ -2502,14 +2624,6 @@ Czy na pewno zamknąć qBittorrent? N/A Nie dotyczy - - Asia/Pacific Region - Azja/Region Pacyfiku - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Czy na pewno zamknąć qBittorrent? Armenia Armenia - - Netherlands Antilles - Antyle Holenderskie - Angola @@ -2644,10 +2754,6 @@ Czy na pewno zamknąć qBittorrent? Brunei Darussalam Brunei - - Bolivia - Boliwia - Brazil @@ -2713,10 +2819,6 @@ Czy na pewno zamknąć qBittorrent? Switzerland Szwajcaria - - Cote D'Ivoire - Wybrzeże Kości Słoniowej - Cook Islands @@ -2760,7 +2862,7 @@ Czy na pewno zamknąć qBittorrent? Curacao - + Curacao @@ -2872,10 +2974,6 @@ Czy na pewno zamknąć qBittorrent? France Francja - - France, Metropolitan - Francja metropolitarna - Gabon @@ -3161,10 +3259,6 @@ Czy na pewno zamknąć qBittorrent? Latvia Łotwa - - Libyan Arab Jamahiriya - Libia - Morocco @@ -3190,10 +3284,6 @@ Czy na pewno zamknąć qBittorrent? Marshall Islands Wyspy Marshalla - - Macedonia - Macedonia - Mali @@ -3209,10 +3299,6 @@ Czy na pewno zamknąć qBittorrent? Mongolia Mongolia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Czy na pewno zamknąć qBittorrent? Saint Pierre and Miquelon Saint-Pierre i Miquelon - - Pitcairn Islands - Pitcairn - Puerto Rico Portoryko - - Palestinian Territory - Palestyna - Portugal @@ -3456,10 +3534,6 @@ Czy na pewno zamknąć qBittorrent? Singapore Singapur - - Saint Helena - Wyspa Świętej Heleny - Slovenia @@ -3578,62 +3652,62 @@ Czy na pewno zamknąć qBittorrent? Bolivia, Plurinational State of - + Boliwia, Wielonarodowe Państwo Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius i Saba Cote d'Ivoire - + Wybrzeże Kości Słoniowej Libya - + Libia Saint Martin (French part) - + Sint Maarten (część francuska) Macedonia, The Former Yugoslav Republic of - + Macedonia, Była Jugosłowiańska Republika Macao - + Makau Pitcairn - + Pitcairn Palestine, State of - + Palestyna, Państwo Saint Helena, Ascension and Tristan da Cunha - + Wyspa Świętej Heleny, Wyspa Wniebowstąpienia i Tristan da Cunha South Sudan - + Sudan Południowy Sint Maarten (Dutch part) - + Sint Maarten (część holenderska) @@ -3700,10 +3774,6 @@ Czy na pewno zamknąć qBittorrent? Saint Vincent and the Grenadines Saint Vincent i Grenadyny - - Venezuela - Wenezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Czy na pewno zamknąć qBittorrent? Virgin Islands, U.S. Wyspy Dziewicze Stanów Zjednoczonych - - Vietnam - Wietnam - Vanuatu @@ -3768,18 +3834,6 @@ Czy na pewno zamknąć qBittorrent? Zimbabwe Zimbabwe - - Anonymous Proxy - Anonimowe proxy - - - Satellite Provider - Dostawca satelitarny - - - Other - Inne - Aland Islands @@ -3805,10 +3859,6 @@ Czy na pewno zamknąć qBittorrent? Saint Barthelemy Saint-Barthélemy - - Saint Martin - Saint-Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Czy na pewno zamknąć qBittorrent? Net::Smtp - + Email Notification Error: Błąd powiadomienia e-mail: @@ -3992,7 +4042,7 @@ Czy na pewno zamknąć qBittorrent? Files i.e. files that are being downloaded right now - + Pliki @@ -4067,7 +4117,7 @@ Czy na pewno zamknąć qBittorrent? Please type at least one peer. - Proszę wprowadzić co najmniej jednego partnera. + Wprowadź co najmniej jednego partnera. @@ -4085,12 +4135,12 @@ Czy na pewno zamknąć qBittorrent? White: Unavailable pieces - Biały: Niedostępne części + Biały: niedostępne części Blue: Available pieces - Niebieski: Dostępne części + Niebieski: dostępne części @@ -4098,65 +4148,65 @@ Czy na pewno zamknąć qBittorrent? Search plugins - Wtyczki wyszukiwania + Wtyczki wyszukiwania Installed search plugins: - + Zainstalowane wtyczki wyszukiwania: Name - Nazwa + Nazwa Version - Wersja + Wersja Url - URL + URL Enabled - Włączone + Włączone You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Tutaj możesz pobrać nowe wtyczki wyszukiwania: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Tutaj możesz pobrać nowe wtyczki wyszukiwania: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Zainstaluj nową + Zainstaluj nową Check for updates - Sprawdź aktualizację + Sprawdź aktualizacje Close - Zamknij + Zamknij Uninstall - Odinstaluj + Odinstaluj Yes - Tak + Tak @@ -4164,107 +4214,107 @@ Czy na pewno zamknąć qBittorrent? No - Nie + Nie Uninstall warning - Ostrzeżenie deinstalacji + Ostrzeżenie dezinstalacji Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Niektóre wtyczki nie mogą zostać usunięte, ponieważ są częścią qBittorenta. Tylko te, które dodałeś możesz usunąć. -Tamte wtyczki były wyłączone. + Niektóre wtyczki nie mogą zostać usunięte, ponieważ są częścią qBittorenta. Można usunąć tylko te własnoręcznie dodane. +Tamte wtyczki zostały wyłączone. Uninstall success - Deinstalacja zakończona + Dezinstalacja zakończona All selected plugins were uninstalled successfully - Wszystkie wybrane wtyczki zostały zainstalowane + Wszystkie wybrane wtyczki zostały pomyślnie odinstalowane New search engine plugin URL - URL nowej wtyczki wyszukiwania + Nowy URL wtyczki wyszukiwania URL: - URL: + URL: Invalid link - Nieprawidłowy odnośnik + Nieprawidłowy odnośnik The link doesn't seem to point to a search engine plugin. - Odnośnik nie wydaje się wskazywać na wtyczkę wyszukiwania. + Odnośnik nie wydaje się wskazywać na wtyczkę wyszukiwania. Select search plugins - Wybierz wtyczkę wyszukiwania + Wybierz wtyczki wyszukiwania qBittorrent search plugin - Wtyczka wyszukiwania qBittorrent + Wtyczka wyszukiwania qBittorrent Search plugin update - Aktualizacja wtyczki wyszukiwania + Aktualizacja wtyczki wyszukiwania All your plugins are already up to date. - Wszystkie twoje wtyczki są aktualne. + Wszystkie twoje wtyczki są aktualne. Sorry, couldn't check for plugin updates. %1 - + Niestety, nie można sprawdzić aktualizacji wtyczki. %1 Search plugin install - Instalacja wtyczki wyszukiwania + Instalacja wtyczki wyszukiwania "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + Pomyślnie zainstalowano wtyczkę wyszukiwania "%1". Couldn't install "%1" search engine plugin. %2 - + Nie można zainstalować wtyczki wyszukiwania "%1". %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + Pomyślnie zaktualizowano wtyczkę wyszukiwania "%1". Couldn't update "%1" search engine plugin. %2 - + Nie można zaktualizować wtyczki wyszukiwania "%1". %2 @@ -4272,22 +4322,22 @@ Tamte wtyczki były wyłączone. Plugin source - Źródło wtyczki + Źródło wtyczki Search plugin source: - Źródło wtyczki wyszukiwania: + Źródło wtyczki wyszukiwania: Local file - Plik lokalny + Plik lokalny Web link - Adres strony + Adres strony @@ -4310,7 +4360,7 @@ Tamte wtyczki były wyłączone. Web UI - Interfejs www + Interfejs WWW @@ -4326,19 +4376,19 @@ Tamte wtyczki były wyłączone. Use alternating row colors In transfer list, one every two rows will have grey background. - Alternatywne kolorowanie wierszy + Naprzemienne kolorowanie wierszy Start / Stop Torrent - Wznów / Wstrzymaj pobieranie + wznów / wstrzymaj pobieranie No action - Nie rób nic + nie rób nic @@ -4551,7 +4601,7 @@ Tamte wtyczki były wyłączone. Open destination folder - Otwórz katalog pobierań + otwórz katalog pobierań @@ -4622,7 +4672,7 @@ Tamte wtyczki były wyłączone. Start qBittorrent on Windows start up - Uruchamiaj qBittorrent ze startem systemu Windows + Uruchamiaj qBittorrent podczas startu systemu Windows @@ -4657,7 +4707,7 @@ Tamte wtyczki były wyłączone. Inhibit system sleep when torrents are active - Nie pozwalaj na usypianie systemu gdy są aktywne torrenty + Nie pozwalaj na usypianie systemu, gdy są aktywne torrenty @@ -4778,7 +4828,7 @@ Tamte wtyczki były wyłączone. Info: The password is saved unencrypted - Informacja: Hasło jest zapisane jako niezaszyfrowane + Informacja: hasło jest zapisywane bez szyfrowania @@ -4808,12 +4858,12 @@ Tamte wtyczki były wyłączone. Weekdays - Dni robocze + dni robocze Weekends - Weekendy + weekendy @@ -4868,7 +4918,7 @@ Tamte wtyczki były wyłączone. Seed torrents until their ratio reaches - Wysyłaj do czasu aż współczynnik udziału osiągnie + Wysyłaj do czasu, aż współczynnik udziału osiągnie @@ -4878,12 +4928,12 @@ Tamte wtyczki były wyłączone. Pause them - Wstrzymaj + wstrzymaj Remove them - Usuń + usuń @@ -4958,7 +5008,7 @@ Tamte wtyczki były wyłączone. (None) - (Żaden) + (brak) @@ -5012,7 +5062,7 @@ Tamte wtyczki były wyłączone. Enable Web User Interface (Remote control) - Włącz interfejs www (Zdalne zarządzanie) + Włącz interfejs WWW (zdalne zarządzanie) @@ -5025,17 +5075,17 @@ Tamte wtyczki były wyłączone. Ścieżka do pliku filtra (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - Wykryto nieczyste zakończenie programu. Korzystam z pliku awaryjnego, aby przywrócić ustawienia. + Wykryto nieprawidłowe zakończenie programu. Przywracanie ustawień z pliku awaryjnego. - + An access error occurred while trying to write the configuration file. Wystąpił błąd dostępu podczas próby zapisania pliku konfiguracji. - + A format error occurred while trying to write the configuration file. Wystąpił błąd formatu podczas próby zapisania pliku konfiguracji. @@ -5067,7 +5117,7 @@ Tamte wtyczki były wyłączone. Sorry, we can't preview this file - Przepraszamy, podgląd pliku jest niedostępny + Niestety, podgląd pliku jest niedostępny @@ -5414,13 +5464,13 @@ Tamte wtyczki były wyłączone. This file name contains forbidden characters, please choose a different one. - Nazwa pliku zawiera zabronione znaki, proszę wybrać inną nazwę. + Nazwa pliku zawiera zabronione znaki; wybierz inną nazwę. This name is already in use in this folder. Please use a different name. - Wybrana nazwa jest już używana w tym katalogu. Proszę wybrać inną nazwę. + Wybrana nazwa jest już używana w tym katalogu. Wybierz inną nazwę. @@ -5468,7 +5518,7 @@ Tamte wtyczki były wyłączone. QObject - + Your IP address has been banned after too many failed authentication attempts. Twój adres IP został zbanowany po zbyt wielu nieudanych próbach uwierzytelnienia. @@ -5756,12 +5806,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. You updated from an older version that saved things differently. You must migrate to the new saving system. You will not be able to use an older version than v3.3.0 again. Continue? [y/n] - Zaktualizowałeś starszą wersję, która zapisywała inaczej. Musisz przeprowadzić migrację do nowego systemu zapisywania. Wtedy nie będziesz już mógł używać wersji starszej niż v3.3.0. Kontynuować? [t/n] + Zaktualizowano starszą wersję, która zapisywała inaczej. Należy przeprowadzić migrację do nowego systemu zapisywania, lecz wówczas nie będzie można używać wersji starszej niż v3.3.0. Kontynuować? [t/n] You updated from an older version that saved things differently. You must migrate to the new saving system. If you continue, you will not be able to use an older version than v3.3.0 again. - Zaktualizowałeś starszą wersję, która zapisywała inaczej. Musisz przeprowadzić migrację do nowego systemu zapisywania. Wtedy nie będziesz już mógł używać wersji starszej niż v3.3.0. + Zaktualizowano starszą wersję, która zapisywała inaczej. Należy przeprowadzić migrację do nowego systemu zapisywania, lecz wówczas nie będzie można używać wersji starszej niż v3.3.0. @@ -5960,12 +6010,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... + Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... Automatically downloading '%1' torrent from '%2' RSS feed... - Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... + Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... @@ -5973,29 +6023,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatyczne pobieranie '%1' z kanału RSS '%2' zakończyło się niepowodzeniem, ponieważ nie zawiera pliku torrent albo łącza magnet... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Automatyczne pobieranie torrenta '%1' z kanału RSS '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Nie udało się otworzyć pobranego pliku RSS. - - - Invalid RSS feed at '%1'. - Nieprawidłowy kanał RSS w '%1'. + Nieprawidłowy kanał RSS. @@ -6026,22 +6054,22 @@ W przyszłości powiadomienie nie będzie wyświetlane. Watch Folder - + Obserwowany folder Default Folder - + Domyślny folder Browse... - Przeglądaj... + Przeglądaj... Choose save path - + Wybierz ścieżkę zapisu @@ -6049,12 +6077,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. Watch Folder - + Obserwowany folder Default Folder - + Domyślny folder @@ -6064,199 +6092,87 @@ W przyszłości powiadomienie nie będzie wyświetlane. Save Files to - - - - Download here - Pobierz tutaj - - - Download path - Ścieżka pobierania - - - - SearchCategories - - All categories - Wszystko - - - Movies - Filmy - - - TV shows - Seriale TV - - - Music - Muzyka - - - Games - Gry - - - Anime - Anime - - - Software - Programy - - - Pictures - Obrazki - - - Books - Książki + Zapisz pliki do SearchEngine - - Search - Szukaj - - - Please install Python to use the Search Engine. - Proszę zainstalować Pythona, aby móc używać wyszukiwarek. - - - Empty search pattern - Pusty wzorzec wyszukiwania - - - Please type a search pattern first - Proszę podać wzorzec wyszukiwania - - - Searching... - Wyszukiwanie... - - - Stop - Zatrzymaj - - - Search Engine - Wyszukiwarka - - - Search has finished - Wyszukiwanie zakończone - - - An error occurred during search... - Wystąpił błąd podczas wyszukiwania... - - - Search aborted - Wyszukiwanie przerwane - - - All enabled - Wszystkie włączone - - - All engines - Wszystkie silniki - - - Multiple... - Wielokrotne... - - - Results <i>(%1)</i>: - i.e: Search results - Wyniki <i>(%1)</i>: - - - Search returned no results - Nic nie znaleziono - - - Stopped - Zatrzymany - Unknown search engine plugin file format. - + Nieznany format pliku wtyczki wyszukiwania A more recent version of this plugin is already installed. - + Najnowsza wersja tej wtyczki jest już zainstalowana. Plugin is not supported. - + Wtyczka nie jest obsługiwania. Update server is temporarily unavailable. %1 - + Serwer aktualizacji jest tymczasowo niedostępny. %1 Failed to download the plugin file. %1 - + Nie udało się pobrać pliku wtyczki. %1 An incorrect update info received. - + Otrzymano nieprawidłowe informacje aktualizacji. All categories - Wszystko + Wszystko Movies - Filmy + Filmy TV shows - Seriale TV + Seriale TV Music - Muzyka + Muzyka Games - Gry + Gry Anime - Anime + Anime Software - Programy + Programy Pictures - Obrazki + Obrazki Books - Książki + Książki @@ -6305,124 +6221,124 @@ W przyszłości powiadomienie nie będzie wyświetlane. - - - + + + Search - Szukaj + Wyszukaj Status: - Status: + Stan: - + Stopped - Zatrzymany + Zatrzymany Download - Pobierz + Pobierz Go to description page - Otwórz stronę z opisem + Przejdź do strony z opisem Copy description page URL - Kopiuj adres URL strony opisu + Kopiuj URL strony opisu Search plugins... - + Wtyczki wyszukiwania... - + All enabled - Wszystkie włączone - - - - All plugins - + Wszystkie włączone - + All plugins + Wszystkie wtyczki + + + + Multiple... - Wielokrotne... + Wielokrotne... - - - + + + Search Engine - Wyszukiwarka + Wyszukiwarka - + Please install Python to use the Search Engine. - Proszę zainstalować Pythona, aby móc używać wyszukiwarek. + Należy zainstalować Pythona, aby móc używać wyszukiwarki. - + Empty search pattern - Pusty wzorzec wyszukiwania + Pusty wzorzec wyszukiwania - + Please type a search pattern first - Proszę podać wzorzec wyszukiwania + Najpierw podaj wzorzec wyszukiwania - - + + Results <i>(%1)</i>: i.e: Search results - Wyniki <i>(%1)</i>: - - - - Searching... - Wyszukiwanie... + Wyniki <i>(%1)</i>: + Searching... + Wyszukiwanie... + + + Stop - Zatrzymaj + Zatrzymaj - - + + Search has finished - Wyszukiwanie zakończone + Wyszukiwanie zakończone - - + + Search aborted - Wyszukiwanie przerwane + Wyszukiwanie przerwane - + Search returned no results - Nic nie znaleziono + Wyszukiwanie nie zwróciło wyników - + Search has failed - + Wyszukiwanie nie powiodło się - + An error occurred during search... - Wystąpił błąd podczas wyszukiwania... + Wystąpił błąd podczas wyszukiwania... @@ -6450,22 +6366,22 @@ W przyszłości powiadomienie nie będzie wyświetlane. qBittorrent will now exit unless you cancel within the next %1 seconds. - Działanie qBittorrent zostanie zakończone jeśli nie anulujesz akcji w ciągu %1 sekund... + Działanie qBittorrent zostanie zakończone, jeśli nie anulujesz akcji w ciągu %1 sekund... The computer will now be switched off unless you cancel within the next %1 seconds. - Komputer zostanie wyłączony jeśli nie anulujesz akcji w ciągu %1 sekund... + Komputer zostanie wyłączony, jeśli nie anulujesz akcji w ciągu %1 sekund... The computer will now go to sleep mode unless you cancel within the next %1 seconds. - Komputer zostanie uśpiony jeśli nie anulujesz akcji w ciągu %1 sekund... + Komputer zostanie uśpiony, jeśli nie anulujesz akcji w ciągu %1 sekund... The computer will now go to hibernation mode unless you cancel within the next %1 seconds. - Komputer przejdzie w tryb hibernacji jeśli nie anulujesz akcji w ciągu %1 sekund... + Komputer przejdzie w tryb hibernacji, jeśli nie anulujesz akcji w ciągu %1 sekund... @@ -6672,12 +6588,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. Queued I/O jobs: - Zakolejkowane prace We/Wy + Zadania we/wy w kolejce: Write cache overload: - Pamięć podręczna zapisu przepełniona: + Przepełnienie pamięci podręcznej zapisu: @@ -6687,7 +6603,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Read cache overload: - Pamięć podręczna odczytu przepełniona: + Przepełnienie pamięci podręcznej odczytu: @@ -6712,7 +6628,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. No direct connections. This may indicate network configuration problems. - Brak bezposrednich połączeń. Może to oznaczać problem z konfiguracją sieci. + Brak bezpośrednich połączeń. Może to oznaczać problem z konfiguracją sieci. @@ -6723,7 +6639,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. qBittorrent needs to be restarted - qBittorrent musi zostać uruchomiony ponownie + qBittorrent musi być ponownie uruchomiony @@ -6749,17 +6665,17 @@ W przyszłości powiadomienie nie będzie wyświetlane. Click to switch to alternative speed limits - Kliknij aby przełączyć na alternatywne limity prędkości + Kliknij, aby przełączyć na alternatywne limity prędkości Click to switch to regular speed limits - Kliknij aby przełączyć na normalne limity prędkości + Kliknij, aby przełączyć na normalne limity prędkości Manual change of rate limits mode. The scheduler is disabled. - Manualna zmiana trybu wysokości limitów. Harmonogram jest wyłączony. + Ręczna zmiana trybu wysokości limitów. Harmonogram jest wyłączony. @@ -6886,11 +6802,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Download Priority - - - - Priority - Priorytet + Priorytet pobierania @@ -6898,12 +6810,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. Select a folder to add to the torrent - Wybierz katalog który chcesz dodać do torrenta + Wybierz katalog, który chcesz dodać do torrenta Select a file to add to the torrent - Wybierz plik który chcesz dodać do torrenta + Wybierz plik, który chcesz dodać do torrenta @@ -6913,7 +6825,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Please type an input path first - Proszę podać katalog żródłowy + Podaj katalog źródłowy @@ -7054,13 +6966,13 @@ W przyszłości powiadomienie nie będzie wyświetlane. Seeds i.e. full sources (often untranslated) - Pełnych + Źródła Peers i.e. partial sources (often untranslated) - Częściowych + Partnerzy @@ -7244,12 +7156,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - Nie można odzszyfrować ikony ulubionych z adresu URL '%1'. Próbuję pobrać ikonę ulubionych w formacie PNG. + Nie można odczytać ikony ulubionych z adresu URL '%1'. Pobieranie ikony ulubionych w formacie PNG. Couldn't decode favicon for URL '%1'. - Nie można odszyfrować ikony ulubionych z adresu URL '%1'. + Nie można odczytać ikony ulubionych z adresu URL '%1'. @@ -7399,7 +7311,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. List of trackers to add (one per line): - Lista trackerów do dodania (jeden na linię): + Lista trackerów do dodania (po jednym w wierszu): @@ -7409,7 +7321,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. I/O Error - Błąd We/Wy + Błąd we/wy @@ -7501,7 +7413,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Queued for checking i.e. torrent is queued for hash checking - Zakolejkowano do sprawdzenia + W kolejce do sprawdzenia @@ -7794,7 +7706,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Web UI Error - Unable to bind Web UI to port %1 - Błąd sieciowego interfejsu użytkownika - Nie można połączyć sieciowego interfejsu użytkownika z portem %1 + Błąd sieciowego interfejsu użytkownika: nie można połączyć sieciowego interfejsu użytkownika z portem %1 @@ -7840,7 +7752,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. List of peers to add (one per line): - Lista partnerów do dodania (jeden na linię): + Lista partnerów do dodania (po jednym w wierszu): @@ -7854,7 +7766,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Tracker authentication - Autoryzacja do tracker-a + Uwierzytelnianie trackera @@ -7935,7 +7847,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. File or folder to add to the torrent: - Plik lub katalog który ma zostać dodany do torrenta: + Plik lub katalog, który ma zostać dodany do torrenta: @@ -7945,7 +7857,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Web seeds urls: - Adresy seedów www: + Adresy WWW źródeł: @@ -7956,7 +7868,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. You can separate tracker tiers / groups with an empty line. A tracker tier is a group of trackers, consisting of a main tracker and its mirrors. - Można oddzielić warstwy / grupy trackerów za pomocą pustej linii. + Można oddzielić warstwy / grupy trackerów pustym wierszem. @@ -8026,12 +7938,12 @@ W przyszłości powiadomienie nie będzie wyświetlane. Private (won't be distributed on DHT network if enabled) - Prywatny (gdy zaznaczone torrent nie będzie rozprowadzany w sieci DHT) + Prywatny (po zaznaczeniu torrent nie będzie rozprowadzany w sieci DHT) Start seeding after creation - Uruchom wysyłanie po utworzeniu + Rozpocznij wysyłanie po utworzeniu @@ -8041,7 +7953,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Create and save... - Tworzenie i zapisywanie... + Utwórz i zapisz... @@ -8059,7 +7971,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. One per line (HTTP links, Magnet links and info-hashes are supported) - Jeden na linię (wspierane są odnośniki HTTP, Magnet oraz info-hash) + Jeden na wiersz (dozwolone są odnośniki HTTP, Magnet oraz info-hash) @@ -8074,7 +7986,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Download from urls - Pobierz z adresów + Pobierz z adresów URL @@ -8084,161 +7996,7 @@ W przyszłości powiadomienie nie będzie wyświetlane. Please type at least one URL. - Proszę podać przynajmniej jeden adres URL. - - - - engineSelect - - Search plugins - Wtyczki wyszukiwania - - - Installed search engines: - Zainstalowane wyszukiwarki: - - - Name - Nazwa - - - Version - Wersja - - - Url - URL - - - Enabled - Włączone - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Tutaj możesz pobrać nowe wtyczki wyszukiwania: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Zainstaluj nową - - - Check for updates - Sprawdź aktualizację - - - Close - Zamknij - - - Uninstall - Odinstaluj - - - - engineSelectDlg - - Uninstall warning - Ostrzeżenie deinstalacji - - - Uninstall success - Deinstalacja zakończona - - - Invalid plugin - Nieprawidłowa wtyczka - - - The search engine plugin is invalid, please contact the author. - Wtyczka wyszukiwarki jest nieprawidłowa, proszę skontaktować się z autorem. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Najnowsza wersja wtyczki wyszukiwania '%1' jest już zainstalowana. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Nie można zaktualizować wtyczki wyszukiwania '%1', pozostaje stara wersja. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Wtyczka wyszukiwania '%1' nie może być zainstalowana. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Pomyślnie zaktualizowano wtyczkę wyszukiwania '%1'. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Pomyślnie zainstalowano wtyczkę wyszukiwania '%1'. - - - The link doesn't seem to point to a search engine plugin. - Odnośnik nie wydaje się wskazywać na wtyczkę wyszukiwania. - - - Select search plugins - Wybierz wtyczkę wyszukiwania - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Przepraszam, niepowodzenie instalacji wtyczki wyszukiwania '%1'. - - - Search plugin install - Instalacja wtyczki wyszukiwania - - - Yes - Tak - - - No - Nie - - - qBittorrent search plugin - Wtyczka wyszukiwania qBittorrent - - - Search plugin update - Aktualizacja wtyczki wyszukiwania - - - Sorry, update server is temporarily unavailable. - Sorry, czasowo niedostępny serwer aktualizacji. - - - All your plugins are already up to date. - Wszystkie twoje wtyczki są aktualne. - - - All selected plugins were uninstalled successfully - Wszystkie wybrane wtyczki zostały zainstalowane - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Niektóre wtyczki nie mogą zostać usunięte, ponieważ są częścią qBittorenta. Tylko te, które dodałeś możesz usunąć. -Tamte wtyczki były wyłączone. - - - Invalid link - Nieprawidłowy odnośnik - - - New search engine plugin URL - URL nowej wtyczki wyszukiwania - - - URL: - URL: + Podaj przynajmniej jeden adres URL. @@ -8258,7 +8016,7 @@ Tamte wtyczki były wyłączone. Downloads - Pobieranie + Pobrania @@ -8368,192 +8126,173 @@ Tamte wtyczki były wyłączone. options_imp - - + + Choose export directory Wybierz katalog eksportu - - - - + + + + Choose a save directory Wybierz katalog docelowy - + Add directory to scan Dodaj katalog do przeszukiwania - + Supported parameters (case sensitive): Obsługiwane parametry (z uwzględnieniem wielkości liter): - + %N: Torrent name %N: Nazwa torrenta - + %L: Label %L: Etykieta - + %F: Content path (same as root path for multifile torrent) - %F: Ścieżka zawartości (taka sama jak ścieżka root dla wieloplikowych torrentów) + %F: Ścieżka zawartości (taka sama, jak główna ścieżka dla wieloplikowych torrentów) - + %R: Root path (first torrent subdirectory path) - %R: Ścieżka root (pierwsza ścieżka podkatalogu torrenta) + %R: Ścieżka główna (pierwsza ścieżka podkatalogu torrenta) - + %D: Save path %D: Ścieżka zapisu - + %C: Number of files %C: Liczba plików - + %Z: Torrent size (bytes) %Z: Rozmiar torrenta (w bajtach) - + %T: Current tracker %T: Bieżący tracker - + %I: Info hash - %I: Info hash: + %I: Info hash - + Folder is already being watched. Katalog jest już obserwowany. - + Folder does not exist. Katalog nie istnieje. - + Folder is not readable. Nie można czytać katalogu. - + Failure Błąd - + Failed to add Scan Folder '%1': %2 Błąd podczas dodawania katalogu do obserwowanych '%1': %2 - - + + Filters Filtry - - + + Choose an IP filter file Wybierz plik filtra IP - + SSL Certificate Certyfikat SSL - + SSL Key Klucz SSL - + Parsing error Błąd przetwarzania - + Failed to parse the provided IP filter Nie udało się przetworzyć podanego filtra IP - + Successfully refreshed Pomyślnie odświeżony - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Pomyślnie przetworzono podany filtr IP: zastosowano %1 reguł. - + Invalid key Niepoprawny klucz - + This is not a valid SSL key. To nie jest poprawny klucz SSL. - + Invalid certificate Niepoprawny certyfikat - + This is not a valid SSL certificate. To nie jest poprawny certyfikat SSL. - + The start time and the end time can't be the same. - Czas uruchomienia nie może byś taki sam jak czas zakończenia. + Czas uruchomienia nie może być taki sam, jak czas zakończenia. - + Time Error Błąd ustawień harmonogramu - - pluginSourceDlg - - Plugin source - Źródło wtyczki - - - Search plugin source: - Źródło wtyczki wyszukiwania: - - - Local file - Plik lokalny - - - Web link - Adres strony - - preview @@ -8564,7 +8303,7 @@ Tamte wtyczki były wyłączone. The following files support previewing, please select one of them: - Podgląd jest możliwy dla poniższych plików, proszę wybrać jeden z nich: + Podgląd jest możliwy dla poniższych plików - wybierz jeden z nich: @@ -8577,35 +8316,4 @@ Tamte wtyczki były wyłączone. Anuluj - - search_engine - - Search - Szukaj - - - Status: - Status: - - - Stopped - Zatrzymany - - - Download - Pobierz - - - Go to description page - Otwórz stronę z opisem - - - Copy description page URL - Kopiuj adres URL strony opisu - - - Search engines... - Wtyczki wyszukiwania... - - diff --git a/src/lang/qbittorrent_pt.ts b/src/lang/qbittorrent_pt.ts index 3361c9e6f..cd3bc2f83 100644 --- a/src/lang/qbittorrent_pt.ts +++ b/src/lang/qbittorrent_pt.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID do peer: - + HTTP User-Agent is '%1' O agente de utilizador HTTP é '%1' - + Anonymous mode [ON] Modo anónimo [ON] - + Anonymous mode [OFF] Modo anónimo [OFF] - + PeX support [ON] Suporte PeX [ON] - + PeX support [OFF] Suporte PeX [OFF] - + Restart is required to toggle PeX support Tem que reiniciar para aplicar as alterações - + Local Peer Discovery support [ON] Suporte Local Peer Discovery [ON] - + Local Peer Discovery support [OFF] Suporte Local Peer Discovery [OFF] - + Encryption support [ON] Suporte a codificação [ON] - + Encryption support [FORCED] Suporte a codificação [FORCED] - + Encryption support [OFF] Suporte a codificação [OFF] - + Embedded Tracker [ON] Tracker embutido [ON] - + Failed to start the embedded tracker! Ocorreu um erro ao iniciar o tracker embutido! - + Embedded Tracker [OFF] Tracker embutido [OFF] - + '%1' reached the maximum ratio you set. Removing... '%1' atingiu a taxa máxima definida. A remover... - + '%1' reached the maximum ratio you set. Pausing... '%1' atingiu a taxa máxima definida. Em pausa... - + System network status changed to %1 e.g: System network status changed to ONLINE O estado da rede do sistema foi alterado para %1 - + ONLINE Online - + OFFLINE Offline - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuração da rede %1 foi alterada. A atualizar a sessão. - + Unable to decode '%1' torrent file. Não foi possível descodificar o torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Transferência recursiva do ficheiro '%1', incorporado no torrent %2 - + Couldn't save '%1.torrent' Não foi possível guardar '1%.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. porque '%1' está inativo. - + because %1 is disabled. this peer was blocked because TCP is disabled. porque '%1' está inativo. - + URL seed lookup failed for URL: '%1', message: %2 A procura do URL falhou para o URL: %1. Mensagem: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... "%1" foi removido da lista de transferências e do disco. - + '%1' was removed from transfer list. 'xxx.avi' was removed... "%1" foi removido da lista de transferências. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... A receber "%1". Por favor aguarde... - + DHT support [ON] Suporte DHT [ON] - + DHT support [OFF]. Reason: %1 Suporte DHT [OFF]. Motivo: %1 - + DHT support [OFF] Suporte DHT [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 O qBitorrent está a tentar receber de uma porta: %1 - + The network interface defined is invalid: %1 A interface de rede definida não é válida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 O qBitorrent está a tentar receber na interface %1, porta: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on O qBittorrent não encontrou o endereço local %1 para a receção - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface O qBittorrent não conseguiu receber de qualquer porta: %1. Motivo: %2 - + Tracker '%1' was added to torrent '%2' O tracker '%1' foi adicionado ao torrent '%2' - + Tracker '%1' was deleted from torrent '%2' O tracker '%1' foi eliminado do torrent '%2' - + URL seed '%1' was added to torrent '%2' O URL seed '%1' foi adicionado ao torrent '%2' - + URL seed '%1' was removed from torrent '%2' O URL seed '%1' foi removido do torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Não foi possível retomar o torrent %1 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro de IP processado com sucesso: %1 regras aplicadas. - + Error: Failed to parse the provided IP filter. Erro: falha ao processar o filtro de IP. - + Couldn't add torrent. Reason: %1 Torrent não adicionado: '%1'. Motivo: %2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) "%1" foi retomado. (retoma rápida) - + '%1' added to download list. 'torrent name' was added to download list. "%1" foi adicionado à lista de transferências. - + An I/O error occurred, '%1' paused. %2 Erro I/O, %1 foi colocado em pausa. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: falha no mapeamento da porta. Mensagem: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: portas mapeadas com sucesso. Mensagem: %1 - + due to IP filter. this peer was blocked due to ip filter. por um filtro IP. - + due to port filter. this peer was blocked due to port filter. por um filtro de porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. pelas restrições de modo i2p. - + because it has a low port. this peer was blocked because it has a low port. porque tem uma porta baixa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 O qBittorrent está a receber da interface %1, porta: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use O qBittorrent não conseguiu receber da porta %2/%3 da interface %1. Motivo: %4 - + External IP: %1 e.g. External IP: 192.168.0.1 IP externo: %1 @@ -1284,12 +1284,12 @@ Pode obter estas informações nas preferências do seu navegador web. FeedListWidget - + RSS feeds Fontes RSS - + Unread Não lidas @@ -1378,211 +1378,334 @@ Pode obter estas informações nas preferências do seu navegador web. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Transferir torrents de URL ou ligação magnet - + Only one link per line Só uma ligação por linha - + Download Transferir - + Global upload rate limit must be greater than 0 or disabled. A taxa de limite global para envio tem que ser maior que 0 ou inativa. - + Global download rate limit must be greater than 0 or disabled. A taxa de limite global para receção tem que ser maior que 0 ou inativa. - + Alternative upload rate limit must be greater than 0 or disabled. A taxa alternativa para limite de envio tem que ser maior que 0 ou inativa. - + Alternative download rate limit must be greater than 0 or disabled. A taxa alternativa para limite de receção tem que ser maior que 0 ou inativa. - + Maximum active downloads must be greater than -1. O número máximo de receções ativas tem que ser maior que -1. - + Maximum active uploads must be greater than -1. O número máximo de envios ativos tem que ser maior que -1. - + Maximum active torrents must be greater than -1. O número máximo de torrents ativos tem que ser maior que -1. - + Maximum number of connections limit must be greater than 0 or disabled. O número máximo de ligações tem que ser superior a 0 ou inativo. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. O número máximo de ligações por torrent tem que ser superior a 0 ou inativo. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. O número máximo de ligações de envio por torrent tem que ser superior a 0 ou inativo. - + Unable to save program preferences, qBittorrent is probably unreachable. Não foi possível guardar as preferências. - + Language Idioma - + The port used for incoming connections must be between 1 and 65535. A porta utilizada para as receções tem que estar entre 1 e 65535. - + The port used for the Web UI must be between 1 and 65535. A porta utilizada para a interface web tem que estar entre 1 e 65535. - + Unable to log in, qBittorrent is probably unreachable. Não foi possível iniciar sessão, o qBittorrent não pode ser acedido. - + Invalid Username or Password. Palavra-passe ou utilizador inválido - + Password Palavra-passe - + Login Iniciar sessão - + Upload Failed! Falha ao enviar! - + Original authors Autores originais - + Upload limit: Limite de envio: - + Download limit: Limite de receção: - + Apply Aplicar - + Add Adicionar - + Upload Torrents Enviar torrents - + All Todos - + Downloading A transferir - + Seeding A enviar - + Completed Terminados - + Resumed Retomados - + Paused Em pausa - + Active Ativos - + Inactive Inativos - + Save files to location: Gravar ficheiros em: - + Label: Etiqueta: - + Cookie: Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Todos os dias + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Transferido @@ -1593,57 +1716,57 @@ Pode obter estas informações nas preferências do seu navegador web.Sair - + Upload local torrent Enviar torrent local - + Are you sure you want to delete the selected torrents from the transfer list? Tem a certeza de que quer eliminar os torrents selecionados da lista de transferências? - + The Web UI username must be at least 3 characters long. O nome do utilizador da interface web tem que ter, no mínimo, 3 caracteres. - + The Web UI password must be at least 3 characters long. A palavra-passe da interface web tem que ter, no mínimo, 3 caracteres. - + Save Guardar - + qBittorrent client is not reachable Não foi possível comunicar com o qBittoprrent - + HTTP Server Servidor HTTP - + The following parameters are supported: Os parâmetros seguintes são suportados: - + Torrent path Caminho do torrent - + Torrent name Nome do torrent - + qBittorrent has been shutdown. O qBittorrent foi desligado. @@ -2280,12 +2403,6 @@ Gostaria de instalar agora? Python is required to use the search engine but it does not seem to be installed. Requer Python para utilizar o motor de pesquisa, mas parece que não há uma versão instalada. - - A new version is available. -Update to version %1? - Está disponível uma nova versão. -Atualizar para a versão %1? - No updates available. @@ -2501,14 +2618,6 @@ Tem a certeza que deseja sair? N/A N/D - - Asia/Pacific Region - Região asiática/pacífica - - - Europe - Europa - Andorra @@ -2544,10 +2653,6 @@ Tem a certeza que deseja sair? Armenia Arménia - - Netherlands Antilles - Antilhas holandesas - Angola @@ -2643,10 +2748,6 @@ Tem a certeza que deseja sair? Brunei Darussalam Brunei Darussalam - - Bolivia - Bolívia - Brazil @@ -2712,10 +2813,6 @@ Tem a certeza que deseja sair? Switzerland Suíca - - Cote D'Ivoire - Costa do Marfim - Cook Islands @@ -2871,10 +2968,6 @@ Tem a certeza que deseja sair? France França - - France, Metropolitan - Metropolitana Francesa - Gabon @@ -3160,10 +3253,6 @@ Tem a certeza que deseja sair? Latvia Letónia - - Libyan Arab Jamahiriya - Líbia - Morocco @@ -3189,10 +3278,6 @@ Tem a certeza que deseja sair? Marshall Islands Ilhas Marshall - - Macedonia - Macedónia - Mali @@ -3208,10 +3293,6 @@ Tem a certeza que deseja sair? Mongolia Mongólia - - Macau - Macau - Northern Mariana Islands @@ -3372,19 +3453,11 @@ Tem a certeza que deseja sair? Saint Pierre and Miquelon Saint Pierre e Miquelon - - Pitcairn Islands - Ilhas Pitcairn - Puerto Rico Porto Rico - - Palestinian Territory - Território Palestiniano - Portugal @@ -3455,10 +3528,6 @@ Tem a certeza que deseja sair? Singapore Singapura - - Saint Helena - Santa Helena - Slovenia @@ -3699,10 +3768,6 @@ Tem a certeza que deseja sair? Saint Vincent and the Grenadines São Vicente e Granadinas - - Venezuela - Venezuela - Virgin Islands, British @@ -3713,10 +3778,6 @@ Tem a certeza que deseja sair? Virgin Islands, U.S. Ilhas Virgens Americanas - - Vietnam - Vietname - Vanuatu @@ -3767,18 +3828,6 @@ Tem a certeza que deseja sair? Zimbabwe Zimbábue - - Anonymous Proxy - Proxy anónimo - - - Satellite Provider - Serviço de satélite - - - Other - Outro - Aland Islands @@ -3804,10 +3853,6 @@ Tem a certeza que deseja sair? Saint Barthelemy São Bartolomeu - - Saint Martin - São Martim - Could not uncompress GeoIP database file. @@ -3845,7 +3890,7 @@ Tem a certeza que deseja sair? Net::Smtp - + Email Notification Error: Erro de notificação: @@ -4097,7 +4142,7 @@ Tem a certeza que deseja sair? Search plugins - 'Plugins' de pesquisa + @@ -4112,43 +4157,43 @@ Tem a certeza que deseja sair? Version - Versão + Url - Url + Enabled - Ativo + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pode obter mais motores de pesquisa em: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Instalar um novo + Check for updates - Procurar atualizações + Close - Fechar + Uninstall - Desinstalar + @@ -4168,69 +4213,67 @@ Tem a certeza que deseja sair? Uninstall warning - Aviso de desinstalação + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alguns 'plugins' não podem ser desinstalados por serem parte integrante do qBittorrent. -Apenas os plugins instalados pelo utilizador podem ser removidos. -Esses plugins foram desativados. + Uninstall success - Desinstalado com sucesso + All selected plugins were uninstalled successfully - Todos os 'plugins' selecionados foram removidos + New search engine plugin URL - URL do novo 'plugin' de pesquisa + URL: - URL: + Invalid link - Ligação inválida + The link doesn't seem to point to a search engine plugin. - Esta ligação não indica um 'plugin' de pesquisa. + Select search plugins - Escolha os 'plugins' de pesquisa + qBittorrent search plugin - 'Plugin' de pesquisa do qBittorrent + Search plugin update - Atualização de 'plugins' + All your plugins are already up to date. - Todos os 'plugins' estão atualizados. + @@ -4242,7 +4285,7 @@ Esses plugins foram desativados. Search plugin install - Instalação de 'plugin' + @@ -4272,22 +4315,22 @@ Esses plugins foram desativados. Plugin source - Fonte do 'plugin' + Search plugin source: - Fonte do 'plugin' de pesquisa: + Local file - Ficheiro local + Web link - Ligação web + @@ -5025,17 +5068,17 @@ Esses plugins foram desativados. Filtrar caminho (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Detetado encerramento inválido. A restaurar as pré-definições. - + An access error occurred while trying to write the configuration file. Ocorreu um erro de acesso ao tentar escrever dados no ficheiro de configuração. - + A format error occurred while trying to write the configuration file. Ocorreu um erro de formato ao tentar escrever dados no ficheiro de configuração. @@ -5468,7 +5511,7 @@ Esses plugins foram desativados. QObject - + Your IP address has been banned after too many failed authentication attempts. O seu endereço IP foi banido após demasiadas tentativas de acesso falhadas. @@ -5960,12 +6003,12 @@ Esta será a única vez que recebe este aviso. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - A transferência automática de %1 da fonte RSS %2 falhou porque não possui um torrent ou ligação magnet. + Automatically downloading '%1' torrent from '%2' RSS feed... - A receber automaticamente o torrent '%1' da fonte RSS %2... + @@ -5976,28 +6019,6 @@ Esta será a única vez que recebe este aviso. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - A transferência automática de %1 da fonte RSS %2 falhou porque não possui um torrent ou ligação magnet. - - - Automatically downloading '%1' torrent from '%2' RSS feed... - A receber automaticamente o torrent '%1' da fonte RSS %2... - - - - RssParser - - Failed to open downloaded RSS file. - Ocorreu um erro ao transferir o ficheiro RSS. - - - Invalid RSS feed at '%1'. - Fonte RSS inválida em '%1'. - - RssSettingsDlg @@ -6066,121 +6087,9 @@ Esta será a única vez que recebe este aviso. Save Files to - - Download here - Transferir aqui - - - Download path - Caminho da transferência - - - - SearchCategories - - All categories - Todas as categorias - - - Movies - Filmes - - - TV shows - Programas de TV - - - Music - Música - - - Games - Jogos - - - Anime - Desenhos animados - - - Software - Programas - - - Pictures - Imagens - - - Books - Livros - SearchEngine - - Search - Pesquisa - - - Please install Python to use the Search Engine. - Instale uma versão Python para utilizar o motor de pesquisa. - - - Empty search pattern - Padrão de pesquisa vazio - - - Please type a search pattern first - Por favor indique o padrão de pesquisa - - - Searching... - A pesquisar... - - - Stop - Parar - - - Search Engine - Motor de pesquisa - - - Search has finished - A pesquisa terminou - - - An error occurred during search... - Ocorreu um erro durante a pesquisa... - - - Search aborted - Pesquisa cancelada - - - All enabled - Tudo ativo - - - All engines - Todos os motores - - - Multiple... - Vários... - - - Results <i>(%1)</i>: - i.e: Search results - Resultados <i>(%1)</i>: - - - Search returned no results - A pesquisa não devolveu resultados - - - Stopped - Parado - Unknown search engine plugin file format. @@ -6216,47 +6125,47 @@ Esta será a única vez que recebe este aviso. All categories - Todas as categorias + Movies - Filmes + TV shows - Programas de TV + Music - Música + Games - Jogos + Anime - Desenhos animados + Software - Programas + Pictures - Imagens + Books - Livros + @@ -6305,37 +6214,37 @@ Esta será a única vez que recebe este aviso. - - - + + + Search Pesquisa Status: - Estado: + - + Stopped - Parado + Download - + Transferir Go to description page - Ir para a página de descrição + Copy description page URL - Copiar URL da página de descrição + @@ -6343,86 +6252,86 @@ Esta será a única vez que recebe este aviso. - + All enabled - Tudo ativo - - - - All plugins - + All plugins + + + + + Multiple... - Vários... + - - - + + + Search Engine - Motor de pesquisa + - + Please install Python to use the Search Engine. - Instale uma versão Python para utilizar o motor de pesquisa. + - + Empty search pattern - Padrão de pesquisa vazio + - + Please type a search pattern first - Por favor indique o padrão de pesquisa + - - + + Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: - - - - Searching... - A pesquisar... + + Searching... + + + + Stop - Parar + - - + + Search has finished - A pesquisa terminou + - - + + Search aborted - Pesquisa cancelada + - + Search returned no results - A pesquisa não devolveu resultados + - + Search has failed - + An error occurred during search... - Ocorreu um erro durante a pesquisa... + @@ -6888,10 +6797,6 @@ Esta será a única vez que recebe este aviso. Download Priority - - Priority - Prioridade - TorrentCreatorDlg @@ -8087,161 +7992,6 @@ Esta será a única vez que recebe este aviso. Por favor digite um URL. - - engineSelect - - Search plugins - 'Plugins' de pesquisa - - - Installed search engines: - Plugins instalados: - - - Name - Nome - - - Version - Versão - - - Url - Url - - - Enabled - Ativo - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Pode obter mais motores de pesquisa em: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instalar um novo - - - Check for updates - Procurar atualizações - - - Close - Fechar - - - Uninstall - Desinstalar - - - - engineSelectDlg - - Uninstall warning - Aviso de desinstalação - - - Uninstall success - Desinstalado com sucesso - - - Invalid plugin - 'Plugin' inválido - - - The search engine plugin is invalid, please contact the author. - O mecanismo de pesquisa é inválido. Por favor, contacte o seu autor. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Já está instalada uma versão mais recente do mecanismo de pesquisa %1. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - O mecanismo de pesquisa %1 não foi atualizado e a versão atual foi mantida. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - O mecanismo de pesquisa %1 não foi instalado. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - O mecanismo de pesquisa %1 foi atualizado. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - O mecanismo de pesquisa %1 foi instalado com sucesso. - - - The link doesn't seem to point to a search engine plugin. - Esta ligação não indica um 'plugin' de pesquisa. - - - Select search plugins - Escolha os 'plugins' de pesquisa - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Ocorreu um erro ao instalar o 'plugin' de pesquisa %1. - - - Search plugin install - Instalação de 'plugin' - - - Yes - Sim - - - No - Não - - - qBittorrent search plugin - 'Plugin' de pesquisa do qBittorrent - - - Search plugin update - Atualização de 'plugins' - - - Sorry, update server is temporarily unavailable. - Parece que o servidor de atualizações não está disponível. - - - All your plugins are already up to date. - Todos os 'plugins' estão atualizados. - - - All selected plugins were uninstalled successfully - Todos os 'plugins' selecionados foram removidos - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Alguns 'plugins' não podem ser desinstalados por serem parte integrante do qBittorrent. -Apenas os plugins instalados pelo utilizador podem ser removidos. -Esses plugins foram desativados. - - - Invalid link - Ligação inválida - - - New search engine plugin URL - URL do novo 'plugin' de pesquisa - - - URL: - URL: - - errorDialog @@ -8369,192 +8119,173 @@ Esses plugins foram desativados. options_imp - - + + Choose export directory Escolha o diretório de exportação - - - - + + + + Choose a save directory Escolha o diretório de gravação - + Add directory to scan Adicionar diretório a analisar - + Supported parameters (case sensitive): Parâmetros suportados (diferencia maiúscula/minúscula): - + %N: Torrent name %N: Nome do torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: caminho do conteúdo (igual ao caminho raiz para torrentes em vários ficheiros) - + %R: Root path (first torrent subdirectory path) %R: camino raiz (caminho do subdiretório de 1.º torrent) - + %D: Save path %D: Caminho de gravação - + %C: Number of files %C: Número de ficheiros - + %Z: Torrent size (bytes) %Z: Tamanho do torrent (bytes) - + %T: Current tracker %T: Tracker atual - + %I: Info hash %I: Info hash - + Folder is already being watched. A pasta já está a ser monitorizada. - + Folder does not exist. A pasta não existe. - + Folder is not readable. A pasta não pode ser lida. - + Failure Falha - + Failed to add Scan Folder '%1': %2 Ocorreu um erro ao adicionar a pasta %1: %2 - - + + Filters Filtros - - + + Choose an IP filter file Escolha o ficheiro de filtro IP - + SSL Certificate Certificado SSL - + SSL Key Chave SSL - + Parsing error Erro de processamento - + Failed to parse the provided IP filter Ocorreu um erro ao processar o filtro IP indicado - + Successfully refreshed Atualizado com sucesso - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number O filtro de IPs foi processado: %1 regras aplicadas. - + Invalid key Chave inválida - + This is not a valid SSL key. Esta não é uma chave SSL válida. - + Invalid certificate Certificado inválido - + This is not a valid SSL certificate. Este não é um certificado SSL válido. - + The start time and the end time can't be the same. A hora inicial e a hora final não podem ser iguais. - + Time Error Erro - - pluginSourceDlg - - Plugin source - Fonte do 'plugin' - - - Search plugin source: - Fonte do 'plugin' de pesquisa: - - - Local file - Ficheiro local - - - Web link - Ligação web - - preview @@ -8578,35 +8309,4 @@ Esses plugins foram desativados. Cancelar - - search_engine - - Search - Pesquisa - - - Status: - Estado: - - - Stopped - Parado - - - Download - Transferência - - - Go to description page - Ir para a página de descrição - - - Copy description page URL - Copiar URL da página de descrição - - - Search engines... - Motores de pesquisa... - - diff --git a/src/lang/qbittorrent_pt_BR.ts b/src/lang/qbittorrent_pt_BR.ts index be7c49974..1f90e91c2 100644 --- a/src/lang/qbittorrent_pt_BR.ts +++ b/src/lang/qbittorrent_pt_BR.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID do Peer: - + HTTP User-Agent is '%1' O usuário agente HTTP é '%1' - + Anonymous mode [ON] Modo anônimo [LIGADO] - + Anonymous mode [OFF] Modo anônimo [DESLIGADO] - + PeX support [ON] Suporte a PeX [LIGADO] - + PeX support [OFF] Suporte a PeX [DESLIGADO] - + Restart is required to toggle PeX support É necessário reinicar para alterar o suporte a PeX. - + Local Peer Discovery support [ON] Suporte para Descoberta de Peer Local [LIG] - + Local Peer Discovery support [OFF] Suporte para Descoberta de Peer Local [DESL] - + Encryption support [ON] Suporte a criptografia [LIGADO] - + Encryption support [FORCED] Suporte a criptografia [FORÇADO] - + Encryption support [OFF] Suporte a criptografia [DESLIGADO] - + Embedded Tracker [ON] Tracker embutido [LIGADO] - + Failed to start the embedded tracker! Falha ao iniciar o tracker embutido. - + Embedded Tracker [OFF] Tracker embutido [DESLIGADO] - + '%1' reached the maximum ratio you set. Removing... '%1' alcançou a proporção máxima definida. Removendo... - + '%1' reached the maximum ratio you set. Pausing... '%1' alcançou a proporção máxima definida. Pausando... - + System network status changed to %1 e.g: System network status changed to ONLINE Estado de rede do sistema alterado para %1 - + ONLINE ONLINE - + OFFLINE OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding A configuração de rede de %1 foi alterada, atualizando ligação da sessão - + Unable to decode '%1' torrent file. Impossível decodificar o arquivo torrent '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Download recursivo do arquivo '%1' embutido no torrent '%2' - + Couldn't save '%1.torrent' Não foi possível salvar '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. pois %1 está desabilitado. - + because %1 is disabled. this peer was blocked because TCP is disabled. pois %1 está desabilitado. - + URL seed lookup failed for URL: '%1', message: %2 Falha na procura de seeds falhou para url: '%1', mensagem: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' foi removido da lista de transferência e do disco rígido. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' foi removido da lista de transferência. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Baixando '%1'. Por favor, aguarde. - + DHT support [ON] Suporte a DHT [LIGADO] - + DHT support [OFF]. Reason: %1 Suporte a DHT [DESLIGADO]. Motivo: %1 - + DHT support [OFF] Suporte a DHT [DESLIGADO] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent está tentando escutar em qualquer porta de interface: %1 - + The network interface defined is invalid: %1 A interface de rede definida é inválida: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 O qBittorrent está tentando escutar na porta da interface %1: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on O qBittorrent não encontrou um endereço local %1 no qual escutar - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface O qBittorrent não conseguiu escutar em qualquer porta de interface: % 1. Motivo: %2. - + Tracker '%1' was added to torrent '%2' O tracker '%1' foi adicionado ao torrent '%2' - + Tracker '%1' was deleted from torrent '%2' O tracker '%1' foi excluído do torrent '%2' - + URL seed '%1' was added to torrent '%2' O seed da URL '%1' foi adicionado ao torrent '%2' - + URL seed '%1' was removed from torrent '%2' O seed da URL '%1' foi removido do torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Não foi possível resumir o torrent '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro de IP fornecido analisado com sucesso: %1 regras foram aplicadas. - + Error: Failed to parse the provided IP filter. Erro: Falha ao analisar o filtro de IP fornecido. - + Couldn't add torrent. Reason: %1 Não foi possível adicionar o torrent. Motivo: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' resumido. (resumir rápido) - + '%1' added to download list. 'torrent name' was added to download list. '%1' adicionado à lista de downloads. - + An I/O error occurred, '%1' paused. %2 Ocorreu um erro de E/S, '%1' pausado. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Falha no mapeamento de porta, mensagem: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapeamento de porta bem sucedido, mensagem: %1 - + due to IP filter. this peer was blocked due to ip filter. devido ao filtro de IP. - + due to port filter. this peer was blocked due to port filter. devido ao filtro de porta. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. devido às restrições de modo misto i2p. - + because it has a low port. this peer was blocked because it has a low port. pois ele tem uma porta baixa. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 O qBittorrent está escutando com sucesso na porta da interface %1: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use O qBittorrent falhou ao escutar na interface %1 porta: %2/%3. Motivo: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 IP externo: %1 @@ -1284,12 +1284,12 @@ Você deve buscar essa informação nas preferências do seu navegador. FeedListWidget - + RSS feeds RSS feeds - + Unread Não lido @@ -1378,211 +1378,334 @@ Você deve buscar essa informação nas preferências do seu navegador. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Baixar torrents da URL or Link Magnético - + Only one link per line Somente um link por linha - + Download Baixar - + Global upload rate limit must be greater than 0 or disabled. A taxa limite de upload deve ser maior que 0 ou desabilitada. - + Global download rate limit must be greater than 0 or disabled. A taxa limite de download deve ser maior que 0 ou desabilitada. - + Alternative upload rate limit must be greater than 0 or disabled. A taxa limite de upload alternativa deve ser maior que 0 ou desabilitada. - + Alternative download rate limit must be greater than 0 or disabled. A taxa limite de download alternativa deve ser maior que 0 ou desabilitada. - + Maximum active downloads must be greater than -1. O máximo de downloads ativos deve ser maior do que -1. - + Maximum active uploads must be greater than -1. O máximo de uploads ativos deve ser maior do que -1. - + Maximum active torrents must be greater than -1. O máximo de torrents ativos deve ser maior do que -1. - + Maximum number of connections limit must be greater than 0 or disabled. O número máximo de conexões deve ser maior que 0 ou desabilitado. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. O número máximo de conexões por torrent deve ser maior que 0 ou desabilitado. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. O número máximo de slots de upload por torrent deve ser maior que 0 ou desabilitado. - + Unable to save program preferences, qBittorrent is probably unreachable. Impossível salvar preferências do programa, qBittorrent provavelmente está inatingível. - + Language Linguagem - + The port used for incoming connections must be between 1 and 65535. A porta usada para conexão de entrada deve estar entre 1 e 65535. - + The port used for the Web UI must be between 1 and 65535. A porta usada para a UI Web deve estar entre 1 e 65535. - + Unable to log in, qBittorrent is probably unreachable. Não é possível fazer login; qBittorrent provavelmente está inatingível. - + Invalid Username or Password. Nome de usuário ou senha inválidos. - + Password Senha - + Login Login - + Upload Failed! Upload falhou! - + Original authors Autores Originais - + Upload limit: Limite de upload: - + Download limit: Limite de download: - + Apply Aplicar - + Add Adicionar - + Upload Torrents Carregar Torrents - + All Todos - + Downloading Baixando - + Seeding Enviando - + Completed Concluído - + Resumed Resumido - + Paused Pausado - + Active Ativo - + Inactive Inativo - + Save files to location: Salvar arquivos no diretório: - + Label: Etiqueta: - + Cookie: Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Todo dia + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Baixado @@ -1593,57 +1716,57 @@ Você deve buscar essa informação nas preferências do seu navegador.Sair - + Upload local torrent Fazer upload de torrent local - + Are you sure you want to delete the selected torrents from the transfer list? Deseja realmente excluir os torrents selecionados da lista de transferência? - + The Web UI username must be at least 3 characters long. O nome de usuário para a UI Web deve conter mais que 3 caracteres. - + The Web UI password must be at least 3 characters long. A senha do usuário da UI Web deve ser maior que 3 caracteres. - + Save Salvar - + qBittorrent client is not reachable Cliente qBittorrent não está alcançável - + HTTP Server Servidor HTTP - + The following parameters are supported: Os parâmetros a seguir são suportados: - + Torrent path Caminho torrent - + Torrent name Nome do torrent - + qBittorrent has been shutdown. qBittorrent foi encerrado @@ -2281,12 +2404,6 @@ Gostaria de instalar agora? Python is required to use the search engine but it does not seem to be installed. O Python é requerido para usar a pesquisa, mas parece não estar instalado. - - A new version is available. -Update to version %1? - Uma nova versão está disponível. -Atualizar para a versão %1? - No updates available. @@ -2502,14 +2619,6 @@ Quer mesmo sair do qBittorrent? N/A N/A - - Asia/Pacific Region - Região Ásia/Pacífico - - - Europe - Europa - Andorra @@ -2545,10 +2654,6 @@ Quer mesmo sair do qBittorrent? Armenia Armênia - - Netherlands Antilles - Antilhas Holandesas - Angola @@ -2644,10 +2749,6 @@ Quer mesmo sair do qBittorrent? Brunei Darussalam Brunei - - Bolivia - Bolívia - Brazil @@ -2713,10 +2814,6 @@ Quer mesmo sair do qBittorrent? Switzerland Suíça - - Cote D'Ivoire - Costa do Marfim - Cook Islands @@ -2872,10 +2969,6 @@ Quer mesmo sair do qBittorrent? France França - - France, Metropolitan - França Metropolitana - Gabon @@ -3161,10 +3254,6 @@ Quer mesmo sair do qBittorrent? Latvia Letônia - - Libyan Arab Jamahiriya - Líbia - Morocco @@ -3190,10 +3279,6 @@ Quer mesmo sair do qBittorrent? Marshall Islands Ilhas Marshall - - Macedonia - Macedônia - Mali @@ -3209,10 +3294,6 @@ Quer mesmo sair do qBittorrent? Mongolia Mongólia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3454,11 @@ Quer mesmo sair do qBittorrent? Saint Pierre and Miquelon São Pedro e Miquelão - - Pitcairn Islands - Ilhas Pitcairn - Puerto Rico Porto Rico - - Palestinian Territory - Palestina, Estado da - Portugal @@ -3456,10 +3529,6 @@ Quer mesmo sair do qBittorrent? Singapore Singapura - - Saint Helena - Ilha Santa Helena - Slovenia @@ -3700,10 +3769,6 @@ Quer mesmo sair do qBittorrent? Saint Vincent and the Grenadines São Vicente e Granadinas - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3779,6 @@ Quer mesmo sair do qBittorrent? Virgin Islands, U.S. Ilhas Virgens Americanas - - Vietnam - Vietnã - Vanuatu @@ -3768,18 +3829,6 @@ Quer mesmo sair do qBittorrent? Zimbabwe Zimbábue - - Anonymous Proxy - Proxy anônimo - - - Satellite Provider - Provedor de satélite - - - Other - Outro - Aland Islands @@ -3805,10 +3854,6 @@ Quer mesmo sair do qBittorrent? Saint Barthelemy São Bartolomeu, Coletividade de - - Saint Martin - Ilha de São Martinho - Could not uncompress GeoIP database file. @@ -3846,7 +3891,7 @@ Quer mesmo sair do qBittorrent? Net::Smtp - + Email Notification Error: E-mail de Notificação de Erro: @@ -4098,7 +4143,7 @@ Quer mesmo sair do qBittorrent? Search plugins - Plugins de busca + @@ -4113,43 +4158,43 @@ Quer mesmo sair do qBittorrent? Version - Versão + Url - Url + Enabled - Habilitado + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Você pode pegar novos mecanismos de busca aqui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Instalar um novo + Check for updates - Verificar atualizações + Close - Fechar + Uninstall - Desinstalar + @@ -4169,68 +4214,67 @@ Quer mesmo sair do qBittorrent? Uninstall warning - Aviso de desinstalação + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Alguns plugins não puderam ser desinstalados pois estão incluídos no qBittorrent. Somente aqueles que você instalou podem ser desinstalados. -Estes plugins foram desabilitados. + Uninstall success - Desinstalado com sucesso + All selected plugins were uninstalled successfully - Plugins selecionados desinstalados com sucesso + New search engine plugin URL - Url de novo plugin de busca + URL: - Url: + Invalid link - Link inválido + The link doesn't seem to point to a search engine plugin. - Esse link não parece estar apontando para um plugin de motor de busca. + Select search plugins - Selecionar plugins de busca + qBittorrent search plugin - Plugins de busca qBittorrent + Search plugin update - Atualização de plugin de busca + All your plugins are already up to date. - Todos os plugins já estão atuais. + @@ -4242,7 +4286,7 @@ Estes plugins foram desabilitados. Search plugin install - Instalação de plugin de busca + @@ -4272,22 +4316,22 @@ Estes plugins foram desabilitados. Plugin source - Fonte do plugin + Search plugin source: - Busca de plugin de busca: + Local file - Arquivo local + Web link - Link da net + @@ -5025,17 +5069,17 @@ Estes plugins foram desabilitados. Caminho do filtro (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Detectado encerramento irregular do programa. Usando arquivo de reserva para restaurar as configurações. - + An access error occurred while trying to write the configuration file. Um erro de acesso ocorreu ao tentar escrever o arquivo de configuração. - + A format error occurred while trying to write the configuration file. Um erro de formato ocorreu ao tentar escrever o arquivo de configuração. @@ -5468,7 +5512,7 @@ Estes plugins foram desabilitados. QObject - + Your IP address has been banned after too many failed authentication attempts. Seu endereço IP foi banido após muitas falhas de autenticação. @@ -5960,12 +6004,12 @@ Não serão exibidos mais avisos. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - O download automático de '%1' da fonte RSS '%2' falhou pois ele não contém um torrent ou um link magnet... + Automatically downloading '%1' torrent from '%2' RSS feed... - Baixando automaticamente o torrent '%1' da fonte RSS '%2'... + @@ -5976,28 +6020,6 @@ Não serão exibidos mais avisos. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - O download automático de '%1' da fonte RSS '%2' falhou pois ele não contém um torrent ou um link magnet... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Baixando automaticamente o torrent '%1' da fonte RSS '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Falha ao abrir arquivo RSS baixado - - - Invalid RSS feed at '%1'. - Fonte RSS inválida em '%1'. - - RssSettingsDlg @@ -6066,121 +6088,9 @@ Não serão exibidos mais avisos. Save Files to - - Download here - Baixar aqui - - - Download path - Caminho para download - - - - SearchCategories - - All categories - Todas categorias - - - Movies - Filmes - - - TV shows - Shows de TV - - - Music - Música - - - Games - Jogos - - - Anime - Anime - - - Software - Programa - - - Pictures - Imagens - - - Books - Livros - SearchEngine - - Search - Busca - - - Please install Python to use the Search Engine. - Por favor, instale o Python para usar a pesquisa. - - - Empty search pattern - Padrão de busca vazio - - - Please type a search pattern first - Por favor digite um padrão de busca primeiro - - - Searching... - Buscando... - - - Stop - Parar - - - Search Engine - Mecanismo de Busca - - - Search has finished - Busca finalizada - - - An error occurred during search... - Um erro ocorreu durante a busca... - - - Search aborted - Busca abortada - - - All enabled - Todos habilitados - - - All engines - Todos os mecanismos - - - Multiple... - Múltiplo... - - - Results <i>(%1)</i>: - i.e: Search results - Resultados <i>(%1)</i>: - - - Search returned no results - A busca não retornou resultados - - - Stopped - Parado - Unknown search engine plugin file format. @@ -6216,47 +6126,47 @@ Não serão exibidos mais avisos. All categories - Todas categorias + Movies - Filmes + TV shows - Shows de TV + Music - Música + Games - Jogos + Anime - Anime + Software - Programa + Pictures - Imagens + Books - Livros + @@ -6305,37 +6215,37 @@ Não serão exibidos mais avisos. - - - + + + Search Busca Status: - Estado: + - + Stopped - Parado + Download - + Baixar Go to description page - Ir para a página de descrição + Copy description page URL - Copiar URL da página de descrição + @@ -6343,86 +6253,86 @@ Não serão exibidos mais avisos. - + All enabled - Todos habilitados - - - - All plugins - + All plugins + + + + + Multiple... - Múltiplo... + - - - + + + Search Engine - Mecanismo de Busca + - + Please install Python to use the Search Engine. - Por favor, instale o Python para usar a pesquisa. + - + Empty search pattern - Padrão de busca vazio + - + Please type a search pattern first - Por favor digite um padrão de busca primeiro + - - + + Results <i>(%1)</i>: i.e: Search results - Resultados <i>(%1)</i>: - - - - Searching... - Buscando... + + Searching... + + + + Stop - Parar + - - + + Search has finished - Busca finalizada + - - + + Search aborted - Busca abortada + - + Search returned no results - A busca não retornou resultados + - + Search has failed - + An error occurred during search... - Um erro ocorreu durante a busca... + @@ -6888,10 +6798,6 @@ Não serão exibidos mais avisos. Download Priority - - Priority - Prioridade - TorrentCreatorDlg @@ -8087,160 +7993,6 @@ Não serão exibidos mais avisos. Por favor digite uma URL. - - engineSelect - - Search plugins - Plugins de busca - - - Installed search engines: - Plugins de busca instalados: - - - Name - Nome - - - Version - Versão - - - Url - Url - - - Enabled - Habilitado - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Você pode pegar novos mecanismos de busca aqui: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instalar um novo - - - Check for updates - Verificar atualizações - - - Close - Fechar - - - Uninstall - Desinstalar - - - - engineSelectDlg - - Uninstall warning - Aviso de desinstalação - - - Uninstall success - Desinstalado com sucesso - - - Invalid plugin - Plugin inválido - - - The search engine plugin is invalid, please contact the author. - O plugin do mecanismo de busca é inválido; por favor, contate o autor. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Uma versão mais recente do plugin de mecanismo de busca '%1' já está instalado. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - O plugin de mecanismo de busca '%1' não pôde ser atualizado. Mantendo a versão antiga. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - O plugin de mecanismo de busca '%1' não pôde ser instalado. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Plugin de mecanismo de busca '%1' atualizado com sucesso. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Plugin de mecanismo de busca '%1' instalado com sucesso. - - - The link doesn't seem to point to a search engine plugin. - Esse link não parece estar apontando para um plugin de motor de busca. - - - Select search plugins - Selecionar plugins de busca - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Desculpe, mas a instalação do plugin de mecanismo de busca '%1' falhou. - - - Search plugin install - Instalação de plugin de busca - - - Yes - Sim - - - No - Não - - - qBittorrent search plugin - Plugins de busca qBittorrent - - - Search plugin update - Atualização de plugin de busca - - - Sorry, update server is temporarily unavailable. - Desculpe, servidor de atualizações está temporariamente indisponível. - - - All your plugins are already up to date. - Todos os plugins já estão atuais. - - - All selected plugins were uninstalled successfully - Plugins selecionados desinstalados com sucesso - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Alguns plugins não puderam ser desinstalados pois estão incluídos no qBittorrent. Somente aqueles que você instalou podem ser desinstalados. -Estes plugins foram desabilitados. - - - Invalid link - Link inválido - - - New search engine plugin URL - Url de novo plugin de busca - - - URL: - Url: - - errorDialog @@ -8368,192 +8120,173 @@ Estes plugins foram desabilitados. options_imp - - + + Choose export directory Escolha diretório de exportação - - - - + + + + Choose a save directory Selecione um diretório de salvamento - + Add directory to scan Adicione diretório para escanear - + Supported parameters (case sensitive): Parâmetros suportados (diferencia maiúsculas de minúsculas) - + %N: Torrent name %N: Nome do torrent - + %L: Label %L: Etiqueta - + %F: Content path (same as root path for multifile torrent) %F: Caminho de conteúdo (mesmo do caminho raiz para torrent multi arquivo) - + %R: Root path (first torrent subdirectory path) %R: Caminho raiz (caminho da subpasta do primeiro torrent) - + %D: Save path %D: Caminho para salvar - + %C: Number of files %C: Número de arquivos - + %Z: Torrent size (bytes) %Z: Tamanho do torrent (bytes) - + %T: Current tracker %T: Tracker atual - + %I: Info hash %I: Informação de hash - + Folder is already being watched. Pasta já está sendo monitorada. - + Folder does not exist. Essa pasta não existe. - + Folder is not readable. A pasta não tem suporte a leitura. - + Failure Falhou - + Failed to add Scan Folder '%1': %2 Falhou para adicionar pasta a ser escaneada '%1': %2 - - + + Filters Filtros - - + + Choose an IP filter file Escolha um arquivo de filtro de IP - + SSL Certificate Certificado SSL - + SSL Key Chave SSL - + Parsing error Análise de Erro - + Failed to parse the provided IP filter Falha ao analisar o filtro de IP enviado - + Successfully refreshed Atualizado com sucesso - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Filtro passado com sucesso para o ip informado: %1 regras aplicadas. - + Invalid key Chave inválida - + This is not a valid SSL key. Esta não é uma chave SSL válida. - + Invalid certificate Certificado inválido - + This is not a valid SSL certificate. Este não é um certificado SSL válido. - + The start time and the end time can't be the same. O tempo de início e de fim não podem ser iguais. - + Time Error Erro de tempo - - pluginSourceDlg - - Plugin source - Fonte do plugin - - - Search plugin source: - Busca de plugin de busca: - - - Local file - Arquivo local - - - Web link - Link da net - - preview @@ -8577,35 +8310,4 @@ Estes plugins foram desabilitados. Cancelar - - search_engine - - Search - Busca - - - Status: - Estado: - - - Stopped - Parado - - - Download - Download - - - Go to description page - Ir para a página de descrição - - - Copy description page URL - Copiar URL da página de descrição - - - Search engines... - Máquinas de busca... - - diff --git a/src/lang/qbittorrent_ro.ts b/src/lang/qbittorrent_ro.ts index a022b69ae..3261796a1 100644 --- a/src/lang/qbittorrent_ro.ts +++ b/src/lang/qbittorrent_ro.ts @@ -231,7 +231,7 @@ Torrent is already in download list. Trackers were merged. - Torrentul este deja în lista de descărcări. Tracker-ele au fost combinate. + Torrentul este deja în lista de descărcări. Urmăritoarele au fost combinate. @@ -252,7 +252,7 @@ Magnet link is already in download list. Trackers were merged. - Legătura magnet este deja în lista de descărcări. Tracker-ele au fost combinate. + Legătura magnet este deja în lista de descărcări. Urmăritoarele au fost combinate. @@ -454,12 +454,12 @@ Exchange trackers with other peers - Schimbă trackere cu alți parteneri + Schimbă urmăritoare cu alți parteneri Always announce to all trackers - Anunță întotdeauna tuturor tracker-elor + Anunță întotdeauna toate urmăritoarele @@ -481,7 +481,7 @@ IP Address to report to trackers (requires restart) - Adresa IP de raportat tracker-elor (necesită restartare) + Adresa IP de raportat urmăritoarelor (necesită repornire) @@ -491,12 +491,12 @@ Enable embedded tracker - Activează tracker-ul încorporat + Activează urmăritorul încorporat Embedded tracker port - Port tracker încorporat + Port urmăritor încorporat @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID partener: - + HTTP User-Agent is '%1' Agentul utilizator HTTP este „%1” - + Anonymous mode [ON] Mod anonim [PORNIT] - + Anonymous mode [OFF] Mod anonim [OPRIT] - + PeX support [ON] Suport PeX [PORNIT] - + PeX support [OFF] Suport PeX [OPRIT] - + Restart is required to toggle PeX support Repornirea este necesară pentru comutarea suportului PeX - + Local Peer Discovery support [ON] Suport descoperire parteneri locali [PORNIT] - + Local Peer Discovery support [OFF] Suport descoperire parteneri locali [OPRIT] - + Encryption support [ON] Suport criptare [PORNIT] - + Encryption support [FORCED] Suport criptare [FORȚATĂ] - + Encryption support [OFF] Suport criptare [OPRITĂ] - + Embedded Tracker [ON] - Tracker încorporat [PORNIT] + Urmăritor încorporat [PORNIT] - + Failed to start the embedded tracker! - A eșuat pornirea tracker-ului încorporat! + A eșuat pornirea urmăritorului încorporat! - + Embedded Tracker [OFF] - Tracker încorporat [OPRIT] + Urmăritor încorporat [OPRIT] - + '%1' reached the maximum ratio you set. Removing... - „%1” a atins raportul de partajare maxim pe care l-ați definit. Se elimină... + „%1” a atins raportul de partajare maxim pe care l-ați stabilit. Se elimină... - + '%1' reached the maximum ratio you set. Pausing... - „%1” a atins raportul de partajare maxim pe care l-ați definit. Se suspendă... + „%1” a atins raportul de partajare maxim pe care l-ați stabilit. Se suspendă... - + System network status changed to %1 e.g: System network status changed to ONLINE Starea rețelei sistemului s-a schimbat la %1 - + ONLINE CONECTAT - + OFFLINE DECONECTAT - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Configurația rețelei %1 a fost schimbată, se reîmprospătează asocierea sesiunii - + Unable to decode '%1' torrent file. Nu s-a putut decoda fișierul torrent „%1”. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Descărcare recursivă a fișierului „%1” încorporat în torrentul „%2” - + Couldn't save '%1.torrent' Nu s-a putut salva „%1.torrent” - + because %1 is disabled. this peer was blocked because uTP is disabled. fiindcă %1 este dezactivat. - + because %1 is disabled. this peer was blocked because TCP is disabled. fiindcă %1 este dezactivat. - + URL seed lookup failed for URL: '%1', message: %2 Rezolvarea adresei sursei a eșuat pentru URL-ul: „%1”, mesaj: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... „%1” a fost înlăturat din lista de transferuri și de pe disc. - + '%1' was removed from transfer list. 'xxx.avi' was removed... „%1” a fost eliminat din lista de transferuri. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Se descarcă „%1”, așteptați... - + DHT support [ON] Suport DHT [PORNIT] - + DHT support [OFF]. Reason: %1 Suport DHT [OPRIT]. Motivul: %1 - + DHT support [OFF] Suport DHT [OPRIT] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent încearcă să asculte pe oricare port de interfață: %1 - + The network interface defined is invalid: %1 Interfața de rețea definită nu este validă: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent încearcă să asculte pe interfața %1 portul: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nu a găsit o adresă locală %1 pe care să asculte - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent nu a putut asculta pe niciun port al interfeței: %1. Motivul: %2. - + Tracker '%1' was added to torrent '%2' - Tracker-ul „%1” a fost adăugat torrentului „%2” + Urmăritorul „%1” a fost adăugat torrentului „%2” - + Tracker '%1' was deleted from torrent '%2' - Tracker-ul „%1” a fost șters de la torrentul „%2” + Urmăritorul „%1” a fost șters de la torrentul „%2” - + URL seed '%1' was added to torrent '%2' Sursa URL „%1” a fost adăugată torrentului „%2” - + URL seed '%1' was removed from torrent '%2' Sursa URL „%1” a fost ștearsă de la torrentul „%2” - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nu se poate relua descărcarea torrent: „%1” - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number S-a analizat cu succes filtrul IP furnizat: %1 reguli au fost aplicate. - + Error: Failed to parse the provided IP filter. Eroare: Eșec în analiza filtrului IP furnizat. - + Couldn't add torrent. Reason: %1 Nu s-a putut adăuga torrentul. Motivul: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) „%1” reluat. (reluare rapidă) - + '%1' added to download list. 'torrent name' was added to download list. „%1” a fost adăugat în lista de descărcare. - + An I/O error occurred, '%1' paused. %2 A apărut o eroare de Intrare/Ieșire, „%1” suspendat. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Eșec în maparea portului, mesaj: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Maparea portului încheiată cu succes, mesaj: %1 - + due to IP filter. this peer was blocked due to ip filter. datorită filtrării IP. - + due to port filter. this peer was blocked due to port filter. datorită filtrării portului. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. datorită restricțiilor modului mixt i2p. - + because it has a low port. this peer was blocked because it has a low port. fiindcă are un port mic. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent ascultă cu succes pe interfața %1 portul: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent nu a putut asculta pe interfața %1 portul: %2/%3. Motivul: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 IP extern: %1 @@ -1284,12 +1284,12 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr FeedListWidget - + RSS feeds Fluxuri RSS - + Unread Necitite @@ -1378,211 +1378,338 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Descarcă torrente din URL-uri sau legături Magnet - + Only one link per line Doar unul pe linie - + Download Descarcă - + Global upload rate limit must be greater than 0 or disabled. Limita ratei de încărcare globală trebuie să fie mai mare ca 0 sau dezactivată. - + Global download rate limit must be greater than 0 or disabled. Limita ratei de descărcare globală trebuie să fie mai mare ca 0 sau dezactivată. - + Alternative upload rate limit must be greater than 0 or disabled. Limita ratei de încărcare alternativă trebuie să fie mai mare ca 0 sau dezactivată. - + Alternative download rate limit must be greater than 0 or disabled. Limita ratei de descărcare alternative trebuie să fie mai mare ca 0 sau dezactivată. - + Maximum active downloads must be greater than -1. Numărul maxim de descărcări active trebuie să fie mai mare decât -1. - + Maximum active uploads must be greater than -1. Numărul maxim de încărcări active trebuie să fie mai mare decât -1. - + Maximum active torrents must be greater than -1. Numărul maxim de torrente active trebuie să fie mai mare decât -1. - + Maximum number of connections limit must be greater than 0 or disabled. Limita maximă a numărului de conexiuni trebuie să fie mai mare ca 0 sau dezactivată. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Limita maximă a numărului de conexiuni pe torrent trebuie să fie mai mare ca 0 sau dezactivată. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Numărul maxim de sloturi de încărcare pe torrent trebuie să fie mai mare ca 0 sau dezactivat. - + Unable to save program preferences, qBittorrent is probably unreachable. Nu se pot salva preferințele programului, probabil qBittorrent nu poate fi contactat. - + Language Limbă - + The port used for incoming connections must be between 1 and 65535. Portul folosit pentru conexiunile de intrare trebuie să fie între 1 și 65535. - + The port used for the Web UI must be between 1 and 65535. Portul folosit pentru interfața Web trebuie să fie între 1 și 65535. - + Unable to log in, qBittorrent is probably unreachable. Nu se poate autentifica, probabil qBittorrent nu poate fi contactat. - + Invalid Username or Password. Numele de utilizator sau parola nu sunt valide. - + Password Parolă - + Login Autentifică - + Upload Failed! Încărcarea a eșuat! - + Original authors Autori originali - + Upload limit: Limită de încărcare: - + Download limit: Limită de descărcare: - + Apply Aplică - + Add Adaugă - + Upload Torrents Încarcă torrentele - + All Toate - + Downloading Se descarcă - + Seeding Se contribuie - + Completed Finalizate - + Resumed Reluate - + Paused Suspendate - + Active Active - + Inactive Inactive - + Save files to location: Salvează fișierele în locația: - + Label: Etichetă: - + Cookie: Fișier cookie: - + Type folder here + Introduceți dosarul aici + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Salvează fișierele în + + + + Watch Folder + Urmărește dosarul + + + + Default Folder + Dosar implicit + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Altul... + + + + Every day + Schedule the use of alternative rate limits on ... + Zilnic + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Altul... + + + Downloaded Is the file downloaded or not? Descărcat @@ -1593,57 +1720,57 @@ Puteți obține aceste informații din preferințele navigatorului dumneavoastr Deautentifică - + Upload local torrent Încărcare torrent local - + Are you sure you want to delete the selected torrents from the transfer list? Sigur doriți să ștergeți torrentele selectate din lista de transferuri? - + The Web UI username must be at least 3 characters long. Numele de utilizator al interfeței Web trebuie să conțină minim 3 caractere. - + The Web UI password must be at least 3 characters long. Parola interfeței Web trebuie să conțină minim 3 caractere. - + Save Salvează - + qBittorrent client is not reachable Clientul qBittorrent nu poate fi contactat - + HTTP Server Server HTTP - + The following parameters are supported: Parametrii următori sunt suportați: - + Torrent path Cale torrent - + Torrent name Nume torrent - + qBittorrent has been shutdown. qBittorrent a fost închis. @@ -2070,7 +2197,7 @@ Doriți să asociați qBittorrent cu fișierele torrent și legăturile magnet?< Text Only - Doar Text + Doar text @@ -2216,7 +2343,8 @@ Doriți să asociați qBittorrent cu fișierele torrent și legăturile magnet?< A new version is available. Do you want to download %1? - + Este disponibilă o nouă versiune. +Doriți să descărcați %1? @@ -2281,12 +2409,6 @@ Doriți să îl instalați acum? Python is required to use the search engine but it does not seem to be installed. Python este necesar pentru a putea folosi motorul de căutare, dar nu pare a fi instalat. - - A new version is available. -Update to version %1? - Este disponibilă o nouă versiune. -Doriți să treceți la versiunea %1? - No updates available. @@ -2489,12 +2611,12 @@ Sigur doriți să închideți qBittorrent? Venezuela, Bolivarian Republic of - + Venezuela Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ Sigur doriți să închideți qBittorrent? N/A Indisponibil - - Asia/Pacific Region - Regiunea Asia-Pacific - - - Europe - Europa - Andorra @@ -2545,10 +2659,6 @@ Sigur doriți să închideți qBittorrent? Armenia Armenia - - Netherlands Antilles - Antilele Olandeze - Angola @@ -2644,10 +2754,6 @@ Sigur doriți să închideți qBittorrent? Brunei Darussalam Brunei - - Bolivia - Bolivia - Brazil @@ -2713,10 +2819,6 @@ Sigur doriți să închideți qBittorrent? Switzerland Elveția - - Cote D'Ivoire - Coasta de Fildeș - Cook Islands @@ -2760,7 +2862,7 @@ Sigur doriți să închideți qBittorrent? Curacao - + Curaçao @@ -2872,10 +2974,6 @@ Sigur doriți să închideți qBittorrent? France Franța - - France, Metropolitan - Franța, Metropolitană - Gabon @@ -3161,10 +3259,6 @@ Sigur doriți să închideți qBittorrent? Latvia Letonia - - Libyan Arab Jamahiriya - Libia - Morocco @@ -3190,10 +3284,6 @@ Sigur doriți să închideți qBittorrent? Marshall Islands Insulele Marshall - - Macedonia - Macedonia - Mali @@ -3209,10 +3299,6 @@ Sigur doriți să închideți qBittorrent? Mongolia Mongolia - - Macau - Macau - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Sigur doriți să închideți qBittorrent? Saint Pierre and Miquelon Saint Pierre și Miquelon - - Pitcairn Islands - Insulele Pitcairn - Puerto Rico Puerto Rico - - Palestinian Territory - Palestina - Portugal @@ -3456,10 +3534,6 @@ Sigur doriți să închideți qBittorrent? Singapore Singapore - - Saint Helena - Sfânta Elena - Slovenia @@ -3578,62 +3652,62 @@ Sigur doriți să închideți qBittorrent? Bolivia, Plurinational State of - + Bolivia Bonaire, Sint Eustatius and Saba - + Insulele Bonaire, Sfântul Eustachio și Saba Cote d'Ivoire - + Coasta de Fildeș Libya - + Libia Saint Martin (French part) - + Sfântul Martin (partea franceză) Macedonia, The Former Yugoslav Republic of - + Macedonia Macao - + Macao Pitcairn - + Insulele Pitcairn Palestine, State of - + Palestina Saint Helena, Ascension and Tristan da Cunha - + Sfânta Elena, Ascension și Tristan da Cunha South Sudan - + Sudanul de Sud Sint Maarten (Dutch part) - + Sfântul Martin (partea olandeză) @@ -3700,10 +3774,6 @@ Sigur doriți să închideți qBittorrent? Saint Vincent and the Grenadines Sfântul Vicențiu și Grenadinele - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ Sigur doriți să închideți qBittorrent? Virgin Islands, U.S. Insulele Virgine Americane - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ Sigur doriți să închideți qBittorrent? Zimbabwe ZImbabwe - - Anonymous Proxy - Proxy anonim - - - Satellite Provider - Furnizor satelit - - - Other - Altele - Aland Islands @@ -3805,10 +3859,6 @@ Sigur doriți să închideți qBittorrent? Saint Barthelemy Sfântul Bartolomeu - - Saint Martin - Sfântul Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Sigur doriți să închideți qBittorrent? Net::Smtp - + Email Notification Error: Eroare de Notificare Email: @@ -3992,7 +4042,7 @@ Sigur doriți să închideți qBittorrent? Files i.e. files that are being downloaded right now - + Fișiere @@ -4098,65 +4148,65 @@ Sigur doriți să închideți qBittorrent? Search plugins - Extensii de căutare + Module de căutare Installed search plugins: - + Module de căutare instalate: Name - Nume + Nume Version - Versiune + Versiune Url - URL + URL Enabled - Activat + Activat You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Puteți să obțineți noi extensii pentru motoare de căutare aici: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Puteți să obțineți noi module motor de căutare de aici: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Instalează unul nou + Instalează unul nou Check for updates - Caută actualizări + Caută actualizări Close - Închide + Închide Uninstall - Dezinstalează + Dezinstalează Yes - Da + Da @@ -4164,108 +4214,107 @@ Sigur doriți să închideți qBittorrent? No - Nu + Nu Uninstall warning - Atenționare la dezinstalare + Avertisment dezinstalare Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Unele extensii nu au putut fi dezinstalate deoarece vin incluse în qBittorrent. -Doar cele pe care le-ați adăugat manual pot fi dezinstalate. -Cu toate acestea, acele extensii au fost dezactivate. + Unele module nu au putut fi dezinstalate deoarece vin incluse în qBittorrent. Doar cele pe care le-ați adăugat manual pot fi dezinstalate. +Totuși, acele module au fost dezactivate. Uninstall success - Dezinstalare cu succes + Succes dezinstalare All selected plugins were uninstalled successfully - Toate extensiile selectate au fost dezinstalate cu succes + Toate modulele selectate au fost dezinstalate cu succes New search engine plugin URL - URL nou pentru extensia motor de căutare + URL nou pentru modulul de motor de căutare URL: - URL: + URL: Invalid link - Legătură nevalidă + Legătură nevalidă The link doesn't seem to point to a search engine plugin. - Legătura nu pare a indica spre o extensie motor de căutare. + Legătura nu pare a indica spre un modul pentru motorul de căutare. Select search plugins - Alegeți extensiile de căutare + Alegeți module de căutare qBittorrent search plugin - Extensie de căutare qBittorrent + Modul de căutare qBittorrent Search plugin update - Actualizare extensie de căutare + Actualizare modul de căutare All your plugins are already up to date. - Toate extensiile sunt deja actualizate. + Toate modulele sunt deja actualizate. Sorry, couldn't check for plugin updates. %1 - + Ne pare rău, nu se poate verifica dacă sunt actualizări pentru module. %1 Search plugin install - Instalare extensie de căutare + Instalare module de căutare "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + Modulul de motor de căutare „%1” a fost instalat cu succes. Couldn't install "%1" search engine plugin. %2 - + Modulul de motor de căutare „%1” nu a putut fi instalat. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + Modulul de motor de căutare „%1” a fost actualizat cu succes. Couldn't update "%1" search engine plugin. %2 - + Modulul de motor de căutare „%1” nu a putut fi actualizat. %2 @@ -4273,22 +4322,22 @@ Cu toate acestea, acele extensii au fost dezactivate. Plugin source - Sursă extensie + Sursă modul Search plugin source: - Sursă extensie de căutare: + Sursă modul de căutare: Local file - Fișier local + Fișier local Web link - Legătură Web + Legătură Web @@ -4754,7 +4803,7 @@ Cu toate acestea, acele extensii au fost dezactivate. Otherwise, the proxy server is only used for tracker connections - Altfel, serverul proxy este utilizat doar pentru conexiuni la tracker + Altfel, serverul proxy este utilizat doar pentru conexiuni la urmăritor @@ -4794,7 +4843,7 @@ Cu toate acestea, acele extensii au fost dezactivate. Apply to trackers - Aplică tracker-elor + Aplică urmăritoarelor @@ -4889,7 +4938,7 @@ Cu toate acestea, acele extensii au fost dezactivate. Automatically add these trackers to new downloads: - Adăugă automat aceste trackere noilor descărcări: + Adăugă automat aceste urmăritoare noilor descărcări: @@ -5026,17 +5075,17 @@ Cu toate acestea, acele extensii au fost dezactivate. Cale filtru (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. A fost detectată o ieșire forțată din program. Se folosește fișierul de rezervă pentru a restaura configurările. - + An access error occurred while trying to write the configuration file. A apărut o eroare de acces când se încerca scrierea fișierului de configurație. - + A format error occurred while trying to write the configuration file. A apărut o eroare de format când se încerca scrierea fișierului de configurație. @@ -5116,7 +5165,7 @@ Cu toate acestea, acele extensii au fost dezactivate. Trackers - Trackere + Urmăritoare @@ -5469,7 +5518,7 @@ Cu toate acestea, acele extensii au fost dezactivate. QObject - + Your IP address has been banned after too many failed authentication attempts. Adresa dumneavoastră IP a fost interzisă după prea multe încercări de autentificare eșuate. @@ -5960,12 +6009,12 @@ Nu vor fi emise alte notificări. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Descărcare automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... + Descărcarea automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... Automatically downloading '%1' torrent from '%2' RSS feed... - Descărcare automată a %1 torrent de la %2 fluxuri RSS... + Descărcare automată a „%1” torrent de la „%2” fluxuri RSS... @@ -5973,29 +6022,7 @@ Nu vor fi emise alte notificări. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Descărcare automată a fluxului RSS „%1” de la „%2” a eșuat deoarece nu conține un torrent sau o legătură magnet... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Descărcare automată a %1 torrent de la %2 fluxuri RSS... - - - - RssParser - - Failed to open downloaded RSS file. - A eșuat deschiderea fișierului RSS descărcat. - - - Invalid RSS feed at '%1'. - Flux RSS nevalid la „%1”. + Flux RSS nevalid. @@ -6026,22 +6053,22 @@ Nu vor fi emise alte notificări. Watch Folder - + Urmărește dosarul Default Folder - + Dosar implicit Browse... - Răsfoire... + Răsfoire... Choose save path - Alegeți calea de salvare + Alegeți calea de salvare @@ -6049,12 +6076,12 @@ Nu vor fi emise alte notificări. Watch Folder - + Urmărește dosarul Default Folder - + Dosar implicit @@ -6064,199 +6091,87 @@ Nu vor fi emise alte notificări. Save Files to - - - - Download here - Descarcă aici - - - Download path - Cale descărcare - - - - SearchCategories - - All categories - Toate categoriile - - - Movies - Filme artistice - - - TV shows - Filme seriale - - - Music - Muzică - - - Games - Jocuri - - - Anime - Animații - - - Software - Aplicații - - - Pictures - Imagini - - - Books - Cărți + Salvează fișierele în SearchEngine - - Search - Caută - - - Please install Python to use the Search Engine. - Instalați Python pentru a putea utiliza Motorul de Căutare. - - - Empty search pattern - Model de căutare gol - - - Please type a search pattern first - Introduceți un model de căutare mai întâi - - - Searching... - Se caută... - - - Stop - Oprește - - - Search Engine - Motor de căutare - - - Search has finished - Căutarea s-a finalizat - - - An error occurred during search... - A apărut o eroare în timpul căutării... - - - Search aborted - Căutarea a fost abandonată - - - All enabled - Toate activate - - - All engines - Toate motoarele - - - Multiple... - Multiple... - - - Results <i>(%1)</i>: - i.e: Search results - Rezultate <i>(%1)</i>: - - - Search returned no results - Căutarea nu a întors niciun rezultat - - - Stopped - Oprită - Unknown search engine plugin file format. - + Format fișier necunoscut pentru modul motor de căutare. A more recent version of this plugin is already installed. - + O versiune mai recentă a acestui modul este deja instalată. Plugin is not supported. - + Modulul nu este compatibil. Update server is temporarily unavailable. %1 - + Serverul de actualizări este temporat indisponibil. %1 Failed to download the plugin file. %1 - + Descărcarea fișierului modulului a eșuat. %1 An incorrect update info received. - + A fost primită o informație greșită de actualizare. All categories - Toate categoriile + Toate categoriile Movies - Filme artistice + Filme artistice TV shows - Filme seriale + Filme seriale Music - Muzică + Muzică Games - Jocuri + Jocuri Anime - Animații + Anime Software - Aplicații + Aplicații Pictures - Imagini + Imagini Books - Cărți + Cărți @@ -6305,124 +6220,124 @@ Nu vor fi emise alte notificări. - - - + + + Search - + Caută Status: - Stare: + Stare: - + Stopped - + Oprită Download - Descarcă + Descarcă Go to description page - Mergi la pagina cu descrierea + Mergi la pagina cu descrierea Copy description page URL - Copiază URL-ul paginii cu descrierea + Copiază adresa paginii cu descrierea Search plugins... - + Module de căutare... - + All enabled - Toate activate - - - - All plugins - + Toate activate - + All plugins + Toate modulele + + + + Multiple... - Multiple... + Multiple... - - - + + + Search Engine - Motor de căutare + Motor de căutare - + Please install Python to use the Search Engine. - Instalați Python pentru a putea utiliza Motorul de Căutare. + Instalați Python pentru a utiliza motorul de căutare. - + Empty search pattern - Model de căutare gol + Model de căutare gol - + Please type a search pattern first - Introduceți un model de căutare mai întâi + Introduceți un model de căutare mai întâi - - + + Results <i>(%1)</i>: i.e: Search results - Rezultate <i>(%1)</i>: - - - - Searching... - Se caută... + Rezultate <i>(%1)</i>: + Searching... + Se caută... + + + Stop - Oprește + Oprește - - + + Search has finished - Căutarea s-a finalizat + Căutarea s-a finalizat - - + + Search aborted - Căutarea a fost abandonată + Căutarea a fost abandonată - + Search returned no results - Căutarea nu a întors niciun rezultat + Căutarea nu a întors niciun rezultat - + Search has failed - + Căutarea a eșuat - + An error occurred during search... - A apărut o eroare în timpul căutării... + A apărut o eroare în timpul căutării... @@ -6521,12 +6436,12 @@ Nu vor fi emise alte notificări. Tracker Upload - Încărcare tracker + Încărcare urmăritor Tracker Download - Descărcare tracker + Descărcare urmăritor @@ -6604,12 +6519,12 @@ Nu vor fi emise alte notificări. Tracker Upload - Încărcare tracker + Încărcare urmăritor Tracker Download - Descărcare tracker + Descărcare urmăritor @@ -6886,11 +6801,7 @@ Nu vor fi emise alte notificări. Download Priority - - - - Priority - Prioritate + Prioritate descărcare @@ -7106,7 +7017,7 @@ Nu vor fi emise alte notificări. Tracker - Tracker + Urmăritor @@ -7204,7 +7115,7 @@ Nu vor fi emise alte notificări. Trackerless (0) - Fără tracker (0) + Fără urmăritor (0) @@ -7220,7 +7131,7 @@ Nu vor fi emise alte notificări. Trackerless (%1) - Fără tracker (%1) + Fără urmăritor (%1) @@ -7244,12 +7155,12 @@ Nu vor fi emise alte notificări. Couldn't decode favicon for URL '%1'. Trying to download favicon in PNG format. - Nu s-a putut decodifica favicon-ul pentru URL-ul „%1”. Se încearcă descărcarea lui în formatul PNG. + Nu s-a putut decoda pictograma de favorite (favicon) pentru URL-ul „%1”. Se încearcă descărcarea ei în formatul PNG. Couldn't decode favicon for URL '%1'. - Nu s-a putut decodifica favicon-ul pentru URL-ul „%1”. + Nu s-a putut decoda pictograma de favorite (favicon) pentru URL-ul „%1”. @@ -7335,58 +7246,58 @@ Nu vor fi emise alte notificări. Tracker URL: - URL tracker: + URL urmăritor: Tracker editing - Editare tracker + Editare urmăritor Tracker editing failed - Editarea tracker-ului a eșuat + Editarea urmăritorului a eșuat The tracker URL entered is invalid. - URL-ul tracker-ului este nevalid. + URL-ul urmăritorului nu este valid. The tracker URL already exists. - URL-ul tracker-ului există deja. + URL-ul urmăritorului există deja. Add a new tracker... - Adaugă un nou tracker... + Adăugare urmăritor nou... Copy tracker URL - Copiază URL-ul tracker-ului + Copiază URL-ul urmăritorului Edit selected tracker URL - Editează URL-ul tracker-ului selectat + Editează URL-ul urmăritorului selectat Force reannounce to selected trackers - Forțează reanunțarea tracker-elor selectate + Forțează reanunțarea urmăritoarelor selectate Force reannounce to all trackers - Forțează reanunțarea tuturor tracker-elor + Forțează reanunțarea tuturor urmăritoarelor Remove tracker - Elimină tracker + Elimină urmăritorul @@ -7394,12 +7305,12 @@ Nu vor fi emise alte notificări. Trackers addition dialog - Dialog adăugare trackere + Dialog adăugare urmăritoare List of trackers to add (one per line): - Listă trackere de adăugat (unul pe linie): + Listă urmăritoare de adăugat (unul per linie): @@ -7424,7 +7335,7 @@ Nu vor fi emise alte notificări. No additional trackers were found. - Niciun tracker adițional găsit. + Niciun urmăritor adițional găsit. @@ -7434,7 +7345,7 @@ Nu vor fi emise alte notificări. The trackers list could not be downloaded, reason: %1 - Lista de trackere nu a putut fi descărcată, motivul: %1 + Lista de urmăritoare nu a putut fi descărcată, motivul: %1 @@ -7448,7 +7359,7 @@ Nu vor fi emise alte notificări. Downloading metadata used when loading a magnet link - Se descarcă metainformația + Se descarcă metadatele @@ -7553,7 +7464,7 @@ Nu vor fi emise alte notificări. Trackers - Trackere + Urmăritoare @@ -7817,7 +7728,7 @@ Nu vor fi emise alte notificări. Bug Tracker: - Sistem de urmărire a defecțiunilor: + Urmăritor defecțiuni: @@ -7854,12 +7765,12 @@ Nu vor fi emise alte notificări. Tracker authentication - Autentificare tracker + Autentificare urmăritor Tracker: - Tracker: + Urmăritor: @@ -7940,7 +7851,7 @@ Nu vor fi emise alte notificări. Tracker URLs: - URL-uri Tracker: + URL-uri urmăritor: @@ -7956,7 +7867,7 @@ Nu vor fi emise alte notificări. You can separate tracker tiers / groups with an empty line. A tracker tier is a group of trackers, consisting of a main tracker and its mirrors. - Puteți separa niveluri/grupuri de trackere cu o linie goală. + Puteți separa nivelurile/grupurile de urmăritoare cu o linie goală. @@ -8087,161 +7998,6 @@ Nu vor fi emise alte notificări. Introduceți măcar un URL. - - engineSelect - - Search plugins - Extensii de căutare - - - Installed search engines: - Motoare de căutare instalate: - - - Name - Nume - - - Version - Versiune - - - Url - URL - - - Enabled - Activat - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Puteți să obțineți noi extensii pentru motoare de căutare aici: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Instalează unul nou - - - Check for updates - Caută actualizări - - - Close - Închide - - - Uninstall - Dezinstalează - - - - engineSelectDlg - - Uninstall warning - Atenționare la dezinstalare - - - Uninstall success - Dezinstalare cu succes - - - Invalid plugin - Modul nevalid - - - The search engine plugin is invalid, please contact the author. - Modulul motorului de căutare nu este valid, încercați să contactați autorul. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - O versiune mai recentă a extensiei motor de căutare „%1” este deja instalată. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Extensia motor de căutare „%1” nu a putut fi actualizată, se păstrează versiunea anterioară. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Extensia motor de căutare „%1” nu a putut fi instalată. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Extensia motor de căutare „%1” a fost actualizată cu succes. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Extensia motor de căutare „%1” a fost instalată cu succes. - - - The link doesn't seem to point to a search engine plugin. - Legătura nu pare a indica spre o extensie motor de căutare. - - - Select search plugins - Alegeți extensiile de căutare - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Instalarea extensiei de căutare „%1” a eșuat. - - - Search plugin install - Instalare extensie de căutare - - - Yes - Da - - - No - Nu - - - qBittorrent search plugin - Extensie de căutare qBittorrent - - - Search plugin update - Actualizare extensie de căutare - - - Sorry, update server is temporarily unavailable. - Ne pare rău, serverul de actualizări este temporar indisponibil. - - - All your plugins are already up to date. - Toate extensiile sunt deja actualizate. - - - All selected plugins were uninstalled successfully - Toate extensiile selectate au fost dezinstalate cu succes - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Unele extensii nu au putut fi dezinstalate deoarece vin incluse în qBittorrent. -Doar cele pe care le-ați adăugat manual pot fi dezinstalate. -Cu toate acestea, acele extensii au fost dezactivate. - - - Invalid link - Legătură nevalidă - - - New search engine plugin URL - URL nou pentru extensia motor de căutare - - - URL: - URL: - - errorDialog @@ -8320,7 +8076,7 @@ Cu toate acestea, acele extensii au fost dezactivate. %1d %2h e.g: 2days 10hours - %1z %2h + %1z %2o @@ -8369,192 +8125,173 @@ Cu toate acestea, acele extensii au fost dezactivate. options_imp - - + + Choose export directory Alegeți un director pentru export - - - - + + + + Choose a save directory Alegeți un director pentru salvare - + Add directory to scan Adăugați director de scanat - + Supported parameters (case sensitive): Parametrii suportați (sensibil la majuscule): - + %N: Torrent name %N: Nume torrent - + %L: Label %L: Etichetă - + %F: Content path (same as root path for multifile torrent) %F: Cale conținut (aceeași cu calea rădăcină pentru torrent cu mai multe fișiere) - + %R: Root path (first torrent subdirectory path) %R: Cale rădăcină (cale subdirector a primului torrent) - + %D: Save path %D: Cale de salvare - + %C: Number of files %C: Număr de fișiere - + %Z: Torrent size (bytes) %Z: Dimensiune torrent (octeți) - + %T: Current tracker - %T: Tracker curent + %T: Urmăritor curent - + %I: Info hash %I: Informații indexare - + Folder is already being watched. Dosarul este deja sub supraveghere. - + Folder does not exist. Dosarul nu există. - + Folder is not readable. Dosarul nu poate fi citit. - + Failure Eșec - + Failed to add Scan Folder '%1': %2 Eșec la adăugarea dosarului scanat „%1”: %2 - - + + Filters Filtre - - + + Choose an IP filter file Alegeți un fișier de filtru IP - + SSL Certificate Certificat SSL - + SSL Key Cheie SSL - + Parsing error Eroare analizare - + Failed to parse the provided IP filter A eșuat analiza filtrului IP furnizat - + Successfully refreshed Reîmprospătat cu succes - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number S-a analizat cu succes filtrul IP furnizat: %1 reguli au fost aplicate. - + Invalid key Cheie nevalidă - + This is not a valid SSL key. Aceasta nu este o cheie SSL validă. - + Invalid certificate Certificat nevalid - + This is not a valid SSL certificate. Acesta nu este un certificat SSL valid. - + The start time and the end time can't be the same. Timpul de pornire și timpul de încheiere nu pot fi același. - + Time Error Eroare timp - - pluginSourceDlg - - Plugin source - Sursă extensie - - - Search plugin source: - Sursă extensie de căutare: - - - Local file - Fișier local - - - Web link - Legătură Web - - preview @@ -8578,35 +8315,4 @@ Cu toate acestea, acele extensii au fost dezactivate. Renunță - - search_engine - - Search - Căutare - - - Status: - Stare: - - - Stopped - Oprit - - - Download - Descarcă - - - Go to description page - Mergi la pagina cu descrierea - - - Copy description page URL - Copiază URL-ul paginii cu descrierea - - - Search engines... - Motoare de căutare... - - diff --git a/src/lang/qbittorrent_ru.ts b/src/lang/qbittorrent_ru.ts index bbc2e305a..40b5f7ac1 100644 --- a/src/lang/qbittorrent_ru.ts +++ b/src/lang/qbittorrent_ru.ts @@ -506,7 +506,7 @@ Use system icon theme - Использовать системные иконки + Использовать системные значки @@ -540,7 +540,7 @@ This is a security risk, please consider changing your password from program preferences. - Это небезопасно, пожалуйста, измените Ваш пароль в настройках программы. + Это небезопасно, пожалуйста, измените свой пароль в настройках программы. @@ -685,7 +685,7 @@ Episode number is a mandatory non-zero value - Номер эпизода должен быть ненулевым + Номер эпизода должен иметь ненулевое значение @@ -812,7 +812,7 @@ Failed to import the selected rules file - Ошибка импортирования выбранного файла правил + Не удалось импортировать выбранный файл правил @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID пира: - + HTTP User-Agent is '%1' HTTP User-Agent: %1 - + Anonymous mode [ON] Анонимный режим [Вкл] - + Anonymous mode [OFF] Анонимный режим [Выкл] - + PeX support [ON] Поддержка PeX [Вкл] - + PeX support [OFF] Поддержка PeX [Выкл] - + Restart is required to toggle PeX support Необходим перезапуск для включения поддержки PeX - + Local Peer Discovery support [ON] Обнаружение локальных пиров [Вкл] - + Local Peer Discovery support [OFF] Обнаружение локальных пиров [Выкл] - + Encryption support [ON] Поддержка шифрования [Вкл] - + Encryption support [FORCED] Поддержка шифрования [Принудительно] - + Encryption support [OFF] Поддержка шифрования [Выкл] - + Embedded Tracker [ON] Встроенный трекер [Вкл] - + Failed to start the embedded tracker! Не удалось запустить встроенный трекер! - + Embedded Tracker [OFF] Встроенный трекер [Выкл] - + '%1' reached the maximum ratio you set. Removing... '%1' достиг установленного Вами максимального коэффициента. Удаление… - + '%1' reached the maximum ratio you set. Pausing... '%1' достиг установленного Вами максимального коэффициента. Приостановка… - + System network status changed to %1 e.g: System network status changed to ONLINE Системный сетевой статус сменился на %1 - + ONLINE В СЕТИ - + OFFLINE НЕ В СЕТИ - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Настройки сети %1 изменились, обновление привязки сеанса - + Unable to decode '%1' torrent file. Не удалось декодировать торрент-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - Рекурсивная загрузка файла '%1' встроена в торрент '%2' + Рекурсивная загрузка файла '%1', встроенного в торрент '%2' - + Couldn't save '%1.torrent' Не удалось сохранить '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. потому что %1 отключен. - + because %1 is disabled. this peer was blocked because TCP is disabled. потому что %1 отключен. - + URL seed lookup failed for URL: '%1', message: %2 - Поиск адреса раздающего не удался: '%1', сообщение: '%2' + Поиск адреса источника не удался: '%1', сообщение: '%2' - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' был удален из списка торрентов и с жесткого диска. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' был удален из списка торрентов. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Загружается '%1', подождите… - + DHT support [ON] Поддержка DHT [Вкл] - + DHT support [OFF]. Reason: %1 Поддержка DHT [Выкл]. Причина: %1 - + DHT support [OFF] Поддержка DHT [Выкл] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 пытаемся использовать порт %1 - + The network interface defined is invalid: %1 Указанный сетевой интерфейс недоступен: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 пытаемся использовать порт %2 на интерфейсе %1 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on Адрес %1 не найден. Прослушивание недоступно для данного адреса - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - попытка использования порта %1 провалилась. Причина: %2. + Попытка использования порта %1 не удалась. Причина: %2. - + Tracker '%1' was added to torrent '%2' Трекер '%1' добавлен в торрент '%2' - + Tracker '%1' was deleted from torrent '%2' Трекер '%1' удален из торрента '%2' - + URL seed '%1' was added to torrent '%2' Адрес источника '%1' добавлен в торрент '%2' - + URL seed '%1' was removed from torrent '%2' Адрес источника '%1' удален из торрента '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Неудалось возобновить торрент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - Указанный фильтр IP был успешно разобран: %1 правил применено. + Указанный IP-фильтр был успешно разобран: применено %1 правил. - + Error: Failed to parse the provided IP filter. - Ошибка: невозможно разобрать фильтр IP. + Ошибка: не удалось разобрать IP-фильтр. - + Couldn't add torrent. Reason: %1 Не удалось добавить торрент. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) %1 возобновлен (быстрое возобновление) - + '%1' added to download list. 'torrent name' was added to download list. '%1' добавлен в список загрузок. - + An I/O error occurred, '%1' paused. %2 Ошибка ввода/вывода, '%1' приостановлен. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 Распределение портов UPnP/NAT-PMP не удалось с сообщением: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 Распределение портов UPnP/NAT-PMP прошло успешно: %1 - + due to IP filter. this peer was blocked due to ip filter. в соответствии с IP-фильтром. - + due to port filter. this peer was blocked due to port filter. в соответствии с фильтром портов. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - согласно ограничениями смешанного режима i2p. + согласно ограничениям смешанного режима i2p. - + because it has a low port. this peer was blocked because it has a low port. так как они имеют низкий порт. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 порт %2/%3 на интерфейсе %1 успешно занят - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - попытка использования порта %2/%3 на интерфейсе %1 провалилась. Причина: %4. + Попытка использования порта %2/%3 на интерфейсе %1 не удалась. Причина: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Внешний IP: %1 @@ -1219,8 +1219,8 @@ Common keys for cookies are: '%1', '%2'. You should get this information from your Web browser preferences. - Частые ключи для cookies - это '%1' и '%2'. -Вам следует получить эту информацию в настройках Вашего веб-браузера. + Частые ключи для cookies — это '%1' и '%2'. +Вам следует получить эту информацию в настройках браузера. @@ -1278,18 +1278,18 @@ You should get this information from your Web browser preferences. <font color='red'>%1</font> was banned x.y.z.w was banned - <font color='red'>%1</font> был забанен + <font color='red'>%1</font> был заблокирован FeedListWidget - + RSS feeds RSS-каналы - + Unread Непрочитанные @@ -1301,7 +1301,7 @@ You should get this information from your Web browser preferences. I/O Error: Could not open ip filter file in read mode. - Ошибка ввода-вывода: Не удалось открыть файл фильтра IP в режиме чтения. + Ошибка ввода-вывода: Не удалось открыть файл IP-фильтра в режиме чтения. @@ -1378,211 +1378,338 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Загружать торренты по их адресам или magnet-ссылкам - + Only one link per line Только одна ссылка в строке - + Download Загрузить - + Global upload rate limit must be greater than 0 or disabled. Общее ограничение соотношения раздачи должно быть больше 0 или отключено. - + Global download rate limit must be greater than 0 or disabled. Общее ограничение соотношения загрузки должно быть больше 0 или отключено. - + Alternative upload rate limit must be greater than 0 or disabled. Другое ограничение соотношения раздачи должно быть больше 0 или отключено. - + Alternative download rate limit must be greater than 0 or disabled. Другое ограничение соотношения загрузки должно быть больше 0 или отключено. - + Maximum active downloads must be greater than -1. Максимальное число активных загрузок должно быть больше -1. - + Maximum active uploads must be greater than -1. Максимальное число активных раздач должно быть больше -1. - + Maximum active torrents must be greater than -1. Максимальное число активных торрентов должно быть больше -1. - + Maximum number of connections limit must be greater than 0 or disabled. Максимальное число соединений должно быть больше 0 или отключено. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Максимальное число соединений на торрент должно быть больше 0 или отключено. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Максимальное число слотов раздачи на торрент должно быть больше 0 или отключено. - + Unable to save program preferences, qBittorrent is probably unreachable. Невозможно сохранить настройки, возможно, qBittorrent недоступен. - + Language Язык - + The port used for incoming connections must be between 1 and 65535. Порт для входящих соединений должен принимать значения от 1 до 65535. - + The port used for the Web UI must be between 1 and 65535. Порт для для веб-интерфейса должен принимать значения от 1 до 65535. - + Unable to log in, qBittorrent is probably unreachable. Невозможно войти, возможно, qBittorrent недоступен. - + Invalid Username or Password. Неверное имя пользователя или пароль. - + Password Пароль - + Login Войти - + Upload Failed! Загрузка не удалась! - + Original authors Авторы - + Upload limit: Огр. отдачи: - + Download limit: Огр. загрузки: - + Apply Применить - + Add Добавить - + Upload Torrents Раздавать торренты - + All Все - + Downloading Загружается - + Seeding Раздаются - + Completed Завершены - + Resumed Возобновлены - + Paused Приостановлены - + Active Активны - + Inactive Неактивны - + Save files to location: Путь сохранения по умолчанию: - + Label: Метка: - + Cookie: Cookie: - + Type folder here + Укажите папку здесь + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Сохранять файлы в + + + + Watch Folder + Отслеживаемая папка + + + + Default Folder + Стандартная папка + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Другое… + + + + Every day + Schedule the use of alternative rate limits on ... + Каждый день + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Другое… + + + Downloaded Is the file downloaded or not? Загружен @@ -1593,57 +1720,57 @@ You should get this information from your Web browser preferences. Выйти - + Upload local torrent Загрузить локальный торрент - + Are you sure you want to delete the selected torrents from the transfer list? Вы уверены, что хотите удалить выделенные торренты из списка торрентов? - + The Web UI username must be at least 3 characters long. Имя пользователя веб-интерфейса должно быть длиннее 3 символов. - + The Web UI password must be at least 3 characters long. Пароль веб-интерфейса должен быть длиннее 3 символов. - + Save Сохранить - + qBittorrent client is not reachable клиент qBittorrent недоступен - + HTTP Server - HTTP сервер + HTTP-сервер - + The following parameters are supported: Поддерживаются следующие параметры: - + Torrent path Путь торрента - + Torrent name Имя торрента - + qBittorrent has been shutdown. qBittorrent был выключен. @@ -2216,7 +2343,8 @@ Do you want to associate qBittorrent to torrent files and Magnet links? A new version is available. Do you want to download %1? - + Доступна новая версия. +Хотите скачать %1? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. Для использования поисковика требуется Python, но он, видимо, не установлен. - - A new version is available. -Update to version %1? - Доступна новая версия. -Обновиться до версии %1? - No updates available. @@ -2436,7 +2558,7 @@ Are you sure you want to quit qBittorrent? Dynamic DNS error: Your username was blocked due to abuse. - Ошибка динамического DNS: Ваш аккаунт был заблокирован из-за злоупотребления. + Ошибка динамического DNS: Ваша учетная запись была заблокирована из-за злоупотребления. @@ -2489,12 +2611,12 @@ Are you sure you want to quit qBittorrent? Venezuela, Bolivarian Republic of - + Венесуэла Viet Nam - + Вьетнам @@ -2502,14 +2624,6 @@ Are you sure you want to quit qBittorrent? N/A Н/Д - - Asia/Pacific Region - Азиатско-Тихоокеанский регион - - - Europe - Европа - Andorra @@ -2545,10 +2659,6 @@ Are you sure you want to quit qBittorrent? Armenia Армения - - Netherlands Antilles - Нидерландские Антильские острова - Angola @@ -2644,10 +2754,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam Бруней - - Bolivia - Боливия - Brazil @@ -2713,10 +2819,6 @@ Are you sure you want to quit qBittorrent? Switzerland Швейцария - - Cote D'Ivoire - Кот-д'Ивуар - Cook Islands @@ -2760,7 +2862,7 @@ Are you sure you want to quit qBittorrent? Curacao - + Кюрасао @@ -2872,10 +2974,6 @@ Are you sure you want to quit qBittorrent? France Франция - - France, Metropolitan - Метрополия Франции - Gabon @@ -3161,10 +3259,6 @@ Are you sure you want to quit qBittorrent? Latvia Латвия - - Libyan Arab Jamahiriya - Ливия - Morocco @@ -3190,10 +3284,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands Маршалловы Острова - - Macedonia - Македония - Mali @@ -3209,10 +3299,6 @@ Are you sure you want to quit qBittorrent? Mongolia Монголия - - Macau - Макао - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon Сен-Пьер и Микелон - - Pitcairn Islands - Острова Питкэрн - Puerto Rico Пуэрто-Рико - - Palestinian Territory - Палестина - Portugal @@ -3456,10 +3534,6 @@ Are you sure you want to quit qBittorrent? Singapore Сингапур - - Saint Helena - Остров Святой Елены - Slovenia @@ -3578,62 +3652,62 @@ Are you sure you want to quit qBittorrent? Bolivia, Plurinational State of - + Боливия Bonaire, Sint Eustatius and Saba - + Бонэйр, Синт-Эстатиус и Саба Cote d'Ivoire - + Кот-д’Ивуар Libya - + Ливия Saint Martin (French part) - + Сен-Мартен (Франция) Macedonia, The Former Yugoslav Republic of - + Македония Macao - + Макао Pitcairn - + Питкэрн Palestine, State of - + Палестина Saint Helena, Ascension and Tristan da Cunha - + Острова Святой Елены, Вознесения и Тристан-да-Кунья South Sudan - + Южный Судан Sint Maarten (Dutch part) - + Синт-Мартен @@ -3700,10 +3774,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines Сент-Винсент и Гренадины - - Venezuela - Венесуэла - Virgin Islands, British @@ -3714,10 +3784,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. Виргинские Острова, США - - Vietnam - Вьетнам - Vanuatu @@ -3768,18 +3834,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe Зимбабве - - Anonymous Proxy - Анонимный прокси - - - Satellite Provider - Спутниковый провайдер - - - Other - Другое - Aland Islands @@ -3805,10 +3859,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy Сен-Бартелеми - - Saint Martin - Сен-Мартен - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Ошибка оповещения по e-mail: @@ -3992,7 +4042,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + Файлы @@ -4039,7 +4089,7 @@ Are you sure you want to quit qBittorrent? The peers were added to this torrent. - Пиры были добавлен к этому торренту. + Пиры были добавлены к этому торренту. @@ -4098,65 +4148,65 @@ Are you sure you want to quit qBittorrent? Search plugins - Поисковики + Поисковые плагины Installed search plugins: - + Установленные поисковые плагины: Name - Имя + Имя Version - Версия + Версия Url - Ссылка + Ссылка Enabled - Включено + Включено You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Вы можете загрузить новые поисковики с <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Вы можете скачать новые поисковые плагины по адресу: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Установить новый + Установить новый Check for updates - Проверить обновления + Проверить обновления Close - Закрыть + Закрыть Uninstall - Удалить + Удалить Yes - Да + Да @@ -4164,107 +4214,108 @@ Are you sure you want to quit qBittorrent? No - Нет + Нет Uninstall warning - Удаление не выполнено + Предупреждение об удалении Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Некоторые поисковики не могут быть удалены, так как включены в qBittorrent. Удалены могут быть лишь те, что Вы установили сами. -Эти поисковики были отключены. + Некоторые плагины не могут быть удалены, так как включены в qBittorrent. +Удалены могут быть лишь те, что Вы установили сами. +Тем не менее, эти плагины были отключены. Uninstall success - Успешно удалено + Успешно удалено All selected plugins were uninstalled successfully - Все выбранные поисковики были успешно удалены + Все выбранные плагины были успешно удалены New search engine plugin URL - Адрес нового поисковика + URL нового поискового плагина URL: - Адрес: + Адрес: Invalid link - Некорректная ссылка + Некорректная ссылка The link doesn't seem to point to a search engine plugin. - Ссылка не указывает на поисковик. + Ссылка не указывает на поисковый плагин. Select search plugins - Выбрать поисковик + Выбрать поисковые плагины qBittorrent search plugin - Поисковик qBittorrent + Поисковый плагин qBittorrent Search plugin update - Обновление поисковика + Обновление поисковых плагинов All your plugins are already up to date. - Все Ваши поисковики имеют последние версии. + Все Ваши плагины имеют последние версии. Sorry, couldn't check for plugin updates. %1 - + Извините, не удалось проверить наличие обновлений плагинов. %1 Search plugin install - Установка поисковика + Установка поискового плагина "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + Успешно установлен поисковый плагин "%1". Couldn't install "%1" search engine plugin. %2 - + Не удалось установить поисковый плагин "%1". %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + Успешно обновлен поисковый плагин "%1". Couldn't update "%1" search engine plugin. %2 - + Не удалось обновить поисковый плагин "%1". %2 @@ -4272,22 +4323,22 @@ Those plugins were disabled. Plugin source - Исходный код плагина + Исходный код плагина Search plugin source: - Исходный код поисковика: + Код поискового плагина: Local file - Локальный файл + Локальный файл Web link - Ссылка + Ссылка @@ -4587,7 +4638,7 @@ Those plugins were disabled. Tray icon style: - Стиль иконки в трее: + Стиль значка в трее: @@ -4723,7 +4774,7 @@ Those plugins were disabled. SMTP server: - SMTP сервер: + SMTP-сервер: @@ -4773,7 +4824,7 @@ Those plugins were disabled. RSS feeds, search engine, software updates or anything else other than torrent transfers and related operations (such as peer exchanges) will use a direct connection - RSS-подписки, поисковики, программные обновления и прочее, что не относится к передаче торрентов (например, обмен пирами), будет использовать прямое соединение + RSS-каналы, поисковики, обновления программы и прочее, что не относится к передаче торрентов (например, обмен пирами), будут использовать прямое соединение @@ -5025,17 +5076,17 @@ Those plugins were disabled. Путь к фильтрам (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Обнаружено некорректное завершение программы. Производится попытка восстановления настроек из резервной копии. - + An access error occurred while trying to write the configuration file. Ошибка доступа при попытке записи файла конфигурации. - + A format error occurred while trying to write the configuration file. Ошибка формата при попытке записи файла конфигурации. @@ -5333,7 +5384,7 @@ Those plugins were disabled. %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - %1 (раздается в течение %2) + %1 (раздается %2) @@ -5468,9 +5519,9 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. - Ваш IP-адрес был забанен после слишком большого количества неудачных попыток аутентификации. + Ваш IP-адрес был заблокирован после слишком большого количества неудачных попыток аутентификации. @@ -5917,7 +5968,7 @@ No further notices will be issued. Are you sure you want to delete the selected RSS feeds? - Вы уверены, что хотите удалить выбранную подписку RSS? + Вы уверены, что хотите удалить выбранный RSS-канал? @@ -5937,7 +5988,7 @@ No further notices will be issued. This name is already used by another item, please choose another one. - Это имя уже используется. Выберите, пожалуйста, другое. + Это имя уже используется. Пожалуйста, выберите другое. @@ -5960,12 +6011,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Автоматическая загрузка '%1' из RSS-канала '%2' не удалась, потому что он не содержит торрента или магнет-ссылки... + Автоматическая загрузка '%1' из RSS-канала '%2' не удалась, потому что он не содержит торрента или magnet-ссылки... Automatically downloading '%1' torrent from '%2' RSS feed... - Автоматическая загрузка торрента '%1' с RSS-канала '%2'... + Автоматическая загрузка торрента '%1' с RSS-канала '%2'... @@ -5973,29 +6024,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Автоматическая загрузка '%1' из RSS-канала '%2' не удалась, потому что он не содержит торрента или магнет-ссылки... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Автоматическая загрузка торрента '%1' с RSS-канала '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Ошибка при открытии загруженного RSS-файла. - - - Invalid RSS feed at '%1'. - Некорректный RSS-канал '%1'. + Некорректный RSS-канал. @@ -6026,22 +6055,22 @@ No further notices will be issued. Watch Folder - + Отслеживаемая папка Default Folder - + Стандартная папка Browse... - Обзор… + Обзор… Choose save path - Выберите путь сохранения + Выберите путь сохранения @@ -6049,12 +6078,12 @@ No further notices will be issued. Watch Folder - + Отслеживаемая папка Default Folder - + Стандартная папка @@ -6064,199 +6093,87 @@ No further notices will be issued. Save Files to - - - - Download here - Загружать сюда - - - Download path - Папка загрузки - - - - SearchCategories - - All categories - Все категории - - - Movies - Фильмы - - - TV shows - ТВ-шоу - - - Music - Музыка - - - Games - Игры - - - Anime - Аниме - - - Software - Программы - - - Pictures - Изображения - - - Books - Книги + Сохранять файлы в SearchEngine - - Search - Поиск - - - Please install Python to use the Search Engine. - Пожалуйста установите Python для использования поисковика. - - - Empty search pattern - Очистить шаблон поиска - - - Please type a search pattern first - Пожалуйста, задайте сначала шаблон поиска - - - Searching... - Поиск… - - - Stop - Стоп - - - Search Engine - Поисковик - - - Search has finished - Поиск завершен - - - An error occurred during search... - Во время поиска произошла ошибка… - - - Search aborted - Поиск прерван - - - All enabled - Все работающие - - - All engines - Все поисковики - - - Multiple... - Множественный… - - - Results <i>(%1)</i>: - i.e: Search results - Результаты <i>(%1)</i>: - - - Search returned no results - Поиск не дал результатов - - - Stopped - Остановлено - Unknown search engine plugin file format. - + Неизвестный формат файла поискового плагина. A more recent version of this plugin is already installed. - + Уже установлена самая последняя версия этого плагина. Plugin is not supported. - + Плагин не поддерживается. Update server is temporarily unavailable. %1 - + Сервер обновлений временно недоступен. %1 Failed to download the plugin file. %1 - + Не удалось загрузить файл плагина. %1 An incorrect update info received. - + Получена некорректная информация об обновлении. All categories - Все категории + Все категории Movies - Фильмы + Фильмы TV shows - ТВ-шоу + ТВ-шоу Music - Музыка + Музыка Games - Игры + Игры Anime - Аниме + Аниме Software - Программы + Программы Pictures - Изображения + Изображения Books - Книги + Книги @@ -6305,124 +6222,124 @@ No further notices will be issued. - - - + + + Search - Поиск + Поиск Status: - Состояние: + Состояние: - + Stopped - Остановлено + Остановлено Download - Загрузить + Скачать Go to description page - Перейти на страницу описания + Перейти на страницу описания Copy description page URL - Скопировать адрес страницы описания + Скопировать адрес страницы описания Search plugins... - + Поисковые плагины… - + All enabled - Все работающие - - - - All plugins - + Все работающие - + All plugins + Все плагины + + + + Multiple... - Множественный… + Множественный… - - - + + + Search Engine - Поисковик + Поисковик - + Please install Python to use the Search Engine. - Пожалуйста установите Python для использования поисковика. + Пожалуйста, установите Python для использования поисковика. - + Empty search pattern - Очистить шаблон поиска + Очистить шаблон поиска - + Please type a search pattern first - Пожалуйста, задайте сначала шаблон поиска + Пожалуйста, задайте сначала шаблон поиска - - + + Results <i>(%1)</i>: i.e: Search results - Результаты <i>(%1)</i>: - - - - Searching... - Поиск… + Результаты <i>(%1)</i>: + Searching... + Поиск… + + + Stop - Стоп + Стоп - - + + Search has finished - Поиск завершен + Поиск завершен - - + + Search aborted - Поиск прерван + Поиск прерван - + Search returned no results - Поиск не дал результатов + Поиск не дал результатов - + Search has failed - + Поиск не удался - + An error occurred during search... - Во время поиска произошла ошибка… + Во время поиска произошла ошибка… @@ -6739,7 +6656,7 @@ No further notices will be issued. Offline. This usually means that qBittorrent failed to listen on the selected port for incoming connections. - Отключен. Обычно это означает, что qBittorrent не может прослушивать выбранный порт для входящих соединений. + Отключен. Обычно это означает, что qBittorrent не удалось прослушать выбранный порт для входящих соединений. @@ -6886,11 +6803,7 @@ No further notices will be issued. Download Priority - - - - Priority - Приоритет + Приоритет скачивания @@ -7006,12 +6919,12 @@ No further notices will be issued. Please provide the location of '%1' %1 is a file name - Пожалуйста, укажите расположение '%1' + Пожалуйста, укажите путь сохранения '%1' Please point to the location of the torrent: %1 - Укажите расположение торрент-файла: %1 + Пожалуйста, укажите путь сохранения торрент-файла: %1 @@ -7346,7 +7259,7 @@ No further notices will be issued. Tracker editing failed - Ошибка редактирования + Не удалось отредактировать адрес трекера @@ -7529,7 +7442,7 @@ No further notices will be issued. %1 (seeded for %2) e.g. 4m39s (seeded for 3m10s) - %1 (раздавался в течение %2) + %1 (раздается %2) @@ -7660,12 +7573,12 @@ No further notices will be issued. Limit upload rate... - Ограничить скорости раздачи… + Ограничить скорость раздачи… Limit download rate... - Ограничить скорости загрузки… + Ограничить скорость загрузки… @@ -7802,7 +7715,7 @@ No further notices will be issued. An advanced BitTorrent client programmed in <nobr>C++</nobr>, based on Qt toolkit and libtorrent-rasterbar. - Продвинутый BitTorrent-клиент, написанный на <nobr>C++</nobr>. Использует фреймворк Qt и библиотеку libtorrent-rasterbar. + Продвинутый BitTorrent-клиент, написанный на языке <nobr>C++</nobr>. Использует фреймворк Qt и библиотеку libtorrent-rasterbar. @@ -8087,160 +8000,6 @@ No further notices will be issued. Пожалуйста, введите хотя бы одну ссылку. - - engineSelect - - Search plugins - Поисковики - - - Installed search engines: - Установленные поисковики: - - - Name - Имя - - - Version - Версия - - - Url - Ссылка - - - Enabled - Включено - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Вы можете загрузить новые поисковики с <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Установить новый - - - Check for updates - Проверить обновления - - - Close - Закрыть - - - Uninstall - Удалить - - - - engineSelectDlg - - Uninstall warning - Удаление не выполнено - - - Uninstall success - Успешно удалено - - - Invalid plugin - Недопустимый поисковик - - - The search engine plugin is invalid, please contact the author. - Этот поисковик не работает, пожалуйста, свяжитесь с его автором. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Уже установлена последняя версия поисковика '%1'. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Поисковик '%1' не может быть обновлен, остается старая версия. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Поисковик '%1' не может быть установлен. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Поисковик '%1' успешно обновлен. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Поисковик '%1' успешно установлен. - - - The link doesn't seem to point to a search engine plugin. - Ссылка не указывает на поисковик. - - - Select search plugins - Выбрать поисковик - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Извините, установка поисковика '%1' не удалась. - - - Search plugin install - Установка поисковика - - - Yes - Да - - - No - Нет - - - qBittorrent search plugin - Поисковик qBittorrent - - - Search plugin update - Обновление поисковика - - - Sorry, update server is temporarily unavailable. - Извините, сервер обновлений временно недоступен. - - - All your plugins are already up to date. - Все Ваши поисковики имеют последние версии. - - - All selected plugins were uninstalled successfully - Все выбранные поисковики были успешно удалены - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Некоторые поисковики не могут быть удалены, так как включены в qBittorrent. Удалены могут быть лишь те, что Вы установили сами. -Эти поисковики были отключены. - - - Invalid link - Некорректная ссылка - - - New search engine plugin URL - Адрес нового поисковика - - - URL: - Адрес: - - errorDialog @@ -8368,192 +8127,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory Выберите папку для экспорта - - - - + + + + Choose a save directory Выберите путь сохранения - + Add directory to scan Добавить папку для сканирования - + Supported parameters (case sensitive): Поддерживаемые параметры (с учетом регистра): - + %N: Torrent name %N: Имя торрента - + %L: Label %L: Метка - + %F: Content path (same as root path for multifile torrent) %F: Папка содержимого (та же, что и корневая папка для множественных торрентов) - + %R: Root path (first torrent subdirectory path) %R: Корневая папка (главный путь для подкаталога торрента) - + %D: Save path %D: Путь сохранения - + %C: Number of files %C: Количество файлов - + %Z: Torrent size (bytes) %Z: Размер торрента (в байтах) - + %T: Current tracker %T: Текущий трекер - + %I: Info hash %I: Хеш - + Folder is already being watched. Папка уже отслеживается. - + Folder does not exist. Папка не существует. - + Folder is not readable. Папка недоступна для чтения. - + Failure Ошибка - + Failed to add Scan Folder '%1': %2 Не удалось добавить папку для сканирования '%1': %2 - - + + Filters Фильтры - - + + Choose an IP filter file Укажите файл IP-фильтра - + SSL Certificate Сертификат SSL - + SSL Key Ключ SSL - + Parsing error Ошибка разбора - + Failed to parse the provided IP filter - Невозможно разобрать данный IP-фильтр + Не удалось разобрать данный IP-фильтр - + Successfully refreshed Успешно обновлен - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Указанный IP-фильтр был успешно проанализирован. Применено %1 правил. - + Invalid key Недействительный ключ - + This is not a valid SSL key. Это недействительный ключ SSL. - + Invalid certificate Недействительный сертификат - + This is not a valid SSL certificate. Это недействительный сертификат SSL. - + The start time and the end time can't be the same. Время начала и завершения не могут быть одинаковыми. - + Time Error Ошибка времени - - pluginSourceDlg - - Plugin source - Исходный код плагина - - - Search plugin source: - Исходный код поисковика: - - - Local file - Локальный файл - - - Web link - Ссылка - - preview @@ -8577,35 +8317,4 @@ Those plugins were disabled. Отмена - - search_engine - - Search - Поиск - - - Status: - Состояние: - - - Stopped - Остановлено - - - Download - Загрузить - - - Go to description page - Перейти на страницу описания - - - Copy description page URL - Скопировать адрес страницы описания - - - Search engines... - Поисковики… - - diff --git a/src/lang/qbittorrent_sk.ts b/src/lang/qbittorrent_sk.ts index b95ea3454..4f168bd3c 100644 --- a/src/lang/qbittorrent_sk.ts +++ b/src/lang/qbittorrent_sk.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID rovesníka: - + HTTP User-Agent is '%1' HTTP User-Agent je '%1' - + Anonymous mode [ON] Anonymný režim [zapnutý] - + Anonymous mode [OFF] Anonymný režim [vypnutý] - + PeX support [ON] Podpora PeX [zapnutá] - + PeX support [OFF] Podpora PeX [vypnutá] - + Restart is required to toggle PeX support Na zmenenie podpory PeX je potrebný reštart - + Local Peer Discovery support [ON] Podpora Local Peer Discovery [zapnutá] - + Local Peer Discovery support [OFF] Podpora Local Peer Discovery support [vypnutá] - + Encryption support [ON] Podpora šifrovania [zapnutá] - + Encryption support [FORCED] Podpora šifrovania [vynútená] - + Encryption support [OFF] Podpora šifrovania [vypnutá] - + Embedded Tracker [ON] Zabudovaný tracker [zapnutý] - + Failed to start the embedded tracker! Nepodarilo sa spustiť zabudovaný tracker! - + Embedded Tracker [OFF] Zabudovaný tracker [vypnutý] - + '%1' reached the maximum ratio you set. Removing... '%1' dosiahol nastavený maximálny pomer zdieľania. Odstraňujem... - + '%1' reached the maximum ratio you set. Pausing... '%1' dosiahol nastavený maximálny pomer zdieľania. Pozastavujem... - + System network status changed to %1 e.g: System network status changed to ONLINE Stav siete systému sa zmenil na %1 - + ONLINE pripojený - + OFFLINE nepripojený - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Konfigurácia siete %1 sa zmenila, obnovuje sa väzba relácie - + Unable to decode '%1' torrent file. Nepodarilo sa dekódovať torrentový súbor '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurzívne sťahovanie súboru '%1' vnoreného v torrente '%2' - + Couldn't save '%1.torrent' Nepodarilo sa uložiť '%1.torrent'. - + because %1 is disabled. this peer was blocked because uTP is disabled. pretože %1 je zakázané. - + because %1 is disabled. this peer was blocked because TCP is disabled. pretože %1 je zakázané. - + URL seed lookup failed for URL: '%1', message: %2 Vyhľadanie URL seedu zlyhalo pre URL: '%1', správa: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... „%1“ bol odstránený zo zoznamu sťahovaných a z pevného disku. - + '%1' was removed from transfer list. 'xxx.avi' was removed... „%1“ bol odstránený zo zoznamu sťahovaných. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Prebieha sťahovanie „%1“, čakajte prosím... - + DHT support [ON] Podpora DHT [zapnutá] - + DHT support [OFF]. Reason: %1 Podpora DHT [vypnutá]. Dôvod: %1 - + DHT support [OFF] Podpora DHT [vypnutá] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent sa pokúša počúvať na všetkých rozhraniach na porte: %1 - + The network interface defined is invalid: %1 Definované sieťové rozhranie je neplatné: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent sa pokúša počúvať na rozhraní %1 na porte: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent nenašiel lokálnu adresu %1, na ktorej by mohol počúvať - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrentu sa nepodarilo počúvať na žiadnom porte rozhrania: %1. Dôvod: %2. - + Tracker '%1' was added to torrent '%2' Tracker „%1“ bol pridaný do torrentu „%2“ - + Tracker '%1' was deleted from torrent '%2' Tracker „%1“ bol vymazaný z torrentu „%2“ - + URL seed '%1' was added to torrent '%2' URL seed „%1“ bolo pridané do torrentu „%2“ - + URL seed '%1' was removed from torrent '%2' URL seed „%1“ bolo vymazané z torrentu „%2“ - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Nepodarilo sa obnoviť torrent „%1“. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Zadaný filter IP bol úspešne spracovaný: %1 pravidiel bolo použitých. - + Error: Failed to parse the provided IP filter. Chyba: Nepodarilo sa spracovať zadaný filter IP. - + Couldn't add torrent. Reason: %1 Nepodarilo sa pridať torrent. Dôvod: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) „%1“ bol obnovený. (rýchle obnovenie) - + '%1' added to download list. 'torrent name' was added to download list. „%1“ bol pridaný do zoznamu na sťahovanie. - + An I/O error occurred, '%1' paused. %2 Vyskytla sa V/V chyba, „%1“ je pozastavené. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Zlyhanie mapovania portov, správa: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Mapovanie portov úspešné, správa: %1 - + due to IP filter. this peer was blocked due to ip filter. v dôsledku filtra IP. - + due to port filter. this peer was blocked due to port filter. v dôsledku filtra portov. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. v dôsledku i2p reštrikcií zmiešaného módu. - + because it has a low port. this peer was blocked because it has a low port. pretože má nízky port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent úspešne počúva na rozhraní %1 na porte: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrentu sa nepodarilo počúvať na rozhraní %1 na porte: %2/%3. Dôvod: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Externá IP: %1 @@ -1284,13 +1284,13 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača FeedListWidget - + RSS feeds RSS kanály - + Unread Neprečítané @@ -1379,211 +1379,334 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Stiahnuť torrenty z ich URL alebo Magnet odkazu - + Only one link per line Iba jeden odkaz na riadok - + Download Stiahnuť - + Global upload rate limit must be greater than 0 or disabled. Globálne obmedzenie na rýchlosť nahrávania musí byť väčšie ako 0 alebo vypnuté. - + Global download rate limit must be greater than 0 or disabled. Globálne obmedzenie na rýchlosť sťahovania musí byť väčšie ako 0 alebo vypnuté. - + Alternative upload rate limit must be greater than 0 or disabled. Alternatívne obmedzenie na rýchlosť nahrávania musí byť väčšie ako 0 alebo vypnuté. - + Alternative download rate limit must be greater than 0 or disabled. Alternatívne obmedzenie na rýchlosť sťahovania musí byť väčšie ako 0 alebo vypnuté. - + Maximum active downloads must be greater than -1. Maximálny počet aktívnych sťahovaní musí byť väčší ako -1. - + Maximum active uploads must be greater than -1. Maximálny počet aktívnych nahrávaní musí byť väčší ako -1. - + Maximum active torrents must be greater than -1. Maximálny počet aktívnych torrentov musí byť väčší ako -1. - + Maximum number of connections limit must be greater than 0 or disabled. Maximálny počet spojení musí byť väčší ako 0 alebo vypnutý. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Maximálny počet spojení na torrent musí byť väčší ako 0 alebo vypnutý. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Maximálny počet nahrávacích pozící musí byť väčší ako 0 alebo vypnutý. - + Unable to save program preferences, qBittorrent is probably unreachable. Nepodarilo sa uložiť nastavenia programu, qBittorrent je pravdepodobne nedostupný. - + Language Jazyk - + The port used for incoming connections must be between 1 and 65535. Port pre prichádzajúce spojenia musí byť medzi 1 a 65535. - + The port used for the Web UI must be between 1 and 65535. Port pre webové rozhranie musí byť medzi 1 a 65535. - + Unable to log in, qBittorrent is probably unreachable. Nepodarilo sa prihlásiť, qBittorrent je pravdepodobne nedosiahnuteľný. - + Invalid Username or Password. Nesprávne užívateľské meno alebo heslo. - + Password Heslo - + Login Prihlasovacie meno - + Upload Failed! Nahrávanie zlyhalo! - + Original authors Pôvodní autori - + Upload limit: Limit pre nahrávanie: - + Download limit: Limit na sťahovanie: - + Apply Použiť - + Add Pridať - + Upload Torrents Nahrať torrenty - + All Všetky - + Downloading Sťahuje sa - + Seeding Seeduje sa - + Completed Dokončené - + Resumed Obnovené - + Paused Pozastavené - + Active Aktívne - + Inactive Neaktívne - + Save files to location: Uložiť súbory do priečinka: - + Label: Označenie: - + Cookie: Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Každý deň + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Stiahnuté @@ -1594,57 +1717,57 @@ Túto informáciu by ste mali zistiť z nastavení svojho webového prehliadača Odhlásenie - + Upload local torrent Nahrať lokálny torrent - + Are you sure you want to delete the selected torrents from the transfer list? Ste si istý, že chcete zmazať vybrané torrenty zo zoznamu prenosov? - + The Web UI username must be at least 3 characters long. Používateľské meno pre webové rozhranie musí mať dĺžku aspoň 3 znaky. - + The Web UI password must be at least 3 characters long. Heslo pre webové rozhranie musí mať dĺžku aspoň 3 znaky. - + Save Uložiť - + qBittorrent client is not reachable Klient qBittorrent nie je dostupný - + HTTP Server HTTP server - + The following parameters are supported: Nasledovné parametre sú podporované: - + Torrent path Cesta k torrentu - + Torrent name Názov torrentu - + qBittorrent has been shutdown. qBittorrent bol ukončený. @@ -2282,12 +2405,6 @@ Chcete ho inštalovať teraz? Python is required to use the search engine but it does not seem to be installed. Na použitie vyhľadávačov je potrebný Python, zdá sa však, že nie je nainštalovaný. - - A new version is available. -Update to version %1? - Nová verzia je dostupná. -Prajete si aktualizovať na verziu %1? - No updates available. @@ -2503,14 +2620,6 @@ Ste si istý, že chcete ukončiť Bittorrent? N/A Neuvedené - - Asia/Pacific Region - Ázia/Tichomorie - - - Europe - Európa - Andorra @@ -2546,10 +2655,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Armenia Arménsko - - Netherlands Antilles - Holandské Antily - Angola @@ -2645,10 +2750,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Brunei Darussalam Brunej - - Bolivia - Bolívia - Brazil @@ -2714,10 +2815,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Switzerland Švajčiarsko - - Cote D'Ivoire - Pobrežie slonoviny - Cook Islands @@ -2873,10 +2970,6 @@ Ste si istý, že chcete ukončiť Bittorrent? France Francúzsko - - France, Metropolitan - Metropolitné Francúzsko - Gabon @@ -3162,10 +3255,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Latvia Lotyšsko - - Libyan Arab Jamahiriya - Líbya - Morocco @@ -3191,10 +3280,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Marshall Islands Marshallove ostrovy - - Macedonia - Macedónsko - Mali @@ -3210,10 +3295,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Mongolia Mongolsko - - Macau - Macau - Northern Mariana Islands @@ -3374,19 +3455,11 @@ Ste si istý, že chcete ukončiť Bittorrent? Saint Pierre and Miquelon Saint Pierre a Miquelon - - Pitcairn Islands - Pitcairnove ostrovy - Puerto Rico Portoriko - - Palestinian Territory - Palestínske okupované územia - Portugal @@ -3457,10 +3530,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Singapore Singapur - - Saint Helena - Svätá Helena - Slovenia @@ -3701,10 +3770,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Saint Vincent and the Grenadines Svätý Vincent a Grenadíny - - Venezuela - Venezuela - Virgin Islands, British @@ -3715,10 +3780,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Virgin Islands, U.S. Panenské ostrovy, U.S.A - - Vietnam - Vietnam - Vanuatu @@ -3769,18 +3830,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Zimbabwe Zimbabwe - - Anonymous Proxy - Anonymný proxy - - - Satellite Provider - Satelitný poskytovateľ - - - Other - Iné - Aland Islands @@ -3806,10 +3855,6 @@ Ste si istý, že chcete ukončiť Bittorrent? Saint Barthelemy Svätý Bartolomej - - Saint Martin - Svätý Martin - Could not uncompress GeoIP database file. @@ -3847,7 +3892,7 @@ Ste si istý, že chcete ukončiť Bittorrent? Net::Smtp - + Email Notification Error: Chyba emailovej notfikácie: @@ -4099,7 +4144,7 @@ Ste si istý, že chcete ukončiť Bittorrent? Search plugins - Zásuvné moduly vyhľadávania + @@ -4114,43 +4159,43 @@ Ste si istý, že chcete ukončiť Bittorrent? Version - Verzia + Url - Url + Enabled - Zapnuté + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nové zásuvné moduly vyhľadávačov nájdete tu: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Nainštalovať nový + Check for updates - Skontrolovať aktualizácie + Close - Zatvoriť + Uninstall - Odinštalovať + @@ -4170,68 +4215,67 @@ Ste si istý, že chcete ukončiť Bittorrent? Uninstall warning - Upozornenie o odstránení + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Niektoré zásuvné moduly nebolo možné odstrániť, pretože sú súčasťou aplikácie qBittorrent. Odinštalované môžu byť iba tie, ktoré ste pridali sami. -Tieto moduly však boli vypnuté. + Uninstall success - Odstránenie prebehlo úspešne + All selected plugins were uninstalled successfully - Všetky zvolené zásuvné moduly boli úspešne odinštalované + New search engine plugin URL - URL zásuvného modulu nového vyhľadávača + URL: - URL: + Invalid link - Neplatný odkaz + The link doesn't seem to point to a search engine plugin. - Zdá sa, že odkaz nesmeruje na zásuvný modul vyhľadávača. + Select search plugins - Zvoliť zásuvné moduly vyhľadávačov + qBittorrent search plugin - Vyhľadávacie zásuvné moduly pre qBittorrent + Search plugin update - Aktualizácia zásuvného modulu vyhľadávača + All your plugins are already up to date. - Všetky vaše vyhľadávacie zásuvné moduly sú už aktuálne. + @@ -4243,7 +4287,7 @@ Tieto moduly však boli vypnuté. Search plugin install - Inštalácia zásuvného modulu vyhľadávača + @@ -4273,22 +4317,22 @@ Tieto moduly však boli vypnuté. Plugin source - Zdroj zásuvného modulu + Search plugin source: - Zdroj zásuvného modulu vyhľadávača: + Local file - Lokálny súbor + Web link - Webový odkaz + @@ -5026,17 +5070,17 @@ Tieto moduly však boli vypnuté. Cesta k filtrom (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Bolo zistené nesprávne ukončenie programu. Nastavenia sa obnovia zo záložného súboru. - + An access error occurred while trying to write the configuration file. Pri pokuse zapísať konfiguračný súbor sa vyskytla chyba prístupu. - + A format error occurred while trying to write the configuration file. Pri pokuse zapísať konfiguračný súbor sa vyskytla chyba formátu. @@ -5469,7 +5513,7 @@ Tieto moduly však boli vypnuté. QObject - + Your IP address has been banned after too many failed authentication attempts. Vaša IP adresa bola zakázaná kvôli príliš veľkému počtu neúspešných pokusov o prihlásenie. @@ -5962,12 +6006,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatické sťahovanie '%1' z z RSS kanála '%2' zlyhalo, pretože neobsahuje torrent ani magnetický odkaz. + Automatically downloading '%1' torrent from '%2' RSS feed... - Automaticky sa sťahuje torrent '%1' z RSS kanála '%2'... + @@ -5978,28 +6022,6 @@ No further notices will be issued. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Automatické sťahovanie '%1' z z RSS kanála '%2' zlyhalo, pretože neobsahuje torrent ani magnetický odkaz. - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Automaticky sa sťahuje torrent '%1' z RSS kanála '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Nepodarilo sa otvoriť stiahnutý súbor RSS. - - - Invalid RSS feed at '%1'. - Neplatný kanál RSS na '%1'. - - RssSettingsDlg @@ -6068,121 +6090,9 @@ No further notices will be issued. Save Files to - - Download here - Stiahnuť sem - - - Download path - Cesta pre stiahnutie - - - - SearchCategories - - All categories - Všetky kategórie - - - Movies - Filmy - - - TV shows - TV relácie - - - Music - Hudba - - - Games - Hry - - - Anime - Anime - - - Software - Softvér - - - Pictures - Obrázky - - - Books - Knihy - SearchEngine - - Search - Vyhľadávanie - - - Please install Python to use the Search Engine. - Nainštalujte prosím Python pre používanie vyhľadávačov. - - - Empty search pattern - Prázdny vyhľadávací vzor - - - Please type a search pattern first - Prosím, najprv zadajte vyhľadávací vzor - - - Searching... - Hľadá sa... - - - Stop - Zastaviť - - - Search Engine - Vyhľadávač - - - Search has finished - Hľadanie skončené - - - An error occurred during search... - Počas vyhľadávania sa vyskytla chyba... - - - Search aborted - Vyhľadávanie preušené - - - All enabled - Všetky povolené - - - All engines - Všetky vyhľadávače - - - Multiple... - Ďalšie... - - - Results <i>(%1)</i>: - i.e: Search results - Výsledky <i>(%1)</i>: - - - Search returned no results - Vyhľadávanie nevrátilo žiadne výsledky - - - Stopped - Zastavené - Unknown search engine plugin file format. @@ -6218,47 +6128,47 @@ No further notices will be issued. All categories - Všetky kategórie + Movies - Filmy + TV shows - TV relácie + Music - Hudba + Games - Hry + Anime - Anime + Software - Softvér + Pictures - Obrázky + Books - Knihy + @@ -6307,20 +6217,20 @@ No further notices will be issued. - - - + + + Search Vyhľadávanie Status: - Stav: + - + Stopped @@ -6332,12 +6242,12 @@ No further notices will be issued. Go to description page - Prejsť na stránku popisu + Copy description page URL - Skopíruj URL stránky popisu + @@ -6345,86 +6255,86 @@ No further notices will be issued. - + All enabled - Všetky povolené - - - - All plugins - + All plugins + + + + + Multiple... - Ďalšie... + - - - + + + Search Engine - Vyhľadávač + - + Please install Python to use the Search Engine. - Nainštalujte prosím Python pre používanie vyhľadávačov. + - + Empty search pattern - Prázdny vyhľadávací vzor + - + Please type a search pattern first - Prosím, najprv zadajte vyhľadávací vzor + - - + + Results <i>(%1)</i>: i.e: Search results - Výsledky <i>(%1)</i>: - - - - Searching... - Hľadá sa... + + Searching... + + + + Stop - Zastaviť + - - + + Search has finished - Hľadanie skončené + - - + + Search aborted - Vyhľadávanie preušené + - + Search returned no results - Vyhľadávanie nevrátilo žiadne výsledky + - + Search has failed - + An error occurred during search... - Počas vyhľadávania sa vyskytla chyba... + @@ -6890,10 +6800,6 @@ No further notices will be issued. Download Priority - - Priority - Priorita - TorrentCreatorDlg @@ -8089,160 +7995,6 @@ No further notices will be issued. Prosím, napíšte aspoň jedno URL. - - engineSelect - - Search plugins - Zásuvné moduly vyhľadávania - - - Installed search engines: - Nainštalované vyhľadávače: - - - Name - Názov - - - Version - Verzia - - - Url - Url - - - Enabled - Zapnuté - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nové zásuvné moduly vyhľadávačov nájdete tu: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Nainštalovať nový - - - Check for updates - Skontrolovať aktualizácie - - - Close - Zatvoriť - - - Uninstall - Odinštalovať - - - - engineSelectDlg - - Uninstall warning - Upozornenie o odstránení - - - Uninstall success - Odstránenie prebehlo úspešne - - - Invalid plugin - Neplatný prídavný modul - - - The search engine plugin is invalid, please contact the author. - Prídavný modul pre vyhľadávanie nie je platný, kontaktujte prosím autora. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Novšia verzia zásuvného modulu vyhľadávača '%1' je už nainštalovaná. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' nebolo možné aktualizovať, ponechávam starú verziu. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' nebolo možné inštalovať. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' bol úspešne aktualizovaný. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Zásuvný modul vyhľadávača '%1' bol úspešne nainštalovaný. - - - The link doesn't seem to point to a search engine plugin. - Zdá sa, že odkaz nesmeruje na zásuvný modul vyhľadávača. - - - Select search plugins - Zvoliť zásuvné moduly vyhľadávačov - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Inštalácia vyhľadávacieho zásuvného modulu '%1' sa nepodarila. - - - Search plugin install - Inštalácia zásuvného modulu vyhľadávača - - - Yes - Áno - - - No - Nie - - - qBittorrent search plugin - Vyhľadávacie zásuvné moduly pre qBittorrent - - - Search plugin update - Aktualizácia zásuvného modulu vyhľadávača - - - Sorry, update server is temporarily unavailable. - Je mi ľúto, aktualizačný server je dočasne nedostupný. - - - All your plugins are already up to date. - Všetky vaše vyhľadávacie zásuvné moduly sú už aktuálne. - - - All selected plugins were uninstalled successfully - Všetky zvolené zásuvné moduly boli úspešne odinštalované - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Niektoré zásuvné moduly nebolo možné odstrániť, pretože sú súčasťou aplikácie qBittorrent. Odinštalované môžu byť iba tie, ktoré ste pridali sami. -Tieto moduly však boli vypnuté. - - - Invalid link - Neplatný odkaz - - - New search engine plugin URL - URL zásuvného modulu nového vyhľadávača - - - URL: - URL: - - errorDialog @@ -8370,192 +8122,173 @@ Tieto moduly však boli vypnuté. options_imp - - + + Choose export directory Vyberte adresár, kde sa bude exportovať - - - - + + + + Choose a save directory Vyberte adresár, kde sa bude ukladať - + Add directory to scan Vyberte adresár, ktorý sa bude prehliadať - + Supported parameters (case sensitive): Podporované voľby (citlivé na veľkosť písmen) - + %N: Torrent name %N: Názov torrentu - + %L: Label %L: Označenie - + %F: Content path (same as root path for multifile torrent) %F: Cesta k obsahu (rovnaká ako koreňová cesta k torrentu s viacerými súbormi) - + %R: Root path (first torrent subdirectory path) %R: Koreňová cesta (cesta prvého podadresára torrentu) - + %D: Save path %D: Uložiť do - + %C: Number of files %C: Počet súborov - + %Z: Torrent size (bytes) %Z: Veľkosť torrentu (v bajtoch) - + %T: Current tracker %T: Aktuálny tracker - + %I: Info hash %I: Haš info - + Folder is already being watched. Priečinok sa už sleduje. - + Folder does not exist. Priečinok neexistuje. - + Folder is not readable. Priečinok nemožno prečítať. - + Failure Zlyhanie - + Failed to add Scan Folder '%1': %2 Nepodarilo sa pridať priečinok na prehľadanie: „%1“: %2 - - + + Filters Filtre - - + + Choose an IP filter file Zvoliť súbor filtra IP - + SSL Certificate Certifikát SSL - + SSL Key Kľúč SSL - + Parsing error Chyba pri spracovaní - + Failed to parse the provided IP filter Nepodarilo sa spracovať poskytnutý filter IP - + Successfully refreshed Úspešne obnovené - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Poskytnutý filter IP úspešne spracovaný: %1 pravidiel bolo použitých. - + Invalid key Neplatný kľúč - + This is not a valid SSL key. Toto nie je platný kľúč SSL. - + Invalid certificate Neplatný certifikát - + This is not a valid SSL certificate. Toto nie je platný certifikát SSL. - + The start time and the end time can't be the same. Dátum začiatku a dátum konca sa nesmú zhodovať. - + Time Error Chyba zadania času - - pluginSourceDlg - - Plugin source - Zdroj zásuvného modulu - - - Search plugin source: - Zdroj zásuvného modulu vyhľadávača: - - - Local file - Lokálny súbor - - - Web link - Webový odkaz - - preview @@ -8579,35 +8312,4 @@ Tieto moduly však boli vypnuté. Storno - - search_engine - - Search - Vyhľadávanie - - - Status: - Stav: - - - Stopped - Zastavený - - - Download - Stiahnuť - - - Go to description page - Prejsť na stránku popisu - - - Copy description page URL - Skopíruj URL stránky popisu - - - Search engines... - Vyhľadávače... - - diff --git a/src/lang/qbittorrent_sl.ts b/src/lang/qbittorrent_sl.ts index c7e7a8219..b215d1d2c 100644 --- a/src/lang/qbittorrent_sl.ts +++ b/src/lang/qbittorrent_sl.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: ID soležnika: - + HTTP User-Agent is '%1' Uporabniški posrednik HTTP je %1 - + Anonymous mode [ON] Brezimni način [vključen] - + Anonymous mode [OFF] Brezimni način [izključen] - + PeX support [ON] Podpora PeX [vključena] - + PeX support [OFF] Podpora PeX [izključena] - + Restart is required to toggle PeX support Potreben je ponovni zagon za preklop PeX podpore - + Local Peer Discovery support [ON] Podpora odkrivanja krajevnih soležnikov - LPD [vključena] - + Local Peer Discovery support [OFF] Podpora odkrivanja krajevnih soležnikov - LPD [izključena] - + Encryption support [ON] Podpora šifriranja [vključena] - + Encryption support [FORCED] Podpora šifriranja [vsiljena] - + Encryption support [OFF] Podpora šifriranja [izključena] - + Embedded Tracker [ON] Vdelan sledilnik [vključen] - + Failed to start the embedded tracker! Spodletel zagon vdelanega sledilnika! - + Embedded Tracker [OFF] Vdelan sledilnik [izključen] - + '%1' reached the maximum ratio you set. Removing... %1 je dosegel najvišje nastavljeno razmerje. Odstranjujem ... - + '%1' reached the maximum ratio you set. Pausing... %1 je dosegel najvišje nastavljeno razmerje. Premor ... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. Ni mogoče odkodirati %1 datoteke torrent. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Rekurzivni prejem datoteke '%1' vdelane v torrent '%2' - + Couldn't save '%1.torrent' Ni bilo mogoče shraniti '%1. torrenta' - + because %1 is disabled. this peer was blocked because uTP is disabled. ker je %1 onemogočen. - + because %1 is disabled. this peer was blocked because TCP is disabled. ker je %1 onemogočen. - + URL seed lookup failed for URL: '%1', message: %2 Spodletelo iskanje naslova URL za sejalca: %1, sporočilo: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' je bil odstranjen iz seznama prenosov in trdega diska. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' je bil odstranjen iz seznama prenosov. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Prejemanje '%1', prosim počakajte ... - + DHT support [ON] Podpora DHT [vključena] - + DHT support [OFF]. Reason: %1 Podpora DHT [izključena]. Razlog: %1 - + DHT support [OFF] Podpora DHT [izključena] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent poskuša poslušati na vseh vratih vmesnika: %1 - + The network interface defined is invalid: %1 Določeni omrežni vmesnik je neveljaven: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent poskuša poslušati na vmesniku %1 in vratih: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent ni našel krajevnega naslova %1 za poslušanje - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' Sledilnik '%1' je bil dodan h torrentu '%2' - + Tracker '%1' was deleted from torrent '%2' Sledilnik '%1' je bil odstranjen iz torrenta '%2' - + URL seed '%1' was added to torrent '%2' URL sejalec '%1' je bil dodan h torrentu '%2' - + URL seed '%1' was removed from torrent '%2' URL sejalec '%1' je bil odstranjen iz torrenta '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Ni mogoče nadaljevati torrenta '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspešno razčlenjen filter IP: %1 pravil je bilo uveljavljenih. - + Error: Failed to parse the provided IP filter. Napaka: Spodletelo razčlenjevanje filtra IP. - + Couldn't add torrent. Reason: %1 Ni bilo mogoče dodati torrenta. Razlog: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' se nadaljuje. (hitro nadaljevanje) - + '%1' added to download list. 'torrent name' was added to download list. '%1' je bil dodan na seznam prejemov. - + An I/O error occurred, '%1' paused. %2 Zgodila se je napaka I/O, '%1' v premoru. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Spodletela preslikava vrat, sporočilo: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Uspešna preslikava vrat, sporočilo: %1 - + due to IP filter. this peer was blocked due to ip filter. zaradi filtra IP. - + due to port filter. this peer was blocked due to port filter. zaradi filtra vrat. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. zaradi i2p omejitev mešanega načina. - + because it has a low port. this peer was blocked because it has a low port. ker ima prenizka vrata. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent uspešno posluša na vmesniku %1 in vratih: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 Zunanji IP: %1 @@ -1284,12 +1284,12 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. FeedListWidget - + RSS feeds Viri RSS - + Unread Neprebrano @@ -1378,211 +1378,334 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Prejmite torrente preko URL ali magnetne povezave. - + Only one link per line Samo ena povezava na vrstico - + Download Prejem - + Global upload rate limit must be greater than 0 or disabled. Splošna omejitev razmerja pošiljanja mora biti večja od 0 ali onemogočena. - + Global download rate limit must be greater than 0 or disabled. Splošna omejitev razmerja prejema mora biti večja od 0 ali onemogočena. - + Alternative upload rate limit must be greater than 0 or disabled. Nadomestna omejitev razmerja pošiljanja mora biti večja od 0 ali onemogočena. - + Alternative download rate limit must be greater than 0 or disabled. Nadomestna omejitev razmerja prejema mora biti večja od 0 ali onemogočena. - + Maximum active downloads must be greater than -1. Največje število dejavnih prejemov mora biti večje od -1. - + Maximum active uploads must be greater than -1. Največje število dejavnih pošiljanj mora biti večje od -1. - + Maximum active torrents must be greater than -1. Največje število dejavnih torrentov mora biti večje od -1. - + Maximum number of connections limit must be greater than 0 or disabled. Največje število povezav mora biti večje od 0 ali onemogočeno. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Največje število povezav na torrent mora biti večje od 0 ali onemogočeno. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Največje število povezav za pošiljanje na torrent mora biti večje od 0 ali onemogočeno. - + Unable to save program preferences, qBittorrent is probably unreachable. Ni mogoče shraniti možnosti programa, qBittorrent je verjetno nedosegljiv. - + Language Jezik - + The port used for incoming connections must be between 1 and 65535. Vrata uporabljena za dohodne povezave morajo biti med 1 in 65535. - + The port used for the Web UI must be between 1 and 65535. Vrata uporabljena za spletni vmesnik morajo biti med 1 in 65535. - + Unable to log in, qBittorrent is probably unreachable. Prijava ni mogoča, qBittorrent je verjetno nedosegljiv. - + Invalid Username or Password. Neveljavno uporabniško ime ali geslo. - + Password Geslo - + Login Prijava - + Upload Failed! Pošiljanje spodletelo! - + Original authors Izvirni avtorji - + Upload limit: Omejitev pošiljanja: - + Download limit: Omejitev prejema: - + Apply Uveljavi - + Add Dodaj - + Upload Torrents Pošlji torrente - + All Vse - + Downloading Prejemanje - + Seeding Sejanje - + Completed Končano - + Resumed Se nadaljuje - + Paused V premoru - + Active Dejavno - + Inactive Nedejavno - + Save files to location: Shrani datoteke v: - + Label: Oznaka: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Vsak dan + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Prejeto @@ -1593,57 +1716,57 @@ Te podrobnosti boste našli v možnostih spletnega brskalnika. Odjava - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? Ali ste prepričani, da želite izbrisati izbrane torrente iz seznama prenosov? - + The Web UI username must be at least 3 characters long. Uporabniško ime za spletni vmesnik mora vsebovati vsaj 3 znake. - + The Web UI password must be at least 3 characters long. Geslo za spletni vmesnik mora vsebovati vsaj 3 znake. - + Save Shrani - + qBittorrent client is not reachable Odjemalec qBittorrent ni dosegljiv - + HTTP Server Strežnik HTTP - + The following parameters are supported: Naslednji parametri so podprti: - + Torrent path Pot torrenta - + Torrent name Ime torrenta - + qBittorrent has been shutdown. qBittorrent je bil izklopljen. @@ -2280,12 +2403,6 @@ Ali ga želite namestiti sedaj? Python is required to use the search engine but it does not seem to be installed. Python je potreben za uporabo iskalnika, vendar ta ni nameščen. - - A new version is available. -Update to version %1? - Na voljo je nova različica. -Želite posodobiti na različico %1? - No updates available. @@ -3773,7 +3890,7 @@ Ali ste prepričani, da želite končati qBittorrent? Net::Smtp - + Email Notification Error: Napaka e-poštnega obvestila: @@ -4025,7 +4142,7 @@ Ali ste prepričani, da želite končati qBittorrent? Search plugins - Vstavki iskanja + @@ -4040,43 +4157,43 @@ Ali ste prepričani, da želite končati qBittorrent? Version - Verzija + Url - URL + Enabled - Omogočeno + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nove vstavke iskanja najdete na : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Namestite novega + Check for updates - Preveri za posodobitve + Close - Zapri + Uninstall - Odstrani + @@ -4096,68 +4213,67 @@ Ali ste prepričani, da želite končati qBittorrent? Uninstall warning - Opozorilo odstranjevanja + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Nekatere vstavke ni bilo mogoče odstraniti, ker so vključeni v qBittorrent. Samo tiste, ki ste jih sami dodali lahko odstranite. -Tisti vstavki so bili onemogočeni. + Uninstall success - Odstranjevanje uspešno + All selected plugins were uninstalled successfully - Vsi izbrani vstavki so bili uspešno odstranjeni + New search engine plugin URL - Nov URL vstavka iskalnika. + URL: - URL: + Invalid link - Neveljavna povezava + The link doesn't seem to point to a search engine plugin. - Povezava ne kaže na vstavek iskalnika. + Select search plugins - Izberite vstavke iskanja + qBittorrent search plugin - qBittorrent vstavek iskanja + Search plugin update - Posodobitev vstavka iskanja + All your plugins are already up to date. - Vsi vaši vstavki so že posodobljeni. + @@ -4169,7 +4285,7 @@ Tisti vstavki so bili onemogočeni. Search plugin install - Namestitev vstavka iskanja + @@ -4199,22 +4315,22 @@ Tisti vstavki so bili onemogočeni. Plugin source - Vir vstavka + Search plugin source: - Vir vstavka iskanja + Local file - Lokalna datoteka + Web link - Spletna povezava + @@ -4952,17 +5068,17 @@ Tisti vstavki so bili onemogočeni. Filter poti (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5395,7 +5511,7 @@ Tisti vstavki so bili onemogočeni. QObject - + Your IP address has been banned after too many failed authentication attempts. Vaš naslov IP je bil izobčen zaradi prevelikega števila neuspešnih poskusov overitve. @@ -5903,13 +6019,6 @@ Ne bo nadaljnjih obvestil. - - RssParser - - Failed to open downloaded RSS file. - Spodletelo odpiranje prejete datoteke RSS. - - RssSettingsDlg @@ -5978,117 +6087,9 @@ Ne bo nadaljnjih obvestil. Save Files to - - Download here - Prejmite tukaj - - - - SearchCategories - - All categories - Vse kategorije - - - Movies - Filmi - - - TV shows - TV oddaje - - - Music - Glasba - - - Games - Igre - - - Anime - Anime - - - Software - Programska oprema - - - Pictures - Slike - - - Books - Knjige - SearchEngine - - Search - Iskanje - - - Please install Python to use the Search Engine. - Za uporabo iskalnika namestite Python. - - - Empty search pattern - Brez iskanega parametra - - - Please type a search pattern first - Najprej vpišite iskani parameter - - - Searching... - Iskanje ... - - - Stop - Sop - - - Search Engine - Iskalnik - - - Search has finished - Iskanje je zaključeno - - - An error occurred during search... - Med iskanjem se je zgodila napaka - - - Search aborted - Iskanje preklicano - - - All enabled - Vse omogočeno - - - All engines - Vsi iskalniki - - - Multiple... - Več ... - - - Results <i>(%1)</i>: - i.e: Search results - Rezultati <i>(%1)</i>: - - - Search returned no results - Iskanje ni vrnilo rezultatov - - - Stopped - Ustavljeno - Unknown search engine plugin file format. @@ -6124,47 +6125,47 @@ Ne bo nadaljnjih obvestil. All categories - Vse kategorije + Movies - Filmi + TV shows - TV oddaje + Music - Glasba + Games - Igre + Anime - Anime + Software - Programska oprema + Pictures - Slike + Books - Knjige + @@ -6213,22 +6214,22 @@ Ne bo nadaljnjih obvestil. - - - + + + Search Iskanje Status: - Stanje: + - + Stopped - Ustavljeno + @@ -6238,12 +6239,12 @@ Ne bo nadaljnjih obvestil. Go to description page - Pojdi na stran z opisom + Copy description page URL - Kopiraj naslov URL strani z opisom + @@ -6251,86 +6252,86 @@ Ne bo nadaljnjih obvestil. - + All enabled - Vse omogočeno - - - - All plugins - + All plugins + + + + + Multiple... - Več ... + - - - + + + Search Engine - Iskalnik + - + Please install Python to use the Search Engine. - Za uporabo iskalnika namestite Python. + - + Empty search pattern - Brez iskanega parametra + - + Please type a search pattern first - Najprej vpišite iskani parameter + - - + + Results <i>(%1)</i>: i.e: Search results - Rezultati <i>(%1)</i>: - - - - Searching... - Iskanje ... + + Searching... + + + + Stop - Sop + - - + + Search has finished - Iskanje je zaključeno + - - + + Search aborted - Iskanje preklicano + - + Search returned no results - Iskanje ni vrnilo rezultatov + - + Search has failed - + An error occurred during search... - Med iskanjem se je zgodila napaka + @@ -6796,10 +6797,6 @@ Ne bo nadaljnjih obvestil. Download Priority - - Priority - Prednost - TorrentCreatorDlg @@ -7995,122 +7992,6 @@ Ne bo nadaljnjih obvestil. Vpišite vsaj en URL. - - engineSelect - - Search plugins - Vstavki iskanja - - - Installed search engines: - Nameščeni iskalniki: - - - Name - Ime - - - Version - Verzija - - - Url - URL - - - Enabled - Omogočeno - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Nove vstavke iskanja najdete na : <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Namestite novega - - - Check for updates - Preveri za posodobitve - - - Close - Zapri - - - Uninstall - Odstrani - - - - engineSelectDlg - - Uninstall warning - Opozorilo odstranjevanja - - - Uninstall success - Odstranjevanje uspešno - - - The link doesn't seem to point to a search engine plugin. - Povezava ne kaže na vstavek iskalnika. - - - Select search plugins - Izberite vstavke iskanja - - - Search plugin install - Namestitev vstavka iskanja - - - Yes - Da - - - No - Ne - - - qBittorrent search plugin - qBittorrent vstavek iskanja - - - Search plugin update - Posodobitev vstavka iskanja - - - Sorry, update server is temporarily unavailable. - Strežnik za posodobitve trenutno ni na voljo. - - - All your plugins are already up to date. - Vsi vaši vstavki so že posodobljeni. - - - All selected plugins were uninstalled successfully - Vsi izbrani vstavki so bili uspešno odstranjeni - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Nekatere vstavke ni bilo mogoče odstraniti, ker so vključeni v qBittorrent. Samo tiste, ki ste jih sami dodali lahko odstranite. -Tisti vstavki so bili onemogočeni. - - - Invalid link - Neveljavna povezava - - - New search engine plugin URL - Nov URL vstavka iskalnika. - - - URL: - URL: - - errorDialog @@ -8238,192 +8119,173 @@ Tisti vstavki so bili onemogočeni. options_imp - - + + Choose export directory Izberite mapo za izvoz - - - - + + + + Choose a save directory Izberite mapo za shranjevanje - + Add directory to scan Dodajte mapo za preiskovanje - + Supported parameters (case sensitive): Podprti parametri (razlikovanje velikosti črk): - + %N: Torrent name %N: Ime torrenta - + %L: Label %L: Oznaka - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path %D: Mesto za shranjevanje - + %C: Number of files %C: Število datotek - + %Z: Torrent size (bytes) %Z: Velikost torrenta (bajti) - + %T: Current tracker %T: Trenutni sledilnik - + %I: Info hash %I: Razpršilo - + Folder is already being watched. Mapa se že opazuje. - + Folder does not exist. Mapa ne obstaja. - + Folder is not readable. Mapa ni berljiva. - + Failure Spodletelo - + Failed to add Scan Folder '%1': %2 Spodletelo dodajanje mape za preiskovanje '%1': %2 - - + + Filters Filtri - - + + Choose an IP filter file Izberite datoteko s filtri IP - + SSL Certificate Potrdilo SSL - + SSL Key Ključ SSL - + Parsing error Napaka razčlenjevanja - + Failed to parse the provided IP filter Spodletelo razčlenjevanje filtra IP. - + Successfully refreshed Uspešno osveženo - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Uspešno razčlenjen filter IP: %1 pravil je bilo uveljavljenih. - + Invalid key Neveljaven ključ - + This is not a valid SSL key. To ni veljaven ključ SSL. - + Invalid certificate Neveljavno potrdilo - + This is not a valid SSL certificate. To ni veljavno potrdilo SSL. - + The start time and the end time can't be the same. Čas začetka in konca ne smeta biti enaka. - + Time Error Napaka časa - - pluginSourceDlg - - Plugin source - Vir vstavka - - - Search plugin source: - Vir vstavka iskanja - - - Local file - Lokalna datoteka - - - Web link - Spletna povezava - - preview @@ -8447,35 +8309,4 @@ Tisti vstavki so bili onemogočeni. Prekliči - - search_engine - - Search - Iskanje - - - Status: - Stanje: - - - Stopped - Ustavljeno - - - Download - Prejem - - - Go to description page - Pojdi na stran z opisom - - - Copy description page URL - Kopiraj naslov URL strani z opisom - - - Search engines... - Iskalniki ... - - diff --git a/src/lang/qbittorrent_sr.ts b/src/lang/qbittorrent_sr.ts index 603cd5628..b07183558 100644 --- a/src/lang/qbittorrent_sr.ts +++ b/src/lang/qbittorrent_sr.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS поруке - + Unread Непрочитане @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Преузми Торенте са овог URL-а или Магнет линка - + Only one link per line Само један линк по линији - + Download Преузимање - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Максимални број конекција при лимитирању мора бити већи од 0 или онемогућен. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Максимални број конекција по Торенту при лимитирању мора бити већи од 0 или онемогућен. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Максимални број слотова за слање Торента при лимитирању мора бити већи од 0 или онемогућен. - + Unable to save program preferences, qBittorrent is probably unreachable. Не могу да сачувам програмска подешавања, qBittorrent је вероватно недоступан. - + Language Језик - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login Логовање - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Преузимање - + Seeding Донирање - + Completed - + Resumed - + Paused Паузиран - + Active - + Inactive - + Save files to location: Сачувај фајлове на локацији: - + Label: Ознака: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Сваки дан + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Преузет @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. Веб КИ име корисника мора имати најмање 3 карактера. - + The Web UI password must be at least 3 characters long. Веб КИ лозинка мора имати најмање 3 карактера. - + Save Сачувај - + qBittorrent client is not reachable qBittorrent клијент није доступан - + HTTP Server HTTP Сервер - + The following parameters are supported: Следећи параметри су подржани: - + Torrent path Путања Трента - + Torrent name Име Торента - + qBittorrent has been shutdown. @@ -3763,7 +3886,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4015,7 +4138,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Претраживачки додаци + @@ -4035,38 +4158,38 @@ Are you sure you want to quit qBittorrent? Url - Url (адреса) + Enabled - Доступан + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Преузмите нови додатак за претраживање овде: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Инсталирајте нови + Check for updates - Проверите за надоградњу + Close - Затвори + Uninstall - Деинсталирај + @@ -4086,7 +4209,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Деинсталационо упозорење + @@ -4097,24 +4220,24 @@ Those plugins were disabled. Uninstall success - Деинсталација успешна + All selected plugins were uninstalled successfully - Сви изабрани додаци су деинсталирани успешно + New search engine plugin URL - Нови додатак претраживачког модула URL + URL: - URL: + @@ -4129,7 +4252,7 @@ Those plugins were disabled. Select search plugins - Изаберите додатак за претраживач + @@ -4141,12 +4264,12 @@ Those plugins were disabled. Search plugin update - Претраживачки додаци ажурирање + All your plugins are already up to date. - Сви ваши додаци су већ ажурни. + @@ -4158,7 +4281,7 @@ Those plugins were disabled. Search plugin install - Претраживачки додатак инсталација + @@ -4188,22 +4311,22 @@ Those plugins were disabled. Plugin source - Додатак сорс + Search plugin source: - Претраживачки додатак сорс: + Local file - Локални фајл + Web link - Веб линк + @@ -4941,17 +5064,17 @@ Those plugins were disabled. Филтер, путања фајла (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5384,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5957,88 +6080,9 @@ No further notices will be issued. Save Files to - - Download here - Преузими одавде - - - - SearchCategories - - All categories - Све категорије - - - Movies - Филмови - - - TV shows - ТВ емисије - - - Music - Музика - - - Games - Игре - - - Anime - Анимације - - - Software - Софтвер - - - Pictures - Слике - - - Books - Књиге - SearchEngine - - Search - Претраживање - - - Empty search pattern - Празано поље претраживања - - - Please type a search pattern first - Унесите прво назив за претраживање - - - Searching... - Претраживање... - - - Search Engine - Претраживачки модул - - - Search has finished - Претраживање је завршено - - - An error occurred during search... - Нека грешка се догодила током претраге... - - - Search aborted - Претраживање прекинуто - - - Search returned no results - Претрага није дала резултате - Unknown search engine plugin file format. @@ -6074,47 +6118,47 @@ No further notices will be issued. All categories - Све категорије + Movies - Филмови + TV shows - ТВ емисије + Music - Музика + Games - Игре + Anime - Анимације + Software - Софтвер + Pictures - Слике + Books - Књиге + @@ -6163,22 +6207,22 @@ No further notices will be issued. - - - + + + Search Претраживање Status: - Статус: + - + Stopped - Стопиран + @@ -6188,7 +6232,7 @@ No further notices will be issued. Go to description page - Иди на веб страну са описом + @@ -6201,86 +6245,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Претраживачки модул + - + Please install Python to use the Search Engine. - + Empty search pattern - Празано поље претраживања + - + Please type a search pattern first - Унесите прво назив за претраживање + - - + + Results <i>(%1)</i>: i.e: Search results - + Searching... - Претраживање... + - + Stop - - + + Search has finished - Претраживање је завршено + - - + + Search aborted - Претраживање прекинуто + - + Search returned no results - Претрага није дала резултате + - + Search has failed - + An error occurred during search... - Нека грешка се догодила током претраге... + @@ -7941,100 +7985,6 @@ No further notices will be issued. Молим упишите најмање један URL. - - engineSelect - - Search plugins - Претраживачки додаци - - - Installed search engines: - Инсталирани претраживачки модули: - - - Name - Име - - - Url - Url (адреса) - - - Enabled - Доступан - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Преузмите нови додатак за претраживање овде: <a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Инсталирајте нови - - - Check for updates - Проверите за надоградњу - - - Close - Затвори - - - Uninstall - Деинсталирај - - - - engineSelectDlg - - Uninstall warning - Деинсталационо упозорење - - - Uninstall success - Деинсталација успешна - - - Select search plugins - Изаберите додатак за претраживач - - - Search plugin install - Претраживачки додатак инсталација - - - Yes - Да - - - No - Не - - - Search plugin update - Претраживачки додаци ажурирање - - - Sorry, update server is temporarily unavailable. - Жао нам је, сервер за ажурирање је привремено недоступан. - - - All your plugins are already up to date. - Сви ваши додаци су већ ажурни. - - - All selected plugins were uninstalled successfully - Сви изабрани додаци су деинсталирани успешно - - - New search engine plugin URL - Нови додатак претраживачког модула URL - - - URL: - URL: - - errorDialog @@ -8162,192 +8112,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Изаберите директоријум за извоз - - - - + + + + Choose a save directory Изаберите директоријум за чување - + Add directory to scan Додај директоријум за скенирање - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Фолдер је већ надгледан. - + Folder does not exist. Фолдер не постоји. - + Folder is not readable. Фолдер се не може прочитати. - + Failure Неуспешно - + Failed to add Scan Folder '%1': %2 Неуспешно додавање Фолдера Скенирања '%1': %2 - - + + Filters Филтери - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Анализа грешака - + Failed to parse the provided IP filter Неспешна анализа датог IP филтера - + Successfully refreshed Успешно обновљен - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Погрешан кључ - + This is not a valid SSL key. Ово није валидан SSL кључ. - + Invalid certificate Неважећи сертификат - + This is not a valid SSL certificate. Ово није валидан SSL сертификат. - + The start time and the end time can't be the same. - + Time Error - - pluginSourceDlg - - Plugin source - Додатак сорс - - - Search plugin source: - Претраживачки додатак сорс: - - - Local file - Локални фајл - - - Web link - Веб линк - - preview @@ -8371,31 +8302,4 @@ No further notices will be issued. Откажи - - search_engine - - Search - Претраживање - - - Status: - Статус: - - - Stopped - Стопиран - - - Download - Преузимање - - - Go to description page - Иди на веб страну са описом - - - Search engines... - Претраживачки модули... - - diff --git a/src/lang/qbittorrent_sv.ts b/src/lang/qbittorrent_sv.ts index 74b1c7ed1..b54391fd2 100644 --- a/src/lang/qbittorrent_sv.ts +++ b/src/lang/qbittorrent_sv.ts @@ -127,7 +127,7 @@ Set as default label - + Ange som standardetikett @@ -204,7 +204,7 @@ Free disk space: %1 - + Ledigt diskutrymme: %1 @@ -231,18 +231,18 @@ Torrent is already in download list. Trackers were merged. - + Torrent finns deran i nedladdningslistan. Slår samman trackers. Cannot add torrent - + Kan ej lägga till torrent Cannot add this torrent. Perhaps it is already in adding state. - + Kan ej lägga till denna torrenten. Den kanske redan är i tillägningsläge. @@ -252,12 +252,12 @@ Magnet link is already in download list. Trackers were merged. - + Magnetlänk är redan i nedladdningslistan. Sammanslår trackers. Cannot add this torrent. Perhaps it is already in adding. - + Kan ej lägga till denna torrenten. Den kanske redan håller på att läggas till. @@ -327,7 +327,7 @@ Invalid metadata - + Ogiltig metadata @@ -342,7 +342,7 @@ Download Error - + Hämtningsfel @@ -449,7 +449,7 @@ Confirm torrent recheck - + Bekräfta återkoll av torrent @@ -476,7 +476,7 @@ Maximum number of half-open connections [0: Unlimited] - + Maximalt antal halvöppna anslutningar [0: inaktiverat] @@ -515,7 +515,7 @@ qBittorrent %1 started qBittorrent v3.2.0alpha started - + qBittorrent %1 startad @@ -558,52 +558,52 @@ RSS Downloader - + RSS Hämtare Enable Automated RSS Downloader - + Aktivera automatisk RSS-hämtning Download Rules - + Hämtningsregler Rule Definition - + Regeldefinition Use Regular Expressions - + Använd reguljära uttryck Must Contain: - + Måste innehålla: Must Not Contain: - + Får inte innehålla: Episode Filter: - + Avsnittsfilter: Assign Label: - + Tilldela etikett: Save to a Different Directory - + Spara till en annan katalog @@ -629,12 +629,12 @@ Always - + Alltid Never - Aldrig + Aldrig @@ -649,12 +649,12 @@ &Import... - + Importera... &Export... - + Exportera... @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Klient-ID: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] Anonymt läge [PÅ] - + Anonymous mode [OFF] Anonymt läge [AV] - + PeX support [ON] PeX-stöd [PÅ] - + PeX support [OFF] PeX-stöd [AV] - + Restart is required to toggle PeX support Omstart krävs för att växla PeX-stöd - + Local Peer Discovery support [ON] Stöd för Local Peer Discovery [PÅ] - + Local Peer Discovery support [OFF] Stöd för Local Peer Discovery [AV] - + Encryption support [ON] Krypteringsstöd [PÅ] - + Encryption support [FORCED] Krypteringsstöd [TVINGAD] - + Encryption support [OFF] Krypteringsstöd [AV] - + Embedded Tracker [ON] Inbäddad bevakare [PÅ] - + Failed to start the embedded tracker! Misslyckades med att starta den inbäddade bevakaren! - + Embedded Tracker [OFF] Inbäddad bevakare [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + ONLINE - + OFFLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... "%1" togs bort från överföringslistan och hårddisken. - + '%1' was removed from transfer list. 'xxx.avi' was removed... "%1" togs bort från överföringslistan. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT-stöd [PÅ] - + DHT support [OFF]. Reason: %1 - + DHT-stöd [AV], Anledning: %1 - + DHT support [OFF] - + DHT-stöd [AV] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-kanaler - + Unread Oläst @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Hämta torrent-filer från deras URL eller Magnet-länkar - + Only one link per line Endast en länk per rad - + Download Hämta - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Gräns för maximalt antal anslutningar måste vara större än 0 eller inaktiverad. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Gräns för maximalt antal anslutningar per torrent måste vara större än 0 eller inaktiverad. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Gräns för maximalt antal sändningsplatser per torrent måste vara större än 0 eller inaktiverad. - + Unable to save program preferences, qBittorrent is probably unreachable. Kunde inte spara programinställningarna. qBittorrent är antagligen inte nåbar. - + Language Språk - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. Kunde inte logga in. qBittorrent är troligtvis inte nåbart. - + Invalid Username or Password. Felaktigt Användarnamn eller Lösenord - + Password Lösenord - + Login Inloggning - + Upload Failed! Uppladdning misslyckad! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Hämtar - + Seeding Distribuerar - + Completed Färdiga - + Resumed - + Paused Pausad - + Active - + Inactive - + Save files to location: Spara filer till platsen: - + Label: Etikett: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Varje dag + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Hämtad @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. Användarnamnet för webbgränssnittet måste vara minst 3 tecken långt. - + The Web UI password must be at least 3 characters long. Lösenordet för webbgränssnittet måste vara minst 3 tecken långt. - + Save Spara - + qBittorrent client is not reachable qBittorrent-klienten är inte nåbar - + HTTP Server HTTP-server - + The following parameters are supported: Följande parametrar stöds: - + Torrent path Torrentsökväg - + Torrent name Torrentnamn - + qBittorrent has been shutdown. qBittorrent har stängts av. @@ -3764,7 +3887,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: @@ -4016,7 +4139,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Sökinsticksmoduler + @@ -4036,38 +4159,38 @@ Are you sure you want to quit qBittorrent? Url - Url + Enabled - Aktiverad + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan hitta nya instick för sökmotorer här: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Installera ett nytt instick + Check for updates - Leta efter uppdateringar + Close - Stäng + Uninstall - Avinstallera + @@ -4087,7 +4210,7 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Varning vid avinstallation + @@ -4098,29 +4221,29 @@ Those plugins were disabled. Uninstall success - Avinstallation lyckades + All selected plugins were uninstalled successfully - Alla markerade insticksmoduler avinstallerades + New search engine plugin URL - Url för nytt sökmotorinstick + URL: - Url: + Invalid link - Ogiltig länk + @@ -4130,7 +4253,7 @@ Those plugins were disabled. Select search plugins - Välj sökinsticksmoduler + @@ -4142,12 +4265,12 @@ Those plugins were disabled. Search plugin update - Uppdatering av sökinstick + All your plugins are already up to date. - Alla dina insticksmoduler är redan uppdaterade. + @@ -4159,7 +4282,7 @@ Those plugins were disabled. Search plugin install - Installation av sökinsticksmoduler + @@ -4189,22 +4312,22 @@ Those plugins were disabled. Plugin source - Insticksmodulkälla + Search plugin source: - Sök insticksmodulkälla: + Local file - Lokal fil + Web link - Webblänk + @@ -4942,17 +5065,17 @@ Those plugins were disabled. Filtersökväg (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5385,7 +5508,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5892,13 +6015,6 @@ Detta meddelande kommer inte att visas igen. - - RssParser - - Failed to open downloaded RSS file. - Kunde inte öppna den nedladdade RSS-filen. - - RssSettingsDlg @@ -5967,92 +6083,9 @@ Detta meddelande kommer inte att visas igen. Save Files to - - Download here - Hämta hit - - - - SearchCategories - - All categories - Alla kategorier - - - Movies - Filmer - - - TV shows - TV-program - - - Music - Musik - - - Games - Spel - - - Anime - Anime - - - Software - Programvara - - - Pictures - Bilder - - - Books - Böcker - SearchEngine - - Search - Sök - - - Empty search pattern - Tomt sökmönster - - - Please type a search pattern first - Ange ett sökmönster först - - - Searching... - Söker... - - - Stop - Stoppa - - - Search Engine - Sökmotor - - - Search has finished - Sökningen är färdig - - - An error occurred during search... - Ett fel inträffade under sökningen... - - - Search aborted - Sökningen avbröts - - - Search returned no results - Sökningen returnerade inga resultat - Unknown search engine plugin file format. @@ -6088,47 +6121,47 @@ Detta meddelande kommer inte att visas igen. All categories - Alla kategorier + Movies - Filmer + TV shows - TV-program + Music - Musik + Games - Spel + Anime - Anime + Software - Programvara + Pictures - Bilder + Books - Böcker + @@ -6177,22 +6210,22 @@ Detta meddelande kommer inte att visas igen. - - - + + + Search Sök Status: - Status: + - + Stopped - Stoppad + @@ -6202,7 +6235,7 @@ Detta meddelande kommer inte att visas igen. Go to description page - Gå till beskrivningssidan + @@ -6215,86 +6248,86 @@ Detta meddelande kommer inte att visas igen. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Sökmotor + - + Please install Python to use the Search Engine. - + Empty search pattern - Tomt sökmönster + - + Please type a search pattern first - Ange ett sökmönster först + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Söker... - + Searching... + + + + Stop - Stoppa + - - + + Search has finished - Sökningen är färdig + - - + + Search aborted - Sökningen avbröts + - + Search returned no results - Sökningen returnerade inga resultat + - + Search has failed - + An error occurred during search... - Ett fel inträffade under sökningen... + @@ -6760,10 +6793,6 @@ Detta meddelande kommer inte att visas igen. Download Priority - - Priority - Prioritet - TorrentCreatorDlg @@ -7959,104 +7988,6 @@ Detta meddelande kommer inte att visas igen. Ange åtminstone en url. - - engineSelect - - Search plugins - Sökinsticksmoduler - - - Installed search engines: - Installerade sökmotorer: - - - Name - Namn - - - Url - Url - - - Enabled - Aktiverad - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Du kan hitta nya instick för sökmotorer här: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Installera ett nytt instick - - - Check for updates - Leta efter uppdateringar - - - Close - Stäng - - - Uninstall - Avinstallera - - - - engineSelectDlg - - Uninstall warning - Varning vid avinstallation - - - Uninstall success - Avinstallation lyckades - - - Select search plugins - Välj sökinsticksmoduler - - - Search plugin install - Installation av sökinsticksmoduler - - - Yes - Ja - - - No - Nej - - - Search plugin update - Uppdatering av sökinstick - - - Sorry, update server is temporarily unavailable. - Tyvärr, uppdateringsservern är inte tillgänglig för tillfället. - - - All your plugins are already up to date. - Alla dina insticksmoduler är redan uppdaterade. - - - All selected plugins were uninstalled successfully - Alla markerade insticksmoduler avinstallerades - - - Invalid link - Ogiltig länk - - - New search engine plugin URL - Url för nytt sökmotorinstick - - - URL: - Url: - - errorDialog @@ -8184,192 +8115,173 @@ Detta meddelande kommer inte att visas igen. options_imp - - + + Choose export directory Välj exportkatalog - - - - + + + + Choose a save directory Välj en katalog att spara i - + Add directory to scan Lägg till katalog att söka av - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Mappen bevakas redan. - + Folder does not exist. Mappen finns inte. - + Folder is not readable. Mappen är inte läsbar. - + Failure Fel - + Failed to add Scan Folder '%1': %2 Misslyckades med att lägga till mapp att söka av "%1": %2 - - + + Filters Filter - - + + Choose an IP filter file - + SSL Certificate SSL-certifikat - + SSL Key SSL-nyckel - + Parsing error Tolkningsfel - + Failed to parse the provided IP filter Misslyckades med att tolka angivet IP-filter - + Successfully refreshed Uppdaterades - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number - + Invalid key Ogiltig nyckel - + This is not a valid SSL key. Detta är inte en giltig SSL-nyckel. - + Invalid certificate Ogiltigt certifikat - + This is not a valid SSL certificate. Detta är inte ett giltigt SSL-certifikat. - + The start time and the end time can't be the same. Starttiden och sluttiden kan inte vara desamma. - + Time Error Tidsfel - - pluginSourceDlg - - Plugin source - Insticksmodulkälla - - - Search plugin source: - Sök insticksmodulkälla: - - - Local file - Lokal fil - - - Web link - Webblänk - - preview @@ -8393,31 +8305,4 @@ Detta meddelande kommer inte att visas igen. Avbryt - - search_engine - - Search - Sök - - - Status: - Status: - - - Stopped - Stoppad - - - Download - Hämta - - - Go to description page - Gå till beskrivningssidan - - - Search engines... - Sökmotorer... - - diff --git a/src/lang/qbittorrent_tr.ts b/src/lang/qbittorrent_tr.ts index 4e88ba503..6f77600ff 100644 --- a/src/lang/qbittorrent_tr.ts +++ b/src/lang/qbittorrent_tr.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Kişi KİMLİĞİ: - + HTTP User-Agent is '%1' HTTP Kullanıcı Tanıtıcısı '%1' - + Anonymous mode [ON] İsimsiz kipi [AÇIK] - + Anonymous mode [OFF] İsimsiz kipi [KAPALI] - + PeX support [ON] PeX desteği [AÇIK] - + PeX support [OFF] PeX desteği [KAPALI] - + Restart is required to toggle PeX support PeX desteğini değiştirmek için yeniden başlatma gerekir - + Local Peer Discovery support [ON] Yerel Kişi Keşfi desteği [AÇIK] - + Local Peer Discovery support [OFF] Yerel Kişi Keşfi desteği [KAPALI] - + Encryption support [ON] Şifreleme desteği [AÇIK] - + Encryption support [FORCED] Şifreleme desteği [ZORLANDI] - + Encryption support [OFF] Şifreleme desteği [KAPALI] - + Embedded Tracker [ON] Gömülü İzleyici [AÇIK] - + Failed to start the embedded tracker! Gömülü izleyiciyi başlatma başarısız! - + Embedded Tracker [OFF] Gömülü İzleyici [KAPALI] - + '%1' reached the maximum ratio you set. Removing... '%1', ayarladığınız en fazla orana ulaştı. Kaldırılıyor... - + '%1' reached the maximum ratio you set. Pausing... '%1', ayarladığınız en fazla orana ulaştı. Duraklatılıyor... - + System network status changed to %1 e.g: System network status changed to ONLINE Sistem ağ durumu %1 olarak değişti - + ONLINE ÇEVRİMİÇİ - + OFFLINE ÇEVRİMDIŞI - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 ağ yapılandırması değişti, oturum bağlaması yenileniyor - + Unable to decode '%1' torrent file. '%1' torrent dosyası çözülemiyor. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' '%1' dosyasının tekrarlayan indirmesi '%2' torrenti içine gömüldü - + Couldn't save '%1.torrent' '%1.torrent' dosyası kaydedilemedi - + because %1 is disabled. this peer was blocked because uTP is disabled. engellendi çünkü %1 etkisizleştirildi. - + because %1 is disabled. this peer was blocked because TCP is disabled. engellendi çünkü %1 etkisizleştirildi. - + URL seed lookup failed for URL: '%1', message: %2 URL gönderimi arama şu URL için başarısız oldu: '%1', ileti: '%2' - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' dosyası aktarım listesinden ve sabit diskten kaldırıldı. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' dosyası aktarım listesinden kaldırıldı. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' indiriliyor, lütfen bekleyin... - + DHT support [ON] DHT desteği [AÇIK] - + DHT support [OFF]. Reason: %1 DHT desteği [KAPALI]. Sebep: %1 - + DHT support [OFF] DHT desteği [KAPALI] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemeyi deniyor: %1 - + The network interface defined is invalid: %1 Tanımlanan ağ arayüzü geçersiz: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemeyi deniyor: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent dinlemek için bir %1 yerel adresi bulamadı - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent, herhangi bir arayüz bağlantı noktasını dinlemede başarısız oldu: %1. Sebep: %2. - + Tracker '%1' was added to torrent '%2' İzleyici '%1', '%2' torrentine eklendi - + Tracker '%1' was deleted from torrent '%2' İzleyici '%1', '%2' torrentinden silindi - + URL seed '%1' was added to torrent '%2' Gönderim URL'si '%1', '%2' torrentine eklendi - + URL seed '%1' was removed from torrent '%2' Gönderim URL'si '%1', '%2' torrentinden kaldırıldı - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. '%1' torrent dosyası devam ettirilemiyor. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verilen IP süzgeci başarılı olarak ayrıştırıldı: %1 kural uygulandı. - + Error: Failed to parse the provided IP filter. Hata: Verilen IP süzgecini ayrıştırma başarısız. - + Couldn't add torrent. Reason: %1 Torrent eklenemedi. Sebep: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' dosyasına devam edildi. (hızlı devam) - + '%1' added to download list. 'torrent name' was added to download list. '%1' dosyası indirme listesine eklendi. - + An I/O error occurred, '%1' paused. %2 Bir G/Ç hatası meydana geldi, '%1' duraklatıldı. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Bağlantı noktası eşleme başarısız, ileti: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Bağlantı noktası eşleme başarılı, ileti: %1 - + due to IP filter. this peer was blocked due to ip filter. IP süzgecinden dolayı engellendi. - + due to port filter. this peer was blocked due to port filter. bağlantı noktası süzgecinden dolayı engellendi. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. i2p karışık kip kısıtlamalarından dolayı engellendi. - + because it has a low port. this peer was blocked because it has a low port. engellendi çünkü düşük bir bağlantı noktasına sahip. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent, %1 arayüzünde şu bağlantı noktasını başarılı olarak dinliyor: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent, %1 arayüzünde şu bağlantı noktasını dinlemede başarısız oldu: %2/%3. Sebep: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Dış IP: %1 @@ -1284,12 +1284,12 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. FeedListWidget - + RSS feeds RSS beslemeleri - + Unread Okunmadı @@ -1378,211 +1378,338 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Torrentleri URL'lerinden ya da Magnet bağlantısından indir - + Only one link per line Her satıra bir bağlantı - + Download İndir - + Global upload rate limit must be greater than 0 or disabled. Genel gönderme oranı sınırı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Global download rate limit must be greater than 0 or disabled. Genel indirme oranı sınırı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Alternative upload rate limit must be greater than 0 or disabled. Alternatif gönderme oranı sınırı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Alternative download rate limit must be greater than 0 or disabled. Alternatif indirme oranı sınırı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Maximum active downloads must be greater than -1. En fazla aktif indirme -1'den büyük olmak zorundadır. - + Maximum active uploads must be greater than -1. En fazla aktif gönderme -1'den büyük olmak zorundadır. - + Maximum active torrents must be greater than -1. En fazla aktif torrent -1'den büyük olmak zorundadır. - + Maximum number of connections limit must be greater than 0 or disabled. En fazla bağlantı sınırı sayısı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Torrent başına en fazla bağlantı sınırı sayısı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Torrent başına en fazla gönderme yuvası sınırı sayısı 0'dan büyük olmak ya da etkisizleştirilmek zorundadır. - + Unable to save program preferences, qBittorrent is probably unreachable. Program tercihleri kaydedilemiyor, qBittorrent'e muhtemelen ulaşılamıyor. - + Language Dil - + The port used for incoming connections must be between 1 and 65535. Gelen bağlantılar için kullanılan bağlantı noktası 1 ve 65535 arasında olmak zorundadır. - + The port used for the Web UI must be between 1 and 65535. Web Arayüzü için kullanılan bağlantı noktası 1 ve 65535 arasında olmak zorundadır. - + Unable to log in, qBittorrent is probably unreachable. Oturum açılamıyor, qBittorrent muhtemelen erişilebilir değil. - + Invalid Username or Password. Geçersiz Kullanıcı Adı veya Parola. - + Password Parola - + Login Oturum aç - + Upload Failed! Gönderme Başarısız Oldu! - + Original authors Orijinal hazırlayanları - + Upload limit: Gönderme sınırı: - + Download limit: İndirme sınırı: - + Apply Uygula - + Add Ekle - + Upload Torrents Torrentleri Gönder - + All Tümü - + Downloading İndiriliyor - + Seeding Gönderiliyor - + Completed Tamamlandı - + Resumed Devam edildi - + Paused Duraklatıldı - + Active Etkin - + Inactive Etkin değil - + Save files to location: Dosyaların kaydedildiği yer: - + Label: Etiket: - + Cookie: Tanımlama Bilgisi: - + Type folder here + Klasörü buraya yazın + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + Dosyaları şuraya kaydet + + + + Watch Folder + İzleme Klasörü + + + + Default Folder + Varsayılan Klasör + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + Diğer... + + + + Every day + Schedule the use of alternative rate limits on ... + Her gün + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + Diğer... + + + Downloaded Is the file downloaded or not? İndirilen @@ -1593,57 +1720,57 @@ Bu bilgiyi Web tarayıcınızın tercihlerinden almalısınız. Oturumu Kapat - + Upload local torrent Yerel torrenti gönder - + Are you sure you want to delete the selected torrents from the transfer list? Seçilen torrentleri aktarım listesinden silmek istediğinize emin misiniz? - + The Web UI username must be at least 3 characters long. Web Arayüzü kullanıcı adı en az 3 karakter uzunluğunda olmak zorundadır. - + The Web UI password must be at least 3 characters long. Web Arayüzü parolası en az 3 karakter uzunluğunda olmak zorundadır. - + Save Kaydet - + qBittorrent client is not reachable qBittorrent istemcisine ulaşılamıyor - + HTTP Server HTTP Sunucusu - + The following parameters are supported: Aşağıdaki parametreler desteklenir: - + Torrent path Torrent yolu - + Torrent name Torrent adı - + qBittorrent has been shutdown. qBittorrent kapatıldı. @@ -2216,7 +2343,8 @@ qBittorrent'i torrent dosyalarına ya da Magnet bağlantılarına ilişkile A new version is available. Do you want to download %1? - + Yeni bir sürüm mevcut. +%1 sürümünü indirmek istiyor musunuz? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. Arama motorunu kullanmak için Python gerekir ancak yüklenmiş görünmüyor. - - A new version is available. -Update to version %1? - Yeni bir sürüm mevcut. -%1 sürümüne güncellensin mi? - No updates available. @@ -2489,12 +2611,12 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Venezuela, Bolivarian Republic of - + Venezüela Bolivar Cumhuriyeti Viet Nam - + Vietnam @@ -2502,14 +2624,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? N/A Yok - - Asia/Pacific Region - Asya/Pasifik Bölgesi - - - Europe - Avrupa - Andorra @@ -2545,10 +2659,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Armenia Ermenistan - - Netherlands Antilles - Hollanda Antilleri - Angola @@ -2644,10 +2754,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Brunei Darussalam Brunei Darussalam - - Bolivia - Bolivya - Brazil @@ -2713,10 +2819,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Switzerland İsviçre - - Cote D'Ivoire - Fildişi Sahili - Cook Islands @@ -2760,7 +2862,7 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Curacao - + Curaçao @@ -2872,10 +2974,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? France Fransa - - France, Metropolitan - Fransa, Metropolitan - Gabon @@ -3161,10 +3259,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Latvia Letonya - - Libyan Arab Jamahiriya - Libya - Morocco @@ -3178,7 +3272,7 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Moldova, Republic of - Moldova + Moldova Cumhuriyeti @@ -3190,10 +3284,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Marshall Islands Marshall Adaları - - Macedonia - Makedonya - Mali @@ -3209,10 +3299,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Mongolia Moğolistan - - Macau - Makao - Northern Mariana Islands @@ -3341,7 +3427,7 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Peru - javascript:; + Peru @@ -3373,19 +3459,11 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Saint Pierre and Miquelon Saint Pierre ve Miquelon - - Pitcairn Islands - Pitcairn Adaları - Puerto Rico Porto Riko - - Palestinian Territory - Filistin Toprakları - Portugal @@ -3456,10 +3534,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Singapore Singapur - - Saint Helena - Saint Helena - Slovenia @@ -3578,62 +3652,62 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Bolivia, Plurinational State of - + Çokuluslu Bolivya Devleti Bonaire, Sint Eustatius and Saba - + Bonaire, Sint Eustatius ve Saba Cote d'Ivoire - + Fildişi Sahili Libya - + Libya Saint Martin (French part) - + Saint Martin (Fransız kısmı) Macedonia, The Former Yugoslav Republic of - + Makedonya Eski Yugoslav Cumhuriyeti Macao - + Makao Pitcairn - + Pitcairn Adaları Palestine, State of - + Filistin Devleti Saint Helena, Ascension and Tristan da Cunha - + Saint Helena, Ascension ve Tristan da Cunha South Sudan - + Güney Sudan Sint Maarten (Dutch part) - + Sint Maarten (Hollandalı kısmı) @@ -3700,10 +3774,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Saint Vincent and the Grenadines Saint Vincent ve Grenadinler - - Venezuela - Venezuela - Virgin Islands, British @@ -3714,10 +3784,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Virgin Islands, U.S. ABD Virjin Adaları - - Vietnam - Vietnam - Vanuatu @@ -3768,18 +3834,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Zimbabwe Zimbabve - - Anonymous Proxy - İsimsiz Proksi - - - Satellite Provider - Uydu Sağlayıcı - - - Other - Diğer - Aland Islands @@ -3805,10 +3859,6 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Saint Barthelemy Saint Barthelemy - - Saint Martin - Saint Martin - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Net::Smtp - + Email Notification Error: E-posta Bildirim Hatası: @@ -3992,7 +4042,7 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Files i.e. files that are being downloaded right now - + Dosyalar @@ -4098,65 +4148,65 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? Search plugins - Arama eklentileri + Arama eklentileri Installed search plugins: - + Yüklenmiş arama eklentileri: Name - Adı + Adı Version - Sürüm + Sürüm Url - URL + Url Enabled - Etkinleştirildi + Etkinleştirildi You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - Yeni bir tane yükle + Yeni bir tane yükle Check for updates - Güncellemeleri kontrol et + Güncellemeleri kontrol et Close - Kapat + Kapat Uninstall - Kaldır + Kaldır Yes - Evet + Evet @@ -4164,107 +4214,107 @@ qBittorrent'ten çıkmak istediğinize emin misiniz? No - Hayır + Hayır Uninstall warning - Kaldırma uyarısı + Kaldırma uyarısı Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Bazı eklentiler kaldırılamadı çünkü bunlar qBittorrent'e dahil edilmiş durumda. Sadece kendi ekledikleriniz kaldırılabilir. + Bazı eklentiler kaldırılamadı çünkü bunlar qBittorrent'e dahil edilmiş durumda. Sadece kendi ekledikleriniz kaldırılabilir. Bu eklentiler etkisizleştirildi. Uninstall success - Kaldırma başarılı + Kaldırma başarılı All selected plugins were uninstalled successfully - Tüm seçilen eklentiler başarılı olarak kaldırıldı + Tüm seçilen eklentiler başarılı olarak kaldırıldı New search engine plugin URL - Yeni arama motoru eklentisi URL'si + Yeni arama motoru eklenti URL'si URL: - URL: + URL: Invalid link - Geçersiz bağlantı + Geçersiz bağlantı The link doesn't seem to point to a search engine plugin. - Bağlantı bir arama motoru eklentisini gösteriyor görünmüyor. + Bağlantı bir arama motoru eklentisini gösteriyor görünmüyor. Select search plugins - Arama eklentilerini seç + Arama eklentilerini seç qBittorrent search plugin - qBittorrent arama eklentisi + qBittorrent arama eklentisi Search plugin update - Arama eklentisi güncellemesi + Arama eklentisi güncellemesi All your plugins are already up to date. - Tüm eklentileriniz zaten güncel. + Tüm eklentileriniz zaten güncel. Sorry, couldn't check for plugin updates. %1 - + Üzgünüz, eklenti güncellemeleri kontrol edilemedi. %1 Search plugin install - Arama eklentisi yüklemesi + Arama eklentisi yüklemesi "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + "%1" arama motoru eklentisi başarılı olarak yüklendi. Couldn't install "%1" search engine plugin. %2 - + "%1" arama motoru eklentisi yüklenemedi. %2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + "%1" arama motoru eklentisi başarılı olarak güncellendi. Couldn't update "%1" search engine plugin. %2 - + "%1" arama motoru eklentisi güncellenemedi. %2 @@ -4272,22 +4322,22 @@ Bu eklentiler etkisizleştirildi. Plugin source - Eklenti kaynağı + Eklenti kaynağı Search plugin source: - Arama eklentisi kaynağı: + Arama eklentisi kaynağı: Local file - Yerel dosya + Yerel dosya Web link - Web bağlantısı + Web bağlantısı @@ -5025,17 +5075,17 @@ Bu eklentiler etkisizleştirildi. Süzgeç yolu (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Programdan düzgün olmayan bir şekilde çıkıldığı algılandı. Ayarları geri yüklemek için geri alma dosyası kullanılıyor. - + An access error occurred while trying to write the configuration file. Yapılandırma dosyasını yazmaya çalışırken bir erişim hatası meydana geldi. - + A format error occurred while trying to write the configuration file. Yapılandırma dosyasını yazmaya çalışırken bir biçim hatası meydana geldi. @@ -5468,7 +5518,7 @@ Bu eklentiler etkisizleştirildi. QObject - + Your IP address has been banned after too many failed authentication attempts. IP adresiniz çok fazla başarısız kimlik doğrulaması denemesinden sonra yasaklandı. @@ -5960,12 +6010,12 @@ Başka bir bildiri yayınlanmayacaktır. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... + '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... Automatically downloading '%1' torrent from '%2' RSS feed... - '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... + '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... @@ -5973,29 +6023,7 @@ Başka bir bildiri yayınlanmayacaktır. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - '%2' RSS beslemesinden '%1' torrentini otomatik indirme başarısız oldu çünkü bir torrent veya magnet bağlantısı içermiyor... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - '%2' RSS beslemesinden '%1' torrenti otomatik olarak indiriliyor... - - - - RssParser - - Failed to open downloaded RSS file. - İndirilmiş RSS dosyasını açma başarısız. - - - Invalid RSS feed at '%1'. - '%1' adresinde geçersiz RSS beslemesi. + Geçersiz RSS beslemesi. @@ -6026,22 +6054,22 @@ Başka bir bildiri yayınlanmayacaktır. Watch Folder - + İzleme Klasörü Default Folder - + Varsayılan Klasör Browse... - Gözat... + Gözat... Choose save path - + Kayıt yolunu seçin @@ -6049,12 +6077,12 @@ Başka bir bildiri yayınlanmayacaktır. Watch Folder - + İzleme Klasörü Default Folder - + Varsayılan Klasör @@ -6064,199 +6092,87 @@ Başka bir bildiri yayınlanmayacaktır. Save Files to - - - - Download here - Buraya indir - - - Download path - İndirme yolu - - - - SearchCategories - - All categories - Tüm kategoriler - - - Movies - Filmler - - - TV shows - Televizyon programları - - - Music - Müzik - - - Games - Oyunlar - - - Anime - Çizgi Film - - - Software - Yazılım - - - Pictures - Fotoğraflar - - - Books - Kitaplar + Dosyaları şuraya kaydet SearchEngine - - Search - Ara - - - Please install Python to use the Search Engine. - Arama Motorunu kullanmak için lütfen Python'u yükleyin. - - - Empty search pattern - Boş arama örneği - - - Please type a search pattern first - Lütfen önce bir arama örneği girin - - - Searching... - Aranıyor... - - - Stop - Durdur - - - Search Engine - Arama Motoru - - - Search has finished - Arama bitti - - - An error occurred during search... - Arama sırasında bir hata meydana geldi... - - - Search aborted - Arama iptal edildi - - - All enabled - Tüm etkinleştirilmiş - - - All engines - Tüm motorlar - - - Multiple... - Çoklu... - - - Results <i>(%1)</i>: - i.e: Search results - Sonuçlar <i>(%1)</i>: - - - Search returned no results - Arama sonuç bulamadı - - - Stopped - Durduruldu - Unknown search engine plugin file format. - + Bilinmeyen arama motoru eklentisi dosya biçimi. A more recent version of this plugin is already installed. - + Bu eklentinin en son sürümü zaten yüklü. Plugin is not supported. - + Eklenti desteklenmiyor. Update server is temporarily unavailable. %1 - + Güncelleme sunucusu geçici olarak kullanılamaz. %1 Failed to download the plugin file. %1 - + Eklenti dosyasını indirme başarısız. %1 An incorrect update info received. - + Yanlış bir güncelleme bilgisi alındı. All categories - Tüm kategoriler + Tüm kategoriler Movies - Filmler + Filmler TV shows - Televizyon programları + TV programları Music - Müzik + Müzik Games - Oyunlar + Oyunlar Anime - Çizgi Film + Çizgi Film Software - Yazılım + Yazılım Pictures - Fotoğraflar + Resimler Books - Kitaplar + Kitaplar @@ -6305,124 +6221,124 @@ Başka bir bildiri yayınlanmayacaktır. - - - + + + Search - + Ara Status: - Durum: + Durum: - + Stopped - + Durduruldu Download - İndir + İndir Go to description page - Açıklama sayfasına git + Açıklama sayfasına git Copy description page URL - Açıklama sayfası URL'sini kopyala + Açıklama sayfası URL'sini kopyala Search plugins... - + Arama eklentileri... - + All enabled - Tüm etkinleştirilmiş - - - - All plugins - + Tüm etkinleştirilmiş - + All plugins + Tüm eklentiler + + + + Multiple... - Çoklu... + Çoklu... - - - + + + Search Engine - Arama Motoru + Arama Motoru - + Please install Python to use the Search Engine. - Arama Motorunu kullanmak için lütfen Python'u yükleyin. + Arama Motorunu kullanmak için lütfen Python'u yükleyin. - + Empty search pattern - Boş arama örneği + Boş arama örneği - + Please type a search pattern first - Lütfen önce bir arama örneği girin + Lütfen önce bir arama örneği girin - - + + Results <i>(%1)</i>: i.e: Search results - Sonuçlar <i>(%1)</i>: - - - - Searching... - Aranıyor... + Sonuçlar <i>(%1)</i>: + Searching... + Aranıyor... + + + Stop - Durdur + Durdur - - + + Search has finished - Arama bitti + Arama tamamlandı - - + + Search aborted - Arama iptal edildi + Arama iptal edildi - + Search returned no results - Arama sonuç bulamadı + Arama hiç sonuç bulamadı - + Search has failed - + Arama başarısız oldu - + An error occurred during search... - Arama sırasında bir hata meydana geldi... + Arama sırasında bir hata meydana geldi... @@ -6886,11 +6802,7 @@ Başka bir bildiri yayınlanmayacaktır. Download Priority - - - - Priority - Öncelik + İndirme Önceliği @@ -8087,160 +7999,6 @@ Başka bir bildiri yayınlanmayacaktır. Lütfen en az bir URL yazın. - - engineSelect - - Search plugins - Arama eklentileri - - - Installed search engines: - Yüklü arama motorları: - - - Name - Adı - - - Version - Sürüm - - - Url - URL - - - Enabled - Etkinleştirildi - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Yeni arama motoru eklentilerini buradan alabilirsiniz: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Yeni bir tane yükle - - - Check for updates - Güncellemeleri kontrol et - - - Close - Kapat - - - Uninstall - Kaldır - - - - engineSelectDlg - - Uninstall warning - Kaldırma uyarısı - - - Uninstall success - Kaldırma başarılı - - - Invalid plugin - Geçersiz eklenti - - - The search engine plugin is invalid, please contact the author. - Arama motoru eklentisi geçersiz, lütfen hazırlayanı ile irtibata geçin. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - '%1' arama motoru eklentisinin en son sürümü zaten yüklü. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - '%1' arama motoru eklentisi güncellenemedi, eski sürüm tutuluyor. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - '%1' arama motoru eklentisi yüklenemedi. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - '%1' arama motoru eklentisi başarılı olarak güncellendi. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - '%1' arama motoru eklentisi başarılı olarak yüklendi. - - - The link doesn't seem to point to a search engine plugin. - Bağlantı bir arama motoru eklentisini gösteriyor görünmüyor. - - - Select search plugins - Arama eklentilerini seç - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Üzgünüz, '%1' arama motoru eklentisi kurulumu başarısız oldu. - - - Search plugin install - Arama eklentisi yüklemesi - - - Yes - Evet - - - No - Hayır - - - qBittorrent search plugin - qBittorrent arama eklentisi - - - Search plugin update - Arama eklentisi güncellemesi - - - Sorry, update server is temporarily unavailable. - Üzgünüz, güncelleme sunucusu geçici olarak kullanılamaz. - - - All your plugins are already up to date. - Tüm eklentileriniz zaten güncel. - - - All selected plugins were uninstalled successfully - Tüm seçilen eklentiler başarılı olarak kaldırıldı - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Bazı eklentiler kaldırılamadı çünkü bunlar qBittorrent'e dahil edilmiş durumda. Sadece kendi ekledikleriniz kaldırılabilir. -Bu eklentiler etkisizleştirildi. - - - Invalid link - Geçersiz bağlantı - - - New search engine plugin URL - Yeni arama motoru eklentisi URL'si - - - URL: - URL: - - errorDialog @@ -8368,192 +8126,173 @@ Bu eklentiler etkisizleştirildi. options_imp - - + + Choose export directory Dışa aktarma dizini seçin - - - - + + + + Choose a save directory Bir kaydetme dizini seçin - + Add directory to scan Taramak için dizin ekleyin - + Supported parameters (case sensitive): Desteklenen parametreler (büyük küçük harfe duyarlı): - + %N: Torrent name %N: Torrent adı - + %L: Label %L: Etiket - + %F: Content path (same as root path for multifile torrent) %F: İçerik yolu (çok dosyalı torrent için olan kök yolu ile aynı) - + %R: Root path (first torrent subdirectory path) %R: Kök yolu (ilk torrent alt dizin yolu) - + %D: Save path %D: Kaydetme yolu - + %C: Number of files %C: Dosya sayısı - + %Z: Torrent size (bytes) %Z: Torrent boyutu (bayt) - + %T: Current tracker %T: Şu anki izleyici - + %I: Info hash %I: Bilgi adreslemesi - + Folder is already being watched. Klasör zaten izleniyor. - + Folder does not exist. Klasör mevcut değil. - + Folder is not readable. Klasör okunabilir değil. - + Failure Hata - + Failed to add Scan Folder '%1': %2 '%1' Tarama Klasörünü ekleme başarısız: %2 - - + + Filters Süzgeçler - - + + Choose an IP filter file Bir IP süzgeci dosyası seçin - + SSL Certificate SSL Sertifikası - + SSL Key SSL Anahtarı - + Parsing error Ayrıştırma hatası - + Failed to parse the provided IP filter Verilen IP süzgecini ayrıştırma başarısız - + Successfully refreshed Başarılı olarak yenilendi - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Verilen IP süzgeci başarılı olarak ayrıştırıldı: %1 kural uygulandı. - + Invalid key Geçersiz anahtar - + This is not a valid SSL key. Bu geçerli bir SSL anahtarı değil. - + Invalid certificate Geçersiz sertifika - + This is not a valid SSL certificate. Bu, geçerli bir SSL sertifikası değil. - + The start time and the end time can't be the same. Başlangıç zamanı ve bitiş zamanı aynı olamaz. - + Time Error Zaman Hatası - - pluginSourceDlg - - Plugin source - Eklenti kaynağı - - - Search plugin source: - Arama eklentisi kaynağı: - - - Local file - Yerel dosya - - - Web link - Web bağlantısı - - preview @@ -8577,35 +8316,4 @@ Bu eklentiler etkisizleştirildi. İptal - - search_engine - - Search - Ara - - - Status: - Durum: - - - Stopped - Durdu - - - Download - İndir - - - Go to description page - Açıklama sayfasına git - - - Copy description page URL - Açıklama sayfası URL'sini kopyala - - - Search engines... - Arama motorları... - - diff --git a/src/lang/qbittorrent_uk.ts b/src/lang/qbittorrent_uk.ts index 6ee61974d..705fcd6fc 100644 --- a/src/lang/qbittorrent_uk.ts +++ b/src/lang/qbittorrent_uk.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Ідентифікатор піра: - + HTTP User-Agent is '%1' Назва програми (HTTP): '%1' - + Anonymous mode [ON] Анонімний режим [Увімк.] - + Anonymous mode [OFF] Анонімний режим [Вимк.] - + PeX support [ON] Підтримка PeX [Увімк.] - + PeX support [OFF] Підтримка PeX [Вимк.] - + Restart is required to toggle PeX support Щоб перемкнути підтримку PeX, потрібно перезавантажити програму - + Local Peer Discovery support [ON] Підтримка локального пошуку пірів [Увімк.] - + Local Peer Discovery support [OFF] Підтримка пошуку локальних пірів [Вимк.] - + Encryption support [ON] Підтримка шифрування [Увімк.] - + Encryption support [FORCED] Підтримка шифрування [Примусова] - + Encryption support [OFF] Підтримка шифрування [Вимк.] - + Embedded Tracker [ON] Вбудований трекер [Увімк.] - + Failed to start the embedded tracker! Не вдалося запустити вбудований трекер! - + Embedded Tracker [OFF] Вбудований трекер [Вимк.] - + '%1' reached the maximum ratio you set. Removing... '%1' досяг максимального коефіцієнта, налаштованого вами. Видаляється... - + '%1' reached the maximum ratio you set. Pausing... '%1' досяг максимального коефіцієнта, налаштованого вами. Призупиняється... - + System network status changed to %1 e.g: System network status changed to ONLINE Мережевий статус системи змінено на %1 - + ONLINE ОНЛАЙН - + OFFLINE ОФЛАЙН - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding Мережева конфігурація %1 змінилась, оновлення прив'язки сеансу - + Unable to decode '%1' torrent file. Не вдалось розкодувати торрент-файл '%1'. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' Рекурсивне завантаження файла '%1', вбудованого в торрент '%2' - + Couldn't save '%1.torrent' Не вдалося зберегти '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. бо %1 вимкнено. - + because %1 is disabled. this peer was blocked because TCP is disabled. бо %1 вимкнено. - + URL seed lookup failed for URL: '%1', message: %2 Пошук URL роздачі невдалий для URL: '%1', повідомлення: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' видалено зі списку завантажень та жорсткого диску. - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' видалено зі списку завантажень. - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... Завантажується '%1', зачекайте... - + DHT support [ON] Підтримка DHT [Увімк.] - + DHT support [OFF]. Reason: %1 Підтримка DHT [Вимк.]. Причина: %1 - + DHT support [OFF] Підтримка DHT [Вимк.] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent пробує приєднатись до будь-якого інтерфейсу, порт: %1 - + The network interface defined is invalid: %1 Зазначений мережевий інтерфейс неправильний: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent пробує приєднатись до інтерфейсу %1, порт: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent не знайшов локальну адресу %1 для очікування вхідних з’єднань - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent не зміг відкрити порт %1 на жодному доступному мережевому інтерфейсі. Причина: %2. - + Tracker '%1' was added to torrent '%2' Трекет '%1' додано до торрента '%2' - + Tracker '%1' was deleted from torrent '%2' Трекер '%1' вилучено з торрента '%2' - + URL seed '%1' was added to torrent '%2' URL-роздачу '%1' додано до торрента '%2' - + URL seed '%1' was removed from torrent '%2' URL-роздачу '%1' вилучено з торрента '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. Не вдалося відновити торрент '%1'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успішно оброблено наданий фільтр IP: застосовано %1 правил. - + Error: Failed to parse the provided IP filter. Помилка: Не вдалося розібрати даний фільтр IP. - + Couldn't add torrent. Reason: %1 Не вдалося додати торрент. Причина: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' продовжено. (швидке відновлення) - + '%1' added to download list. 'torrent name' was added to download list. '%1' додано до списку завантажень. - + An I/O error occurred, '%1' paused. %2 Виникла помилка вводу/виводу, '%1' призупинено. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP: Не вдалось приєднати порт, повідомлення: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP: Успішне приєднання порта, повідомлення: %1 - + due to IP filter. this peer was blocked due to ip filter. через фільтр IP. - + due to port filter. this peer was blocked due to port filter. через фільтр портів. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. через обмеження змішаного режиму i2p. - + because it has a low port. this peer was blocked because it has a low port. через низький номер порта. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent очікує з’єднань на інтерфейсі %1 порт: %2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent не зміг приєднатись до інтерфейсу %1 порт: %2/%3. Причина: %4. - + External IP: %1 e.g. External IP: 192.168.0.1 Зовнішня IP: %1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS-подачі - + Unread Непрочитані @@ -1378,211 +1378,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Завантажити торренти з їх URL або magnet-посилання - + Only one link per line Одне посилання на рядок - + Download Завантажити - + Global upload rate limit must be greater than 0 or disabled. Глобальний ліміт швидкості вивантаження повинен бути більшим 0 або відсутнім. - + Global download rate limit must be greater than 0 or disabled. Глобальний ліміт швидкості завантаження повинен бути більшим 0 або відсутнім. - + Alternative upload rate limit must be greater than 0 or disabled. Альтернативний ліміт швидкості вивантаження повинен бути більшим 0 або відсутнім. - + Alternative download rate limit must be greater than 0 or disabled. Альтернативний ліміт швидкості завантаження повинен бути більшим 0 або відсутнім. - + Maximum active downloads must be greater than -1. Максимальна кількість активних завантажень повинна бути більша за -1. - + Maximum active uploads must be greater than -1. Максимальна кількість активних вивантажень повинна бути більша за -1. - + Maximum active torrents must be greater than -1. Максимальна кількість активних торрентів повинна бути більша за -1. - + Maximum number of connections limit must be greater than 0 or disabled. Максимальна кількість з’єднань повинна бути більша 0 або відсутня. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Максимальна кількість з’єднань на торрент повинна бути більша 0 або відсутня. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Максимальна кількість з’єднань для вивантаження на торрент повинна бути більша 0 або відсутня. - + Unable to save program preferences, qBittorrent is probably unreachable. Не вдалося зберегти налаштування програми, можливо qBittorrent недоступний. - + Language Мова - + The port used for incoming connections must be between 1 and 65535. Порт, який використовується для вхідних підключень, повинен бути між 1 і 65535. - + The port used for the Web UI must be between 1 and 65535. Порт, який використовується для Веб-інтерфейсу повинен бути між 1 і 65535. - + Unable to log in, qBittorrent is probably unreachable. Не вдалось залогуватись, qBittorrent напевне недосяжний - + Invalid Username or Password. Неправильний логін або пароль. - + Password Пароль - + Login Логін - + Upload Failed! Не вдалось вивантажити! - + Original authors Оригінальні автори - + Upload limit: Обмеження вивантаження: - + Download limit: Обмеження завантаження: - + Apply Застосувати - + Add Додати - + Upload Torrents Вивантажити торренти - + All Всі - + Downloading Завантажуються - + Seeding Роздаються - + Completed Завершені - + Resumed Відновлені - + Paused Призупинені - + Active Активні - + Inactive Неактивні - + Save files to location: Зберігати файли до: - + Label: Мітка: - + Cookie: Кукі: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Щодня + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Завантажено @@ -1593,57 +1716,57 @@ You should get this information from your Web browser preferences. Вийти - + Upload local torrent Вивантажити локальний торрент - + Are you sure you want to delete the selected torrents from the transfer list? Ви впевнені, що хочете видалити вибрані торренти зі списку завантажень? - + The Web UI username must be at least 3 characters long. Ім’я користувача Веб-інтерфейсу повинне містити хоча б 3 символи. - + The Web UI password must be at least 3 characters long. Пароль від Веб-інтерфейсу повинен містити хоча б 3 символи. - + Save Зберегти - + qBittorrent client is not reachable Клієнт qBittorrent недосяжний - + HTTP Server Сервер HTTP - + The following parameters are supported: Підтримуються наступні параметри: - + Torrent path Шлях до торрента - + Torrent name Назва торрента - + qBittorrent has been shutdown. qBittorrent вимкнено. @@ -2281,12 +2404,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. Для використання Пошуковика потрібен Python, але, здається, він не встановлений. - - A new version is available. -Update to version %1? - Доступна нова версія. -Оновити до версії %1? - No updates available. @@ -2502,14 +2619,6 @@ Are you sure you want to quit qBittorrent? N/A - - Asia/Pacific Region - Азія і Тихоокеанський регіон - - - Europe - Європа - Andorra @@ -2545,10 +2654,6 @@ Are you sure you want to quit qBittorrent? Armenia Вірменія - - Netherlands Antilles - Нідерландські Антильські острови - Angola @@ -2644,10 +2749,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam Бруней-Даруссалам - - Bolivia - Болівія - Brazil @@ -2713,10 +2814,6 @@ Are you sure you want to quit qBittorrent? Switzerland Швейцарія - - Cote D'Ivoire - Кот-д'Івуар - Cook Islands @@ -2872,10 +2969,6 @@ Are you sure you want to quit qBittorrent? France Франція - - France, Metropolitan - Франція, Метрополія - Gabon @@ -3161,10 +3254,6 @@ Are you sure you want to quit qBittorrent? Latvia Латвія - - Libyan Arab Jamahiriya - Лівійська Арабська Джамахірія - Morocco @@ -3190,10 +3279,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands Маршаллові Острови - - Macedonia - Македонія - Mali @@ -3209,10 +3294,6 @@ Are you sure you want to quit qBittorrent? Mongolia Монголія - - Macau - Макао - Northern Mariana Islands @@ -3373,19 +3454,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon Сен-П’єр і Мікелон - - Pitcairn Islands - Піткерн, Острови - Puerto Rico Пуерто-Рико - - Palestinian Territory - Палестинська територія - Portugal @@ -3456,10 +3529,6 @@ Are you sure you want to quit qBittorrent? Singapore Сінгапур - - Saint Helena - Святої Єлени, Острів - Slovenia @@ -3700,10 +3769,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines Сент-Вінсент і Гренадини - - Venezuela - Венесуела - Virgin Islands, British @@ -3714,10 +3779,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. Віргінські острови, Американські - - Vietnam - В’єтнам - Vanuatu @@ -3768,18 +3829,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe Зімбабве - - Anonymous Proxy - Анонімний проксі - - - Satellite Provider - Супутниковий провайдер - - - Other - Інше - Aland Islands @@ -3805,10 +3854,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy Сен-Бартельмі - - Saint Martin - Сен-Мартен - Could not uncompress GeoIP database file. @@ -3846,7 +3891,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Помилка сповіщення e-mail: @@ -4098,7 +4143,7 @@ Are you sure you want to quit qBittorrent? Search plugins - Пошукові додатки + @@ -4113,43 +4158,43 @@ Are you sure you want to quit qBittorrent? Version - Версія + Url - URL + Enabled - Увімкнено + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Ви можете отримати нові пошукові додатки тут: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Встановити новий + Check for updates - Перевірити оновлення + Close - Закрити + Uninstall - Видалити + @@ -4169,68 +4214,67 @@ Are you sure you want to quit qBittorrent? Uninstall warning - Попередження про видалення + Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - Деякі додатки не вдалося видалити, тому що вони є частиною qBittorrent. Можна видалити лише ті додатки, які ви встановили власноруч. -Ці додатки було вимкнено. + Uninstall success - Видалення успішне + All selected plugins were uninstalled successfully - Всі вибрані пошукові додатки успішно видалено + New search engine plugin URL - Новий URL пошукового додатка + URL: - URL: + Invalid link - Хибне посилання + The link doesn't seem to point to a search engine plugin. - Це посилання не вказує на пошуковий додаток. + Select search plugins - Вибрати пошукові додатки + qBittorrent search plugin - Пошуковий додаток qBittorrent + Search plugin update - Оновити пошуковий додаток + All your plugins are already up to date. - Всі ваші додатки свіжої версії. + @@ -4242,7 +4286,7 @@ Those plugins were disabled. Search plugin install - Встановити пошуковий додаток + @@ -4272,22 +4316,22 @@ Those plugins were disabled. Plugin source - Джерело додатка + Search plugin source: - Джерело пошукового додатка: + Local file - Локальний файл + Web link - Веб-посилання + @@ -5025,17 +5069,17 @@ Those plugins were disabled. Шлях до фільтра (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. Виявлено аварійний вихід програми. Використовується резервний файл для відновлення налаштувань. - + An access error occurred while trying to write the configuration file. Виникла помилка доступу при спробі запису файла конфігурації. - + A format error occurred while trying to write the configuration file. Виникла помилка формату при спробі запису файла конфігурації. @@ -5468,7 +5512,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. Ваша IP-адреса заблокована після надто численних невдалих спроб автентифікації. @@ -5960,12 +6004,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Автоматичне завантаження '%1' із RSS-подачі '%2' не вдалося, тому що вона не містить торрент або magnet-посилання... + Automatically downloading '%1' torrent from '%2' RSS feed... - Автоматично завантажується торрент '%1' з RSS-подачі '%2'... + @@ -5976,28 +6020,6 @@ No further notices will be issued. - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - Автоматичне завантаження '%1' із RSS-подачі '%2' не вдалося, тому що вона не містить торрент або magnet-посилання... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - Автоматично завантажується торрент '%1' з RSS-подачі '%2'... - - - - RssParser - - Failed to open downloaded RSS file. - Не вдалось відкрити завантажений RSS-файл. - - - Invalid RSS feed at '%1'. - Некоректна RSS-подача: '%1'. - - RssSettingsDlg @@ -6066,121 +6088,9 @@ No further notices will be issued. Save Files to - - Download here - Завантажувати до - - - Download path - Шлях завантаження - - - - SearchCategories - - All categories - Всі категорії - - - Movies - Фільми - - - TV shows - Телешоу - - - Music - Музика - - - Games - Ігри - - - Anime - Аніме - - - Software - Програми - - - Pictures - Зображення - - - Books - Книги - SearchEngine - - Search - Пошук - - - Please install Python to use the Search Engine. - Будь ласка, встановіть Python, щоб використовувати Пошуковик - - - Empty search pattern - Пустий шаблон пошуку - - - Please type a search pattern first - Будь ласка, спочатку введіть шаблон пошуку - - - Searching... - Пошук... - - - Stop - Зупинити - - - Search Engine - Пошуковик - - - Search has finished - Пошук закінчено - - - An error occurred during search... - Під час пошуку сталася помилка... - - - Search aborted - Пошук скасовано - - - All enabled - Всі увімкнено - - - All engines - Всі пошуковики - - - Multiple... - Кілька... - - - Results <i>(%1)</i>: - i.e: Search results - Результати <i>(%1)</i>: - - - Search returned no results - Пошук не дав результів - - - Stopped - Зупинено - Unknown search engine plugin file format. @@ -6216,47 +6126,47 @@ No further notices will be issued. All categories - Всі категорії + Movies - Фільми + TV shows - Телешоу + Music - Музика + Games - Ігри + Anime - Аніме + Software - Програми + Pictures - Зображення + Books - Книги + @@ -6305,22 +6215,22 @@ No further notices will be issued. - - - + + + Search Пошук Status: - Статус: + - + Stopped - Зупинено + @@ -6330,12 +6240,12 @@ No further notices will be issued. Go to description page - Перейти до сторінки опису + Copy description page URL - Скопіювати URL сторінки опису + @@ -6343,86 +6253,86 @@ No further notices will be issued. - + All enabled - Всі увімкнено - - - - All plugins - + All plugins + + + + + Multiple... - Кілька... + - - - + + + Search Engine - Пошуковик + - + Please install Python to use the Search Engine. - Будь ласка, встановіть Python, щоб використовувати Пошуковик + - + Empty search pattern - Пустий шаблон пошуку + - + Please type a search pattern first - Будь ласка, спочатку введіть шаблон пошуку + - - + + Results <i>(%1)</i>: i.e: Search results - Результати <i>(%1)</i>: - - - - Searching... - Пошук... + + Searching... + + + + Stop - Зупинити + - - + + Search has finished - Пошук закінчено + - - + + Search aborted - Пошук скасовано + - + Search returned no results - Пошук не дав результів + - + Search has failed - + An error occurred during search... - Під час пошуку сталася помилка... + @@ -6888,10 +6798,6 @@ No further notices will be issued. Download Priority - - Priority - Пріоритет - TorrentCreatorDlg @@ -8087,160 +7993,6 @@ No further notices will be issued. Будь ласка, введіть хоча б один URL. - - engineSelect - - Search plugins - Пошукові додатки - - - Installed search engines: - Встановлені пошуковики: - - - Name - Назва - - - Version - Версія - - - Url - URL - - - Enabled - Увімкнено - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Ви можете отримати нові пошукові додатки тут: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Встановити новий - - - Check for updates - Перевірити оновлення - - - Close - Закрити - - - Uninstall - Видалити - - - - engineSelectDlg - - Uninstall warning - Попередження про видалення - - - Uninstall success - Видалення успішне - - - Invalid plugin - Хибний додаток - - - The search engine plugin is invalid, please contact the author. - Пошуковий додаток некоректний, будь ласка повідомте автора. - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - Новіша версія пошукового додатка '%1' вже встановлена. - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - Пошуковий додаток '%1' не вдалося оновити, залишено стару версію. - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - Не вдалося встановити пошуковий додаток '%1'. - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - Пошуковий додаток '%1' успішно оновлено. - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - Пошуковий додаток '%1' успішно встановлено. - - - The link doesn't seem to point to a search engine plugin. - Це посилання не вказує на пошуковий додаток. - - - Select search plugins - Вибрати пошукові додатки - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - Вибачте, встановити пошуковий додаток '%1' не вдалось. - - - Search plugin install - Встановити пошуковий додаток - - - Yes - Так - - - No - Ні - - - qBittorrent search plugin - Пошуковий додаток qBittorrent - - - Search plugin update - Оновити пошуковий додаток - - - Sorry, update server is temporarily unavailable. - Пробачте, сервер оновлень тимчасово недоступний. - - - All your plugins are already up to date. - Всі ваші додатки свіжої версії. - - - All selected plugins were uninstalled successfully - Всі вибрані пошукові додатки успішно видалено - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - Деякі додатки не вдалося видалити, тому що вони є частиною qBittorrent. Можна видалити лише ті додатки, які ви встановили власноруч. -Ці додатки було вимкнено. - - - Invalid link - Хибне посилання - - - New search engine plugin URL - Новий URL пошукового додатка - - - URL: - URL: - - errorDialog @@ -8368,192 +8120,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory Виберіть теку для експорту - - - - + + + + Choose a save directory Виберіть теку для збереження - + Add directory to scan Додати теку спостерігання - + Supported parameters (case sensitive): Підтримувані параметри (чутливо до регістру): - + %N: Torrent name %N: Назва торрента - + %L: Label %L: Мітка - + %F: Content path (same as root path for multifile torrent) %F: Шлях вмісту (для торрента з багатьма файлами те саме що корінь) - + %R: Root path (first torrent subdirectory path) %R: Кореневий шлях (шлях до головної папки торрента) - + %D: Save path %D: Шлях збереження - + %C: Number of files %C: Кількість файлів - + %Z: Torrent size (bytes) %Z: Розмір торрента (в байтах) - + %T: Current tracker %T: Поточний трекер - + %I: Info hash %I: Інформаційний хеш - + Folder is already being watched. За текою вже ведеться стеження. - + Folder does not exist. Тека не існує. - + Folder is not readable. Теку неможливо прочитати. - + Failure Провал - + Failed to add Scan Folder '%1': %2 Не вдалося додати теку '%1': %2 - - + + Filters Фільтри - - + + Choose an IP filter file Виберіть файл IP-фільтра - + SSL Certificate Сертифікат SSL - + SSL Key Ключ SSL - + Parsing error Помилка розбору - + Failed to parse the provided IP filter Не вдалося розібрати даний фільтр IP - + Successfully refreshed Успішно оновлено - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Успішно розібрано наданий фільтр IP: застосовано %1 правил. - + Invalid key Неправильний ключ - + This is not a valid SSL key. Це не є коректний ключ SSL. - + Invalid certificate Неправильний сертифікат - + This is not a valid SSL certificate. Це не є коректний сертифікат SSL. - + The start time and the end time can't be the same. Час початку і кінця не може бути тим самим. - + Time Error Помилка часу - - pluginSourceDlg - - Plugin source - Джерело додатка - - - Search plugin source: - Джерело пошукового додатка: - - - Local file - Локальний файл - - - Web link - Веб-посилання - - preview @@ -8577,35 +8310,4 @@ Those plugins were disabled. Скасувати - - search_engine - - Search - Пошук - - - Status: - Статус: - - - Stopped - Зупинено - - - Download - Завантажити - - - Go to description page - Перейти до сторінки опису - - - Copy description page URL - Скопіювати URL сторінки опису - - - Search engines... - Пошуковики... - - diff --git a/src/lang/qbittorrent_vi.ts b/src/lang/qbittorrent_vi.ts index e77df1e51..3f43809b9 100644 --- a/src/lang/qbittorrent_vi.ts +++ b/src/lang/qbittorrent_vi.ts @@ -6,12 +6,12 @@ About qBittorrent - Dịch bởi Vietnamesel10n + Thông tin về qBittorrent About - Dịch bởi Vietnamesel10n + Thông tin về @@ -34,7 +34,7 @@ E-mail: - Email: + E-mail: @@ -59,7 +59,7 @@ This version of qBittorrent was built against the following libraries: - Phiên bản này được xây dựng dựa trên các thư viện sau: + Phiên bản qBittorrent này được xây dựng dựa trên các thư viện sau: @@ -92,7 +92,7 @@ Browse... - + Duyệt tìm... @@ -102,17 +102,17 @@ Never show again - Không hiển thị lần nữa + Đừng hiển thị lại Torrent settings - Thiết lập torrent + Cài đặt torrent Start torrent - Bắt đầu torrent + Khởi chạy torrent @@ -127,7 +127,7 @@ Set as default label - + Đặt làm nhãn mặc định @@ -137,7 +137,7 @@ Size: - Kích thước: + Kích cỡ: @@ -152,33 +152,33 @@ Info Hash: - + Hash thông tin: Normal - Bình thường + Thông thường High - Ưu tiên cao + Cao Maximum - Ưu tiên tối đa + Tối đa Do not download - Không tải về + Không được tải về I/O Error - Lỗi về xuất/nhập + Lỗi I/O @@ -193,7 +193,7 @@ Failed to load the torrent: %1 - Xảy ra lỗi khi tải torrent: %1 + Tải torrent thất bại: %1 @@ -204,88 +204,88 @@ Free disk space: %1 - + Dung lượng ổ đĩa trống: %1 Not Available This comment is unavailable - + Không có Not Available This date is unavailable - + Không có Not available - Hiện không có + Không có Invalid magnet link - Đường dẫn magnet không hợp lệ + Liên kết magnet không hợp lệ Torrent is already in download list. Trackers were merged. - + Torrent hiện đã có trong danh sách tải về. Các tracker đã được gộp. Cannot add torrent - + Không thể thêm torrent Cannot add this torrent. Perhaps it is already in adding state. - + Không thể thêm torrent này. Có lẽ là nó đang được thêm vào. This magnet link was not recognized - Không nhận dạng được đường dẫn magnet này + Không nhận dạng được liên kết magnet này Magnet link is already in download list. Trackers were merged. - + Liên kết magnet hiện đã có trong danh sách tải về. Các tracker đã được gộp. Cannot add this torrent. Perhaps it is already in adding. - + Không thể thêm torrent này. Có lẽ là nó đang được thêm vào. Magnet link - Đường dẫn magnet + Liên kết magnet Retrieving metadata... - Đang nhận các thông tin chi tiết... + Đang tiếp nhận siêu dữ liệu... Not Available This size is unavailable. - + Không có Choose save path - Chọn nơi để lưu + Chọn đường dẫn để lưu Rename the file - Đổi tên tập ti + Đổi tên tập tin @@ -301,13 +301,13 @@ This file name contains forbidden characters, please choose a different one. - Tên tập tin chứa một số ký tự bị cấm, vui lòng chọn một tên khác. + Tên tập tin này chứa các ký tự cấm, vui lòng chọn một tên khác. This name is already in use in this folder. Please use a different name. - Tên này hiện đã được dùng cho một thư mục khác. Vui lòng sử dụng một tên khác. + Tên này hiện đã được dùng trong thư mục. Vui lòng sử dụng một tên khác. @@ -327,22 +327,22 @@ Invalid metadata - + Siêu dữ liệu không hợp lệ Parsing metadata... - Đang phân tích số liệu từ các thông tin chi tiết... + Đang phân tích siêu dữ liệu... Metadata retrieval complete - Đã nhận đầy đủ phần thông tin chi tiết + Hoàn tất tiếp nhận siêu dữ liệu Download Error - + Lỗi khi tải về @@ -350,7 +350,7 @@ Disk write cache size - Kích thước bộ nhớ đệm trên đĩa + Kích thước bộ nhớ đệm ghi đĩa @@ -370,23 +370,23 @@ Recheck torrents on completion - Kiểm tra lại các torrent khi đã hoàn thiện + Kiểm tra lại các torrent sau khi hoàn tất Transfer list refresh interval - Khoảng thời gian cập nhật danh sách truyền tải + Khoảng thời gian làm mới danh sách truyền tải ms milliseconds - ms + m.gi. Setting - Thiết lập + Cài đặt @@ -403,38 +403,38 @@ s seconds - giây + gi. Disk cache expiry interval - Khoảng thời gian hết hạn dành cho bộ nhớ tạm trên đĩa + Khoảng thời gian hết hạn của bộ nhớ tạm trên đĩa Enable OS cache - + Bật bộ nhớ đệm của HĐH m minutes - + ph. Resolve peer countries (GeoIP) - Phân giải peer dựa vào quốc gia (Địa chỉ Địa Lý IP) + Xử lý các quốc gia peer (GeoIP) Resolve peer host names - Phân giải dựa vào tên host của peer + Xử lý tên các máy peer Strict super seeding - Quản chặt việc ưu tiên seed + Seed cao cấp nghiêm ngặt @@ -444,22 +444,22 @@ Listen on IPv6 address (requires restart) - + Lắng nghe trên địa chỉ IPv6 (cần khởi động lại) Confirm torrent recheck - + Xác nhận kiểm tra lại torrent Exchange trackers with other peers - Hoán chuyển tracker với các peer khác + Trao đổi tracker với các peer khác Always announce to all trackers - Luôn thông báo đến mọi tracker + Luôn thông báo đến tất cả tracker @@ -471,17 +471,17 @@ Save resume data interval How often the fastresume file is saved. - + Lưu khoảng thời gian dữ liệu bắt đầu lại Maximum number of half-open connections [0: Unlimited] - + Số lượng tối đa các kết nối mở phân nửa [0: Không giới hạn] IP Address to report to trackers (requires restart) - Địa chỉ IP để gửi báo cáo đến tracker (yêu cầu khởi động lại) + Địa chỉ IP để gửi báo cáo đến tracker (cần khởi động lại) @@ -496,17 +496,17 @@ Embedded tracker port - Bật cổng dữ liệu của tracker + Cổng tracker nhúng Check for software updates - Kiểm tra cập nhật phiên bản mới + Kiểm tra cập nhật phần mềm Use system icon theme - Sử dụng bộ biểu tượng của hệ thống + Sử dụng bộ biểu tượng hệ thống @@ -515,37 +515,37 @@ qBittorrent %1 started qBittorrent v3.2.0alpha started - + qBittorrent %1 đã khởi chạy Information - Thông tin + Thông tin To control qBittorrent, access the Web UI at http://localhost:%1 - + Để kiểm soát qBittorrent, hãy truy cập Web UI tại http://localhost:%1 The Web UI administrator user name is: %1 - + Tên người dùng quản trị Web UI là: %1 The Web UI administrator password is still the default one: %1 - + Tên người dùng quản trị Web UI vẫn là mặc định: %1 This is a security risk, please consider changing your password from program preferences. - + Đây là một mối nguy về bảo mật, vui lòng xem xét việc thay đổi mật khẩu từ phần cài đặt của chương trình. Saving torrent progress... - + Đang lưu tiến trình torrent... @@ -558,169 +558,169 @@ RSS Downloader - + Trình tải RSS Enable Automated RSS Downloader - + Bật trình tải RSS tự động Download Rules - + Tải về quy luật Rule Definition - + Định nghĩa quy luật Use Regular Expressions - + Sử dụng các biểu thức thông thường Must Contain: - + Phải chứa: Must Not Contain: - + Không được chứa: Episode Filter: - + Bộ lọc phân đoạn Assign Label: - + Gán nhãn: Save to a Different Directory - + Lưu vào một thư mục khác Ignore Subsequent Matches for (0 to Disable) ... X days - + Bỏ qua các kết quả phù hợp sau này trong (0 để Tắt) days - + ngày Add Paused: - + Đã thêm mục tạm dừng: Use global settings - + Sử dụng cài đặt toàn cầu Always - + Luôn luôn Never - Không Bao Giờ + Không bao giờ Apply Rule to Feeds: - + Áp dụng quy luật cho các Feed: Matching RSS Articles - + Các bài viết RSS phù hợp &Import... - + &Nhập... &Export... - + &Xuất... Matches articles based on episode filter. - + Chọn bài viết phù hợp dựa vào bộ lọc phân đoạn. Example: - + Ví dụ: will match 2, 5, 8 through 15, 30 and onward episodes of season one example X will match - + sẽ tìm 2, 5, 8 thông qua 15, 30 và các phân đoạn tiếp theo của mùa một Episode filter rules: - + Quy luật lọc phân đoạn: Season number is a mandatory non-zero value - + Số mùa phải là một giá trị không âm Episode number is a mandatory non-zero value - + Số phân đoạn phải là một giá trị không âm Filter must end with semicolon - + Bộ lọc phải kết thúc bằng dấu chấm phẩy Three range types for episodes are supported: - + Ba loại phạm vi cho các phân đoạn được hỗ trợ: Single number: <b>1x25;</b> matches episode 25 of season one - + Số đơn: <b>1x25;</b> phù hợp với phân đoạn 25 của mùa một Normal range: <b>1x25-40;</b> matches episodes 25 through 40 of season one - + Khoảng thông thường: <b>1x25-40;</b> phù hợp với các phân đoạn từ 25 đến 40 của mùa một Infinite range: <b>1x25-;</b> matches episodes 25 and upward of season one - + Khoảng vô cực: <b>1x25-;</b> phù hợp với các phân đoạn từ 25 trở đi của mùa một Last Match: %1 days ago - + Kết quả phù hợp gần đây: %1 ngày trước Last Match: Unknown - + Kết quả phù hợp gần đây: Không rõ @@ -730,34 +730,34 @@ Please type the name of the new download rule. - Vui lòng xác định tên của luật quy định tải về mới. + Hãy gõ tên của quy luật tải về mới. Rule name conflict - Xung đột tên của quy tắc + Xung đột tên quy luật A rule with this name already exists, please choose another name. - Một quy tắc với tên như thế đã có sẵn, vui lòng chọn một tên khác. + Đã có một quy luật với tên như vậy, hãy chọn một tên khác. Are you sure you want to remove the download rule named '%1'? - + Có chắc là bạn muốn xoá quy luật tải về tên là '%1'? Are you sure you want to remove the selected download rules? - Bạn có chắc muốn loại bỏ các quy tắc tải đã được chọn hay không? + Có chắc là bạn muốn xoá các quy luật tải về đã chọn hay không? Rule deletion confirmation - Xác nhận thao tác xóa quy tắc + Xác nhận xoá quy luật @@ -772,407 +772,407 @@ The list is empty, there is nothing to export. - Danh sách hiện đang rỗng, không thể xuất dữ liệu nào. + Danh sách rỗng, không có dữ liệu nào để xuất. Where would you like to save the list? - Bạn có muốn lưu lại danh sách tại phần nào? + Bạn muốn lưu danh sách vào đâu? Rules list (*.rssrules) - Danh sách các quy tắc (*.rssrules) + Danh sách quy luật (*.rssrules) I/O Error - Lỗi Nhập/Xuất + Lỗi I/O Failed to create the destination file - Xảy ra lỗi khi tạo tập tin đích + Thất bại khi tạo tập tin đích Please point to the RSS download rules file - Vui lòng chọn tập tin quy tắc tải RSS + Vui lòng chọn tập tin quy luật tải về RSS Rules list - + Danh sách quy luật Import Error - Lỗi khi nhập dữ liệu + Lỗi khi nhập Failed to import the selected rules file - Xảy ra lỗi khi nhập dữ liệu từ các tập tin quy tắc được chọn + Thất bại khi nhập tập tin quy luật đã chọn Add new rule... - Thêm quy tắc mới... + Thêm quy luật mới... Delete rule - Xóa quy tắc + Xoá quy luật Rename rule... - Quy tắc đổi tên... + Đổi tên quy luật... Delete selected rules - Xóa các quy tắc đã chọn + Xoá các quy luật đã chọn Rule renaming - Quy tắc đổi tên + Đổi tên quy luật Please type the new rule name - Vui lòng gõ vào tên cho quy tắc mới + Vui lòng gõ tên quy luật mới Regex mode: use Perl-like regular expressions - Chế độ Regex: sử dụng các phép diễn đạt dạng Perl + Chế độ Regex: sử dụng các biểu thức thông thường dạng Perl Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>Whitespaces count as AND operators</li></ul> - Chế độ Wildcard: bạn có thể sử dụng ký tự<ul><li>? để đại diện cho bất kỳ ký tự đơn lẻ nào</li><li>* để thay thế cho một hoặc nhiều hơn bất kỳ ký tự nào</li><li>Khoảng trống được tính bằng phép toán AND</li></ul> + Chế độ Wildcard: bạn có thể sử dụng<ul><li>? để thay cho bất kỳ ký tự đơn lẻ nào</li><li>* thay cho 0 hoặc nhiều hơn ký tự bất kỳ</li><li>Khoảng trắng được xem như toán tử AND</li></ul> Wildcard mode: you can use<ul><li>? to match any single character</li><li>* to match zero or more of any characters</li><li>| is used as OR operator</li></ul> - Chế độ Wildcard: bạn có thể sử dụng ký tự<ul><li>? để đại diện cho bất kỳ ký tự đơn lẻ nào</li><li>* để thay thế cho một hoặc nhiều hơn bất kỳ ký tự nào</li><li>| được sử dụng bằng phép toán OR</li></ul> + Chế độ Wildcard: bạn có thể sử dụng<ul><li>? để thay cho bất kỳ ký tự đơn lẻ nào</li><li>* thay cho 0 hoặc nhiều hơn ký tự bất kỳ</li><li>| được xem như toán tử OR</li></ul> BitTorrent::Session - + Peer ID: - + ID của peer: - + HTTP User-Agent is '%1' - + Anonymous mode [ON] - + Anonymous mode [OFF] - + PeX support [ON] - + PeX support [OFF] - + Restart is required to toggle PeX support - + Local Peer Discovery support [ON] - + Local Peer Discovery support [OFF] - + Encryption support [ON] - + Encryption support [FORCED] - + Encryption support [OFF] - + Embedded Tracker [ON] - + Failed to start the embedded tracker! - + Embedded Tracker [OFF] - + '%1' reached the maximum ratio you set. Removing... - + '%1' reached the maximum ratio you set. Pausing... - + System network status changed to %1 e.g: System network status changed to ONLINE - + ONLINE - + OFFLINE - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding - + Unable to decode '%1' torrent file. - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' - + Couldn't save '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. - + because %1 is disabled. this peer was blocked because TCP is disabled. - + URL seed lookup failed for URL: '%1', message: %2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... - + '%1' was removed from transfer list. 'xxx.avi' was removed... - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... - + DHT support [ON] - + DHT support [OFF]. Reason: %1 - + DHT support [OFF] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 - + The network interface defined is invalid: %1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface - + Tracker '%1' was added to torrent '%2' - + Tracker '%1' was deleted from torrent '%2' - + URL seed '%1' was added to torrent '%2' - + URL seed '%1' was removed from torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Phân tích cú pháp thành công từ bộ lọc dữ liệu IP: %1 các quy luật đã được áp dụng. - + Error: Failed to parse the provided IP filter. - + Couldn't add torrent. Reason: %1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) - + '%1' added to download list. 'torrent name' was added to download list. - + An I/O error occurred, '%1' paused. %2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 - + due to IP filter. this peer was blocked due to ip filter. - + due to port filter. this peer was blocked due to port filter. - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. - + because it has a low port. this peer was blocked because it has a low port. - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use - + External IP: %1 e.g. External IP: 192.168.0.1 @@ -1283,12 +1283,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds Feed dạng RSS - + Unread Chưa đọc @@ -1377,211 +1377,334 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link Tải Torrent về từ đường dẫn liên kết hoặc liên kết Magnet - + Only one link per line Mỗi dòng chỉ chứa một liên kết - + Download Tải về - + Global upload rate limit must be greater than 0 or disabled. - + Global download rate limit must be greater than 0 or disabled. - + Alternative upload rate limit must be greater than 0 or disabled. - + Alternative download rate limit must be greater than 0 or disabled. - + Maximum active downloads must be greater than -1. - + Maximum active uploads must be greater than -1. - + Maximum active torrents must be greater than -1. - + Maximum number of connections limit must be greater than 0 or disabled. Giới hạn số lượng tối đa các kết nối phải lớn hơn 0 nếu không sẽ bị vô hiệu hóa. - + Maximum number of connections per torrent limit must be greater than 0 or disabled. Giới hạn số lượng tối đa các kết nối của mỗi torrent phải lớn hơn 0 nếu không sẽ bị vô hiệu hóa. - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. Giới hạn số lượng tối đa các phần tải lên của mỗi torrent phải lớn hơn 0 nếu không sẽ bị vô hiệu hóa. - + Unable to save program preferences, qBittorrent is probably unreachable. Không thể lưu các tùy biến của chương trình, qBittorrent có thể không thể được điều khiển theo mong muốn. - + Language Ngôn ngữ giao diện - + The port used for incoming connections must be between 1 and 65535. - + The port used for the Web UI must be between 1 and 65535. - + Unable to log in, qBittorrent is probably unreachable. - + Invalid Username or Password. - + Password - + Login Đăng nhập - + Upload Failed! - + Original authors - + Upload limit: - + Download limit: - + Apply - + Add - + Upload Torrents - + All - + Downloading Đang tải về - + Seeding Đang seed - + Completed - + Resumed - + Paused Tạm dừng - + Active - + Inactive - + Save files to location: Lưu các tập tin vào vị trí: - + Label: Nhãn: - + Cookie: - + Type folder here - - Other... + + Run an external program on torrent completion + + + + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + + + + + Watch Folder + + + + + Default Folder + + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + + + + + Every day + Schedule the use of alternative rate limits on ... + Mỗi ngày + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Downloaded Is the file downloaded or not? Đã được tải về @@ -1592,57 +1715,57 @@ You should get this information from your Web browser preferences. - + Upload local torrent - + Are you sure you want to delete the selected torrents from the transfer list? - + The Web UI username must be at least 3 characters long. Tên tài khoản trong giao diện Web phải có ít nhất 3 ký tự về độ dài. - + The Web UI password must be at least 3 characters long. Mật khẩu của tài khoản trong giao diện Web phải có ít nhất 3 ký tự về độ dài. - + Save Lưu lại - + qBittorrent client is not reachable Hiện không thể kết nối đến máy trạm của qBittorrent - + HTTP Server Máy chủ HTTP - + The following parameters are supported: Các thông số sau hiện được hỗ trợ là: - + Torrent path Đường dẫn torrent - + Torrent name Tên torrent - + qBittorrent has been shutdown. qBittorrent đã bị tắt đi. @@ -2448,7 +2571,7 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? I/O Error - + Lỗi I/O @@ -3763,7 +3886,7 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Net::Smtp - + Email Notification Error: @@ -4015,7 +4138,7 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Search plugins - Tiện ích tìm kiếm + @@ -4035,45 +4158,45 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Url - Đường dẫn + Enabled - Đã bật + You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Bạn có thể nhận được các tiện ích tìm kiếm mới nhất ở đây: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + Install a new one - Cài một phần mới + Check for updates - Kiểm tra cập nhật phiên bản + Close - Đóng lại + Uninstall - Gỡ bỏ + Yes - + Đồng Ý @@ -4086,7 +4209,7 @@ Bạn Có Chắc Rằng Bạn Vẫn Muốn Thoát Chứ? Uninstall warning - Cảnh báo khi gỡ bỏ + @@ -4097,39 +4220,39 @@ Those plugins were disabled. Uninstall success - Đã gỡ bỏ thành công + All selected plugins were uninstalled successfully - Tất cả các tiện ích được chọn đã được gỡ bỏ thành công + New search engine plugin URL - Đường dẫn mới của phần tiện ích tìm kiếm + URL: - Đường dẫn: + Invalid link - Liên kết không hợp lệ + The link doesn't seem to point to a search engine plugin. - Liên kết này dường như không trỏ đến một tiện ích tìm kiếm nào. + Select search plugins - Chọn tiện ích tìm kiếm + @@ -4141,12 +4264,12 @@ Those plugins were disabled. Search plugin update - Cập nhật tiện ích tìm kiếm + All your plugins are already up to date. - Tất cả các tiện ích của bạn đều là mới nhất. + @@ -4158,7 +4281,7 @@ Those plugins were disabled. Search plugin install - Cài đặt tiện ích tìm kiếm + @@ -4188,22 +4311,22 @@ Those plugins were disabled. Plugin source - Nguồn của tiện ích + Search plugin source: - Nguồn của tiện ích tìm kiếm: + Local file - Tập tin tại máy + Web link - Liên kết Web + @@ -4941,17 +5064,17 @@ Those plugins were disabled. Lọc đường dẫn (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. - + An access error occurred while trying to write the configuration file. - + A format error occurred while trying to write the configuration file. @@ -5231,7 +5354,7 @@ Those plugins were disabled. Never - Không Bao Giờ + Không bao giờ @@ -5384,7 +5507,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. @@ -5889,13 +6012,6 @@ No further notices will be issued. - - RssParser - - Failed to open downloaded RSS file. - Không thể mở tập tin tải về RSS. - - RssSettingsDlg @@ -5934,12 +6050,12 @@ No further notices will be issued. Browse... - + Duyệt tìm... Choose save path - + Chọn đường dẫn để lưu @@ -5964,92 +6080,9 @@ No further notices will be issued. Save Files to - - Download here - Tải về tại đây - - - - SearchCategories - - All categories - Tất cả thể loại - - - Movies - Phim - - - TV shows - Chương trình TV - - - Music - Nhạc - - - Games - Trò chơi - - - Anime - A-ni-mê - - - Software - Phần mềm - - - Pictures - Hình ảnh - - - Books - Sách - SearchEngine - - Search - Tìm kiếm - - - Empty search pattern - Làm rỗng phần tìm kiếm mẫu - - - Please type a search pattern first - Trước tiên xin vui lòng chọn một mẫu tìm kiếm - - - Searching... - Đang tìm kiếm... - - - Stop - Dừng lại - - - Search Engine - Cơ chế Tìm kiếm - - - Search has finished - Đã hoàn tất phần tìm kiếm - - - An error occurred during search... - Xảy ra lổi trong quá trình tìm kiếm... - - - Search aborted - Hủy thao tác tìm kiếm - - - Search returned no results - Không tìm thấy kết quả nào - Unknown search engine plugin file format. @@ -6085,47 +6118,47 @@ No further notices will be issued. All categories - Tất cả thể loại + Movies - Phim + TV shows - Chương trình TV + Music - Nhạc + Games - Trò chơi + Anime - A-ni-mê + Software - Phần mềm + Pictures - Hình ảnh + Books - Sách + @@ -6174,22 +6207,22 @@ No further notices will be issued. - - - + + + Search - + Tìm Kiếm Status: - Trạng thái: + - + Stopped - Đã dừng lại + @@ -6199,7 +6232,7 @@ No further notices will be issued. Go to description page - Truy cập vào trang mô tả + @@ -6212,86 +6245,86 @@ No further notices will be issued. - + All enabled - + All plugins - - + + Multiple... - - - + + + Search Engine - Cơ chế Tìm kiếm + - + Please install Python to use the Search Engine. - + Empty search pattern - Làm rỗng phần tìm kiếm mẫu + - + Please type a search pattern first - Trước tiên xin vui lòng chọn một mẫu tìm kiếm + - - + + Results <i>(%1)</i>: i.e: Search results - - - Searching... - Đang tìm kiếm... - + Searching... + + + + Stop - Dừng lại + - - + + Search has finished - Đã hoàn tất phần tìm kiếm + - - + + Search aborted - Hủy thao tác tìm kiếm + - + Search returned no results - Không tìm thấy kết quả nào + - + Search has failed - + An error occurred during search... - Xảy ra lổi trong quá trình tìm kiếm... + @@ -6757,10 +6790,6 @@ No further notices will be issued. Download Priority - - Priority - Độ ưu tiên - TorrentCreatorDlg @@ -7956,108 +7985,6 @@ No further notices will be issued. Xin vui lòng nhập vào ít nhất một đường dẫn. - - engineSelect - - Search plugins - Tiện ích tìm kiếm - - - Installed search engines: - Các công cụ cài tìm kiếm đã được cài đặt: - - - Name - Tên - - - Url - Đường dẫn - - - Enabled - Đã bật - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - Bạn có thể nhận được các tiện ích tìm kiếm mới nhất ở đây: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - Cài một phần mới - - - Check for updates - Kiểm tra cập nhật phiên bản - - - Close - Đóng lại - - - Uninstall - Gỡ bỏ - - - - engineSelectDlg - - Uninstall warning - Cảnh báo khi gỡ bỏ - - - Uninstall success - Đã gỡ bỏ thành công - - - The link doesn't seem to point to a search engine plugin. - Liên kết này dường như không trỏ đến một tiện ích tìm kiếm nào. - - - Select search plugins - Chọn tiện ích tìm kiếm - - - Search plugin install - Cài đặt tiện ích tìm kiếm - - - Yes - Đồng ý - - - No - Không Đồng Ý - - - Search plugin update - Cập nhật tiện ích tìm kiếm - - - Sorry, update server is temporarily unavailable. - Rất tiếc, hiện không thể kết nối đến máy chủ phục vụ tiến trình cập nhật. - - - All your plugins are already up to date. - Tất cả các tiện ích của bạn đều là mới nhất. - - - All selected plugins were uninstalled successfully - Tất cả các tiện ích được chọn đã được gỡ bỏ thành công - - - Invalid link - Liên kết không hợp lệ - - - New search engine plugin URL - Đường dẫn mới của phần tiện ích tìm kiếm - - - URL: - Đường dẫn: - - errorDialog @@ -8185,192 +8112,173 @@ No further notices will be issued. options_imp - - + + Choose export directory Chọn thư mục xuất dữ liệu - - - - + + + + Choose a save directory Chọn thư mục để lưu dữ liệu - + Add directory to scan Thêm thư mục để quét - + Supported parameters (case sensitive): - + %N: Torrent name - + %L: Label - + %F: Content path (same as root path for multifile torrent) - + %R: Root path (first torrent subdirectory path) - + %D: Save path - + %C: Number of files - + %Z: Torrent size (bytes) - + %T: Current tracker - + %I: Info hash - + Folder is already being watched. Thư mục đã bị theo dõi. - + Folder does not exist. Thư mục không tồn tại. - + Folder is not readable. Không thể đọc được dữ liệu từ thư mục. - + Failure Gặp lỗi - + Failed to add Scan Folder '%1': %2 Gặp lổi khi thêm vào thư mục quét '%1': %2 - - + + Filters Lọc dữ liệu - - + + Choose an IP filter file - + SSL Certificate - + SSL Key - + Parsing error Lỗi phân tích cú pháp - + Failed to parse the provided IP filter Lỗi: Không thể phân tích cú pháp từ bộ lọc dữ liệu IP cung cấp. - + Successfully refreshed Đã cập nhật thành công - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number Phân tích cú pháp thành công từ bộ lọc dữ liệu IP: %1 các quy luật đã được áp dụng. - + Invalid key Khoá không hợp lệ. - + This is not a valid SSL key. Đây không phải là một khóa SSL hợp lệ. - + Invalid certificate Chứng chỉ không hợp lệ - + This is not a valid SSL certificate. Đây không phải là một chứng chỉ SSL hợp lệ. - + The start time and the end time can't be the same. Thời gian bắt đầu và thời gian kết thúc không được phép giống nhau. - + Time Error Xảy ra lỗi về thời gian - - pluginSourceDlg - - Plugin source - Nguồn của tiện ích - - - Search plugin source: - Nguồn của tiện ích tìm kiếm: - - - Local file - Tập tin tại máy - - - Web link - Liên kết Web - - preview @@ -8394,31 +8302,4 @@ No further notices will be issued. Hủy bỏ - - search_engine - - Search - Tìm kiếm - - - Status: - Trạng thái: - - - Stopped - Đã dừng lại - - - Download - Tải về - - - Go to description page - Truy cập vào trang mô tả - - - Search engines... - Bộ máy tìm kiếm online... - - diff --git a/src/lang/qbittorrent_zh.ts b/src/lang/qbittorrent_zh.ts index d704652d9..d2a480c66 100644 --- a/src/lang/qbittorrent_zh.ts +++ b/src/lang/qbittorrent_zh.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: Peer ID: - + HTTP User-Agent is '%1' HTTP 用户代理是 '%1' - + Anonymous mode [ON] 匿名模式 [开] - + Anonymous mode [OFF] 匿名模式 [关] - + PeX support [ON] PeX 支持 [开] - + PeX support [OFF] PeX 支持 [关] - + Restart is required to toggle PeX support 更改 PeX 支持状态需要重启 - + Local Peer Discovery support [ON] 本地资源搜索支持 [开] - + Local Peer Discovery support [OFF] 本地资源搜索支持 [关] - + Encryption support [ON] 加密支持 [开] - + Encryption support [FORCED] 加密支持 [强制] - + Encryption support [OFF] 加密支持 [开] - + Embedded Tracker [ON] 嵌入式 Tracker [开] - + Failed to start the embedded tracker! 无法启动嵌入式 tracker! - + Embedded Tracker [OFF] 嵌入式 Tracker [关] - + '%1' reached the maximum ratio you set. Removing... '%1' 达到了您设定的最大比率,正在删除... - + '%1' reached the maximum ratio you set. Pausing... '%1' 达到了您设定的最大比率,暂停中... - + System network status changed to %1 e.g: System network status changed to ONLINE 系统网络状态变更至 %1 - + ONLINE 在线 - + OFFLINE 离线 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding 网络配置 %1 发生改变,刷新会话绑定 - + Unable to decode '%1' torrent file. 无法解析 '%1' torrent 文件。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 递归下载文件 '%1' 内嵌于 torrent '%2' - + Couldn't save '%1.torrent' 无法保存 '%1.torrent' - + because %1 is disabled. this peer was blocked because uTP is disabled. 因为 %1 已被禁用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因为 %1 已被禁用。 - + URL seed lookup failed for URL: '%1', message: %2 找不到 URL 种子:'%1',消息:%2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... '%1' 从传输列表及硬盘被移除。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... '%1' 从传输列表被移除。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... '%1' 下载中,请等待... - + DHT support [ON] DHT 支持 [开] - + DHT support [OFF]. Reason: %1 DHT 支持 [关]。原因:%1 - + DHT support [OFF] DHT 支持 [关] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent 试图监听任何接口上的端口:%1 - + The network interface defined is invalid: %1 网络界面定义无效:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent 试图监听接口 %1 端口:%2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent 没有找到一个 %1 本地地址侦听 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent 监听接口端口 %1 失败。原因:%2。 - + Tracker '%1' was added to torrent '%2' Tracker '%1' 已被添加到 torrent '%2' - + Tracker '%1' was deleted from torrent '%2' Tracker '%1' 已被添加到 torrent '%2' - + URL seed '%1' was added to torrent '%2' URL 种子'%1' 已被添加到 torrent '%2' - + URL seed '%1' was removed from torrent '%2' URL 种子'%1' 已被添加到 torrent '%2' - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 无法恢复 torrent:'%1'。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 解析提供的 IP 过滤器成功:%1 条规则被应用。 - + Error: Failed to parse the provided IP filter. 错误: 无法解析提供的 IP 过滤器。 - + Couldn't add torrent. Reason: %1 不能添加 torrent:'%1'。原因:%2 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) '%1' 已恢复(快速恢复)。 - + '%1' added to download list. 'torrent name' was added to download list. '%1' 已添加到下载列表。 - + An I/O error occurred, '%1' paused. %2 出现 I/O 错误,'%1' 暂停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP:端口映射失败,消息: %1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP:端口映射成功,消息: %1 - + due to IP filter. this peer was blocked due to ip filter. 取决于 IP 筛选器。 - + due to port filter. this peer was blocked due to port filter. 取决于端口筛选器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由于 i2p 混合模式的限制。 - + because it has a low port. this peer was blocked because it has a low port. 因为它有一个低端口号。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent 成功监听接口 %1 端口:%2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent 监听接口 %1 端口:%2/%3 失败。原因:%4。 - + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP:%1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS 订阅列表 - + Unread 未读 @@ -1378,211 +1378,338 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link 从 URL 或磁力链接下载 Torrents - + Only one link per line 每行一个连接 - + Download 下载 - + Global upload rate limit must be greater than 0 or disabled. 全局上传限制必须大于 0 或禁止。 - + Global download rate limit must be greater than 0 or disabled. 全局下载限制必须大于 0 或禁止。 - + Alternative upload rate limit must be greater than 0 or disabled. 可替代上传比率限制必须大于 0 或禁止。 - + Alternative download rate limit must be greater than 0 or disabled. 可替代下载比率限制必须大于 0 或禁止。 - + Maximum active downloads must be greater than -1. 最大同时下载数必须大于 -1。 - + Maximum active uploads must be greater than -1. 最大同时上传数必须大于 -1。 - + Maximum active torrents must be greater than -1. 最大同时活动 torrents 必须大于 -1。 - + Maximum number of connections limit must be greater than 0 or disabled. 最大连接数限制必须大于 0 或禁用。 - + Maximum number of connections per torrent limit must be greater than 0 or disabled. 每个 torrent 的最大连接数限制必须大于 0 或禁用。 - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. 每个 torrent 的最大上传线程数限制必须大于 0 或禁用。 - + Unable to save program preferences, qBittorrent is probably unreachable. 无法保存程序偏好选项,可能是无法连接到 qBttorrent。 - + Language 语言 - + The port used for incoming connections must be between 1 and 65535. 用于传入连接的端口必须大于 1 且小于 65535。 - + The port used for the Web UI must be between 1 and 65535. 用于 Web 用户界面的端口必须大于 1 且小于 65535。 - + Unable to log in, qBittorrent is probably unreachable. 登录失败,可能是无法连接到 qBttorrent。 - + Invalid Username or Password. 无效的用户名或密码。 - + Password 密码 - + Login 登录 - + Upload Failed! 上传失败! - + Original authors 原作者 - + Upload limit: 上传限制: - + Download limit: 下载限制: - + Apply 确定 - + Add 添加 - + Upload Torrents 上传 Torrents - + All 全部 - + Downloading 下载 - + Seeding 做种 - + Completed 完成 - + Resumed 恢复 - + Paused 暂停 - + Active 活动 - + Inactive 非活动 - + Save files to location: 保存文件到: - + Label: 标签: - + Cookie: Cookie: - + Type folder here + 在此输入文件夹名称 + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + 保存文件到 + + + + Watch Folder + 监控文件夹 + + + + Default Folder + 默认文件夹 + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + 其他... + + + + Every day + Schedule the use of alternative rate limits on ... + 每天 + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + 其他... + + + Downloaded Is the file downloaded or not? 已下载 @@ -1593,57 +1720,57 @@ You should get this information from your Web browser preferences. 注销 - + Upload local torrent 上传本地的 torrent - + Are you sure you want to delete the selected torrents from the transfer list? 你确定要从传输列表中删除选中的 torrents 吗? - + The Web UI username must be at least 3 characters long. Web 界面用户名长度最少为 3 个字符。 - + The Web UI password must be at least 3 characters long. Web 界面密码长度最少为 3 个字符。 - + Save 保存 - + qBittorrent client is not reachable 无法访问 qBittorrent 客户端 - + HTTP Server HTTP 服务器 - + The following parameters are supported: 支持以下参数: - + Torrent path Torrent 路径 - + Torrent name Torrent 名称 - + qBittorrent has been shutdown. qBittorrent 已经关闭。 @@ -2216,7 +2343,8 @@ Do you want to associate qBittorrent to torrent files and Magnet links? A new version is available. Do you want to download %1? - + 有新版本可供更新。 +您想要下载版本 %1 吗? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. 使用搜索引擎需要 Python,但是它似乎未被安装。 - - A new version is available. -Update to version %1? - 有新版本可供更新。 -更新到版本 %1 吗? - No updates available. @@ -2489,12 +2611,12 @@ Are you sure you want to quit qBittorrent? Venezuela, Bolivarian Republic of - + 委內瑞拉 Viet Nam - + 越南 @@ -2502,14 +2624,6 @@ Are you sure you want to quit qBittorrent? N/A N/A - - Asia/Pacific Region - 亚洲/太平洋地区 - - - Europe - 欧洲 - Andorra @@ -2545,10 +2659,6 @@ Are you sure you want to quit qBittorrent? Armenia 亚美尼亚 - - Netherlands Antilles - 荷属安地列斯群岛 - Angola @@ -2644,10 +2754,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam 文莱达鲁萨兰国 - - Bolivia - 玻利维亚 - Brazil @@ -2713,10 +2819,6 @@ Are you sure you want to quit qBittorrent? Switzerland 瑞士 - - Cote D'Ivoire - 科特迪瓦 - Cook Islands @@ -2760,7 +2862,7 @@ Are you sure you want to quit qBittorrent? Curacao - + 库拉索 @@ -2872,10 +2974,6 @@ Are you sure you want to quit qBittorrent? France 法国 - - France, Metropolitan - 法国大都会 - Gabon @@ -3161,10 +3259,6 @@ Are you sure you want to quit qBittorrent? Latvia 拉托维亚 - - Libyan Arab Jamahiriya - 阿拉伯利比亚民众国 - Morocco @@ -3190,10 +3284,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands 马绍尔群岛 - - Macedonia - 马其顿 - Mali @@ -3209,10 +3299,6 @@ Are you sure you want to quit qBittorrent? Mongolia 蒙古 - - Macau - 澳门 - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon 圣皮埃尔和密克隆群岛 - - Pitcairn Islands - 皮特凯恩群岛 - Puerto Rico 波多黎各 - - Palestinian Territory - 巴勒斯坦领土 - Portugal @@ -3456,10 +3534,6 @@ Are you sure you want to quit qBittorrent? Singapore 新加坡 - - Saint Helena - 圣海伦娜 - Slovenia @@ -3578,62 +3652,62 @@ Are you sure you want to quit qBittorrent? Bolivia, Plurinational State of - + 玻利维亚 Bonaire, Sint Eustatius and Saba - + 博奈尔 Cote d'Ivoire - + 科特迪瓦 Libya - + 利比亚 Saint Martin (French part) - + 法属圣马丁岛 Macedonia, The Former Yugoslav Republic of - + 马其顿共和国 Macao - + 澳门 Pitcairn - + 皮特凯恩 Palestine, State of - + 巴勒斯坦 Saint Helena, Ascension and Tristan da Cunha - + 圣赫勒拿、阿森松和特里斯坦-达库尼亚 South Sudan - + 南苏丹 Sint Maarten (Dutch part) - + 荷属圣马丁岛 @@ -3700,10 +3774,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines 圣文森特和格林纳丁斯 - - Venezuela - 委内瑞拉 - Virgin Islands, British @@ -3714,10 +3784,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. 美属维京群岛 - - Vietnam - 越南 - Vanuatu @@ -3768,18 +3834,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe 津巴布韦 - - Anonymous Proxy - 匿名代理 - - - Satellite Provider - 卫星提供商 - - - Other - 其他 - Aland Islands @@ -3805,10 +3859,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy 圣巴泰勒米 - - Saint Martin - 圣马丁岛 - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: Email 提醒出错: @@ -3992,7 +4042,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + 文件 @@ -4098,65 +4148,65 @@ Are you sure you want to quit qBittorrent? Search plugins - 搜索插件 + 搜索插件 Installed search plugins: - + 已安装的搜索插件: Name - 名称 + 名称 Version - 版本 + 版本 Url - 网址 + 网址 Enabled - 启用 + 启用 You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 您可以在这里获得新的搜索引擎:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 您可以在这里获得新的搜索引擎:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - 安装一个新的搜索引擎 + 安装一个新的搜索引擎 Check for updates - 检查更新 + 检查更新 Close - 关闭 + 关闭 Uninstall - 卸载 + 卸载 Yes - + @@ -4164,107 +4214,107 @@ Are you sure you want to quit qBittorrent? No - + Uninstall warning - 卸载警告 + 卸载警告 Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 一些插件不能被卸载,因为它们是由 qBittorrent 添加的。只有你自己添加的插件才能被卸载。 + 一些插件不能被卸载,因为它们是由 qBittorrent 添加的。只有你自己添加的插件才能被卸载。 这些插件已被禁用。 Uninstall success - 卸载成功 + 卸载成功 All selected plugins were uninstalled successfully - 所有选中的插件已成功卸载 + 所有选中的插件已成功卸载 New search engine plugin URL - 新搜索引擎插件网址 + 新搜索引擎插件网址 URL: - 网址: + 网址: Invalid link - 无效链接 + 无效链接 The link doesn't seem to point to a search engine plugin. - 该链接似乎并不指向一个搜索引擎插件。 + 该链接似乎并不指向一个搜索引擎插件。 Select search plugins - 选择搜索插件 + 选择搜索插件 qBittorrent search plugin - qBittorrent 搜索插件 + qBittorrent 搜索插件 Search plugin update - 更新搜索插件 + 更新搜索插件 All your plugins are already up to date. - 所有的插件已是最新的。 + 所有的插件已是最新的。 Sorry, couldn't check for plugin updates. %1 - + 抱歉,无法检查插件更新。%1 Search plugin install - 安装搜索插件 + 安装搜索插件 "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + 搜索引擎插件“%1”已成功安装。 Couldn't install "%1" search engine plugin. %2 - + 无法安装搜索引擎插件“%1”。%2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + 搜索引擎插件“%1”已成功更新。 Couldn't update "%1" search engine plugin. %2 - + 无法更新搜索引擎插件“%1”。%2 @@ -4272,22 +4322,22 @@ Those plugins were disabled. Plugin source - 插件来源 + 插件来源 Search plugin source: - 搜索插件来源: + 搜索插件来源: Local file - 本地文件 + 本地文件 Web link - 网络连接 + 网络连接 @@ -5025,17 +5075,17 @@ Those plugins were disabled. 过滤器路径 (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. 检测到不清洁的程序退出。使用备份文件恢复设定。 - + An access error occurred while trying to write the configuration file. 尝试写入配置文件时出现权限错误。 - + A format error occurred while trying to write the configuration file. 尝试写入配置文件时出现文件格式错误。 @@ -5468,7 +5518,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. 经过多次授权失败后,您的 IP 已被封锁。 @@ -5960,12 +6010,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... + 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... Automatically downloading '%1' torrent from '%2' RSS feed... - 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... + 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... @@ -5973,29 +6023,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 从 '%2' 订阅源自动下载 '%1' 失败,因为 '%2' 订阅源没有包含任何 torrent 或者磁力链接... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - 自动下载 RSS 订阅 '%2' 中的 torrent '%1' ... - - - - RssParser - - Failed to open downloaded RSS file. - 无法打开下载的 RSS 文件。 - - - Invalid RSS feed at '%1'. - '%1' 无效的 RSS 订阅。 + 无效的 RSS 订阅。 @@ -6026,22 +6054,22 @@ No further notices will be issued. Watch Folder - + 监控文件夹 Default Folder - + 默认文件夹 Browse... - 浏览... + 浏览... Choose save path - 选择保存路径 + 选择保存路径 @@ -6049,12 +6077,12 @@ No further notices will be issued. Watch Folder - + 监控文件夹 Default Folder - + 默认文件夹 @@ -6064,199 +6092,87 @@ No further notices will be issued. Save Files to - - - - Download here - 下载到这里 - - - Download path - 下载路径 - - - - SearchCategories - - All categories - 所有类别 - - - Movies - 电影 - - - TV shows - 电视节目 - - - Music - 音乐 - - - Games - 游戏 - - - Anime - 动画 - - - Software - 软件 - - - Pictures - 图片 - - - Books - 书籍 + 保存文件到 SearchEngine - - Search - 搜索 - - - Please install Python to use the Search Engine. - 请安装 Python 以使用搜索引擎。 - - - Empty search pattern - 无搜索关键词 - - - Please type a search pattern first - 请先输入关键词 - - - Searching... - 搜索中... - - - Stop - 停止 - - - Search Engine - 搜索引擎 - - - Search has finished - 搜索完毕 - - - An error occurred during search... - 搜索中出现错误... - - - Search aborted - 搜索失败 - - - All enabled - 全部开启 - - - All engines - 所有搜索引擎 - - - Multiple... - 更多... - - - Results <i>(%1)</i>: - i.e: Search results - 结果 <i>(%1)</i> - - - Search returned no results - 搜索无结果 - - - Stopped - 已停止 - Unknown search engine plugin file format. - + 未知的搜索引擎插件文件格式。 A more recent version of this plugin is already installed. - + 此插件的新版本已经安装了。 Plugin is not supported. - + 不支持的插件。 Update server is temporarily unavailable. %1 - + 更新服务器暂时不可用。%1 Failed to download the plugin file. %1 - + 无法下载插件文件。%1 An incorrect update info received. - + 收到的更新信息存在错误。 All categories - 所有类别 + 所有类别 Movies - 电影 + 电影 TV shows - 电视节目 + 电视节目 Music - 音乐 + 音乐 Games - 游戏 + 游戏 Anime - 动画 + 动画 Software - 软件 + 软件 Pictures - 图片 + 图片 Books - 书籍 + 书籍 @@ -6305,124 +6221,124 @@ No further notices will be issued. - - - + + + Search - 搜索 + 搜索 Status: - 状态: + 状态: - + Stopped - + 已停止 Download - 下载 + 下载 Go to description page - 跳至描述页 + 跳至描述页 Copy description page URL - 复制描述页网址 + 复制描述页网址 Search plugins... - + 搜索插件... - + All enabled - 全部开启 - - - - All plugins - + 全部开启 - + All plugins + 所有插件 + + + + Multiple... - 更多... + 更多... - - - + + + Search Engine - 搜索引擎 + 搜索引擎 - + Please install Python to use the Search Engine. - 请安装 Python 以使用搜索引擎。 + 请安装 Python 以使用搜索引擎。 - + Empty search pattern - 无搜索关键词 + 无搜索关键词 - + Please type a search pattern first - 请先输入关键词 + 请先输入关键词 - - + + Results <i>(%1)</i>: i.e: Search results - 结果 <i>(%1)</i> - - - - Searching... - 搜索中... + 结果 <i>(%1)</i> + Searching... + 搜索中... + + + Stop - 停止 + 停止 - - + + Search has finished - 搜索完毕 + 搜索完毕 - - + + Search aborted - 搜索失败 + 搜索中止 - + Search returned no results - 搜索无结果 + 搜索无结果 - + Search has failed - + 搜索失败 - + An error occurred during search... - 搜索中出现错误... + 搜索中出现错误... @@ -6886,11 +6802,7 @@ No further notices will be issued. Download Priority - - - - Priority - 优先 + 下载优先级 @@ -8087,160 +7999,6 @@ No further notices will be issued. 请输入至少一个 URL。 - - engineSelect - - Search plugins - 搜索插件 - - - Installed search engines: - 搜索引擎已安装: - - - Name - 名称 - - - Version - 版本 - - - Url - 网址 - - - Enabled - 启用 - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 您可以在这里获得新的搜索引擎:<a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - 安装一个新的搜索引擎 - - - Check for updates - 检查更新 - - - Close - 关闭 - - - Uninstall - 卸载 - - - - engineSelectDlg - - Uninstall warning - 卸载警告 - - - Uninstall success - 卸载成功 - - - Invalid plugin - 无效插件 - - - The search engine plugin is invalid, please contact the author. - 搜索插件不可用,请联系作者。 - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - 更新版本的搜索引擎插件 '%1' 已安装。 - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - 搜索引擎插件 '%1' 不能被更新,保留旧版本。 - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - 搜索引擎插件 '%1' 不能被安装。 - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - 搜索引擎插件 '%1' 已成功更新。 - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - 搜索引擎插件 '%1' 已成功安装。 - - - The link doesn't seem to point to a search engine plugin. - 该链接似乎并不指向一个搜索引擎插件。 - - - Select search plugins - 选择搜索插件 - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - 抱歉,搜索插件 '%1' 安装失败。 - - - Search plugin install - 安装搜索插件 - - - Yes - - - - No - - - - qBittorrent search plugin - qBittorrent 搜索插件 - - - Search plugin update - 更新搜索插件 - - - Sorry, update server is temporarily unavailable. - 对不起,更新服务器暂时不可用。 - - - All your plugins are already up to date. - 所有的插件已是最新的。 - - - All selected plugins were uninstalled successfully - 所有选中的插件已成功卸载 - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - 一些插件不能被卸载,因为它们是由 qBittorrent 添加的。只有你自己添加的插件才能被卸载。 -这些插件已被禁用。 - - - Invalid link - 无效链接 - - - New search engine plugin URL - 新搜索引擎插件网址 - - - URL: - 网址: - - errorDialog @@ -8368,192 +8126,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory 选择导出目录 - - - - + + + + Choose a save directory 保存到 - + Add directory to scan 添加监视目录 - + Supported parameters (case sensitive): 支持的参数(区分大小写): - + %N: Torrent name %N:Torrent 名称 - + %L: Label %L:标签 - + %F: Content path (same as root path for multifile torrent) %F:内容路径(与多文件 torrent 的根目录相同) - + %R: Root path (first torrent subdirectory path) %R:根目录(第一个 torrent 的子目录路径) - + %D: Save path %D:保存路径 - + %C: Number of files %C:文件数 - + %Z: Torrent size (bytes) %Z:Torrent 大小(字节) - + %T: Current tracker %T:当前 tracker - + %I: Info hash %I:哈希值 - + Folder is already being watched. 文件夹已被监视。 - + Folder does not exist. 文件夹不存在。 - + Folder is not readable. 文件夹不可读。 - + Failure 失败 - + Failed to add Scan Folder '%1': %2 添加监视文件夹 '%1' 失败:%2 - - + + Filters 过滤器 - - + + Choose an IP filter file 选择一个 IP 过滤规则文件 - + SSL Certificate SSL 证书 - + SSL Key SSL 密钥 - + Parsing error 解析错误 - + Failed to parse the provided IP filter 无法解析提供的 IP 过滤器 - + Successfully refreshed 刷新成功 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 解析提供的 IP 过滤器成功:%1 条规则被应用。 - + Invalid key 无效密钥 - + This is not a valid SSL key. 这不是有效的 SSL 密钥。 - + Invalid certificate 无效证书 - + This is not a valid SSL certificate. 这不是有效的 SSL 证书。 - + The start time and the end time can't be the same. 开始时间和结束时间不能相同。 - + Time Error 时间错误 - - pluginSourceDlg - - Plugin source - 插件来源 - - - Search plugin source: - 搜索插件来源: - - - Local file - 本地文件 - - - Web link - 网络连接 - - preview @@ -8577,35 +8316,4 @@ Those plugins were disabled. 取消 - - search_engine - - Search - 搜索 - - - Status: - 状态: - - - Stopped - 停止 - - - Download - 下载 - - - Go to description page - 跳至描述页 - - - Copy description page URL - 复制描述页网址 - - - Search engines... - 搜索引擎... - - diff --git a/src/lang/qbittorrent_zh_HK.ts b/src/lang/qbittorrent_zh_HK.ts index 8e8be8338..479713466 100644 --- a/src/lang/qbittorrent_zh_HK.ts +++ b/src/lang/qbittorrent_zh_HK.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: 同路人ID: - + HTTP User-Agent is '%1' HTTP用戶代理是「%1」 - + Anonymous mode [ON] 匿名模式 [啟用中] - + Anonymous mode [OFF] 匿名模式 [停用中] - + PeX support [ON] 支援PeX同路人交換 [啟用中] - + PeX support [OFF] 支援PeX同路人交換 [停用中] - + Restart is required to toggle PeX support 啟用和停用對PeX同路人交換的支援須重新啟動 - + Local Peer Discovery support [ON] 支援LPD本地同路人發現 [啟用中] - + Local Peer Discovery support [OFF] 支援LPD本地同路人發現 [停用中] - + Encryption support [ON] 加密支援 [啟用中] - + Encryption support [FORCED] 加密支援 [強制] - + Encryption support [OFF] 加密支援 [停用中] - + Embedded Tracker [ON] 嵌入式追蹤器 [啟用中] - + Failed to start the embedded tracker! 無法開啟嵌入式追蹤器。 - + Embedded Tracker [OFF] 嵌入式追蹤器 [停用中] - + '%1' reached the maximum ratio you set. Removing... 「%1」已到你設定的最大分享率。清除中… - + '%1' reached the maximum ratio you set. Pausing... 「%1」已到你設定的最大分享率。暫停中… - + System network status changed to %1 e.g: System network status changed to ONLINE 系統網絡連線:%1 - + ONLINE 啟用 - + OFFLINE 停用 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1的網絡設定已更改,正在更新階段配對 - + Unable to decode '%1' torrent file. 無法解析Torrent檔「%1」 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 反復下載嵌入於Torrent「%2」的「%1」 - + Couldn't save '%1.torrent' 無法儲存「%1.torrent」 - + because %1 is disabled. this peer was blocked because uTP is disabled. 因%1已被停用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因%1已被停用。 - + URL seed lookup failed for URL: '%1', message: %2 網址「%1」搜尋URL種子失敗,訊息:%2 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... 「%1」已從傳輸清單和磁碟中清除。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... 「%1」已從傳輸清單清除。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... 下載「%1」中,請稍候… - + DHT support [ON] 支援DHT分散式網絡 [啟用中] - + DHT support [OFF]. Reason: %1 支援DHT分散式網絡 [停用中]。理由:%1 - + DHT support [OFF] 支援DHT分散式網絡 [停用中] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent正在嘗試監聽任何介面埠:%1 - + The network interface defined is invalid: %1 定義的網絡介面無效:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent正在嘗試監聽介面%1的埠:%2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent未找到供監聽的%1本地位址 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent監聽任何介面埠失敗:%1。理由:%2。 - + Tracker '%1' was added to torrent '%2' 追蹤器「%1」已加入到Torrent「%2」 - + Tracker '%1' was deleted from torrent '%2' 追蹤器「%1」已從Torrent「%2」刪除 - + URL seed '%1' was added to torrent '%2' 已加入URL種子「%1」到Torrent「%2」 - + URL seed '%1' was removed from torrent '%2' 已從Torrent「%2」清除URL種子「%1」 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 無法復原Torrent檔案「%1」。 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 成功解析IP過濾器:已套用%1個規則。 - + Error: Failed to parse the provided IP filter. 錯誤:解析IP過濾器失敗。 - + Couldn't add torrent. Reason: %1 無法加入Torrent。理由:%1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) 「%1」已復原。(快速復原) - + '%1' added to download list. 'torrent name' was added to download list. 「%1」已加入到下載清單。 - + An I/O error occurred, '%1' paused. %2 發生入出錯誤,「%1」已暫停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP╱NAT-PMP:埠映射失敗,訊息:%1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP╱NAT-PMP:埠映射成功,訊息:%1 - + due to IP filter. this peer was blocked due to ip filter. 由於IP過濾器。 - + due to port filter. this peer was blocked due to port filter. 由於埠過濾器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由於i2p混合模式限制。 - + because it has a low port. this peer was blocked because it has a low port. 由於低埠。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent成功監聽介面%1的埠:%2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent監聽介面%1的埠%2/%3失敗。理由:%4。 - + External IP: %1 e.g. External IP: 192.168.0.1 外部IP:%1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread 未讀 @@ -1378,211 +1378,338 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link 從網址或磁性連結下載Torrent - + Only one link per line 一行一連結 - + Download 下載 - + Global upload rate limit must be greater than 0 or disabled. 整體上載速度限制:請停用或設定大於零。 - + Global download rate limit must be greater than 0 or disabled. 整體下載速度限制:請停用或設定大於零。 - + Alternative upload rate limit must be greater than 0 or disabled. 特別上載速度限制:請停用或設定大於零。 - + Alternative download rate limit must be greater than 0 or disabled. 特別下載速度限制:請停用或設定大於零。 - + Maximum active downloads must be greater than -1. 最大活躍下載數量須大於-1。 - + Maximum active uploads must be greater than -1. 最大活躍上載數量須大於-1。 - + Maximum active torrents must be greater than -1. 最大活躍Torrent數量須大於-1。 - + Maximum number of connections limit must be greater than 0 or disabled. 整體最大連接數量限制:請停用或設定大於零。 - + Maximum number of connections per torrent limit must be greater than 0 or disabled. 每個Torrent最大連接數量限制:請停用或設定大於零。 - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. 每個Torrent上載最大連接數量限制:請停用或設定大於零。 - + Unable to save program preferences, qBittorrent is probably unreachable. 無法儲存喜好設定:可能連接不到qBittorrent。 - + Language 語言 - + The port used for incoming connections must be between 1 and 65535. 連入埠數值須介乎1至65535。 - + The port used for the Web UI must be between 1 and 65535. Web UI遠端控制埠數值須介乎1至65535。 - + Unable to log in, qBittorrent is probably unreachable. 無法登入:可能連接不到qBittorrent。 - + Invalid Username or Password. 無效用戶名稱或密碼。 - + Password 密碼 - + Login 登入 - + Upload Failed! 上載失敗! - + Original authors 原作者 - + Upload limit: 上載速度限制: - + Download limit: 下載速度限制: - + Apply 套用 - + Add 加入 - + Upload Torrents 上載Torrent - + All 全部 - + Downloading 下載中 - + Seeding 做種中 - + Completed 已完成 - + Resumed 已繼續 - + Paused 暫停 - + Active 活躍 - + Inactive 不活躍 - + Save files to location: 儲存檔案到: - + Label: 標記: - + Cookie: Cookie: - + Type folder here + 在此輸入資料夾 + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + 儲存檔案到 + + + + Watch Folder + 監視資料夾 + + + + Default Folder + 預設資料夾 + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + 其他… + + + + Every day + Schedule the use of alternative rate limits on ... + 每日 + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + 其他… + + + Downloaded Is the file downloaded or not? 已下載 @@ -1593,57 +1720,57 @@ You should get this information from your Web browser preferences. 登出 - + Upload local torrent 上載本地Torrent - + Are you sure you want to delete the selected torrents from the transfer list? 從傳輸清單清除所選Torrent,確定? - + The Web UI username must be at least 3 characters long. Web UI遠端控制的用戶名最少含3個字元。 - + The Web UI password must be at least 3 characters long. Web UI遠端控制的密碼最少含3個字元。 - + Save 儲存 - + qBittorrent client is not reachable 連接不到qBittorrent用戶端 - + HTTP Server HTTP伺服器 - + The following parameters are supported: 支援以下參數: - + Torrent path Torrent路徑 - + Torrent name Torrent名稱 - + qBittorrent has been shutdown. qBittorrent已關閉。 @@ -2216,7 +2343,8 @@ Do you want to associate qBittorrent to torrent files and Magnet links? A new version is available. Do you want to download %1? - + 存在新版本 +下載%1嗎? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. 沒有安裝搜尋引擎需要的Pyrhon。 - - A new version is available. -Update to version %1? - 存在新版本 -更新到版本%1嗎? - No updates available. @@ -2489,12 +2611,12 @@ Are you sure you want to quit qBittorrent? Venezuela, Bolivarian Republic of - + 委內瑞拉(Venezuela) Viet Nam - + 越南(Viet Nam) @@ -2502,14 +2624,6 @@ Are you sure you want to quit qBittorrent? N/A (無) - - Asia/Pacific Region - 亞太(Asia╱Pacific) - - - Europe - 歐洲(Europe) - Andorra @@ -2545,10 +2659,6 @@ Are you sure you want to quit qBittorrent? Armenia 阿美尼亞(Armenia) - - Netherlands Antilles - 荷屬安地列斯(Netherlands Antilles) - Angola @@ -2644,10 +2754,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam 汶萊(Brunei) - - Bolivia - 玻利維亞(Bolivia) - Brazil @@ -2713,10 +2819,6 @@ Are you sure you want to quit qBittorrent? Switzerland 瑞士(Switzerland) - - Cote D'Ivoire - 科特迪瓦(Cote D'Ivoire) - Cook Islands @@ -2760,7 +2862,7 @@ Are you sure you want to quit qBittorrent? Curacao - + 古拉索(Curacao) @@ -2872,10 +2974,6 @@ Are you sure you want to quit qBittorrent? France 法國(France) - - France, Metropolitan - 法國大都會區(Metropolitan France) - Gabon @@ -3161,10 +3259,6 @@ Are you sure you want to quit qBittorrent? Latvia 拉脫維亞(Latvia) - - Libyan Arab Jamahiriya - 利比亞(Libya) - Morocco @@ -3190,10 +3284,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands 馬紹爾群島(Marshall Islands) - - Macedonia - 馬其頓(Macedonia) - Mali @@ -3209,10 +3299,6 @@ Are you sure you want to quit qBittorrent? Mongolia 蒙古(Mongolia) - - Macau - 澳門(Macau) - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon 聖皮埃爾和密克隆(Saint Pierre and Miquelon) - - Pitcairn Islands - 皮特凱恩群島(Pitcairn Islands) - Puerto Rico 波多黎各(Puerto Rico) - - Palestinian Territory - 巴勒斯坦(Palestine) - Portugal @@ -3456,10 +3534,6 @@ Are you sure you want to quit qBittorrent? Singapore 新加坡(Singapore) - - Saint Helena - 聖凱倫娜(Saint Helena) - Slovenia @@ -3578,62 +3652,62 @@ Are you sure you want to quit qBittorrent? Bolivia, Plurinational State of - + 玻利維亞(Bolivia) Bonaire, Sint Eustatius and Saba - + 波奈、聖圖達斯和薩巴(Bonaire, Sint Eustatius and Saba) Cote d'Ivoire - + 科特迪瓦(Cote d'Ivoire) Libya - + 利比亞(Libya) Saint Martin (French part) - + 法屬聖馬丁(Saint Martin) Macedonia, The Former Yugoslav Republic of - + 馬其頓(Macedonia) Macao - + 澳門(Macao) Pitcairn - + 皮特凱恩(Pitcairn) Palestine, State of - + 巴勒斯坦(Palestine) Saint Helena, Ascension and Tristan da Cunha - + 聖凱倫娜、阿森淳和崔斯坦達庫尼亞(Saint Helena, Ascension and Tristan da Cunha) South Sudan - + 南蘇丹(South Sudan) Sint Maarten (Dutch part) - + 荷屬聖馬丁(Sint Maarten) @@ -3700,10 +3774,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines 聖文森和格林納丁斯(Saint Vincent and the Grenadines) - - Venezuela - 委內瑞拉(Venezuela) - Virgin Islands, British @@ -3714,10 +3784,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. 美屬處女群島(American Virgin Islands) - - Vietnam - 越南(Vietnam) - Vanuatu @@ -3768,18 +3834,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe 津巴布韋(Zimbabwe) - - Anonymous Proxy - 匿名代理 - - - Satellite Provider - 衛星供應者 - - - Other - 其他 - Aland Islands @@ -3805,10 +3859,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy 聖巴泰勒米(Saint Barthelemy) - - Saint Martin - 聖馬丁(Saint Martin) - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: 電郵通知錯誤: @@ -3992,7 +4042,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + 檔案 @@ -4098,65 +4148,65 @@ Are you sure you want to quit qBittorrent? Search plugins - 搜尋外掛 + 搜尋外掛 Installed search plugins: - + 已安裝的搜尋外掛: Name - 名稱 + 名稱 Version - 版本 + 版本 Url - 網址 + 網址 Enabled - 已啟用 + 已啟用 You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 需要新的搜尋引擎外掛,請到:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 需要新的搜尋引擎外掛,請到:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - 安裝新的 + 安裝新的 Check for updates - 檢查更新 + 檢查更新 Close - 關閉 + 關閉 Uninstall - 解除安裝 + 解除安裝 Yes - + @@ -4164,106 +4214,106 @@ Are you sure you want to quit qBittorrent? No - + Uninstall warning - 解除安裝警告 + 解除安裝警告 Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - qBittorrent包含的外掛是無法解除安裝。僅自己加入的外掛可解除安裝。然而,這些外掛已被停用。 + qBittorrent包含的外掛是無法解除安裝。僅自己加入的外掛可解除安裝。然而,這些外掛已被停用。 Uninstall success - 成功解除安裝 + 成功解除安裝 All selected plugins were uninstalled successfully - 全部選取的外掛都已成功解除安裝 + 全部選取的外掛都已成功解除安裝 New search engine plugin URL - 新搜尋引擎外掛網址 + 新搜尋引擎外掛網址 URL: - 網址: + 網址: Invalid link - 無效連結 + 無效連結 The link doesn't seem to point to a search engine plugin. - 連結似乎沒有指向搜尋引擎外掛。 + 連結似乎沒有指向搜尋引擎外掛。 Select search plugins - 選取搜尋外掛 + 選取搜尋外掛 qBittorrent search plugin - qBittorrent搜尋外掛 + qBittorrent搜尋外掛 Search plugin update - 更新搜尋外掛 + 更新搜尋外掛 All your plugins are already up to date. - 全部外掛已是最新版本。 + 全部外掛已是最新版本。 Sorry, couldn't check for plugin updates. %1 - + 抱歉,無法檢查外掛更新。%1 Search plugin install - 安裝搜尋外掛 + 安裝搜尋外掛 "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + 成功安裝搜尋引擎外掛「%1」。 Couldn't install "%1" search engine plugin. %2 - + 未能安裝搜尋引擎外掛「%1」。%2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + 成功更新搜尋引擎外掛「%1」。 Couldn't update "%1" search engine plugin. %2 - + 未能更新搜尋引擎外掛「%1」。%2 @@ -4271,22 +4321,22 @@ Those plugins were disabled. Plugin source - 外掛來源 + 外掛來源 Search plugin source: - 搜尋外掛來源: + 搜尋外掛來源: Local file - 本地檔案 + 本地檔案 Web link - 網絡連結 + 網絡連結 @@ -5024,17 +5074,17 @@ Those plugins were disabled. 過濾器(.dat、.p2p、.p2b) - + Detected unclean program exit. Using fallback file to restore settings. 偵測到有瑕疵的程式退出。正在使用備份檔案來復原設定。 - + An access error occurred while trying to write the configuration file. 嘗試寫入設定檔時發生存取錯誤。 - + A format error occurred while trying to write the configuration file. 嘗試寫入設定檔時發生格式錯誤。 @@ -5467,7 +5517,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. 你的IP位址因多次驗證失敗而被封鎖。 @@ -5958,12 +6008,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… + 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… Automatically downloading '%1' torrent from '%2' RSS feed... - 從RSS feed「%2」自動下載「%1」Torrent… + 從RSS feed「%2」自動下載「%1」Torrent… @@ -5971,29 +6021,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 無法從RSS feed「%2」自動下載「%1」,因它沒有Torrent或磁性連結… - - - Automatically downloading '%1' torrent from '%2' RSS feed... - 從RSS feed「%2」自動下載「%1」Torrent… - - - - RssParser - - Failed to open downloaded RSS file. - 無法開啟已下載的RSS檔。 - - - Invalid RSS feed at '%1'. - 於「%1」的無效RSS feed。 + 無效的RSS feed。 @@ -6024,22 +6052,22 @@ No further notices will be issued. Watch Folder - + 監視資料夾 Default Folder - + 預設資料夾 Browse... - 瀏覽… + 瀏覽… Choose save path - 選取儲存路徑 + 選取儲存路徑 @@ -6047,214 +6075,102 @@ No further notices will be issued. Watch Folder - + 監視資料夾 Default Folder - + 預設資料夾 Watched Folder - 監視資料夾 + 已監視資料夾 Save Files to - - - - Download here - 下載到此 - - - Download path - 下載路徑 - - - - SearchCategories - - All categories - 全部類別 - - - Movies - 電影 - - - TV shows - 電視節目 - - - Music - 音樂 - - - Games - 遊戲 - - - Anime - 動畫 - - - Software - 軟件 - - - Pictures - 圖片 - - - Books - + 儲存檔案到 SearchEngine - - Search - 搜尋 - - - Please install Python to use the Search Engine. - 請安裝搜尋引擎需要的Pyrhon。 - - - Empty search pattern - 空白搜尋模式 - - - Please type a search pattern first - 請先輸入一個搜尋模式 - - - Searching... - 搜尋中… - - - Stop - 停止 - - - Search Engine - 搜尋引擎 - - - Search has finished - 搜尋完成 - - - An error occurred during search... - 搜尋時發生錯誤… - - - Search aborted - 搜尋中止 - - - All enabled - 全部已啟用的 - - - All engines - 全部引擎 - - - Multiple... - 多重… - - - Results <i>(%1)</i>: - i.e: Search results - 結果(%1): - - - Search returned no results - 沒有搜尋結果 - - - Stopped - 已停止 - Unknown search engine plugin file format. - + 未知的搜尋引擎外掛檔案格式。 A more recent version of this plugin is already installed. - + 已安裝此搜尋引擎外掛的較新版本。 Plugin is not supported. - + 不支援的外掛。 Update server is temporarily unavailable. %1 - + 更新伺服器暫時不可用。%1 Failed to download the plugin file. %1 - + 下載外掛檔案失敗。%1 An incorrect update info received. - + 收到不正確的更新資訊。 All categories - 全部類別 + 全部類別 Movies - 電影 + 電影 TV shows - 電視節目 + 電視節目 Music - 音樂 + 音樂 Games - 遊戲 + 遊戲 Anime - 動畫 + 動畫 Software - 軟件 + 軟件 Pictures - 圖片 + 圖片 Books - + @@ -6303,124 +6219,124 @@ No further notices will be issued. - - - + + + Search - 搜尋 + 搜尋 Status: - 狀態: + 狀態: - + Stopped - 已停止 + 已停止 Download - 下載 + 下載 Go to description page - 前往描述頁 + 前往描述頁 Copy description page URL - 複製描述頁網址 + 複製描述頁網址 Search plugins... - + 搜尋外掛… - + All enabled - 全部已啟用的 - - - - All plugins - + 全部已啟用的 - + All plugins + 全部外掛 + + + + Multiple... - 多重… + 多重… - - - + + + Search Engine - 搜尋引擎 + 搜尋引擎 - + Please install Python to use the Search Engine. - 請安裝搜尋引擎需要的Pyrhon。 + 請安裝搜尋引擎需要的Pyrhon。 - + Empty search pattern - 空白搜尋模式 + 空白搜尋模式 - + Please type a search pattern first - 請先輸入一個搜尋模式 + 請先輸入一個搜尋模式 - - + + Results <i>(%1)</i>: i.e: Search results - 結果(%1): - - - - Searching... - 搜尋中… + 結果(%1): + Searching... + 搜尋中… + + + Stop - 停止 + 停止 - - + + Search has finished - 搜尋完成 + 搜尋完成 - - + + Search aborted - 搜尋中止 + 搜尋中止 - + Search returned no results - 沒有搜尋結果 + 沒有搜尋結果 - + Search has failed - + 搜尋失敗 - + An error occurred during search... - 搜尋時發生錯誤… + 搜尋時發生錯誤… @@ -6884,11 +6800,7 @@ No further notices will be issued. Download Priority - - - - Priority - 優先權 + 下載優先權 @@ -8085,159 +7997,6 @@ No further notices will be issued. 請輸入最少一個網址。 - - engineSelect - - Search plugins - 搜尋外掛 - - - Installed search engines: - 已安裝的搜尋引擎: - - - Name - 名稱 - - - Version - 版本 - - - Url - 網址 - - - Enabled - 已啟用 - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 需要新的搜尋引擎外掛,請到:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - 安裝新的 - - - Check for updates - 檢查更新 - - - Close - 關閉 - - - Uninstall - 解除安裝 - - - - engineSelectDlg - - Uninstall warning - 解除安裝警告 - - - Uninstall success - 成功解除安裝 - - - Invalid plugin - 無效的外掛程式 - - - The search engine plugin is invalid, please contact the author. - 無效的搜尋引擎外掛,請連絡作者。 - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - 已安裝搜尋引擎外掛「%1」的較新版本。 - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - 未能更新搜尋引擎外掛「%1」,仍維持早前版本。 - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - 未能安裝搜尋引擎外掛「%1」。 - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - 成功更新搜尋引擎外掛「%1」。 - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - 成功安裝搜尋引擎外掛「%1」。 - - - The link doesn't seem to point to a search engine plugin. - 連結似乎沒有指向搜尋引擎外掛。 - - - Select search plugins - 選取搜尋外掛 - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - 抱歉,安裝搜尋引擎外卦「%1」失敗。 - - - Search plugin install - 安裝搜尋外掛 - - - Yes - - - - No - - - - qBittorrent search plugin - qBittorrent搜尋外掛 - - - Search plugin update - 更新搜尋外掛 - - - Sorry, update server is temporarily unavailable. - 抱歉,更新伺服器暫時不可用。 - - - All your plugins are already up to date. - 全部外掛已是最新版本。 - - - All selected plugins were uninstalled successfully - 全部選取的外掛都已成功解除安裝 - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - qBittorrent包含的外掛是無法解除安裝。僅自己加入的外掛可解除安裝。然而,這些外掛已被停用。 - - - Invalid link - 無效連結 - - - New search engine plugin URL - 新搜尋引擎外掛網址 - - - URL: - 網址: - - errorDialog @@ -8365,192 +8124,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory 選取輸出路徑 - - - - + + + + Choose a save directory 選取儲存路徑 - + Add directory to scan 加入掃瞄資料夾 - + Supported parameters (case sensitive): 支援的參數(大小楷視為不同): - + %N: Torrent name Torrent名稱【%N】 - + %L: Label 標記【%L】 - + %F: Content path (same as root path for multifile torrent) 已下載檔案的路徑(單一檔案Torrent)【%F】 - + %R: Root path (first torrent subdirectory path) 已下載檔案的路徑(多檔案Torrent首個子資料夾)【%R】 - + %D: Save path 儲存路徑【%D】 - + %C: Number of files 檔案數量【%C】 - + %Z: Torrent size (bytes) Torrent大小(位元組)【%Z】 - + %T: Current tracker 目前追蹤器【%T】 - + %I: Info hash 資訊驗證碼【%I】 - + Folder is already being watched. 資料夾正被監視。 - + Folder does not exist. 資料夾不存在。 - + Folder is not readable. 資料夾不可讀取。 - + Failure 失敗 - + Failed to add Scan Folder '%1': %2 加入掃瞄資料夾%1失敗:%2 - - + + Filters 過濾器 - - + + Choose an IP filter file 選取一個IP過濾器檔 - + SSL Certificate SSL憑證 - + SSL Key SSL鎖匙 - + Parsing error 解析錯誤 - + Failed to parse the provided IP filter 解析IP過濾器失敗 - + Successfully refreshed 成功更新 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 成功解析IP過濾器:已套用%1個規則。 - + Invalid key 無效鎖匙 - + This is not a valid SSL key. 無效的SSL鎖匙。 - + Invalid certificate 無效憑證 - + This is not a valid SSL certificate. 無效的SSL憑證。 - + The start time and the end time can't be the same. 開始時間與結尾時間不可相同。 - + Time Error 時間錯誤 - - pluginSourceDlg - - Plugin source - 外掛來源 - - - Search plugin source: - 搜尋外掛來源: - - - Local file - 本地檔案 - - - Web link - 網絡連結 - - preview @@ -8574,35 +8314,4 @@ Those plugins were disabled. 取消 - - search_engine - - Search - 搜尋 - - - Status: - 狀態: - - - Stopped - 已停止 - - - Download - 下載 - - - Go to description page - 前往描述頁 - - - Copy description page URL - 複製描述頁網址 - - - Search engines... - 搜尋引擎… - - diff --git a/src/lang/qbittorrent_zh_TW.ts b/src/lang/qbittorrent_zh_TW.ts index 9a2c8a94b..6ed7195da 100644 --- a/src/lang/qbittorrent_zh_TW.ts +++ b/src/lang/qbittorrent_zh_TW.ts @@ -863,316 +863,316 @@ BitTorrent::Session - + Peer ID: 下載者 ID: - + HTTP User-Agent is '%1' HTTP 使用者代理為「%1」 - + Anonymous mode [ON] 匿名模式 [開啟] - + Anonymous mode [OFF] 匿名模式 [關閉] - + PeX support [ON] PeX 支援 [開啟] - + PeX support [OFF] PeX 支援 [關閉] - + Restart is required to toggle PeX support 切換 PeX 支援需重新啟動 - + Local Peer Discovery support [ON] 本地下載者搜尋支援 [開啟] - + Local Peer Discovery support [OFF] 本地下載者搜尋支援 [關閉] - + Encryption support [ON] 加密支援 [開啟] - + Encryption support [FORCED] 加密支援 [強制] - + Encryption support [OFF] 加密支援 [關閉] - + Embedded Tracker [ON] 嵌入 tracker [開啟] - + Failed to start the embedded tracker! 無法開始嵌入 tracker! - + Embedded Tracker [OFF] 嵌入 tracker [關閉] - + '%1' reached the maximum ratio you set. Removing... 「%1」已經到達您設定的最大比率了。正在移除... - + '%1' reached the maximum ratio you set. Pausing... 「%1」已經到達您設定的最大比率了。正在暫停... - + System network status changed to %1 e.g: System network status changed to ONLINE 系統的網路狀態變更為 %1 - + ONLINE 上線 - + OFFLINE 離線 - + Network configuration of %1 has changed, refreshing session binding e.g: Network configuration of tun0 has changed, refreshing session binding %1 的網路設定已變更,正在重新整理工作階段綁紮 - + Unable to decode '%1' torrent file. 無法解碼 torrent 檔案「%1」。 - + Recursive download of file '%1' embedded in torrent '%2' Recursive download of 'test.torrent' embedded in torrent 'test2' 遞迴下載在 torrent「%2」裡的檔案「%1」 - + Couldn't save '%1.torrent' 無法儲存「%1.torrent」 - + because %1 is disabled. this peer was blocked because uTP is disabled. 因為 %1 已停用。 - + because %1 is disabled. this peer was blocked because TCP is disabled. 因為 %1 已停用。 - + URL seed lookup failed for URL: '%1', message: %2 找不到 URL:「%1」的 URL 種子,訊息:「%2」 - + '%1' was removed from transfer list and hard disk. 'xxx.avi' was removed... 「%1」已經從傳輸清單和硬碟中刪除了。 - + '%1' was removed from transfer list. 'xxx.avi' was removed... 「%1」已經從傳輸清單中刪除了。 - + Downloading '%1', please wait... e.g: Downloading 'xxx.torrent', please wait... 下載「%1」中,請稍候... - + DHT support [ON] DHT 支援 [開啟] - + DHT support [OFF]. Reason: %1 DHT 支援 [關閉]。理由:%1 - + DHT support [OFF] DHT 支援 [關閉] - - + + qBittorrent is trying to listen on any interface port: %1 e.g: qBittorrent is trying to listen on any interface port: TCP/6881 qBittorrent 正在嘗試監聽任何的介面埠:%1 - + The network interface defined is invalid: %1 定義的網路介面是無效的:%1 - - + + qBittorrent is trying to listen on interface %1 port: %2 e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881 qBittorrent 正在嘗試監聽介面 %1 的埠: %2 - + qBittorrent didn't find an %1 local address to listen on qBittorrent didn't find an IPv4 local address to listen on qBittorrent 找不到供監聽的 %1 本機位置 - + qBittorrent failed to listen on any interface port: %1. Reason: %2. e.g: qBittorrent failed to listen on any interface port: TCP/6881. Reason: no such interface qBittorrent 監聽任意介面埠失敗:%1 。理由:%2。 - + Tracker '%1' was added to torrent '%2' 追蹤者「%1」已加入到 torrent「%2」中 - + Tracker '%1' was deleted from torrent '%2' 追蹤者「%1」已被從 torrent「%2」中刪除 - + URL seed '%1' was added to torrent '%2' URL 種子「%1」已加入到 torrent「%2」中 - + URL seed '%1' was removed from torrent '%2' URL 種子「%1」已被從 torrent「%2」中刪除 - + Unable to resume torrent '%1'. e.g: Unable to resume torrent 'hash'. 無法復原 torrent 檔案:「%1」 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 分析 IP 過濾檔案成功:已套用 %1 個規則。 - + Error: Failed to parse the provided IP filter. 錯誤:IP 過濾檔案分析失敗。 - + Couldn't add torrent. Reason: %1 無法加入 torrent。理由:%1 - + '%1' resumed. (fast resume) 'torrent name' was resumed. (fast resume) 「%1」已恢復下載。(快速恢復) - + '%1' added to download list. 'torrent name' was added to download list. 「%1」已增加到下載清單。 - + An I/O error occurred, '%1' paused. %2 發生 I/O 錯誤,「%1」已暫停。%2 - + UPnP/NAT-PMP: Port mapping failure, message: %1 UPnP/NAT-PMP:埠映射失敗,訊息:%1 - + UPnP/NAT-PMP: Port mapping successful, message: %1 UPnP/NAT-PMP:埠映射成功,訊息:%1 - + due to IP filter. this peer was blocked due to ip filter. 由於 IP 過濾器。 - + due to port filter. this peer was blocked due to port filter. 由於埠過濾器。 - + due to i2p mixed mode restrictions. this peer was blocked due to i2p mixed mode restrictions. 由於 i2p 混合模式限制。 - + because it has a low port. this peer was blocked because it has a low port. 因為它有著較低的埠。 - + qBittorrent is successfully listening on interface %1 port: %2/%3 e.g: qBittorrent is successfully listening on interface 192.168.0.1 port: TCP/6881 qBittorrent 成功監聽介面 %1 的埠:%2/%3 - + qBittorrent failed listening on interface %1 port: %2/%3. Reason: %4. e.g: qBittorrent failed listening on interface 192.168.0.1 port: TCP/6881. Reason: already in use qBittorrent 監聽介面 %1 的埠:%2/%3 失敗。理由:%4。 - + External IP: %1 e.g. External IP: 192.168.0.1 外部 IP:%1 @@ -1284,12 +1284,12 @@ You should get this information from your Web browser preferences. FeedListWidget - + RSS feeds RSS feeds - + Unread 未讀 @@ -1378,211 +1378,338 @@ You should get this information from your Web browser preferences. + Exit qBittorrent + + + + Download Torrents from their URL or Magnet link 從他們的 URL 或磁性連結下載 torrent - + Only one link per line 一線僅一連結 - + Download 下載 - + Global upload rate limit must be greater than 0 or disabled. 全域上傳速度限制必須大於 0 或停用。 - + Global download rate limit must be greater than 0 or disabled. 全域下載速度限制必須大於 0 或停用。 - + Alternative upload rate limit must be greater than 0 or disabled. 額外的上傳速度限制必須大於 0 或停用。 - + Alternative download rate limit must be greater than 0 or disabled. 額外的下載速度限制必須大於 0 或停用。 - + Maximum active downloads must be greater than -1. 最大活躍下載數必須大於 -1。 - + Maximum active uploads must be greater than -1. 最大活躍上傳數必須大於 -1。 - + Maximum active torrents must be greater than -1. 最大活躍 torrent 數必須大於 -1。 - + Maximum number of connections limit must be greater than 0 or disabled. 最大連線數限制必須大於 0 或停用。 - + Maximum number of connections per torrent limit must be greater than 0 or disabled. 每個 torrent 的最大下載者連線數限制必須大於 0 或停用。 - + Maximum number of upload slots per torrent limit must be greater than 0 or disabled. 每個 torrent 上傳位置的最大數限制必須大於 0 或停用。 - + Unable to save program preferences, qBittorrent is probably unreachable. 無法儲存程式偏好設定,qBittorrent 可能無法連線。 - + Language 語言 - + The port used for incoming connections must be between 1 and 65535. 連入的連線埠號必須介於 1 到 65535 間。 - + The port used for the Web UI must be between 1 and 65535. Web UI 所使用的埠號必須介於 1 與 65535 間。 - + Unable to log in, qBittorrent is probably unreachable. 無法登入,qBittorrent 可能無法連線。 - + Invalid Username or Password. 無效的使用者名稱或密碼。 - + Password 密碼 - + Login 登入 - + Upload Failed! 上傳失敗! - + Original authors 原始作者 - + Upload limit: 上傳限制: - + Download limit: 下載限制: - + Apply 套用 - + Add 新增 - + Upload Torrents 上傳 torrents - + All 全部 - + Downloading 下載中 - + Seeding 做種中 - + Completed 已完成 - + Resumed 已繼續 - + Paused 暫停 - + Active 活躍的 - + Inactive 不活躍的 - + Save files to location: 儲存檔案到: - + Label: 標籤: - + Cookie: Cookie: - + Type folder here + 在此輸入資料夾 + + + + Run an external program on torrent completion - - Other... + + Enable bandwidth management (uTP) + + + + + Apply rate limit to uTP connections + Alternative Global Rate Limits + + + + + More information + + + + + Information about certificates + + + + + Save Files to + 儲存檔案到 + + + + Watch Folder + 監視資料夾 + + + + Default Folder + 預設資料夾 + + + + from + from time1 to time2 + + + + + to + from time1 to time2 + + + + + Other... + Save Files to: Watch Folder / Default Folder / Other... + 其他... + + + + Every day + Schedule the use of alternative rate limits on ... + 每天 + + + + Week days + Schedule the use of alternative rate limits on ... + + + + + Week ends + Schedule the use of alternative rate limits on ... + + + + + Monday + Schedule the use of alternative rate limits on ... + + + + + Tuesday + Schedule the use of alternative rate limits on ... + + + + + Wednesday + Schedule the use of alternative rate limits on ... + + + + + Thursday + Schedule the use of alternative rate limits on ... + + + + + Friday + Schedule the use of alternative rate limits on ... + + + + + Saturday + Schedule the use of alternative rate limits on ... + + + + + Sunday + Schedule the use of alternative rate limits on ... + + + + Other... + 其他... + + + Downloaded Is the file downloaded or not? 已下載 @@ -1593,57 +1720,57 @@ You should get this information from your Web browser preferences. 登出 - + Upload local torrent 上傳本機 torrent - + Are you sure you want to delete the selected torrents from the transfer list? 您確定要刪除在傳輸清單中所選擇的 torrent 嗎? - + The Web UI username must be at least 3 characters long. Web UI 使用者名稱必須至少 3 字元長。 - + The Web UI password must be at least 3 characters long. Web UI 密碼必須至少 3 字元長。 - + Save 儲存 - + qBittorrent client is not reachable 連接不到 qBittorrent 客戶端 - + HTTP Server HTTP 伺服器 - + The following parameters are supported: 支援以下的參數: - + Torrent path Torrent 路徑 - + Torrent name Torrent 名稱 - + qBittorrent has been shutdown. qBittorrent 已經關閉。 @@ -2216,7 +2343,8 @@ Do you want to associate qBittorrent to torrent files and Magnet links? A new version is available. Do you want to download %1? - + 有新版本可用, +您想要下載 %1 嗎? @@ -2281,12 +2409,6 @@ Do you want to install it now? Python is required to use the search engine but it does not seem to be installed. 使用搜尋引擎需要 Python,但是它似乎尚未安裝。 - - A new version is available. -Update to version %1? - 有新版本可用 -要更新到 %1 嗎? - No updates available. @@ -2489,12 +2611,12 @@ Are you sure you want to quit qBittorrent? Venezuela, Bolivarian Republic of - + 委內瑞拉玻利瓦共和國 Viet Nam - + 越南 @@ -2502,14 +2624,6 @@ Are you sure you want to quit qBittorrent? N/A N/A - - Asia/Pacific Region - 亞洲/太平洋區域 - - - Europe - 歐洲 - Andorra @@ -2545,10 +2659,6 @@ Are you sure you want to quit qBittorrent? Armenia 亞美尼亞 - - Netherlands Antilles - 荷屬安地列斯 - Angola @@ -2644,10 +2754,6 @@ Are you sure you want to quit qBittorrent? Brunei Darussalam 汶萊 - - Bolivia - 玻利維亞 - Brazil @@ -2713,10 +2819,6 @@ Are you sure you want to quit qBittorrent? Switzerland 瑞士 - - Cote D'Ivoire - 象牙海岸 - Cook Islands @@ -2760,7 +2862,7 @@ Are you sure you want to quit qBittorrent? Curacao - + 古拉索 @@ -2872,10 +2974,6 @@ Are you sure you want to quit qBittorrent? France 法國 - - France, Metropolitan - 法國本土 - Gabon @@ -3161,10 +3259,6 @@ Are you sure you want to quit qBittorrent? Latvia 拉脫維亞 - - Libyan Arab Jamahiriya - 阿拉伯利比亞民眾國 - Morocco @@ -3190,10 +3284,6 @@ Are you sure you want to quit qBittorrent? Marshall Islands 馬紹爾群島 - - Macedonia - 馬其頓 - Mali @@ -3209,10 +3299,6 @@ Are you sure you want to quit qBittorrent? Mongolia 蒙古 - - Macau - 澳門 - Northern Mariana Islands @@ -3373,19 +3459,11 @@ Are you sure you want to quit qBittorrent? Saint Pierre and Miquelon 聖皮耶與密克隆群島 - - Pitcairn Islands - 皮特肯群島 - Puerto Rico 波多黎各 - - Palestinian Territory - 巴勒斯坦領土 - Portugal @@ -3456,10 +3534,6 @@ Are you sure you want to quit qBittorrent? Singapore 新加坡 - - Saint Helena - 聖赫勒拿 - Slovenia @@ -3578,62 +3652,62 @@ Are you sure you want to quit qBittorrent? Bolivia, Plurinational State of - + 多民族玻利維亞國 Bonaire, Sint Eustatius and Saba - + 荷蘭加勒比區 Cote d'Ivoire - + 象牙海岸 Libya - + 利比亞 Saint Martin (French part) - + 法屬聖馬丁 Macedonia, The Former Yugoslav Republic of - + 前南斯拉夫馬其頓共和國 Macao - + 澳門 Pitcairn - + 皮特肯 Palestine, State of - + 巴勒斯坦國 Saint Helena, Ascension and Tristan da Cunha - + 聖赫勒拿、亞森欣與垂斯坦昆哈 South Sudan - + 南蘇丹 Sint Maarten (Dutch part) - + 荷屬聖馬丁 @@ -3700,10 +3774,6 @@ Are you sure you want to quit qBittorrent? Saint Vincent and the Grenadines 聖文森及格瑞那丁 - - Venezuela - 委內瑞拉 - Virgin Islands, British @@ -3714,10 +3784,6 @@ Are you sure you want to quit qBittorrent? Virgin Islands, U.S. 美屬維京群島 - - Vietnam - 越南 - Vanuatu @@ -3768,18 +3834,6 @@ Are you sure you want to quit qBittorrent? Zimbabwe 辛巴威 - - Anonymous Proxy - 匿名代理伺服器 - - - Satellite Provider - 衛星供應商 - - - Other - 其他 - Aland Islands @@ -3805,10 +3859,6 @@ Are you sure you want to quit qBittorrent? Saint Barthelemy 聖巴瑟米 - - Saint Martin - 聖馬丁 - Could not uncompress GeoIP database file. @@ -3846,7 +3896,7 @@ Are you sure you want to quit qBittorrent? Net::Smtp - + Email Notification Error: 電子郵件通知錯誤: @@ -3992,7 +4042,7 @@ Are you sure you want to quit qBittorrent? Files i.e. files that are being downloaded right now - + 檔案 @@ -4098,65 +4148,65 @@ Are you sure you want to quit qBittorrent? Search plugins - 搜尋外掛 + 搜尋外掛 Installed search plugins: - + 已安裝的搜尋外掛: Name - 名稱 + 名稱 Version - 版本 + 版本 Url - URL + URL Enabled - 已啟用 + 已啟用 You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 你可以在這裡取得新的搜尋引擎外掛:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> + 你可以在這裡取得新的搜尋引擎外掛:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> Install a new one - 安裝新的 + 安裝新的 Check for updates - 檢查更新 + 檢查更新 Close - 關閉 + 關閉 Uninstall - 反安裝 + 解除安裝 Yes - + @@ -4164,106 +4214,107 @@ Are you sure you want to quit qBittorrent? No - + Uninstall warning - 反安裝警告 + 解除安裝警告 Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. Those plugins were disabled. - 有些外掛不能被卸載,因為他們包含在 qBittorrent 裡面。只有你自己安裝的外掛,才可以被卸載。然而,這些外掛已經被停用了。 + 有些外掛不能被解除安裝,因為它們包含在 qBittorrent 裡面。只有您自己安裝的外掛,才可以被解除安裝。 +這些外掛已經被停用了。 Uninstall success - 反安裝成功 + 解除安裝成功 All selected plugins were uninstalled successfully - 所有選擇的外掛都已經成功反安裝了 + 所有選擇的外掛都已經成功解除安裝了 New search engine plugin URL - 新搜尋引擎外掛 URL + 新搜尋引擎外掛 URL URL: - URL: + URL: Invalid link - 無效的連結 + 無效的連結 The link doesn't seem to point to a search engine plugin. - 連結似乎沒有指向搜尋引擎附加元件。 + 連結似乎沒有指向搜尋引擎外掛。 Select search plugins - 選擇搜尋外掛 + 選擇搜尋外掛 qBittorrent search plugin - qBittorrent 搜尋外掛 + qBittorrent 搜尋外掛 Search plugin update - 更新搜尋外掛 + 更新搜尋外掛 All your plugins are already up to date. - 你所有的外掛都已經是最新版本。 + 您所有的外掛都已經是最新版本。 Sorry, couldn't check for plugin updates. %1 - + 抱歉,無法檢查外掛更新。%1 Search plugin install - 安裝搜尋外掛 + 安裝搜尋外掛 "%1" search engine plugin was successfully installed. %1 is the name of the search engine - + 「%1」搜尋引擎外掛已經成功安裝。 Couldn't install "%1" search engine plugin. %2 - + 無法安裝「%1」搜尋引擎外掛。%2 "%1" search engine plugin was successfully updated. %1 is the name of the search engine - + 「%1」搜尋引擎外掛已經成功更新。 Couldn't update "%1" search engine plugin. %2 - + 無法更新「%1」搜尋引擎外掛。%2 @@ -4271,22 +4322,22 @@ Those plugins were disabled. Plugin source - 外掛來源 + 外掛來源 Search plugin source: - 搜尋外掛來源: + 搜尋外掛來源: Local file - 本地檔案 + 本機檔案 Web link - 網頁連結 + 網頁連結 @@ -5024,17 +5075,17 @@ Those plugins were disabled. 過濾路徑 (.dat, .p2p, .p2b): - + Detected unclean program exit. Using fallback file to restore settings. 已偵測到不清潔的程式退出。正在使用後備檔案來復原設定。 - + An access error occurred while trying to write the configuration file. 嘗試寫入設定檔時發生存取錯誤。 - + A format error occurred while trying to write the configuration file. 嘗試寫入設定檔時有格式錯誤。 @@ -5467,7 +5518,7 @@ Those plugins were disabled. QObject - + Your IP address has been banned after too many failed authentication attempts. 經過多次授權要求失敗之後,您的 IP 已經被封鎖了。 @@ -5959,12 +6010,12 @@ No further notices will be issued. Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... + 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... Automatically downloading '%1' torrent from '%2' RSS feed... - 正在從「%2」RSS feed 自動下載「%1」torrent... + 正在從「%2」RSS feed 自動下載「%1」torrent... @@ -5972,29 +6023,7 @@ No further notices will be issued. Invalid RSS feed. - - - - - RssFeed - - Automatic download of '%1' from '%2' RSS feed failed because it doesn't contain a torrent or a magnet link... - 從「%2」RSS feed 自動下載的「%1」失敗,因為其不包含 torrent 或是磁力連結... - - - Automatically downloading '%1' torrent from '%2' RSS feed... - 正在從「%2」RSS feed 自動下載「%1」torrent... - - - - RssParser - - Failed to open downloaded RSS file. - 無法開啟已下載的 RSS 檔案。 - - - Invalid RSS feed at '%1'. - 在「%1」無效的 RSS feed。 + 無效的 RSS feed。 @@ -6025,22 +6054,22 @@ No further notices will be issued. Watch Folder - + 監視資料夾 Default Folder - + 預設資料夾 Browse... - 瀏覽... + 瀏覽... Choose save path - 選擇儲存路徑 + 選擇儲存路徑 @@ -6048,12 +6077,12 @@ No further notices will be issued. Watch Folder - + 監視資料夾 Default Folder - + 預設資料夾 @@ -6063,199 +6092,87 @@ No further notices will be issued. Save Files to - - - - Download here - 下載到此 - - - Download path - 下載路徑 - - - - SearchCategories - - All categories - 所有類別 - - - Movies - 電影 - - - TV shows - 電視劇 - - - Music - 音樂 - - - Games - 遊戲 - - - Anime - 動畫 - - - Software - 軟體 - - - Pictures - 圖片 - - - Books - + 儲存檔案到 SearchEngine - - Search - 搜尋 - - - Please install Python to use the Search Engine. - 請安裝 Python 以使用搜尋引擎。 - - - Empty search pattern - 沒有搜尋模式 - - - Please type a search pattern first - 請先輸入一個搜尋模式 - - - Searching... - 搜尋中... - - - Stop - 停止 - - - Search Engine - 搜尋引擎 - - - Search has finished - 搜尋完成 - - - An error occurred during search... - 搜尋時發生錯誤... - - - Search aborted - 搜尋中止 - - - All enabled - 所有已啟用的 - - - All engines - 所有引擎 - - - Multiple... - 多路的... - - - Results <i>(%1)</i>: - i.e: Search results - 結果 <i>(%1)</i>: - - - Search returned no results - 沒有搜尋結果 - - - Stopped - 已停止 - Unknown search engine plugin file format. - + 未知的搜尋引擎外掛檔案格式。 A more recent version of this plugin is already installed. - + 已安裝更新版本的此搜尋引擎外掛。 Plugin is not supported. - + 不支援的外掛。 Update server is temporarily unavailable. %1 - + 更新伺服器暫時不可用。%1 Failed to download the plugin file. %1 - + 下載外掛檔案失敗。%1 An incorrect update info received. - + 收到不正確的更新資訊。 All categories - 所有類別 + 所有類別 Movies - 電影 + 電影 TV shows - 電視劇 + 電視節目 Music - 音樂 + 音樂 Games - 遊戲 + 遊戲 Anime - 動畫 + 動畫 Software - 軟體 + 軟體 Pictures - 圖片 + 圖片 Books - + 書籍 @@ -6304,124 +6221,124 @@ No further notices will be issued. - - - + + + Search - 搜尋 + 搜尋 Status: - 狀態: + 狀態: - + Stopped - 已停止 + 已停止 Download - 下載 + 下載 Go to description page - 到描述頁 + 到描述頁 Copy description page URL - 複製描述頁面的 URL + 複製描述頁面的 URL Search plugins... - + 搜尋外掛... - + All enabled - 所有已啟用的 - - - - All plugins - + 所有已啟用的 - + All plugins + 所有外掛 + + + + Multiple... - 多路的... + 多路的... - - - + + + Search Engine - 搜尋引擎 + 搜尋引擎 - + Please install Python to use the Search Engine. - 請安裝 Python 以使用搜尋引擎。 + 請安裝 Python 以使用搜尋引擎。 - + Empty search pattern - 沒有搜尋模式 + 沒有搜尋模式 - + Please type a search pattern first - 請先輸入一個搜尋模式 + 請先輸入一個搜尋模式 - - + + Results <i>(%1)</i>: i.e: Search results - 結果 <i>(%1)</i>: - - - - Searching... - 搜尋中... + 結果 <i>(%1)</i>: + Searching... + 搜尋中... + + + Stop - 停止 + 停止 - - + + Search has finished - 搜尋完成 + 搜尋完成 - - + + Search aborted - 搜尋中止 + 搜尋中止 - + Search returned no results - 沒有搜尋結果 + 沒有搜尋結果 - + Search has failed - + 搜尋失敗 - + An error occurred during search... - 搜尋時發生錯誤... + 搜尋時發生錯誤... @@ -6885,11 +6802,7 @@ No further notices will be issued. Download Priority - - - - Priority - 優先度 + 下載優先度 @@ -8086,159 +7999,6 @@ No further notices will be issued. 請輸入至少一個 URL。 - - engineSelect - - Search plugins - 搜尋外掛 - - - Installed search engines: - 已安裝的搜尋引擎: - - - Name - 名稱 - - - Version - 版本 - - - Url - URL - - - Enabled - 已啟用 - - - You can get new search engine plugins here: <a href="http://plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - 你可以在這裡取得新的搜尋引擎外掛:<a href="http:plugins.qbittorrent.org">http://plugins.qbittorrent.org</a> - - - Install a new one - 安裝新的 - - - Check for updates - 檢查更新 - - - Close - 關閉 - - - Uninstall - 反安裝 - - - - engineSelectDlg - - Uninstall warning - 反安裝警告 - - - Uninstall success - 反安裝成功 - - - Invalid plugin - 無效的外掛程式 - - - The search engine plugin is invalid, please contact the author. - 搜尋引擎外掛無效,請連絡作者。 - - - A more recent version of '%1' search engine plugin is already installed. - %1 is the name of the search engine - 已安裝一個更新版本的「%1」搜尋引擎外掛。 - - - '%1' search engine plugin could not be updated, keeping old version. - %1 is the name of the search engine - 「%1」搜尋引擎外掛不能升級,將保持舊版本。 - - - '%1' search engine plugin could not be installed. - %1 is the name of the search engine - 「%1」搜尋引擎外掛不能安裝。 - - - '%1' search engine plugin was successfully updated. - %1 is the name of the search engine - 「%1」搜尋引擎外掛已經成功更新。 - - - '%1' search engine plugin was successfully installed. - %1 is the name of the search engine - 「%1」搜尋引擎外掛已經成功安裝。 - - - The link doesn't seem to point to a search engine plugin. - 連結似乎沒有指向搜尋引擎附加元件。 - - - Select search plugins - 選擇搜尋外掛 - - - Sorry, '%1' search plugin installation failed. - %1 is the name of the search engine - 抱歉,搜尋外掛「%1」安裝失敗了。 - - - Search plugin install - 安裝搜尋外掛 - - - Yes - - - - No - - - - qBittorrent search plugin - qBittorrent 搜尋外掛 - - - Search plugin update - 更新搜尋外掛 - - - Sorry, update server is temporarily unavailable. - 抱歉,更新伺服器暫時不可用。 - - - All your plugins are already up to date. - 你所有的外掛都已經是最新版本。 - - - All selected plugins were uninstalled successfully - 所有選擇的外掛都已經成功反安裝了 - - - Some plugins could not be uninstalled because they are included in qBittorrent. Only the ones you added yourself can be uninstalled. -Those plugins were disabled. - 有些外掛不能被卸載,因為他們包含在 qBittorrent 裡面。只有你自己安裝的外掛,才可以被卸載。然而,這些外掛已經被停用了。 - - - Invalid link - 無效的連結 - - - New search engine plugin URL - 新搜尋引擎外掛 URL - - - URL: - URL: - - errorDialog @@ -8366,192 +8126,173 @@ Those plugins were disabled. options_imp - - + + Choose export directory 選擇輸出目錄 - - - - + + + + Choose a save directory 選擇儲存的目錄 - + Add directory to scan 增加要掃描的目錄 - + Supported parameters (case sensitive): 支援的參數(大小寫敏感): - + %N: Torrent name %N:Torrent 名稱 - + %L: Label %L:標籤 - + %F: Content path (same as root path for multifile torrent) %F:內容路徑(與多重 torrent 的根路徑相同) - + %R: Root path (first torrent subdirectory path) %R:根路徑(第一個 torrent 的子目錄路徑) - + %D: Save path %D:儲存路徑 - + %C: Number of files %C:檔案數量 - + %Z: Torrent size (bytes) %Z:Torrent 大小(位元組) - + %T: Current tracker %T:目前的 tracker - + %I: Info hash %I:資訊驗證碼 - + Folder is already being watched. 資料夾已在監視中。 - + Folder does not exist. 資料夾不存在。 - + Folder is not readable. 資料夾不可讀取。 - + Failure 失敗 - + Failed to add Scan Folder '%1': %2 增加掃描資料夾「%1」:%2 失敗 - - + + Filters 過濾器 - - + + Choose an IP filter file 選擇一個 IP 過濾器檔案 - + SSL Certificate SSL 憑證 - + SSL Key SSL 鑰匙 - + Parsing error 分析錯誤 - + Failed to parse the provided IP filter IP 過濾檔案分析失敗 - + Successfully refreshed 重新更新成功 - + Successfully parsed the provided IP filter: %1 rules were applied. %1 is a number 分析 IP 過濾檔案成功:已套用 %1 個規則。 - + Invalid key 無效的鑰匙 - + This is not a valid SSL key. 這不是一個有效的 SSL 鑰匙。 - + Invalid certificate 無效的憑證 - + This is not a valid SSL certificate. 這不是一個有效的 SSL 憑證。 - + The start time and the end time can't be the same. 起始時間與終止時間不能相同。 - + Time Error 時間錯誤 - - pluginSourceDlg - - Plugin source - 外掛來源 - - - Search plugin source: - 搜尋外掛來源: - - - Local file - 本地檔案 - - - Web link - 網頁連結 - - preview @@ -8575,35 +8316,4 @@ Those plugins were disabled. 取消 - - search_engine - - Search - 搜尋 - - - Status: - 狀態: - - - Stopped - 已停止 - - - Download - 下載 - - - Go to description page - 到描述頁 - - - Copy description page URL - 複製描述頁面的 URL - - - Search engines... - 搜尋引擎... - - From ab813df992360b644981ba4fe67055fd6aaab9b3 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Tue, 19 Jan 2016 01:31:39 +0200 Subject: [PATCH 111/238] Bump WebUI API_VERSION and API_VERSION_MIN. --- src/webui/webapplication.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 534a66379..05659a9c3 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -49,8 +49,8 @@ #include "websessiondata.h" #include "webapplication.h" -static const int API_VERSION = 7; -static const int API_VERSION_MIN = 2; +static const int API_VERSION = 8; +static const int API_VERSION_MIN = 8; const QString WWW_FOLDER = ":/www/public/"; const QString PRIVATE_FOLDER = ":/www/private/"; From 1af8a1533e128a92d40ed34d2c0683db356296d5 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Tue, 19 Jan 2016 01:44:03 +0200 Subject: [PATCH 112/238] Bump Copyright year. --- dist/mac/Info.plist | 2 +- dist/windows/options.nsi | 2 +- src/gui/about_imp.h | 2 +- src/qbittorrent.rc | Bin 2836 -> 2836 bytes src/webui/www/public/about.html | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/mac/Info.plist b/dist/mac/Info.plist index d54fdddf1..1b045eb00 100644 --- a/dist/mac/Info.plist +++ b/dist/mac/Info.plist @@ -59,7 +59,7 @@ NSAppleScriptEnabled YES NSHumanReadableCopyright - Copyright © 2006-2015 The qBittorrent project + Copyright © 2006-2016 The qBittorrent project UTExportedTypeDeclarations diff --git a/dist/windows/options.nsi b/dist/windows/options.nsi index f02aa602a..1b0de9965 100644 --- a/dist/windows/options.nsi +++ b/dist/windows/options.nsi @@ -33,7 +33,7 @@ OutFile "qbittorrent_${PROG_VERSION}_setup.exe" ;Installer Version Information VIAddVersionKey "ProductName" "qBittorrent" VIAddVersionKey "CompanyName" "The qBittorrent project" -VIAddVersionKey "LegalCopyright" "Copyright ©2006-2015 The qBittorrent project" +VIAddVersionKey "LegalCopyright" "Copyright ©2006-2016 The qBittorrent project" VIAddVersionKey "FileDescription" "qBittorrent - A Bittorrent Client" VIAddVersionKey "FileVersion" "${PROG_VERSION}" diff --git a/src/gui/about_imp.h b/src/gui/about_imp.h index 762af37fc..d469ebcf8 100644 --- a/src/gui/about_imp.h +++ b/src/gui/about_imp.h @@ -54,7 +54,7 @@ class about : public QDialog, private Ui::AboutDlg{ QString::fromUtf8("

    ") + tr("An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar.") + QString::fromUtf8("

    ") + - trUtf8("Copyright %1 2006-2015 The qBittorrent project").arg(QString::fromUtf8(C_COPYRIGHT)) + + trUtf8("Copyright %1 2006-2016 The qBittorrent project").arg(QString::fromUtf8(C_COPYRIGHT)) + QString::fromUtf8("

    ") + tr("Home Page: ") + QString::fromUtf8("http://www.qbittorrent.org

    ") + diff --git a/src/qbittorrent.rc b/src/qbittorrent.rc index bdf3256a5393d050f488fe08f76baa27d7213ff1..53ee9a0ea15c0c3ea8dcaa3000bb535db5c3df6c 100644 GIT binary patch delta 20 ccmbOtHbrd177k`J28GFU*&;U!aI!D~07FIvdjJ3c delta 20 ccmbOtHbrd177k`p28GFU*&;U!aI!D~07E(jdH?_b diff --git a/src/webui/www/public/about.html b/src/webui/www/public/about.html index 8ef80042b..46b566116 100644 --- a/src/webui/www/public/about.html +++ b/src/webui/www/public/about.html @@ -1,7 +1,7 @@

    qBittorrent ${VERSION} QBT_TR(Web UI)QBT_TR

    QBT_TR(An advanced BitTorrent client programmed in C++, based on Qt toolkit and libtorrent-rasterbar.)QBT_TR

    -

    Copyright (c) 2011-2015 The qBittorrent project

    +

    Copyright (c) 2011-2016 The qBittorrent project

    QBT_TR(Home Page: )QBT_TR http://www.qbittorrent.org

    QBT_TR(Bug Tracker: )QBT_TR http://bugs.qbittorrent.org

    QBT_TR(Forum: )QBT_TR http://forum.qbittorrent.org

    From b2839a6442ffa66ecc33a3641b0dec880ad7bbbe Mon Sep 17 00:00:00 2001 From: buinsky Date: Wed, 20 Jan 2016 12:13:27 +0300 Subject: [PATCH 113/238] WebUI: Fix unnecessary updates of torrent peers table --- src/webui/www/public/scripts/dynamicTable.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index ef6b1c32c..2da1c048b 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -212,8 +212,11 @@ var DynamicTable = new Class({ if (tr.hasClass('selected')) tr.removeClass('selected'); } + this.onSelectedRowChanged(); }, + onSelectedRowChanged : function () {}, + updateRowData : function (data) { var rowId = data['rowId']; var row; @@ -350,7 +353,6 @@ var DynamicTable = new Class({ } else { // Simple selection this._this.selectRow(this.rowId); - updatePropertiesPanel(); } } return false; @@ -720,6 +722,10 @@ var TorrentsTable = new Class({ getCurrentTorrentHash : function () { return this.getSelectedRowId(); + }, + + onSelectedRowChanged : function () { + updatePropertiesPanel(); } }); From cdb70a8c14e4853e464c0e056473c9a3bb70e36b Mon Sep 17 00:00:00 2001 From: buinsky Date: Wed, 20 Jan 2016 12:43:32 +0300 Subject: [PATCH 114/238] WebUI: Move style of dynamic table header to CSS --- src/webui/www/public/css/dynamicTable.css | 4 ++++ src/webui/www/public/properties_content.html | 2 +- src/webui/www/public/scripts/dynamicTable.js | 24 ++++++++++---------- src/webui/www/public/transferlist.html | 2 +- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/webui/www/public/css/dynamicTable.css b/src/webui/www/public/css/dynamicTable.css index 3a949b0c1..e89be47fa 100644 --- a/src/webui/www/public/css/dynamicTable.css +++ b/src/webui/www/public/css/dynamicTable.css @@ -88,3 +88,7 @@ white-space: nowrap; max-width: 300px; } + +tr.dynamicTableHeader { + cursor: pointer; +} diff --git a/src/webui/www/public/properties_content.html b/src/webui/www/public/properties_content.html index 55efe430f..4c1276c3e 100644 --- a/src/webui/www/public/properties_content.html +++ b/src/webui/www/public/properties_content.html @@ -67,7 +67,7 @@
    QBT_TR(Name)QBT_TR QBT_TR(Size)QBT_TR QBT_TR(Progress)QBT_TRQBT_TR(Priority)QBT_TRQBT_TR(Download Priority)QBT_TR
    - + diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index ef6b1c32c..78b03bd73 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -439,18 +439,18 @@ var TorrentsTable = new Class({ Extends: DynamicTable, initColumns : function () { - this.newColumn('priority', 'width: 30px; cursor: pointer', '#'); - this.newColumn('state_icon', 'width: 16px', ''); - this.newColumn('name', 'min-width: 200px; cursor: pointer', 'QBT_TR(Name)QBT_TR'); - this.newColumn('size', 'width: 100px; cursor: pointer', 'QBT_TR(Size)QBT_TR'); - this.newColumn('progress', 'width: 80px; cursor: pointer', 'QBT_TR(Done)QBT_TR'); - this.newColumn('num_seeds', 'width: 100px; cursor: pointer', 'QBT_TR(Seeds)QBT_TR'); - this.newColumn('num_leechs', 'width: 100px; cursor: pointer', 'QBT_TR(Peers)QBT_TR'); - this.newColumn('dlspeed', 'width: 100px; cursor: pointer', 'QBT_TR(Down Speed)QBT_TR'); - this.newColumn('upspeed', 'width: 100px; cursor: pointer', 'QBT_TR(Up Speed)QBT_TR'); - this.newColumn('eta', 'width: 100px; cursor: pointer', 'QBT_TR(ETA)QBT_TR'); - this.newColumn('ratio', 'width: 100px; cursor: pointer', 'QBT_TR(Ratio)QBT_TR'); - this.newColumn('label', 'width: 100px; cursor: pointer', 'QBT_TR(Label)QBT_TR'); + this.newColumn('priority', 'width: 30px', '#'); + this.newColumn('state_icon', 'width: 16px; cursor: default', ''); + this.newColumn('name', 'min-width: 200px', 'QBT_TR(Name)QBT_TR'); + this.newColumn('size', 'width: 100px', 'QBT_TR(Size)QBT_TR'); + this.newColumn('progress', 'width: 80px', 'QBT_TR(Done)QBT_TR'); + this.newColumn('num_seeds', 'width: 100px', 'QBT_TR(Seeds)QBT_TR'); + this.newColumn('num_leechs', 'width: 100px', 'QBT_TR(Peers)QBT_TR'); + this.newColumn('dlspeed', 'width: 100px', 'QBT_TR(Down Speed)QBT_TR'); + this.newColumn('upspeed', 'width: 100px', 'QBT_TR(Up Speed)QBT_TR'); + this.newColumn('eta', 'width: 100px', 'QBT_TR(ETA)QBT_TR'); + this.newColumn('ratio', 'width: 100px', 'QBT_TR(Ratio)QBT_TR'); + this.newColumn('label', 'width: 100px', 'QBT_TR(Label)QBT_TR'); this.columns['state_icon'].onclick = ''; this.columns['state_icon'].dataProperties[0] = 'state'; diff --git a/src/webui/www/public/transferlist.html b/src/webui/www/public/transferlist.html index 150783096..87acf804e 100644 --- a/src/webui/www/public/transferlist.html +++ b/src/webui/www/public/transferlist.html @@ -1,6 +1,6 @@
    - + From 69d52a06d757ab0ca250da3df31800edc92d69b1 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Thu, 21 Jan 2016 00:26:03 +0200 Subject: [PATCH 115/238] Temporarily revert PR #2885 (filename column in peers view). There's a bug that causes frequent crashes. Issue #4597. --- src/base/bittorrent/peerinfo.cpp | 5 ----- src/base/bittorrent/peerinfo.h | 1 - src/base/bittorrent/torrentinfo.cpp | 14 -------------- src/base/bittorrent/torrentinfo.h | 1 - src/gui/properties/peerlistdelegate.h | 2 +- src/gui/properties/peerlistwidget.cpp | 16 ++++------------ src/gui/properties/peerlistwidget.h | 4 ++-- 7 files changed, 7 insertions(+), 36 deletions(-) diff --git a/src/base/bittorrent/peerinfo.cpp b/src/base/bittorrent/peerinfo.cpp index 4ea3f9f10..857424aee 100644 --- a/src/base/bittorrent/peerinfo.cpp +++ b/src/base/bittorrent/peerinfo.cpp @@ -408,8 +408,3 @@ QString PeerInfo::flagsDescription() const { return m_flagsDescription; } - -int PeerInfo::downloadingPieceIndex() const -{ - return m_nativeInfo.downloading_piece_index; -} diff --git a/src/base/bittorrent/peerinfo.h b/src/base/bittorrent/peerinfo.h index 0c7a06570..ae63e2d54 100644 --- a/src/base/bittorrent/peerinfo.h +++ b/src/base/bittorrent/peerinfo.h @@ -100,7 +100,6 @@ namespace BitTorrent #ifndef DISABLE_COUNTRIES_RESOLUTION QString country() const; #endif - int downloadingPieceIndex() const; private: void calcRelevance(const TorrentHandle *torrent); diff --git a/src/base/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp index 3eea6ab03..d7da2f517 100644 --- a/src/base/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -211,20 +211,6 @@ QByteArray TorrentInfo::metadata() const return QByteArray(m_nativeInfo->metadata().get(), m_nativeInfo->metadata_size()); } -QStringList TorrentInfo::filesForPiece(int pieceIndex) const -{ - if (pieceIndex < 0) - return QStringList(); - - std::vector files( - nativeInfo()->map_block(pieceIndex, 0, nativeInfo()->piece_length())); - QStringList res; - for (const libtorrent::file_slice& s: files) { - res.append(filePath(s.file_index)); - } - return res; -} - void TorrentInfo::renameFile(uint index, const QString &newPath) { if (!isValid()) return; diff --git a/src/base/bittorrent/torrentinfo.h b/src/base/bittorrent/torrentinfo.h index 802e9882d..392fa8b46 100644 --- a/src/base/bittorrent/torrentinfo.h +++ b/src/base/bittorrent/torrentinfo.h @@ -75,7 +75,6 @@ namespace BitTorrent QList trackers() const; QList urlSeeds() const; QByteArray metadata() const; - QStringList filesForPiece(int pieceIndex) const; void renameFile(uint index, const QString &newPath); boost::intrusive_ptr nativeInfo() const; diff --git a/src/gui/properties/peerlistdelegate.h b/src/gui/properties/peerlistdelegate.h index 864a6f424..1c5be0cb5 100644 --- a/src/gui/properties/peerlistdelegate.h +++ b/src/gui/properties/peerlistdelegate.h @@ -41,7 +41,7 @@ class PeerListDelegate: public QItemDelegate { public: enum PeerListColumns {COUNTRY, IP, PORT, CONNECTION, FLAGS, CLIENT, PROGRESS, DOWN_SPEED, UP_SPEED, - TOT_DOWN, TOT_UP, RELEVANCE, DOWNLOADING_PIECE, IP_HIDDEN, COL_COUNT}; + TOT_DOWN, TOT_UP, RELEVANCE, IP_HIDDEN, COL_COUNT}; public: PeerListDelegate(QObject *parent) : QItemDelegate(parent) {} diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index cf9606cf4..96fefa3b4 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -78,7 +78,6 @@ PeerListWidget::PeerListWidget(PropertiesWidget *parent) m_listModel->setHeaderData(PeerListDelegate::TOT_DOWN, Qt::Horizontal, tr("Downloaded", "i.e: total data downloaded")); m_listModel->setHeaderData(PeerListDelegate::TOT_UP, Qt::Horizontal, tr("Uploaded", "i.e: total data uploaded")); m_listModel->setHeaderData(PeerListDelegate::RELEVANCE, Qt::Horizontal, tr("Relevance", "i.e: How relevant this peer is to us. How many pieces it has that we don't.")); - m_listModel->setHeaderData(PeerListDelegate::DOWNLOADING_PIECE, Qt::Horizontal, tr("Files", "i.e. files that are being downloaded right now")); // Proxy model to support sorting without actually altering the underlying model m_proxyModel = new PeerListSortModel(); m_proxyModel->setDynamicSortFilter(true); @@ -283,14 +282,14 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo QString peerIp = addr.ip.toString(); if (m_peerItems.contains(peerIp)) { // Update existing peer - updatePeer(peerIp, torrent, peer); + updatePeer(peerIp, peer); oldeersSet.remove(peerIp); if (forceHostnameResolution && m_resolver) m_resolver->resolve(peerIp); } else { // Add new peer - m_peerItems[peerIp] = addPeer(peerIp, torrent, peer); + m_peerItems[peerIp] = addPeer(peerIp, peer); m_peerAddresses[peerIp] = addr; // Resolve peer host name is asked if (m_resolver) @@ -308,7 +307,7 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo } } -QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer) +QStandardItem* PeerListWidget::addPeer(const QString &ip, const BitTorrent::PeerInfo &peer) { int row = m_listModel->rowCount(); // Adding Peer to peer list @@ -338,14 +337,10 @@ QStandardItem* PeerListWidget::addPeer(const QString& ip, BitTorrent::TorrentHan m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_DOWN), peer.totalDownload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_UP), peer.totalUpload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::RELEVANCE), peer.relevance()); - QStringList downloadingFiles(torrent->info().filesForPiece(peer.downloadingPieceIndex())); - m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String(";"))); - m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String("\n")), Qt::ToolTipRole); - return m_listModel->item(row, PeerListDelegate::IP); } -void PeerListWidget::updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer) +void PeerListWidget::updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer) { QStandardItem *item = m_peerItems.value(ip); int row = item->row(); @@ -369,9 +364,6 @@ void PeerListWidget::updatePeer(const QString &ip, BitTorrent::TorrentHandle *co m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_DOWN), peer.totalDownload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::TOT_UP), peer.totalUpload()); m_listModel->setData(m_listModel->index(row, PeerListDelegate::RELEVANCE), peer.relevance()); - QStringList downloadingFiles(torrent->info().filesForPiece(peer.downloadingPieceIndex())); - m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String(";"))); - m_listModel->setData(m_listModel->index(row, PeerListDelegate::DOWNLOADING_PIECE), downloadingFiles.join(QLatin1String("\n")), Qt::ToolTipRole); } void PeerListWidget::handleResolved(const QString &ip, const QString &hostname) diff --git a/src/gui/properties/peerlistwidget.h b/src/gui/properties/peerlistwidget.h index d73037b34..7ec0669fe 100644 --- a/src/gui/properties/peerlistwidget.h +++ b/src/gui/properties/peerlistwidget.h @@ -68,8 +68,8 @@ public: ~PeerListWidget(); void loadPeers(BitTorrent::TorrentHandle *const torrent, bool forceHostnameResolution = false); - QStandardItem *addPeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer); - void updatePeer(const QString &ip, BitTorrent::TorrentHandle *const torrent, const BitTorrent::PeerInfo &peer); + QStandardItem *addPeer(const QString &ip, const BitTorrent::PeerInfo &peer); + void updatePeer(const QString &ip, const BitTorrent::PeerInfo &peer); void updatePeerHostNameResolutionState(); void updatePeerCountryResolutionState(); void clear(); From 5c8a4b3912556076ffaedcd00608c23dd6ece654 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 13 Dec 2015 18:14:12 +0800 Subject: [PATCH 116/238] Simplify signal handler Try to use signal-safe functions as much as possible Closes #3995 Define sys_signame[] ourselves on linux --- src/app/main.cpp | 96 +++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 54 deletions(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index 94e16bcc7..83b3ab89f 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -79,10 +79,15 @@ Q_IMPORT_PLUGIN(qico) // Signal handlers #if defined(Q_OS_UNIX) || defined(STACKTRACE_WIN) -void sigintHandler(int); -void sigtermHandler(int); -void sigsegvHandler(int); -void sigabrtHandler(int); +void sigNormalHandler(int signum); +void sigAbnormalHandler(int signum); +// sys_signame[] is only defined in BSD +const char *sysSigName[] = { + "", "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP", "SIGABRT", "SIGBUS", "SIGFPE", "SIGKILL", + "SIGUSR1", "SIGSEGV", "SIGUSR2", "SIGPIPE", "SIGALRM", "SIGTERM", "SIGSTKFLT", "SIGCHLD", "SIGCONT", "SIGSTOP", + "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGXCPU", "SIGXFSZ", "SIGVTALRM", "SIGPROF", "SIGWINCH", "SIGIO", + "SIGPWR", "SIGUNUSED" +}; #endif struct QBtCommandLineParameters @@ -240,10 +245,10 @@ int main(int argc, char *argv[]) #endif #if defined(Q_OS_UNIX) || defined(STACKTRACE_WIN) - signal(SIGABRT, sigabrtHandler); - signal(SIGTERM, sigtermHandler); - signal(SIGINT, sigintHandler); - signal(SIGSEGV, sigsegvHandler); + signal(SIGINT, sigNormalHandler); + signal(SIGTERM, sigNormalHandler); + signal(SIGABRT, sigAbnormalHandler); + signal(SIGSEGV, sigAbnormalHandler); #endif return app->exec(params.torrents); @@ -303,58 +308,41 @@ QBtCommandLineParameters parseCommandLine() } #if defined(Q_OS_UNIX) || defined(STACKTRACE_WIN) -void sigintHandler(int) +void sigNormalHandler(int signum) { - signal(SIGINT, 0); - qDebug("Catching SIGINT, exiting cleanly"); - qApp->exit(); -} - -void sigtermHandler(int) -{ - signal(SIGTERM, 0); - qDebug("Catching SIGTERM, exiting cleanly"); - qApp->exit(); -} - -void sigsegvHandler(int) -{ - signal(SIGABRT, 0); - signal(SIGSEGV, 0); #if !defined Q_OS_WIN && !defined Q_OS_HAIKU - std::cerr << "\n\n*************************************************************\n"; - std::cerr << "Catching SIGSEGV, please report a bug at http://bug.qbittorrent.org\nand provide the following backtrace:\n"; - std::cerr << "qBittorrent version: " << VERSION << std::endl; - print_stacktrace(); -#else + const char str1[] = "Catching signal: "; + const char *sigName = sysSigName[signum]; + const char str2[] = "\nExiting cleanly\n"; + write(STDERR_FILENO, str1, strlen(str1)); + write(STDERR_FILENO, sigName, strlen(sigName)); + write(STDERR_FILENO, str2, strlen(str2)); +#endif // !defined Q_OS_WIN && !defined Q_OS_HAIKU + signal(signum, SIG_DFL); + qApp->exit(); // unsafe, but exit anyway +} + +void sigAbnormalHandler(int signum) +{ +#if !defined Q_OS_WIN && !defined Q_OS_HAIKU + const char str1[] = "\n\n*************************************************************\nCatching signal: "; + const char *sigName = sysSigName[signum]; + const char str2[] = "\nPlease file a bug report at http://bug.qbittorrent.org and provide the following information:\n\n" + "qBittorrent version: " VERSION "\n"; + write(STDERR_FILENO, str1, strlen(str1)); + write(STDERR_FILENO, sigName, strlen(sigName)); + write(STDERR_FILENO, str2, strlen(str2)); + print_stacktrace(); // unsafe +#endif // !defined Q_OS_WIN && !defined Q_OS_HAIKU #ifdef STACKTRACE_WIN - StraceDlg dlg; + StraceDlg dlg; // unsafe dlg.setStacktraceString(straceWin::getBacktrace()); dlg.exec(); -#endif -#endif - raise(SIGSEGV); +#endif // STACKTRACE_WIN + signal(signum, SIG_DFL); + raise(signum); } - -void sigabrtHandler(int) -{ - signal(SIGABRT, 0); - signal(SIGSEGV, 0); -#if !defined Q_OS_WIN && !defined Q_OS_HAIKU - std::cerr << "\n\n*************************************************************\n"; - std::cerr << "Catching SIGABRT, please report a bug at http://bug.qbittorrent.org\nand provide the following backtrace:\n"; - std::cerr << "qBittorrent version: " << VERSION << std::endl; - print_stacktrace(); -#else -#ifdef STACKTRACE_WIN - StraceDlg dlg; - dlg.setStacktraceString(straceWin::getBacktrace()); - dlg.exec(); -#endif -#endif - raise(SIGABRT); -} -#endif +#endif // defined(Q_OS_UNIX) || defined(STACKTRACE_WIN) #ifndef DISABLE_GUI void showSplashScreen() From ef75ae4aeecd35ca179b3defb8d12d36c5dfec26 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 13 Dec 2015 20:42:02 +0800 Subject: [PATCH 117/238] Try to concat most of the string at compile time The lesser unsafe code in signal handler the better Add license --- src/app/stacktrace_win_dlg.h | 91 ++++++++++++++++++++++++------------ 1 file changed, 60 insertions(+), 31 deletions(-) diff --git a/src/app/stacktrace_win_dlg.h b/src/app/stacktrace_win_dlg.h index 0040c7da5..eb4604477 100644 --- a/src/app/stacktrace_win_dlg.h +++ b/src/app/stacktrace_win_dlg.h @@ -1,51 +1,80 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 The qBittorrent project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + * + */ + #ifndef STACKTRACE_WIN_DLG_H #define STACKTRACE_WIN_DLG_H -#include -#include +#include +#include #include "boost/version.hpp" #include "libtorrent/version.hpp" #include "ui_stacktrace_win_dlg.h" -class StraceDlg: public QDialog, private Ui::errorDialog +class StraceDlg : public QDialog, private Ui::errorDialog { Q_OBJECT public: - StraceDlg(QWidget* parent = 0): QDialog(parent) + StraceDlg(QWidget* parent = 0) + : QDialog(parent) { setupUi(this); } - ~StraceDlg() - { - } - void setStacktraceString(const QString& trace) { - QString htmlStr; - QTextStream outStream(&htmlStr); - outStream << "

    " << - "qBittorrent has crashed" << - "

    " << - "" << - "

    " << - "Please report a bug at " << - "http://bugs.qbittorrent.org" << - " and provide the following backtrace." << - "

    " << - "
    " << - "


    " << - "

    qBittorrent version: " << VERSION << - "
    Libtorrent version: " << LIBTORRENT_VERSION << - "
    Qt version: " << QT_VERSION_STR << - "
    Boost version: " << QString::number(BOOST_VERSION / 100000) << '.' << - QString::number((BOOST_VERSION / 100) % 1000) << '.' << - QString::number(BOOST_VERSION % 100) << "


    " - "
    " <<
    -            trace <<
    -            "
    " << - "



    "; + // try to call Qt function as less as possible + const int boostVerMajor = BOOST_VERSION / 100000; + const int boostVerMinor = ((BOOST_VERSION / 100) % 1000); + const int boostVerSubMin = BOOST_VERSION % 100; + QString htmlStr = QString( + "

    " + "qBittorrent has crashed" + "

    " + "

    " + "Please file a bug report at " + "http://bugs.qbittorrent.org " + "and provide the following information:" + "

    " + "


    " + "

    " + "qBittorrent version: " VERSION "
    " + "Libtorrent version: " LIBTORRENT_VERSION "
    " + "Qt version: " QT_VERSION_STR "
    " + "Boost version: %1.%2.%3" + "


    " + "
    %4
    " + "



    ") + .arg(boostVerMajor) + .arg(boostVerMinor) + .arg(boostVerSubMin) + .arg(trace); errorText->setHtml(htmlStr); } From 4a3d9029d1995f41bd0d723007e33d58492a4412 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 13 Dec 2015 22:01:53 +0800 Subject: [PATCH 118/238] Add #include guard --- src/app/stacktrace_win.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/stacktrace_win.h b/src/app/stacktrace_win.h index 8d1eced49..bfd748e8f 100644 --- a/src/app/stacktrace_win.h +++ b/src/app/stacktrace_win.h @@ -18,6 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#ifndef STACKTRACE_WIN_H +#define STACKTRACE_WIN_H + #include #include #include @@ -266,3 +269,5 @@ const QString straceWin::getBacktrace() #pragma warning(pop) #pragma optimize("g", on) #endif + +#endif // STACKTRACE_WIN_H From 418734b0a3fc6e3ece3a52969176c88d62b4e1b1 Mon Sep 17 00:00:00 2001 From: buinsky Date: Sun, 24 Jan 2016 12:50:45 +0300 Subject: [PATCH 119/238] WebUI: Fix JavaScript exception on WebUI load --- src/webui/www/public/properties_content.html | 3 ++- src/webui/www/public/scripts/client.js | 14 +++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/webui/www/public/properties_content.html b/src/webui/www/public/properties_content.html index 4c1276c3e..60b3dca83 100644 --- a/src/webui/www/public/properties_content.html +++ b/src/webui/www/public/properties_content.html @@ -107,4 +107,5 @@ \ No newline at end of file + $(getLocalStorageItem('selected_tab', 'PropGeneralLink')).click(); + diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index 23473ea37..3757c142d 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -25,9 +25,15 @@ torrentsTable = new TorrentsTable(); torrentPeersTable = new TorrentPeersTable(); -var updatePropertiesPanel = function(){}; -var updateTorrentPeersData = function(){}; -var updateMainData = function(){}; +var updatePropertiesPanel = function () {}; + +var updateTorrentData = function () {}; +var updateTrackersData = function () {}; +var updateTorrentPeersData = function () {}; +var updateWebSeedsData = function () {}; +var updateTorrentFilesData = function () {}; + +var updateMainData = function () {}; var alternativeSpeedLimits = false; var queueing_enabled = true; var syncMainDataTimerPeriod = 1500; @@ -578,8 +584,6 @@ window.addEvent('load', function () { $('propertiesPanel_collapseToggle').addEvent('click', function(e){ updatePropertiesPanel(); }); - - $(getLocalStorageItem('selected_tab', 'PropGeneralLink')).click(); }, column : 'mainColumn', height : prop_h From 0d32b9a692aba53c6a10f339825b8f50aebfa4de Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 25 Jan 2016 15:59:20 +0200 Subject: [PATCH 120/238] Fix splash screen staying on top of all windows. Closes #1391. --- src/app/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/main.cpp b/src/app/main.cpp index 94e16bcc7..ea7969808 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -365,7 +365,7 @@ void showSplashScreen() painter.setPen(QPen(Qt::white)); painter.setFont(QFont("Arial", 22, QFont::Black)); painter.drawText(224 - painter.fontMetrics().width(version), 270, version); - QSplashScreen *splash = new QSplashScreen(splash_img, Qt::WindowStaysOnTopHint); + QSplashScreen *splash = new QSplashScreen(splash_img); QTimer::singleShot(1500, splash, SLOT(deleteLater())); splash->show(); qApp->processEvents(); From 2fd8a0ea2219d2defb686c55dcd57ede12b64f0a Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 15 Nov 2015 13:37:13 +0800 Subject: [PATCH 121/238] Add license in advancedsettings.h --- src/gui/advancedsettings.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index f73192d3c..70f41f61a 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -1,3 +1,31 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2015 + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + #ifndef ADVANCEDSETTINGS_H #define ADVANCEDSETTINGS_H From 29c94d2fb5ef3f339b6290f7c24b460457643bb9 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 15 Nov 2015 13:48:10 +0800 Subject: [PATCH 122/238] Move code from advancedsettings.h to its own cpp file --- src/gui/advancedsettings.cpp | 314 ++++++++++++++++++++++++++++++++++ src/gui/advancedsettings.h | 318 +++-------------------------------- src/gui/gui.pri | 1 + 3 files changed, 337 insertions(+), 296 deletions(-) create mode 100644 src/gui/advancedsettings.cpp diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp new file mode 100644 index 000000000..376b3723f --- /dev/null +++ b/src/gui/advancedsettings.cpp @@ -0,0 +1,314 @@ +/* + * Bittorrent Client using Qt and libtorrent. + * Copyright (C) 2016 qBittorrent project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * In addition, as a special exception, the copyright holders give permission to + * link this program with the OpenSSL project's "OpenSSL" library (or with + * modified versions of it that use the same license as the "OpenSSL" library), + * and distribute the linked executables. You must obey the GNU General Public + * License in all respects for all of the code used other than "OpenSSL". If you + * modify file(s), you may extend this exception to your version of the file(s), + * but you are not obligated to do so. If you do not wish to do so, delete this + * exception statement from your version. + */ + +#include "advancedsettings.h" +#include +#include +#include +#include "base/preferences.h" + +enum AdvSettingsCols +{ + PROPERTY, + VALUE +}; +enum AdvSettingsRows +{ + DISK_CACHE, + DISK_CACHE_TTL, + OS_CACHE, + SAVE_RESUME_DATA_INTERVAL, + OUTGOING_PORT_MIN, + OUTGOING_PORT_MAX, + RECHECK_COMPLETED, + LIST_REFRESH, + RESOLVE_COUNTRIES, + RESOLVE_HOSTS, + MAX_HALF_OPEN, + SUPER_SEEDING, + NETWORK_IFACE, + NETWORK_LISTEN_IPV6, + NETWORK_ADDRESS, + PROGRAM_NOTIFICATIONS, + TRACKER_STATUS, + TRACKER_PORT, +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) + UPDATE_CHECK, +#endif +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) + USE_ICON_THEME, +#endif + CONFIRM_RECHECK_TORRENT, + TRACKER_EXCHANGE, + ANNOUNCE_ALL_TRACKERS, + ROW_COUNT +}; + +AdvancedSettings::AdvancedSettings(QWidget *parent) + : QTableWidget(parent) +{ + // Set visual appearance + setEditTriggers(QAbstractItemView::NoEditTriggers); + setAlternatingRowColors(true); + setColumnCount(2); + QStringList header; + header << tr("Setting") << tr("Value", "Value set for this setting"); + setHorizontalHeaderLabels(header); + setColumnWidth(0, width() / 2); + horizontalHeader()->setStretchLastSection(true); + verticalHeader()->setVisible(false); + setRowCount(ROW_COUNT); + // Signals + connect(&spin_cache, SIGNAL(valueChanged(int)), SLOT(updateCacheSpinSuffix(int))); + // Load settings + loadAdvancedSettings(); +} + +void AdvancedSettings::saveAdvancedSettings() +{ + Preferences* const pref = Preferences::instance(); + // Disk write cache + pref->setDiskCacheSize(spin_cache.value()); + pref->setDiskCacheTTL(spin_cache_ttl.value()); + // Enable OS cache + pref->setOsCache(cb_os_cache.isChecked()); + // Save resume data interval + pref->setSaveResumeDataInterval(spin_save_resume_data_interval.value()); + // Outgoing ports + pref->setOutgoingPortsMin(outgoing_ports_min.value()); + pref->setOutgoingPortsMax(outgoing_ports_max.value()); + // Recheck torrents on completion + pref->recheckTorrentsOnCompletion(cb_recheck_completed.isChecked()); + // Transfer list refresh interval + pref->setRefreshInterval(spin_list_refresh.value()); + // Peer resolution + pref->resolvePeerCountries(cb_resolve_countries.isChecked()); + pref->resolvePeerHostNames(cb_resolve_hosts.isChecked()); + // Max Half-Open connections + pref->setMaxHalfOpenConnections(spin_maxhalfopen.value()); + // Super seeding + pref->enableSuperSeeding(cb_super_seeding.isChecked()); + // Network interface + if (combo_iface.currentIndex() == 0) { + // All interfaces (default) + pref->setNetworkInterface(QString::null); + pref->setNetworkInterfaceName(QString::null); + } + else { + pref->setNetworkInterface(combo_iface.itemData(combo_iface.currentIndex()).toString()); + pref->setNetworkInterfaceName(combo_iface.currentText()); + } + // Listen on IPv6 address + pref->setListenIPv6(cb_listen_ipv6.isChecked()); + // Network address + QHostAddress addr(txt_network_address.text().trimmed()); + if (addr.isNull()) + pref->setNetworkAddress(""); + else + pref->setNetworkAddress(addr.toString()); + // Program notification + pref->useProgramNotification(cb_program_notifications.isChecked()); + // Tracker + pref->setTrackerEnabled(cb_tracker_status.isChecked()); + pref->setTrackerPort(spin_tracker_port.value()); +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) + pref->setUpdateCheckEnabled(cb_update_check.isChecked()); +#endif + // Icon theme +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) + pref->useSystemIconTheme(cb_use_icon_theme.isChecked()); +#endif + pref->setConfirmTorrentRecheck(cb_confirm_torrent_recheck.isChecked()); + // Tracker exchange + pref->setTrackerExchangeEnabled(cb_enable_tracker_ext.isChecked()); + pref->setAnnounceToAllTrackers(cb_announce_all_trackers.isChecked()); +} + +void AdvancedSettings::setRow(int row, const QString &property, QSpinBox* editor) +{ + setItem(row, PROPERTY, new QTableWidgetItem(property)); + bool ok; Q_UNUSED(ok); + ok = connect(editor, SIGNAL(valueChanged(int)), SIGNAL(settingsChanged())); + Q_ASSERT(ok); + setCellWidget(row, VALUE, editor); +} + +void AdvancedSettings::setRow(int row, const QString &property, QComboBox* editor) +{ + setItem(row, PROPERTY, new QTableWidgetItem(property)); + bool ok; Q_UNUSED(ok); + ok = connect(editor, SIGNAL(currentIndexChanged(int)), SIGNAL(settingsChanged())); + Q_ASSERT(ok); + setCellWidget(row, VALUE, editor); +} + +void AdvancedSettings::setRow(int row, const QString &property, QCheckBox* editor) +{ + setItem(row, PROPERTY, new QTableWidgetItem(property)); + bool ok; Q_UNUSED(ok); + ok = connect(editor, SIGNAL(stateChanged(int)), SIGNAL(settingsChanged())); + Q_ASSERT(ok); + setCellWidget(row, VALUE, editor); +} + +void AdvancedSettings::setRow(int row, const QString &property, QLineEdit* editor) +{ + setItem(row, PROPERTY, new QTableWidgetItem(property)); + bool ok; Q_UNUSED(ok); + ok = connect(editor, SIGNAL(textChanged(QString)), SIGNAL(settingsChanged())); + Q_ASSERT(ok); + setCellWidget(row, VALUE, editor); +} + +void AdvancedSettings::updateCacheSpinSuffix(int value) +{ + if (value <= 0) + spin_cache.setSuffix(tr(" (auto)")); + else + spin_cache.setSuffix(tr(" MiB")); +} + +void AdvancedSettings::loadAdvancedSettings() +{ + const Preferences* const pref = Preferences::instance(); + // Disk write cache + spin_cache.setMinimum(0); + // When build as 32bit binary, set the maximum at less than 2GB to prevent crashes. + // These macros may not be available on compilers other than MSVC and GCC +#if defined(__x86_64__) || defined(_M_X64) + spin_cache.setMaximum(4096); +#else + // allocate 1536MiB and leave 512MiB to the rest of program data in RAM + spin_cache.setMaximum(1536); +#endif + spin_cache.setValue(pref->diskCacheSize()); + updateCacheSpinSuffix(spin_cache.value()); + setRow(DISK_CACHE, tr("Disk write cache size"), &spin_cache); + // Disk cache expiry + spin_cache_ttl.setMinimum(15); + spin_cache_ttl.setMaximum(600); + spin_cache_ttl.setValue(pref->diskCacheTTL()); + spin_cache_ttl.setSuffix(tr(" s", " seconds")); + setRow(DISK_CACHE_TTL, tr("Disk cache expiry interval"), &spin_cache_ttl); + // Enable OS cache + cb_os_cache.setChecked(pref->osCache()); + setRow(OS_CACHE, tr("Enable OS cache"), &cb_os_cache); + // Save resume data interval + spin_save_resume_data_interval.setMinimum(1); + spin_save_resume_data_interval.setMaximum(1440); + spin_save_resume_data_interval.setValue(pref->saveResumeDataInterval()); + spin_save_resume_data_interval.setSuffix(tr(" m", " minutes")); + setRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval", "How often the fastresume file is saved."), &spin_save_resume_data_interval); + // Outgoing port Min + outgoing_ports_min.setMinimum(0); + outgoing_ports_min.setMaximum(65535); + outgoing_ports_min.setValue(pref->outgoingPortsMin()); + setRow(OUTGOING_PORT_MIN, tr("Outgoing ports (Min) [0: Disabled]"), &outgoing_ports_min); + // Outgoing port Min + outgoing_ports_max.setMinimum(0); + outgoing_ports_max.setMaximum(65535); + outgoing_ports_max.setValue(pref->outgoingPortsMax()); + setRow(OUTGOING_PORT_MAX, tr("Outgoing ports (Max) [0: Disabled]"), &outgoing_ports_max); + // Recheck completed torrents + cb_recheck_completed.setChecked(pref->recheckTorrentsOnCompletion()); + setRow(RECHECK_COMPLETED, tr("Recheck torrents on completion"), &cb_recheck_completed); + // Transfer list refresh interval + spin_list_refresh.setMinimum(30); + spin_list_refresh.setMaximum(99999); + spin_list_refresh.setValue(pref->getRefreshInterval()); + spin_list_refresh.setSuffix(tr(" ms", " milliseconds")); + setRow(LIST_REFRESH, tr("Transfer list refresh interval"), &spin_list_refresh); + // Resolve Peer countries + cb_resolve_countries.setChecked(pref->resolvePeerCountries()); + setRow(RESOLVE_COUNTRIES, tr("Resolve peer countries (GeoIP)"), &cb_resolve_countries); + // Resolve peer hosts + cb_resolve_hosts.setChecked(pref->resolvePeerHostNames()); + setRow(RESOLVE_HOSTS, tr("Resolve peer host names"), &cb_resolve_hosts); + // Max Half Open connections + spin_maxhalfopen.setMinimum(0); + spin_maxhalfopen.setMaximum(99999); + spin_maxhalfopen.setValue(pref->getMaxHalfOpenConnections()); + setRow(MAX_HALF_OPEN, tr("Maximum number of half-open connections [0: Unlimited]"), &spin_maxhalfopen); + // Super seeding + cb_super_seeding.setChecked(pref->isSuperSeedingEnabled()); + setRow(SUPER_SEEDING, tr("Strict super seeding"), &cb_super_seeding); + // Network interface + combo_iface.addItem(tr("Any interface", "i.e. Any network interface")); + const QString current_iface = pref->getNetworkInterface(); + bool interface_exists = current_iface.isEmpty(); + int i = 1; + foreach (const QNetworkInterface& iface, QNetworkInterface::allInterfaces()) { + if (iface.flags() & QNetworkInterface::IsLoopBack) continue; + combo_iface.addItem(iface.humanReadableName(), iface.name()); + if (!current_iface.isEmpty() && (iface.name() == current_iface)) { + combo_iface.setCurrentIndex(i); + interface_exists = true; + } + ++i; + } + // Saved interface does not exist, show it anyway + if (!interface_exists) { + combo_iface.addItem(pref->getNetworkInterfaceName(), current_iface); + combo_iface.setCurrentIndex(i); + } + setRow(NETWORK_IFACE, tr("Network Interface (requires restart)"), &combo_iface); + // Listen on IPv6 address + cb_listen_ipv6.setChecked(pref->getListenIPv6()); + setRow(NETWORK_LISTEN_IPV6, tr("Listen on IPv6 address (requires restart)"), &cb_listen_ipv6); + // Network address + txt_network_address.setText(pref->getNetworkAddress()); + setRow(NETWORK_ADDRESS, tr("IP Address to report to trackers (requires restart)"), &txt_network_address); + // Program notifications + cb_program_notifications.setChecked(pref->useProgramNotification()); + setRow(PROGRAM_NOTIFICATIONS, tr("Display program on-screen notifications"), &cb_program_notifications); + // Tracker State + cb_tracker_status.setChecked(pref->isTrackerEnabled()); + setRow(TRACKER_STATUS, tr("Enable embedded tracker"), &cb_tracker_status); + // Tracker port + spin_tracker_port.setMinimum(1); + spin_tracker_port.setMaximum(65535); + spin_tracker_port.setValue(pref->getTrackerPort()); + setRow(TRACKER_PORT, tr("Embedded tracker port"), &spin_tracker_port); +#if defined(Q_OS_WIN) || defined(Q_OS_MAC) + cb_update_check.setChecked(pref->isUpdateCheckEnabled()); + setRow(UPDATE_CHECK, tr("Check for software updates"), &cb_update_check); +#endif +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) + cb_use_icon_theme.setChecked(pref->useSystemIconTheme()); + setRow(USE_ICON_THEME, tr("Use system icon theme"), &cb_use_icon_theme); +#endif + // Torrent recheck confirmation + cb_confirm_torrent_recheck.setChecked(pref->confirmTorrentRecheck()); + setRow(CONFIRM_RECHECK_TORRENT, tr("Confirm torrent recheck"), &cb_confirm_torrent_recheck); + // Tracker exchange + cb_enable_tracker_ext.setChecked(pref->trackerExchangeEnabled()); + setRow(TRACKER_EXCHANGE, tr("Exchange trackers with other peers"), &cb_enable_tracker_ext); + // Announce to all trackers + cb_announce_all_trackers.setChecked(pref->announceToAllTrackers()); + setRow(ANNOUNCE_ALL_TRACKERS, tr("Always announce to all trackers"), &cb_announce_all_trackers); +} diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index 70f41f61a..ff45ca994 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -29,325 +29,51 @@ #ifndef ADVANCEDSETTINGS_H #define ADVANCEDSETTINGS_H -#include -#include #include -#include #include #include #include -#include +#include -#include "base/preferences.h" - -enum AdvSettingsCols -{ - PROPERTY, - VALUE -}; -enum AdvSettingsRows -{ - DISK_CACHE, - DISK_CACHE_TTL, - OS_CACHE, - SAVE_RESUME_DATA_INTERVAL, - OUTGOING_PORT_MIN, - OUTGOING_PORT_MAX, - RECHECK_COMPLETED, - LIST_REFRESH, - RESOLVE_COUNTRIES, - RESOLVE_HOSTS, - MAX_HALF_OPEN, - SUPER_SEEDING, - NETWORK_IFACE, - NETWORK_LISTEN_IPV6, - NETWORK_ADDRESS, - PROGRAM_NOTIFICATIONS, - TRACKER_STATUS, - TRACKER_PORT, -#if defined(Q_OS_WIN) || defined(Q_OS_MAC) - UPDATE_CHECK, -#endif -#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) - USE_ICON_THEME, -#endif - CONFIRM_RECHECK_TORRENT, - TRACKER_EXCHANGE, - ANNOUNCE_ALL_TRACKERS, - ROW_COUNT -}; class AdvancedSettings: public QTableWidget { Q_OBJECT -private: - QSpinBox spin_cache, spin_save_resume_data_interval, outgoing_ports_min, outgoing_ports_max, spin_list_refresh, spin_maxhalfopen, spin_tracker_port; - QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, - cb_super_seeding, cb_program_notifications, cb_tracker_status, - cb_confirm_torrent_recheck, cb_enable_tracker_ext, cb_listen_ipv6; - QComboBox combo_iface; - QSpinBox spin_cache_ttl; -#if defined(Q_OS_WIN) || defined(Q_OS_MAC) - QCheckBox cb_update_check; -#endif -#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) - QCheckBox cb_use_icon_theme; -#endif - QCheckBox cb_announce_all_trackers; - QLineEdit txt_network_address; - public: - AdvancedSettings(QWidget *parent=0): QTableWidget(parent) - { - // Set visual appearance - setEditTriggers(QAbstractItemView::NoEditTriggers); - setAlternatingRowColors(true); - setColumnCount(2); - QStringList header; - header << tr("Setting") << tr("Value", "Value set for this setting"); - setHorizontalHeaderLabels(header); - setColumnWidth(0, width()/2); - horizontalHeader()->setStretchLastSection(true); - verticalHeader()->setVisible(false); - setRowCount(ROW_COUNT); - // Signals - connect(&spin_cache, SIGNAL(valueChanged(int)), SLOT(updateCacheSpinSuffix(int))); - // Load settings - loadAdvancedSettings(); - } - - ~AdvancedSettings() {} + AdvancedSettings(QWidget *parent = 0); public slots: - void saveAdvancedSettings() - { - Preferences* const pref = Preferences::instance(); - // Disk write cache - pref->setDiskCacheSize(spin_cache.value()); - pref->setDiskCacheTTL(spin_cache_ttl.value()); - // Enable OS cache - pref->setOsCache(cb_os_cache.isChecked()); - // Save resume data interval - pref->setSaveResumeDataInterval(spin_save_resume_data_interval.value()); - // Outgoing ports - pref->setOutgoingPortsMin(outgoing_ports_min.value()); - pref->setOutgoingPortsMax(outgoing_ports_max.value()); - // Recheck torrents on completion - pref->recheckTorrentsOnCompletion(cb_recheck_completed.isChecked()); - // Transfer list refresh interval - pref->setRefreshInterval(spin_list_refresh.value()); - // Peer resolution - pref->resolvePeerCountries(cb_resolve_countries.isChecked()); - pref->resolvePeerHostNames(cb_resolve_hosts.isChecked()); - // Max Half-Open connections - pref->setMaxHalfOpenConnections(spin_maxhalfopen.value()); - // Super seeding - pref->enableSuperSeeding(cb_super_seeding.isChecked()); - // Network interface - if (combo_iface.currentIndex() == 0) { - // All interfaces (default) - pref->setNetworkInterface(QString::null); - pref->setNetworkInterfaceName(QString::null); - } - else { - pref->setNetworkInterface(combo_iface.itemData(combo_iface.currentIndex()).toString()); - pref->setNetworkInterfaceName(combo_iface.currentText()); - } - // Listen on IPv6 address - pref->setListenIPv6(cb_listen_ipv6.isChecked()); - // Network address - QHostAddress addr(txt_network_address.text().trimmed()); - if (addr.isNull()) - pref->setNetworkAddress(""); - else - pref->setNetworkAddress(addr.toString()); - // Program notification - pref->useProgramNotification(cb_program_notifications.isChecked()); - // Tracker - pref->setTrackerEnabled(cb_tracker_status.isChecked()); - pref->setTrackerPort(spin_tracker_port.value()); -#if defined(Q_OS_WIN) || defined(Q_OS_MAC) - pref->setUpdateCheckEnabled(cb_update_check.isChecked()); -#endif - // Icon theme -#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) - pref->useSystemIconTheme(cb_use_icon_theme.isChecked()); -#endif - pref->setConfirmTorrentRecheck(cb_confirm_torrent_recheck.isChecked()); - // Tracker exchange - pref->setTrackerExchangeEnabled(cb_enable_tracker_ext.isChecked()); - pref->setAnnounceToAllTrackers(cb_announce_all_trackers.isChecked()); - } + void saveAdvancedSettings(); signals: void settingsChanged(); -private: - void setRow(int row, const QString &property, QSpinBox* editor) - { - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(valueChanged(int)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); - } - - void setRow(int row, const QString &property, QComboBox* editor) - { - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(currentIndexChanged(int)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); - } - - void setRow(int row, const QString &property, QCheckBox* editor) - { - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(stateChanged(int)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); - } - - void setRow(int row, const QString &property, QLineEdit* editor) - { - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(textChanged(QString)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); - } - private slots: - void updateCacheSpinSuffix(int value) - { - if (value <= 0) - spin_cache.setSuffix(tr(" (auto)")); - else - spin_cache.setSuffix(tr(" MiB")); - } + void updateCacheSpinSuffix(int value); - void loadAdvancedSettings() - { - const Preferences* const pref = Preferences::instance(); - // Disk write cache - spin_cache.setMinimum(0); - // When build as 32bit binary, set the maximum at less than 2GB to prevent crashes. - // These macros may not be available on compilers other than MSVC and GCC -#if defined(__x86_64__) || defined(_M_X64) - spin_cache.setMaximum(4096); -#else - // allocate 1536MiB and leave 512MiB to the rest of program data in RAM - spin_cache.setMaximum(1536); -#endif - spin_cache.setValue(pref->diskCacheSize()); - updateCacheSpinSuffix(spin_cache.value()); - setRow(DISK_CACHE, tr("Disk write cache size"), &spin_cache); - // Disk cache expiry - spin_cache_ttl.setMinimum(15); - spin_cache_ttl.setMaximum(600); - spin_cache_ttl.setValue(pref->diskCacheTTL()); - spin_cache_ttl.setSuffix(tr(" s", " seconds")); - setRow(DISK_CACHE_TTL, tr("Disk cache expiry interval"), &spin_cache_ttl); - // Enable OS cache - cb_os_cache.setChecked(pref->osCache()); - setRow(OS_CACHE, tr("Enable OS cache"), &cb_os_cache); - // Save resume data interval - spin_save_resume_data_interval.setMinimum(1); - spin_save_resume_data_interval.setMaximum(1440); - spin_save_resume_data_interval.setValue(pref->saveResumeDataInterval()); - spin_save_resume_data_interval.setSuffix(tr(" m", " minutes")); - setRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval", "How often the fastresume file is saved."), &spin_save_resume_data_interval); - // Outgoing port Min - outgoing_ports_min.setMinimum(0); - outgoing_ports_min.setMaximum(65535); - outgoing_ports_min.setValue(pref->outgoingPortsMin()); - setRow(OUTGOING_PORT_MIN, tr("Outgoing ports (Min) [0: Disabled]"), &outgoing_ports_min); - // Outgoing port Min - outgoing_ports_max.setMinimum(0); - outgoing_ports_max.setMaximum(65535); - outgoing_ports_max.setValue(pref->outgoingPortsMax()); - setRow(OUTGOING_PORT_MAX, tr("Outgoing ports (Max) [0: Disabled]"), &outgoing_ports_max); - // Recheck completed torrents - cb_recheck_completed.setChecked(pref->recheckTorrentsOnCompletion()); - setRow(RECHECK_COMPLETED, tr("Recheck torrents on completion"), &cb_recheck_completed); - // Transfer list refresh interval - spin_list_refresh.setMinimum(30); - spin_list_refresh.setMaximum(99999); - spin_list_refresh.setValue(pref->getRefreshInterval()); - spin_list_refresh.setSuffix(tr(" ms", " milliseconds")); - setRow(LIST_REFRESH, tr("Transfer list refresh interval"), &spin_list_refresh); - // Resolve Peer countries - cb_resolve_countries.setChecked(pref->resolvePeerCountries()); - setRow(RESOLVE_COUNTRIES, tr("Resolve peer countries (GeoIP)"), &cb_resolve_countries); - // Resolve peer hosts - cb_resolve_hosts.setChecked(pref->resolvePeerHostNames()); - setRow(RESOLVE_HOSTS, tr("Resolve peer host names"), &cb_resolve_hosts); - // Max Half Open connections - spin_maxhalfopen.setMinimum(0); - spin_maxhalfopen.setMaximum(99999); - spin_maxhalfopen.setValue(pref->getMaxHalfOpenConnections()); - setRow(MAX_HALF_OPEN, tr("Maximum number of half-open connections [0: Unlimited]"), &spin_maxhalfopen); - // Super seeding - cb_super_seeding.setChecked(pref->isSuperSeedingEnabled()); - setRow(SUPER_SEEDING, tr("Strict super seeding"), &cb_super_seeding); - // Network interface - combo_iface.addItem(tr("Any interface", "i.e. Any network interface")); - const QString current_iface = pref->getNetworkInterface(); - bool interface_exists = current_iface.isEmpty(); - int i = 1; - foreach (const QNetworkInterface& iface, QNetworkInterface::allInterfaces()) { - if (iface.flags() & QNetworkInterface::IsLoopBack) continue; - combo_iface.addItem(iface.humanReadableName(),iface.name()); - if (!current_iface.isEmpty() && iface.name() == current_iface) { - combo_iface.setCurrentIndex(i); - interface_exists = true; - } - ++i; - } - // Saved interface does not exist, show it anyway - if (!interface_exists) { - combo_iface.addItem(pref->getNetworkInterfaceName(),current_iface); - combo_iface.setCurrentIndex(i); - } - setRow(NETWORK_IFACE, tr("Network Interface (requires restart)"), &combo_iface); - // Listen on IPv6 address - cb_listen_ipv6.setChecked(pref->getListenIPv6()); - setRow(NETWORK_LISTEN_IPV6, tr("Listen on IPv6 address (requires restart)"), &cb_listen_ipv6); - // Network address - txt_network_address.setText(pref->getNetworkAddress()); - setRow(NETWORK_ADDRESS, tr("IP Address to report to trackers (requires restart)"), &txt_network_address); - // Program notifications - cb_program_notifications.setChecked(pref->useProgramNotification()); - setRow(PROGRAM_NOTIFICATIONS, tr("Display program on-screen notifications"), &cb_program_notifications); - // Tracker State - cb_tracker_status.setChecked(pref->isTrackerEnabled()); - setRow(TRACKER_STATUS, tr("Enable embedded tracker"), &cb_tracker_status); - // Tracker port - spin_tracker_port.setMinimum(1); - spin_tracker_port.setMaximum(65535); - spin_tracker_port.setValue(pref->getTrackerPort()); - setRow(TRACKER_PORT, tr("Embedded tracker port"), &spin_tracker_port); +private: + void loadAdvancedSettings(); + void setRow(int row, const QString &property, QSpinBox* editor); + void setRow(int row, const QString &property, QComboBox* editor); + void setRow(int row, const QString &property, QCheckBox* editor); + void setRow(int row, const QString &property, QLineEdit* editor); + + QSpinBox spin_cache, spin_save_resume_data_interval, outgoing_ports_min, outgoing_ports_max, spin_list_refresh, spin_maxhalfopen, spin_tracker_port, spin_cache_ttl; + QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, + cb_super_seeding, cb_program_notifications, cb_tracker_status, + cb_confirm_torrent_recheck, cb_enable_tracker_ext, cb_listen_ipv6, cb_announce_all_trackers; + QComboBox combo_iface; + QLineEdit txt_network_address; + + // OS dependent settings #if defined(Q_OS_WIN) || defined(Q_OS_MAC) - cb_update_check.setChecked(pref->isUpdateCheckEnabled()); - setRow(UPDATE_CHECK, tr("Check for software updates"), &cb_update_check); + QCheckBox cb_update_check; #endif + #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) - cb_use_icon_theme.setChecked(pref->useSystemIconTheme()); - setRow(USE_ICON_THEME, tr("Use system icon theme"), &cb_use_icon_theme); + QCheckBox cb_use_icon_theme; #endif - // Torrent recheck confirmation - cb_confirm_torrent_recheck.setChecked(pref->confirmTorrentRecheck()); - setRow(CONFIRM_RECHECK_TORRENT, tr("Confirm torrent recheck"), &cb_confirm_torrent_recheck); - // Tracker exchange - cb_enable_tracker_ext.setChecked(pref->trackerExchangeEnabled()); - setRow(TRACKER_EXCHANGE, tr("Exchange trackers with other peers"), &cb_enable_tracker_ext); - // Announce to all trackers - cb_announce_all_trackers.setChecked(pref->announceToAllTrackers()); - setRow(ANNOUNCE_ALL_TRACKERS, tr("Always announce to all trackers"), &cb_announce_all_trackers); - } }; #endif // ADVANCEDSETTINGS_H diff --git a/src/gui/gui.pri b/src/gui/gui.pri index b586e7050..f2a5e89ca 100644 --- a/src/gui/gui.pri +++ b/src/gui/gui.pri @@ -75,6 +75,7 @@ SOURCES += \ $$PWD/statsdialog.cpp \ $$PWD/messageboxraised.cpp \ $$PWD/statusbar.cpp \ + $$PWD/advancedsettings.cpp \ $$PWD/trackerlogin.cpp \ $$PWD/options_imp.cpp \ $$PWD/shutdownconfirm.cpp \ From a8b394752ea2cc435f02220ff42bdfc26c8acd58 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 15 Nov 2015 14:08:22 +0800 Subject: [PATCH 123/238] Set parent object for advancedsettings Remove borders Resize column size correctly --- src/gui/advancedsettings.cpp | 17 +++++----- src/gui/advancedsettings.h | 2 +- src/gui/options.ui | 60 ++++++++++-------------------------- src/gui/options_imp.cpp | 8 ++--- 4 files changed, 28 insertions(+), 59 deletions(-) diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp index 376b3723f..f04a68b96 100644 --- a/src/gui/advancedsettings.cpp +++ b/src/gui/advancedsettings.cpp @@ -72,21 +72,22 @@ enum AdvSettingsRows AdvancedSettings::AdvancedSettings(QWidget *parent) : QTableWidget(parent) { - // Set visual appearance - setEditTriggers(QAbstractItemView::NoEditTriggers); - setAlternatingRowColors(true); + // column setColumnCount(2); - QStringList header; - header << tr("Setting") << tr("Value", "Value set for this setting"); + QStringList header = { tr("Setting"), tr("Value", "Value set for this setting") }; setHorizontalHeaderLabels(header); - setColumnWidth(0, width() / 2); - horizontalHeader()->setStretchLastSection(true); - verticalHeader()->setVisible(false); + // row setRowCount(ROW_COUNT); + verticalHeader()->setVisible(false); + // etc. + setAlternatingRowColors(true); + setEditTriggers(QAbstractItemView::NoEditTriggers); // Signals connect(&spin_cache, SIGNAL(valueChanged(int)), SLOT(updateCacheSpinSuffix(int))); // Load settings loadAdvancedSettings(); + resizeColumnToContents(0); + horizontalHeader()->setStretchLastSection(true); } void AdvancedSettings::saveAdvancedSettings() diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index ff45ca994..57a276aca 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -41,7 +41,7 @@ class AdvancedSettings: public QTableWidget Q_OBJECT public: - AdvancedSettings(QWidget *parent = 0); + AdvancedSettings(QWidget *parent); public slots: void saveAdvancedSettings(); diff --git a/src/gui/options.ui b/src/gui/options.ui index a57baf0c4..b65051f72 100644 --- a/src/gui/options.ui +++ b/src/gui/options.ui @@ -162,8 +162,8 @@ 0 0 - 454 - 610 + 480 + 672 @@ -520,8 +520,8 @@ 0 0 - 454 - 942 + 487 + 1040 @@ -1033,8 +1033,8 @@ 0 0 - 361 - 586 + 450 + 658 @@ -1563,8 +1563,8 @@ 0 0 - 275 - 401 + 376 + 444 @@ -1947,8 +1947,8 @@ 0 0 - 440 - 481 + 555 + 527 @@ -2341,8 +2341,8 @@ 0 0 - 332 - 480 + 419 + 537 @@ -2707,47 +2707,19 @@ - + 0 0 + + 0 + 0 - - - - true - - - - - 0 - 0 - 98 - 28 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - diff --git a/src/gui/options_imp.cpp b/src/gui/options_imp.cpp index a2c7d2f2e..515e4bf39 100644 --- a/src/gui/options_imp.cpp +++ b/src/gui/options_imp.cpp @@ -279,10 +279,8 @@ options_imp::options_imp(QWidget *parent) // Tab selection mechanism connect(tabSelection, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*))); // Load Advanced settings - QVBoxLayout *adv_layout = new QVBoxLayout(); - advancedSettings = new AdvancedSettings(); - adv_layout->addWidget(advancedSettings); - scrollArea_advanced->setLayout(adv_layout); + advancedSettings = new AdvancedSettings(tabAdvancedPage); + advPageLayout->addWidget(advancedSettings); connect(advancedSettings, SIGNAL(settingsChanged()), this, SLOT(enableApplyButton())); // Adapt size @@ -312,8 +310,6 @@ options_imp::~options_imp() foreach (const QString &path, addedScanDirs) ScanFoldersModel::instance()->removePath(path); ScanFoldersModel::instance()->configure(); // reloads "removed" paths - delete scrollArea_advanced->layout(); - delete advancedSettings; } void options_imp::changePage(QListWidgetItem *current, QListWidgetItem *previous) From acbc7d9556a4a0ed4cf66c584f015e06f76eba88 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 15 Nov 2015 14:56:39 +0800 Subject: [PATCH 124/238] Rename `setRow()` to `addRow()` Use template to avoid code duplication --- src/gui/advancedsettings.cpp | 100 ++++++++++++++--------------------- src/gui/advancedsettings.h | 5 +- 2 files changed, 42 insertions(+), 63 deletions(-) diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp index f04a68b96..d3bb7b116 100644 --- a/src/gui/advancedsettings.cpp +++ b/src/gui/advancedsettings.cpp @@ -150,42 +150,6 @@ void AdvancedSettings::saveAdvancedSettings() pref->setAnnounceToAllTrackers(cb_announce_all_trackers.isChecked()); } -void AdvancedSettings::setRow(int row, const QString &property, QSpinBox* editor) -{ - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(valueChanged(int)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); -} - -void AdvancedSettings::setRow(int row, const QString &property, QComboBox* editor) -{ - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(currentIndexChanged(int)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); -} - -void AdvancedSettings::setRow(int row, const QString &property, QCheckBox* editor) -{ - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(stateChanged(int)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); -} - -void AdvancedSettings::setRow(int row, const QString &property, QLineEdit* editor) -{ - setItem(row, PROPERTY, new QTableWidgetItem(property)); - bool ok; Q_UNUSED(ok); - ok = connect(editor, SIGNAL(textChanged(QString)), SIGNAL(settingsChanged())); - Q_ASSERT(ok); - setCellWidget(row, VALUE, editor); -} - void AdvancedSettings::updateCacheSpinSuffix(int value) { if (value <= 0) @@ -209,55 +173,55 @@ void AdvancedSettings::loadAdvancedSettings() #endif spin_cache.setValue(pref->diskCacheSize()); updateCacheSpinSuffix(spin_cache.value()); - setRow(DISK_CACHE, tr("Disk write cache size"), &spin_cache); + addRow(DISK_CACHE, tr("Disk write cache size"), &spin_cache); // Disk cache expiry spin_cache_ttl.setMinimum(15); spin_cache_ttl.setMaximum(600); spin_cache_ttl.setValue(pref->diskCacheTTL()); spin_cache_ttl.setSuffix(tr(" s", " seconds")); - setRow(DISK_CACHE_TTL, tr("Disk cache expiry interval"), &spin_cache_ttl); + addRow(DISK_CACHE_TTL, tr("Disk cache expiry interval"), &spin_cache_ttl); // Enable OS cache cb_os_cache.setChecked(pref->osCache()); - setRow(OS_CACHE, tr("Enable OS cache"), &cb_os_cache); + addRow(OS_CACHE, tr("Enable OS cache"), &cb_os_cache); // Save resume data interval spin_save_resume_data_interval.setMinimum(1); spin_save_resume_data_interval.setMaximum(1440); spin_save_resume_data_interval.setValue(pref->saveResumeDataInterval()); spin_save_resume_data_interval.setSuffix(tr(" m", " minutes")); - setRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval", "How often the fastresume file is saved."), &spin_save_resume_data_interval); + addRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval", "How often the fastresume file is saved."), &spin_save_resume_data_interval); // Outgoing port Min outgoing_ports_min.setMinimum(0); outgoing_ports_min.setMaximum(65535); outgoing_ports_min.setValue(pref->outgoingPortsMin()); - setRow(OUTGOING_PORT_MIN, tr("Outgoing ports (Min) [0: Disabled]"), &outgoing_ports_min); + addRow(OUTGOING_PORT_MIN, tr("Outgoing ports (Min) [0: Disabled]"), &outgoing_ports_min); // Outgoing port Min outgoing_ports_max.setMinimum(0); outgoing_ports_max.setMaximum(65535); outgoing_ports_max.setValue(pref->outgoingPortsMax()); - setRow(OUTGOING_PORT_MAX, tr("Outgoing ports (Max) [0: Disabled]"), &outgoing_ports_max); + addRow(OUTGOING_PORT_MAX, tr("Outgoing ports (Max) [0: Disabled]"), &outgoing_ports_max); // Recheck completed torrents cb_recheck_completed.setChecked(pref->recheckTorrentsOnCompletion()); - setRow(RECHECK_COMPLETED, tr("Recheck torrents on completion"), &cb_recheck_completed); + addRow(RECHECK_COMPLETED, tr("Recheck torrents on completion"), &cb_recheck_completed); // Transfer list refresh interval spin_list_refresh.setMinimum(30); spin_list_refresh.setMaximum(99999); spin_list_refresh.setValue(pref->getRefreshInterval()); spin_list_refresh.setSuffix(tr(" ms", " milliseconds")); - setRow(LIST_REFRESH, tr("Transfer list refresh interval"), &spin_list_refresh); + addRow(LIST_REFRESH, tr("Transfer list refresh interval"), &spin_list_refresh); // Resolve Peer countries cb_resolve_countries.setChecked(pref->resolvePeerCountries()); - setRow(RESOLVE_COUNTRIES, tr("Resolve peer countries (GeoIP)"), &cb_resolve_countries); + addRow(RESOLVE_COUNTRIES, tr("Resolve peer countries (GeoIP)"), &cb_resolve_countries); // Resolve peer hosts cb_resolve_hosts.setChecked(pref->resolvePeerHostNames()); - setRow(RESOLVE_HOSTS, tr("Resolve peer host names"), &cb_resolve_hosts); + addRow(RESOLVE_HOSTS, tr("Resolve peer host names"), &cb_resolve_hosts); // Max Half Open connections spin_maxhalfopen.setMinimum(0); spin_maxhalfopen.setMaximum(99999); spin_maxhalfopen.setValue(pref->getMaxHalfOpenConnections()); - setRow(MAX_HALF_OPEN, tr("Maximum number of half-open connections [0: Unlimited]"), &spin_maxhalfopen); + addRow(MAX_HALF_OPEN, tr("Maximum number of half-open connections [0: Unlimited]"), &spin_maxhalfopen); // Super seeding cb_super_seeding.setChecked(pref->isSuperSeedingEnabled()); - setRow(SUPER_SEEDING, tr("Strict super seeding"), &cb_super_seeding); + addRow(SUPER_SEEDING, tr("Strict super seeding"), &cb_super_seeding); // Network interface combo_iface.addItem(tr("Any interface", "i.e. Any network interface")); const QString current_iface = pref->getNetworkInterface(); @@ -277,39 +241,57 @@ void AdvancedSettings::loadAdvancedSettings() combo_iface.addItem(pref->getNetworkInterfaceName(), current_iface); combo_iface.setCurrentIndex(i); } - setRow(NETWORK_IFACE, tr("Network Interface (requires restart)"), &combo_iface); + addRow(NETWORK_IFACE, tr("Network Interface (requires restart)"), &combo_iface); // Listen on IPv6 address cb_listen_ipv6.setChecked(pref->getListenIPv6()); - setRow(NETWORK_LISTEN_IPV6, tr("Listen on IPv6 address (requires restart)"), &cb_listen_ipv6); + addRow(NETWORK_LISTEN_IPV6, tr("Listen on IPv6 address (requires restart)"), &cb_listen_ipv6); // Network address txt_network_address.setText(pref->getNetworkAddress()); - setRow(NETWORK_ADDRESS, tr("IP Address to report to trackers (requires restart)"), &txt_network_address); + addRow(NETWORK_ADDRESS, tr("IP Address to report to trackers (requires restart)"), &txt_network_address); // Program notifications cb_program_notifications.setChecked(pref->useProgramNotification()); - setRow(PROGRAM_NOTIFICATIONS, tr("Display program on-screen notifications"), &cb_program_notifications); + addRow(PROGRAM_NOTIFICATIONS, tr("Display program on-screen notifications"), &cb_program_notifications); // Tracker State cb_tracker_status.setChecked(pref->isTrackerEnabled()); - setRow(TRACKER_STATUS, tr("Enable embedded tracker"), &cb_tracker_status); + addRow(TRACKER_STATUS, tr("Enable embedded tracker"), &cb_tracker_status); // Tracker port spin_tracker_port.setMinimum(1); spin_tracker_port.setMaximum(65535); spin_tracker_port.setValue(pref->getTrackerPort()); - setRow(TRACKER_PORT, tr("Embedded tracker port"), &spin_tracker_port); + addRow(TRACKER_PORT, tr("Embedded tracker port"), &spin_tracker_port); #if defined(Q_OS_WIN) || defined(Q_OS_MAC) cb_update_check.setChecked(pref->isUpdateCheckEnabled()); - setRow(UPDATE_CHECK, tr("Check for software updates"), &cb_update_check); + addRow(UPDATE_CHECK, tr("Check for software updates"), &cb_update_check); #endif #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) cb_use_icon_theme.setChecked(pref->useSystemIconTheme()); - setRow(USE_ICON_THEME, tr("Use system icon theme"), &cb_use_icon_theme); + addRow(USE_ICON_THEME, tr("Use system icon theme"), &cb_use_icon_theme); #endif // Torrent recheck confirmation cb_confirm_torrent_recheck.setChecked(pref->confirmTorrentRecheck()); - setRow(CONFIRM_RECHECK_TORRENT, tr("Confirm torrent recheck"), &cb_confirm_torrent_recheck); + addRow(CONFIRM_RECHECK_TORRENT, tr("Confirm torrent recheck"), &cb_confirm_torrent_recheck); // Tracker exchange cb_enable_tracker_ext.setChecked(pref->trackerExchangeEnabled()); - setRow(TRACKER_EXCHANGE, tr("Exchange trackers with other peers"), &cb_enable_tracker_ext); + addRow(TRACKER_EXCHANGE, tr("Exchange trackers with other peers"), &cb_enable_tracker_ext); // Announce to all trackers cb_announce_all_trackers.setChecked(pref->announceToAllTrackers()); - setRow(ANNOUNCE_ALL_TRACKERS, tr("Always announce to all trackers"), &cb_announce_all_trackers); + addRow(ANNOUNCE_ALL_TRACKERS, tr("Always announce to all trackers"), &cb_announce_all_trackers); +} + +template +void AdvancedSettings::addRow(int row, const QString &rowText, T* widget) +{ + setItem(row, PROPERTY, new QTableWidgetItem(rowText)); + setCellWidget(row, VALUE, widget); + + bool ok; + if (std::is_same::value) + ok = connect(widget, SIGNAL(stateChanged(int)), SIGNAL(settingsChanged())); + else if (std::is_same::value) + ok = connect(widget, SIGNAL(valueChanged(int)), SIGNAL(settingsChanged())); + else if (std::is_same::value) + ok = connect(widget, SIGNAL(currentIndexChanged(int)), SIGNAL(settingsChanged())); + else if (std::is_same::value) + ok = connect(widget, SIGNAL(textChanged(QString)), SIGNAL(settingsChanged())); + Q_ASSERT(ok); } diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index 57a276aca..06fbc7fa5 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -54,10 +54,7 @@ private slots: private: void loadAdvancedSettings(); - void setRow(int row, const QString &property, QSpinBox* editor); - void setRow(int row, const QString &property, QComboBox* editor); - void setRow(int row, const QString &property, QCheckBox* editor); - void setRow(int row, const QString &property, QLineEdit* editor); + template void addRow(int row, const QString &rowText, T* widget); QSpinBox spin_cache, spin_save_resume_data_interval, outgoing_ports_min, outgoing_ports_max, spin_list_refresh, spin_maxhalfopen, spin_tracker_port, spin_cache_ttl; QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, From a26d48082dee8f7f655839289946472d282eb8e2 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sun, 15 Nov 2015 15:03:43 +0800 Subject: [PATCH 125/238] Add header to differentiate settings --- src/gui/advancedsettings.cpp | 66 +++++++++++++++++++++++++----------- src/gui/advancedsettings.h | 2 ++ 2 files changed, 49 insertions(+), 19 deletions(-) diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp index d3bb7b116..dd32deaaf 100644 --- a/src/gui/advancedsettings.cpp +++ b/src/gui/advancedsettings.cpp @@ -27,6 +27,7 @@ */ #include "advancedsettings.h" +#include #include #include #include @@ -35,37 +36,52 @@ enum AdvSettingsCols { PROPERTY, - VALUE + VALUE, + COL_COUNT }; enum AdvSettingsRows { - DISK_CACHE, - DISK_CACHE_TTL, - OS_CACHE, - SAVE_RESUME_DATA_INTERVAL, - OUTGOING_PORT_MIN, - OUTGOING_PORT_MAX, - RECHECK_COMPLETED, - LIST_REFRESH, - RESOLVE_COUNTRIES, - RESOLVE_HOSTS, - MAX_HALF_OPEN, - SUPER_SEEDING, + // qBittorrent section + QBITTORRENT_HEADER, + // network interface NETWORK_IFACE, NETWORK_LISTEN_IPV6, - NETWORK_ADDRESS, - PROGRAM_NOTIFICATIONS, - TRACKER_STATUS, - TRACKER_PORT, + // behavior + SAVE_RESUME_DATA_INTERVAL, + CONFIRM_RECHECK_TORRENT, + RECHECK_COMPLETED, #if defined(Q_OS_WIN) || defined(Q_OS_MAC) UPDATE_CHECK, #endif + // UI related + LIST_REFRESH, + RESOLVE_HOSTS, + RESOLVE_COUNTRIES, + PROGRAM_NOTIFICATIONS, #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC)) USE_ICON_THEME, #endif - CONFIRM_RECHECK_TORRENT, + + // libtorrent section + LIBTORRENT_HEADER, + // cache + DISK_CACHE, + DISK_CACHE_TTL, + OS_CACHE, + // ports + MAX_HALF_OPEN, + OUTGOING_PORT_MIN, + OUTGOING_PORT_MAX, + // embedded tracker + TRACKER_STATUS, + TRACKER_PORT, + // seeding + SUPER_SEEDING, + // tracker TRACKER_EXCHANGE, ANNOUNCE_ALL_TRACKERS, + NETWORK_ADDRESS, + ROW_COUNT }; @@ -73,7 +89,7 @@ AdvancedSettings::AdvancedSettings(QWidget *parent) : QTableWidget(parent) { // column - setColumnCount(2); + setColumnCount(COL_COUNT); QStringList header = { tr("Setting"), tr("Value", "Value set for this setting") }; setHorizontalHeaderLabels(header); // row @@ -161,6 +177,18 @@ void AdvancedSettings::updateCacheSpinSuffix(int value) void AdvancedSettings::loadAdvancedSettings() { const Preferences* const pref = Preferences::instance(); + // add section headers + QFont boldFont; + boldFont.setBold(true); + addRow(QBITTORRENT_HEADER, tr("qBittorrent Section"), &labelQbtLink); + item(QBITTORRENT_HEADER, PROPERTY)->setFont(boldFont); + labelQbtLink.setText(QString("%2").arg("https://github.com/qbittorrent/qBittorrent/wiki/Explanation-of-Options-in-qBittorrent#Advanced").arg(tr("Open documentation"))); + labelQbtLink.setOpenExternalLinks(true); + + addRow(LIBTORRENT_HEADER, tr("libtorrent Section"), &labelLibtorrentLink); + item(LIBTORRENT_HEADER, PROPERTY)->setFont(boldFont); + labelLibtorrentLink.setText(QString("%2").arg("http://www.libtorrent.org/reference.html").arg(tr("Open documentation"))); + labelLibtorrentLink.setOpenExternalLinks(true); // Disk write cache spin_cache.setMinimum(0); // When build as 32bit binary, set the maximum at less than 2GB to prevent crashes. diff --git a/src/gui/advancedsettings.h b/src/gui/advancedsettings.h index 06fbc7fa5..b0d13f8c7 100644 --- a/src/gui/advancedsettings.h +++ b/src/gui/advancedsettings.h @@ -29,6 +29,7 @@ #ifndef ADVANCEDSETTINGS_H #define ADVANCEDSETTINGS_H +#include #include #include #include @@ -56,6 +57,7 @@ private: void loadAdvancedSettings(); template void addRow(int row, const QString &rowText, T* widget); + QLabel labelQbtLink, labelLibtorrentLink; QSpinBox spin_cache, spin_save_resume_data_interval, outgoing_ports_min, outgoing_ports_max, spin_list_refresh, spin_maxhalfopen, spin_tracker_port, spin_cache_ttl; QCheckBox cb_os_cache, cb_recheck_completed, cb_resolve_countries, cb_resolve_hosts, cb_super_seeding, cb_program_notifications, cb_tracker_status, From 44624d00039ce386fffa119a9d4fdd2f3a320cba Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Thu, 28 Jan 2016 23:57:55 +0200 Subject: [PATCH 126/238] Fix loading *.magnet files from watched folders. Closes #4701. --- src/base/filesystemwatcher.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/base/filesystemwatcher.cpp b/src/base/filesystemwatcher.cpp index df6bf38c6..3eead127d 100644 --- a/src/base/filesystemwatcher.cpp +++ b/src/base/filesystemwatcher.cpp @@ -195,11 +195,7 @@ void FileSystemWatcher::addTorrentsFromDir(const QDir &dir, QStringList &torrent foreach (const QString &file, files) { const QString fileAbsPath = dir.absoluteFilePath(file); if (fileAbsPath.endsWith(".magnet")) { - QFile f(fileAbsPath); - if (f.open(QIODevice::ReadOnly) - && !BitTorrent::MagnetUri(QString::fromLocal8Bit(f.readAll())).isValid()) { - torrents << fileAbsPath; - } + torrents << fileAbsPath; } else if (BitTorrent::TorrentInfo::loadFromFile(fileAbsPath).isValid()) { torrents << fileAbsPath; From 3591a0cedd3294b233a35b48e5d7f1d248c99bd2 Mon Sep 17 00:00:00 2001 From: buinsky Date: Sun, 24 Jan 2016 13:14:51 +0300 Subject: [PATCH 127/238] WebUI: Repair translation --- src/webui/extra_translations.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/webui/extra_translations.h b/src/webui/extra_translations.h index 695f6c302..350682447 100644 --- a/src/webui/extra_translations.h +++ b/src/webui/extra_translations.h @@ -38,7 +38,8 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Help"), QT_TRANSLATE_NOOP("HttpServer", "Logout"), QT_TRANSLATE_NOOP("HttpServer", "Exit qBittorrent"), - QT_TRANSLATE_NOOP("HttpServer", "Download Torrents from their URL or Magnet link"), + QT_TRANSLATE_NOOP("HttpServer", "Download from URLs"), + QT_TRANSLATE_NOOP("HttpServer", "Download Torrents from their URLs or Magnet links"), QT_TRANSLATE_NOOP("HttpServer", "Only one link per line"), QT_TRANSLATE_NOOP("HttpServer", "Upload local torrent"), QT_TRANSLATE_NOOP("HttpServer", "Download"), @@ -76,7 +77,6 @@ static const char *__TRANSLATIONS__[] = { QT_TRANSLATE_NOOP("HttpServer", "Download limit:"), QT_TRANSLATE_NOOP("HttpServer", "Apply"), QT_TRANSLATE_NOOP("HttpServer", "Add"), - QT_TRANSLATE_NOOP("HttpServer", "Upload Torrents"), QT_TRANSLATE_NOOP("HttpServer", "All"), QT_TRANSLATE_NOOP("HttpServer", "Downloading"), QT_TRANSLATE_NOOP("HttpServer", "Seeding"), @@ -114,7 +114,8 @@ static const struct { const char *source; const char *comment; } __COMMENTED_TRA QT_TRANSLATE_NOOP3("HttpServer", "Thursday", "Schedule the use of alternative rate limits on ..."), QT_TRANSLATE_NOOP3("HttpServer", "Friday", "Schedule the use of alternative rate limits on ..."), QT_TRANSLATE_NOOP3("HttpServer", "Saturday", "Schedule the use of alternative rate limits on ..."), - QT_TRANSLATE_NOOP3("HttpServer", "Sunday", "Schedule the use of alternative rate limits on ...") + QT_TRANSLATE_NOOP3("HttpServer", "Sunday", "Schedule the use of alternative rate limits on ..."), + QT_TRANSLATE_NOOP3("HttpServer", "Upload Torrents", "Upload torrent files to qBittorent using WebUI") }; #endif // EXTRA_TRANSLATIONS_H From c04f50286322e676887365dcb9a3b9594b5644ef Mon Sep 17 00:00:00 2001 From: buinsky Date: Fri, 29 Jan 2016 18:02:36 +0300 Subject: [PATCH 128/238] WebUI: Submit the label in the new label dialog on pressing enter key --- src/webui/www/public/newlabel.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/webui/www/public/newlabel.html b/src/webui/www/public/newlabel.html index ccf226bc2..bff86e307 100644 --- a/src/webui/www/public/newlabel.html +++ b/src/webui/www/public/newlabel.html @@ -7,6 +7,17 @@
    diff --git a/src/webui/www/public/filters.html b/src/webui/www/public/filters.html index 60403f855..367ddd2a7 100644 --- a/src/webui/www/public/filters.html +++ b/src/webui/www/public/filters.html @@ -11,6 +11,6 @@
  • QBT_TR(Errored (0))QBT_TR

  • -QBT_TR(Labels)QBT_TR -
      +QBT_TR(Categories)QBT_TR +
      diff --git a/src/webui/www/public/newlabel.html b/src/webui/www/public/newcategory.html similarity index 62% rename from src/webui/www/public/newlabel.html rename to src/webui/www/public/newcategory.html index bff86e307..cca0929fa 100644 --- a/src/webui/www/public/newlabel.html +++ b/src/webui/www/public/newcategory.html @@ -2,41 +2,41 @@ - QBT_TR(New Label)QBT_TR + QBT_TR(New Category)QBT_TR